<?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>229226</bug_id>
          
          <creation_ts>2021-08-17 21:42:23 -0700</creation_ts>
          <short_desc>Remove duplicate LayerTreeAsText enums and use an OptionSet&lt;&gt;</short_desc>
          <delta_ts>2021-08-19 08:48:23 -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>Compositing</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1785043</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-17 21:42:23 -0700</bug_when>
    <thetext>Remove duplicate LayerTreeAsText enums and use an OptionSet&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785044</commentid>
    <comment_count>1</comment_count>
      <attachid>435744</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-17 21:43:57 -0700</bug_when>
    <thetext>Created attachment 435744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785046</commentid>
    <comment_count>2</comment_count>
      <attachid>435746</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-17 21:53:17 -0700</bug_when>
    <thetext>Created attachment 435746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785048</commentid>
    <comment_count>3</comment_count>
      <attachid>435747</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-17 22:00:24 -0700</bug_when>
    <thetext>Created attachment 435747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785052</commentid>
    <comment_count>4</comment_count>
      <attachid>435748</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-17 23:09:59 -0700</bug_when>
    <thetext>Created attachment 435748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785456</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-19 08:47:42 -0700</bug_when>
    <thetext>Committed r281238 (240675@main): &lt;https://commits.webkit.org/240675@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435748.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785457</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-19 08:48:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/82127156&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435744</attachid>
            <date>2021-08-17 21:43:57 -0700</date>
            <delta_ts>2021-08-17 21:53:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229226-20210817214356.patch</filename>
            <type>text/plain</type>
            <size>44950</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJhNDg2ZjI1MWM1Nzhm
Mjk0YWRhOWY0YjY5NGMwZjU0OGM0NjZlZC4uMWYzZjY2YTg4ZDY0NzdmZDFhODA4NzhkZDEzNDVk
YmNlMWE3MTQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA4LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBkdXBs
aWNhdGUgTGF5ZXJUcmVlQXNUZXh0IGVudW1zIGFuZCB1c2UgYW4gT3B0aW9uU2V0PD4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJD
bGllbnQgaGFkIGVudW0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JGbGFncyBhbmQgRnJhbWUgaGFk
IGFuIGFub255bW91cworICAgICAgICBlbnVtIGFuZCB0eXBlZGVmIHVuc2lnbmVkIExheWVyVHJl
ZUZsYWdzLiBDbGVhbiB1cCBieSBhZGRpbmcgTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCisgICAg
ICAgIGFuZCB1c2luZyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gZXZlcnl3aGVy
ZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBw
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6OnNob3VsZFNraXBMYXllckluRHVtcCBjb25zdCk6CisgICAgICAgICog
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmR1
bXBMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpkdW1wQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0IGNvbnN0KToKKyAgICAg
ICAgKHNob3dHcmFwaGljc0xheWVyVHJlZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6OnNob3VsZFNraXBM
YXllckluRHVtcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50
OjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpzaG91bGRTa2lwTGF5ZXJJbkR1bXAgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllciBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0xheWVyVHJlZUFzVGV4dE9wdGlvbnMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpsYXllclRyZWVBc1RleHQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYWdlT3ZlcmxheUxheWVyVHJlZUFzVGV4dCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjp0b0xheWVyVHJlZUZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAg
KiB0ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrUGFnZU92ZXJsYXlDbGllbnQ6OmxheWVyVHJlZUFzVGV4dCk6CisgICAgICAgICogdGVzdGlu
Zy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuaDoKKwogMjAyMS0wOC0xNyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEZS1kdXBsaWNhdGUgdGhlIENvY29hLXNwZWNp
ZmljIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggNjJiNmVlMTZkNGMxMDZlZTc4ZTA1MTA2NDZiZDY5ZGViMmMyY2ZjZi4uN2Q0ZmQ4Yjcy
NzEyM2JiMGQyMjA3N2RhYjUyMjIyNTkzMjdjM2JlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
MjgwLDYgKzEyODAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEhhc2guaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ludFNpemUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFNpemVIYXNoLmgKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9MYXllclRyZWVBc1RleHRPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9MYXlvdXRQb2ludC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODRjN2RlZjc2YjdhMmQ3NTQ4
MmIyYmI5ZjA4ZmYwMWJlMjUyNTRiOS4uY2Y3MWQ5NzgwYzI3MDYwYjhiZDg0MGU1YWY3NzRhZTZk
ZThlOWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzE2LDYgKzMxNiw3IEBACiAJCTBGNDk2NkFCMURCNDBDNDMwMEEyNzRC
QiAvKiBKU0RPTVBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ5NjZBNTFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludC5oICovOyB9Owog
CQkwRjQ5NjZBRDFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludEluaXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDk2NkE3MURCNDBDNDMwMEEy
NzRCQiAvKiBKU0RPTVBvaW50SW5pdC5oICovOyB9OwogCQkwRjQ5NjZBRjFEQjQwQzQzMDBBMjc0
QkIgLyogSlNET01Qb2ludFJlYWRPbmx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ5NjZBOTFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludFJl
YWRPbmx5LmggKi87IH07CisJCTBGNEQ1RDE4MjZDQ0M0QUUwMEE5REZDMSAvKiBMYXllclRyZWVB
c1RleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjczNkVDQTI2Q0NCOTdBMDAwQUQ3Q0EgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTNG
Qjg0MjEzQjdBNjQwMEM0MEQzNCAvKiBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUzRkI4NDIxM0I3ODY0
MDBDNDBEMzQgLyogUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTREQ0U2MTg4MTA1MUQwMDNFRURC
QiAvKiBUZXh0QXV0b1NpemluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1NERDRTQxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmgg
Ki87IH07CiAJCTBGNTRERDA4MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NEREMDUxODgxRDVGNTAwM0VF
REJCIC8qIFRvdWNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTYyMjUsNiArNjIyNiw3IEBACiAJCTBGNkI3MDc3MjM3QkMxMkYwMDUyQ0E0NyAv
KiBDU1NVbml0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NVbml0cy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjZCNzA3OTIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTVW5pdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjcwNDk1RDIxMUI1MjQyMDAzNjk5NjggLyogQWN0aXZpdHlTdGF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBY3Rpdml0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3MzZFQ0EyNkNDQjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9wdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjczQjc2NTIyMkIzMjdGMDA4MDUzMTYgLyogU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjc5
MEYzRDI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheVZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjc5MEYzRjI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVZpZXcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NjM2LDYgKzI2NjM4LDcgQEAKIAkJCQlCMjc1MzU0NzBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50U2l6ZS5oICovLAogCQkJCUIyNzUzNTQ4MEIwNTM4MTQwMDJDRTY0
RiAvKiBJbnRTaXplSGFzaC5oICovLAogCQkJCTY1Q0M2QkVEMTYwMTRFQzAwMDBFRDI3RCAvKiBM
YXRpbjFUZXh0SXRlcmF0b3IuaCAqLywKKwkJCQkwRjczNkVDQTI2Q0NCOTdBMDAwQUQ3Q0EgLyog
TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oICovLAogCQkJCTBGMzZFNzM2MUJEMTgzN0EwMDJEQjg5
MSAvKiBMYXlvdXRQb2ludC5jcHAgKi8sCiAJCQkJMTQxREMwNEIxNjQ4MzRCOTAwMzcxRTVBIC8q
IExheW91dFBvaW50LmggKi8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91
dFJlY3QuY3BwICovLApAQCAtMzMzODYsNiArMzMzODksNyBAQAogCQkJCTBGRUMxMjBDMjJCRjJD
RDIwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTgwMzcxNjQxQTY2RjFEMzAwQkFGNTE5IC8qIExheWVyRnJhZ21lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBQTNBNkEwMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNEQ1RDE4MjZDQ0M0QUUwMEE5REZDMSAvKiBMYXllclRyZWVBc1Rl
eHRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTVDRkE5NzIwOEI5NTJCMDAxRTY5OTEg
LyogTGF5b3V0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNjIwQkE0QTU2MDA2NUE4
RDAgLyogTGF5b3V0Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTE5OUZBNDYy
MDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lckJveC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmgKaW5kZXggMzdjMWNiNmI1ZDc3OWQ1YTNjMmFiZGQ3YTYyNWU5OTAxMWQ5OTcx
Yy4uZDc2Mjg0NTNkYTUxNTA2NGE0ZmIxNjFkZjM0MThjZDFjMzUxYmFhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuaApAQCAtMTEzLDIyICsxMTMsNiBAQCBlbnVtIE92ZXJmbG93U2Nyb2xsQWN0aW9uIHsgRG9O
b3RQZXJmb3JtT3ZlcmZsb3dTY3JvbGwsIFBlcmZvcm1PdmVyZmxvd1Njcm9sbCB9OwogdXNpbmcg
Tm9kZVF1YWxpZmllciA9IEZ1bmN0aW9uPE5vZGUqIChjb25zdCBIaXRUZXN0UmVzdWx0JiwgTm9k
ZSogdGVybWluYXRpb25Ob2RlLCBJbnRSZWN0KiBub2RlQm91bmRzKT47CiAjZW5kaWYKIAotZW51
bSB7Ci0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvICAgICAgICAgICAgICA9IDEg
PDwgMCwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHMgICAgICAgICAgID0g
MSA8PCAxLAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVRpbGVDYWNoZXMgICAgICAgICAgICAg
PSAxIDw8IDIsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzICAgICAgICAg
ICA9IDEgPDwgMywKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVQYWludGluZ1BoYXNlcyAgICAg
ICAgID0gMSA8PCA0LAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRMYXllcnMgICAg
ICAgICAgPSAxIDw8IDUsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3
aW5nICAgICA9IDEgPDwgNiwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVDbGlwcGluZyAgICAg
ICAgICAgICAgID0gMSA8PCA3LAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUJhY2tpbmdTdG9y
ZUF0dGFjaGVkICAgPSAxIDw8IDgsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUm9vdExheWVy
UHJvcGVydGllcyAgICA9IDEgPDwgOSwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVFdmVudFJl
Z2lvbiAgICAgICAgICAgID0gMSA8PCAxMCwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVEZWVw
Q29sb3IgICAgICAgICAgICAgID0gMSA8PCAxMSwKLX07Ci10eXBlZGVmIHVuc2lnbmVkIExheWVy
VHJlZUZsYWdzOwotCiAvLyBGSVhNRTogUmVuYW1lIEZyYW1lIHRvIExvY2FsRnJhbWUgYW5kIEFi
c3RyYWN0RnJhbWUgdG8gRnJhbWUuCiBjbGFzcyBGcmFtZSBmaW5hbCA6IHB1YmxpYyBBYnN0cmFj
dEZyYW1lIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92
ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250
cm9sbGVyLmNwcAppbmRleCA5MjhkZDRiZDk2ODFlYmQwZmU5YjkyNjYyYzU5N2Q4ZDczN2FmZTIx
Li45Y2JlYjJlM2MyYjEwNGVmMzU0OGRmMTM3MGYzNGIyZDZkZDg5YTU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00MjksOSArNDI5LDkg
QEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRpZENoYW5nZU92ZXJsYXlCYWNrZ3JvdW5k
Q29sb3IoUGFnZU92ZXJsYXkmIG92ZXJsYXkKICAgICAgICAgbGF5ZXItPnNldEJhY2tncm91bmRD
b2xvcihvdmVybGF5LmJhY2tncm91bmRDb2xvcigpKTsKIH0KIAotYm9vbCBQYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OnNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Citib29sIFBhZ2VPdmVybGF5Q29u
dHJvbGxlcjo6c2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBPcHRp
b25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICByZXR1
cm4gIShiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWdlT3ZlcmxheUxheWVycyk7
CisgICAgcmV0dXJuICFvcHRpb25zLmNvbnRhaW5zKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6Oklu
Y2x1ZGVQYWdlT3ZlcmxheUxheWVycyk7CiB9CiAKIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
Ojp0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwgYm9vbCB1c2luZ1RpbGVkQmFja2luZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VP
dmVybGF5Q29udHJvbGxlci5oCmluZGV4IDYwNjI4NTNlODQ4YzUyM2IzMDA0MzNhMjE0M2ZjNzAx
MmY3ZmU0ZmQuLjA3NzkyOTgzZDM0Y2FiMDE2OGVkMmRmNzljMmQ1MzAyMjdhYWVlNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtOTUsNyArOTUs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFw
aGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChj
b25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29s
KSBvdmVycmlkZTsKIAogICAgIFBhZ2UmIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZDMyOWQ3NjhmYTA4MTY2
N2U4NGU3NmJiYWEwN2Q3YWUwOTlmODVkYS4uNTZhMzc5ZjgzYzAzYzkwMjI5NmQ2ZjU1NjFiM2Ux
YzZmOThiNmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKQEAgLTgyNiwzNiArODI2LDM2IEBAIHZvaWQgR3JhcGhpY3NMYXll
cjo6dHJhdmVyc2UoR3JhcGhpY3NMYXllciYgbGF5ZXIsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZCAoR3JhCiAgICAgICAgIHRyYXZlcnNlKCptYXNrTGF5ZXIsIHRyYXZlcnNhbEZ1bmMpOwogfQog
Ci12b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBMYXllcihUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBM
YXllcihUZXh0U3RyZWFtJiB0cywgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICIoIiA8PCAiR3JhcGhpY3NMYXll
ciI7CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykgeworICAgIGlm
IChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpIHsKICAgICAgICAgdHMg
PDwgIiAiIDw8IHN0YXRpY19jYXN0PHZvaWQqPihjb25zdF9jYXN0PEdyYXBoaWNzTGF5ZXIqPih0
aGlzKSk7CiAgICAgICAgIHRzIDw8ICIgXCIiIDw8IG1fbmFtZSA8PCAiXCIiOwogICAgIH0KIAog
ICAgIHRzIDw8ICJcbiI7Ci0gICAgZHVtcFByb3BlcnRpZXModHMsIGJlaGF2aW9yKTsKKyAgICBk
dW1wUHJvcGVydGllcyh0cywgb3B0aW9ucyk7CiAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwog
fQogCi1zdGF0aWMgdm9pZCBkdW1wQ2hpbGRyZW4oVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZlY3Rv
cjxSZWY8R3JhcGhpY3NMYXllcj4+JiBjaGlsZHJlbiwgdW5zaWduZWQmIHRvdGFsQ2hpbGRDb3Vu
dCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpCitzdGF0aWMgdm9pZCBkdW1wQ2hp
bGRyZW4oVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZlY3RvcjxSZWY8R3JhcGhpY3NMYXllcj4+JiBj
aGlsZHJlbiwgdW5zaWduZWQmIHRvdGFsQ2hpbGRDb3VudCwgT3B0aW9uU2V0PExheWVyVHJlZUFz
VGV4dE9wdGlvbnM+IG9wdGlvbnMpCiB7CiAgICAgdG90YWxDaGlsZENvdW50ICs9IGNoaWxkcmVu
LnNpemUoKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4pIHsKLSAgICAgICAgaWYg
KChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSB8fCAhY2hpbGQtPmNsaWVudCgpLnNo
b3VsZFNraXBMYXllckluRHVtcChjaGlsZC5wdHIoKSwgYmVoYXZpb3IpKSB7CisgICAgICAgIGlm
ICgob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKSB8fCAhY2hpbGQtPmNs
aWVudCgpLnNob3VsZFNraXBMYXllckluRHVtcChjaGlsZC5wdHIoKSwgb3B0aW9ucykpIHsKICAg
ICAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICAg
ICAgICAgIGNoaWxkLT5kdW1wTGF5ZXIodHMsIGJlaGF2aW9yKTsKKyAgICAgICAgICAgIGNoaWxk
LT5kdW1wTGF5ZXIodHMsIG9wdGlvbnMpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAogICAgICAgICB0b3RhbENoaWxkQ291bnQtLTsKLSAgICAgICAgZHVtcENoaWxkcmVuKHRz
LCBjaGlsZC0+Y2hpbGRyZW4oKSwgdG90YWxDaGlsZENvdW50LCBiZWhhdmlvcik7CisgICAgICAg
IGR1bXBDaGlsZHJlbih0cywgY2hpbGQtPmNoaWxkcmVuKCksIHRvdGFsQ2hpbGRDb3VudCwgb3B0
aW9ucyk7CiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVzKFRl
eHRTdHJlYW0mIHRzLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK3Zv
aWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIE9wdGlvblNl
dDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIFRleHRTdHJl
YW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKICAgICBpZiAoIW1fb2Zmc2V0RnJvbVJl
bmRlcmVyLmlzWmVybygpKQpAQCAtOTAxLDEzICs5MDEsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVy
OjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3Ig
YmVoYXYKICAgICBpZiAobV9zdXBwb3J0c1N1YnBpeGVsQW50aWFsaWFzZWRUZXh0KQogICAgICAg
ICB0cyA8PCBpbmRlbnQgPDwgIihzdXBwb3J0cyBzdWJwaXhlbCBhbnRpYWxpYXNlZCB0ZXh0ICIg
PDwgbV9zdXBwb3J0c1N1YnBpeGVsQW50aWFsaWFzZWRUZXh0IDw8ICIpXG4iOwogCi0gICAgaWYg
KG1fbWFza3NUb0JvdW5kcyAmJiBiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDbGlw
cGluZykKKyAgICBpZiAobV9tYXNrc1RvQm91bmRzICYmIG9wdGlvbnMgJiBMYXllclRyZWVBc1Rl
eHRPcHRpb25zOjpJbmNsdWRlQ2xpcHBpbmcpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGNs
aXBzICIgPDwgbV9tYXNrc1RvQm91bmRzIDw8ICIpXG4iOwogCiAgICAgaWYgKG1fcHJlc2VydmVz
M0QpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHByZXNlcnZlczNEICIgPDwgbV9wcmVzZXJ2
ZXMzRCA8PCAiKVxuIjsKIAotICAgIGlmIChtX2RyYXdzQ29udGVudCAmJiBjbGllbnQoKS5zaG91
bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAiZHJhd3NDb250ZW50IiwgYmVoYXZpb3IpKQor
ICAgIGlmIChtX2RyYXdzQ29udGVudCAmJiBjbGllbnQoKS5zaG91bGREdW1wUHJvcGVydHlGb3JM
YXllcih0aGlzLCAiZHJhd3NDb250ZW50Iiwgb3B0aW9ucykpCiAgICAgICAgIHRzIDw8IGluZGVu
dCA8PCAiKGRyYXdzQ29udGVudCAiIDw8IG1fZHJhd3NDb250ZW50IDw8ICIpXG4iOwogCiAgICAg
aWYgKCFtX2NvbnRlbnRzVmlzaWJsZSkKQEAgLTkxNiwxNiArOTE2LDE2IEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJl
aGF2aW9yIGJlaGF2CiAgICAgaWYgKCFtX2JhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAgICAgdHMg
PDwgaW5kZW50IDw8ICIoYmFja2ZhY2VWaXNpYmlsaXR5ICIgPDwgKG1fYmFja2ZhY2VWaXNpYmls
aXR5ID8gInZpc2libGUiIDogImhpZGRlbiIpIDw8ICIpXG4iOwogCi0gICAgaWYgKGJlaGF2aW9y
ICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpCisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1Rl
eHRPcHRpb25zOjpEZWJ1ZykKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocHJpbWFyeS1sYXll
ci1pZCAiIDw8IHByaW1hcnlMYXllcklEKCkgPDwgIilcbiI7CiAKLSAgICBpZiAobV9iYWNrZ3Jv
dW5kQ29sb3IuaXNWYWxpZCgpICYmIGNsaWVudCgpLnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVy
KHRoaXMsICJiYWNrZ3JvdW5kQ29sb3IiLCBiZWhhdmlvcikpCisgICAgaWYgKG1fYmFja2dyb3Vu
ZENvbG9yLmlzVmFsaWQoKSAmJiBjbGllbnQoKS5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0
aGlzLCAiYmFja2dyb3VuZENvbG9yIiwgb3B0aW9ucykpCiAgICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKGJhY2tncm91bmRDb2xvciAiIDw8IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0
KG1fYmFja2dyb3VuZENvbG9yKSA8PCAiKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVBY2NlbGVyYXRlc0RyYXdpbmcgJiYgbV9hY2NlbGVyYXRlc0RyYXdp
bmcpCisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQWNj
ZWxlcmF0ZXNEcmF3aW5nICYmIG1fYWNjZWxlcmF0ZXNEcmF3aW5nKQogICAgICAgICB0cyA8PCBp
bmRlbnQgPDwgIihhY2NlbGVyYXRlc0RyYXdpbmcgIiA8PCBtX2FjY2VsZXJhdGVzRHJhd2luZyA8
PCAiKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVCYWNr
aW5nU3RvcmVBdHRhY2hlZCkKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hlZCkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8
ICIoYmFja2luZ1N0b3JlQXR0YWNoZWQgIiA8PCBiYWNraW5nU3RvcmVBdHRhY2hlZEZvclRlc3Rp
bmcoKSA8PCAiKVxuIjsKIAogICAgIGlmIChtX3RyYW5zZm9ybSAmJiAhbV90cmFuc2Zvcm0tPmlz
SWRlbnRpdHkoKSkgewpAQCAtOTQ4LDMyICs5NDgsMzIgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpk
dW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXYKIAogICAgIGlmIChtX21hc2tMYXllcikgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIiht
YXNrIGxheWVyIjsKLSAgICAgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcp
CisgICAgICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAg
ICAgICAgICAgICB0cyA8PCAiICIgPDwgbV9tYXNrTGF5ZXIuZ2V0KCk7CiAgICAgICAgIHRzIDw8
ICIpXG4iOwogCiAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRz
KTsKLSAgICAgICAgbV9tYXNrTGF5ZXItPmR1bXBMYXllcih0cywgYmVoYXZpb3IpOworICAgICAg
ICBtX21hc2tMYXllci0+ZHVtcExheWVyKHRzLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBpZiAo
bV9yZXBsaWNhTGF5ZXIpIHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocmVwbGljYSBsYXll
ciI7Ci0gICAgICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgICAg
ICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICAg
ICAgdHMgPDwgIiAiIDw8IG1fcmVwbGljYUxheWVyLmdldCgpOwogICAgICAgICB0cyA8PCAiKVxu
IjsKIAogICAgICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0g
ICAgICAgIG1fcmVwbGljYUxheWVyLT5kdW1wTGF5ZXIodHMsIGJlaGF2aW9yKTsKKyAgICAgICAg
bV9yZXBsaWNhTGF5ZXItPmR1bXBMYXllcih0cywgb3B0aW9ucyk7CiAgICAgfQogCiAgICAgaWYg
KG1fcmVwbGljYXRlZExheWVyKSB7CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHJlcGxpY2F0
ZWQgbGF5ZXIiOwotICAgICAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykK
KyAgICAgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykKICAg
ICAgICAgICAgIHRzIDw8ICIgIiA8PCBtX3JlcGxpY2F0ZWRMYXllcjsKICAgICAgICAgdHMgPDwg
IilcbiI7CiAgICAgfQogCi0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVk
ZVJlcGFpbnRSZWN0cyAmJiByZXBhaW50UmVjdE1hcCgpLmNvbnRhaW5zKHRoaXMpICYmICFyZXBh
aW50UmVjdE1hcCgpLmdldCh0aGlzKS5pc0VtcHR5KCkgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFBy
b3BlcnR5Rm9yTGF5ZXIodGhpcywgInJlcGFpbnRSZWN0cyIsIGJlaGF2aW9yKSkgeworICAgIGlm
IChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJlcGFpbnRSZWN0cyAm
JiByZXBhaW50UmVjdE1hcCgpLmNvbnRhaW5zKHRoaXMpICYmICFyZXBhaW50UmVjdE1hcCgpLmdl
dCh0aGlzKS5pc0VtcHR5KCkgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIo
dGhpcywgInJlcGFpbnRSZWN0cyIsIG9wdGlvbnMpKSB7CiAgICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKHJlcGFpbnQgcmVjdHNcbiI7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVw
YWludFJlY3RNYXAoKS5nZXQodGhpcykuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGlmIChy
ZXBhaW50UmVjdE1hcCgpLmdldCh0aGlzKVtpXS5pc0VtcHR5KCkpCkBAIC05OTAsMjcgKzk5MCwy
NyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBM
YXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilc
biI7CiAgICAgfQogCi0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2
ZW50UmVnaW9uICYmICFtX2V2ZW50UmVnaW9uLmlzRW1wdHkoKSkgeworICAgIGlmIChvcHRpb25z
ICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUV2ZW50UmVnaW9uICYmICFtX2V2ZW50
UmVnaW9uLmlzRW1wdHkoKSkgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihldmVudCByZWdp
b24iIDw8IG1fZXZlbnRSZWdpb247CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKICAg
ICB9CiAgICAgCiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCi0gICAgaWYgKChiZWhhdmlv
ciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSAmJiBtX3Njcm9sbGluZ05vZGVJRCkKKyAgICBpZiAo
KG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykgJiYgbV9zY3JvbGxpbmdO
b2RlSUQpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHNjcm9sbGluZyBub2RlICIgPDwgbV9z
Y3JvbGxpbmdOb2RlSUQgPDwgIilcbiI7CiAjZW5kaWYKIAotICAgIGlmIChiZWhhdmlvciAmIExh
eWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlcyAmJiBwYWludGluZ1BoYXNlKCkpCisg
ICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFpbnRpbmdQ
aGFzZXMgJiYgcGFpbnRpbmdQaGFzZSgpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihwYWlu
dGluZ1BoYXNlcyAiIDw8IHBhaW50aW5nUGhhc2UoKSA8PCAiKVxuIjsKIAotICAgIGR1bXBBZGRp
dGlvbmFsUHJvcGVydGllcyh0cywgYmVoYXZpb3IpOworICAgIGR1bXBBZGRpdGlvbmFsUHJvcGVy
dGllcyh0cywgb3B0aW9ucyk7CiAgICAgCiAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpKSB7CiAg
ICAgICAgIFRleHRTdHJlYW0gY2hpbGRyZW5TdHJlYW07CiAgICAgICAgIAogICAgICAgICBjaGls
ZHJlblN0cmVhbS5pbmNyZWFzZUluZGVudCh0cy5pbmRlbnQoKSk7CiAgICAgICAgIHVuc2lnbmVk
IHRvdGFsQ2hpbGRDb3VudCA9IDA7Ci0gICAgICAgIGR1bXBDaGlsZHJlbihjaGlsZHJlblN0cmVh
bSwgbV9jaGlsZHJlbiwgdG90YWxDaGlsZENvdW50LCBiZWhhdmlvcik7CisgICAgICAgIGR1bXBD
aGlsZHJlbihjaGlsZHJlblN0cmVhbSwgbV9jaGlsZHJlbiwgdG90YWxDaGlsZENvdW50LCBvcHRp
b25zKTsKIAogICAgICAgICBpZiAodG90YWxDaGlsZENvdW50KSB7CiAgICAgICAgICAgICB0cyA8
PCBpbmRlbnQgPDwgIihjaGlsZHJlbiAiIDw8IHRvdGFsQ2hpbGRDb3VudCA8PCAiXG4iOwpAQCAt
MTA1OCwxMSArMTA1OCwxMSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlJiBjdQogICAgIHJldHVybiB0
czsKIH0KIAotU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVB
c1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK1N0cmluZyBHcmFwaGljc0xheWVyOjpsYXll
clRyZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CiB7CiAgICAgVGV4dFN0cmVhbSB0cyhUZXh0U3RyZWFtOjpMaW5lTW9kZTo6TXVsdGlwbGVM
aW5lLCBUZXh0U3RyZWFtOjpGb3JtYXR0aW5nOjpTVkdTdHlsZVJlY3QpOwogCi0gICAgZHVtcExh
eWVyKHRzLCBiZWhhdmlvcik7CisgICAgZHVtcExheWVyKHRzLCBvcHRpb25zKTsKICAgICByZXR1
cm4gdHMucmVsZWFzZSgpOwogfQogCkBAIC0xMDc0LDcgKzEwNzQsNyBAQCB2b2lkIHNob3dHcmFw
aGljc0xheWVyVHJlZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikKICAgICBp
ZiAoIWxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmcgb3V0cHV0ID0gbGF5ZXIt
PmxheWVyVHJlZUFzVGV4dChXZWJDb3JlOjpMYXllclRyZWVBc1RleHRTaG93QWxsKTsKKyAgICBT
dHJpbmcgb3V0cHV0ID0gbGF5ZXItPmxheWVyVHJlZUFzVGV4dChXZWJDb3JlOjpBbGxMYXllclRy
ZWVBc1RleHRPcHRpb25zKTsKICAgICBXVEZMb2dBbHdheXMoIiVzXG4iLCBvdXRwdXQudXRmOCgp
LmRhdGEoKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAzYjNjMTE4YmZkNDZjNWI4NDA1ZWE3YjgxMTNhZjU5
Yjk2NjcxYmU5Li5lYzdiNDQ3NDhhZmJmNTljOTZjNGJhMGY1M2NhYmM3ZWMwNWRiZDAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBA
IC01NDAsNyArNTQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c09y
aWVudGF0aW9uKENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBvcmllbnRhdGlvbikg
eyBtX2NvbnRlbnRzT3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAgIENvbXBvc2l0aW5n
Q29vcmRpbmF0ZXNPcmllbnRhdGlvbiBjb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50c09yaWVudGF0aW9uOyB9CiAKLSAgICB2b2lkIGR1bXBMYXllcihXVEY6OlRl
eHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yTm9ybWFsKSBjb25zdDsKKyAgICB2b2lkIGR1bXBMYXllcihXVEY6OlRleHRTdHJlYW0mLCBP
cHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gPSB7IH0pIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3cpIHsgbV9zaG93RGVidWdCb3Jk
ZXIgPSBzaG93OyB9CiAgICAgYm9vbCBpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvd0RlYnVnQm9yZGVyOyB9CkBAIC02MDAsNyArNjAwLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gUmV0dXJuIGEgc3RyaW5nIHdpdGggYSBodW1hbiByZWFkYWJsZSBmb3JtIG9mIHRoZSBs
YXllciB0cmVlLCBJZiBkZWJ1ZyBpcyB0cnVlCiAgICAgLy8gcG9pbnRlcnMgZm9yIHRoZSBsYXll
cnMgYW5kIHRpbWluZyBkYXRhIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHJldHVybmVkIHN0cmlu
Zy4KLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUFz
VGV4dEJlaGF2aW9yID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBsYXllclRyZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM+ID0geyB9KSBjb25zdDsKIAogICAgIC8vIEZvciB0ZXN0aW5nLgogICAg
IHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFn
cykgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KQEAgLTY3OSw4ICs2NzksOCBAQCBwcm90ZWN0
ZWQ6CiAjZW5kaWYKIAogCi0gICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0m
LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXBB
ZGRpdGlvbmFsUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhh
dmlvcikgY29uc3QgeyB9CisgICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0m
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0
PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCB7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyQ2xpZW50LmgKaW5kZXggMmE0MjJlZjNmYTk2MWY0MWJlZGM2YmZiN2MwYWE1M2E2
Zjk1NWY2OS4uMDgzNzc3Nzg0ZjViOWFiZjNhYWM3Y2QyMzY5YzJiY2IwYjVlYjM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJD
bGllbnQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkxh
eWVyVHJlZUFzVGV4dE9wdGlvbnMuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKICNpbmNs
dWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBA
IC02OCwyNSArNjksNiBAQCBpbmxpbmUgYm9vbCBhbmltYXRlZFByb3BlcnR5SXNUcmFuc2Zvcm1P
clJlbGF0ZWQoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQogICAgIHJldHVybiBwcm9wZXJ0
eSA9PSBBbmltYXRlZFByb3BlcnR5VHJhbnNmb3JtIHx8IHByb3BlcnR5ID09IEFuaW1hdGVkUHJv
cGVydHlUcmFuc2xhdGUgfHwgcHJvcGVydHkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVNjYWxlIHx8IHBy
b3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlSb3RhdGU7CiB9CiAKLWVudW0gTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3JGbGFncyB7Ci0gICAgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgICAg
ICAgICAgICAgICA9IDAsCi0gICAgTGF5ZXJUcmVlQXNUZXh0RGVidWcgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMCwgLy8gRHVtcCBleHRyYSBkZWJ1Z2dpbmcgaW5mbyBsaWtlIGxheWVy
IGFkZHJlc3Nlcy4KLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3RzICAgICAg
ICAgID0gMSA8PCAxLAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzICAgICAg
ICAgICAgPSAxIDw8IDIsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJlcGFpbnRSZWN0cyAg
ICAgICAgICA9IDEgPDwgMywKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlUGFpbnRpbmdQaGFz
ZXMgICAgICAgID0gMSA8PCA0LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250ZW50TGF5
ZXJzICAgICAgICAgPSAxIDw8IDUsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVBhZ2VPdmVy
bGF5TGF5ZXJzICAgICA9IDEgPDwgNiwKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlQWNjZWxl
cmF0ZXNEcmF3aW5nICAgID0gMSA8PCA3LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDbGlw
cGluZyAgICAgICAgICAgICAgPSAxIDw8IDgsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUJh
Y2tpbmdTdG9yZUF0dGFjaGVkICA9IDEgPDwgOSwKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRl
Um9vdExheWVyUHJvcGVydGllcyAgID0gMSA8PCAxMCwKLSAgICBMYXllclRyZWVBc1RleHRJbmNs
dWRlRXZlbnRSZWdpb24gICAgICAgICAgID0gMSA8PCAxMSwKLSAgICBMYXllclRyZWVBc1RleHRJ
bmNsdWRlRGVlcENvbG9yICAgICAgICAgICAgID0gMSA8PCAxMiwKLSAgICBMYXllclRyZWVBc1Rl
eHRTaG93QWxsICAgICAgICAgICAgICAgICAgICAgID0gMHhGRkZGCi19OwotdHlwZWRlZiB1bnNp
Z25lZCBMYXllclRyZWVBc1RleHRCZWhhdmlvcjsKLQogZW51bSBjbGFzcyBQbGF0Zm9ybUxheWVy
VHJlZUFzVGV4dEZsYWdzIDogdWludDhfdCB7CiAgICAgRGVidWcgPSAxIDw8IDAsCiAgICAgSWdu
b3JlQ2hpbGRyZW4gPSAxIDw8IDEsCkBAIC0xMzksOCArMTIxLDggQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciosIGNvbnN0IGNoYXIqLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29u
c3QgR3JhcGhpY3NMYXllciosIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb3BlcnR5
Rm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IGNoYXIqLCBPcHRpb25TZXQ8TGF5
ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyhjb25zdCBHcmFwaGljc0xheWVy
KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVtcG9y
YXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMDI1Zjk0ZTg5MDNhYmZh
ZTMwYTBlODhkZmJmMGRlOWE1ZWZiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXllclRyZWVBc1RleHRPcHRpb25zLmgKQEAgLTAsMCArMSw2
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyA6IHVpbnQxNl90
IHsKKyAgICBEZWJ1ZyAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLCAvLyBEdW1wIGV4
dHJhIGRlYnVnZ2luZyBpbmZvIGxpa2UgbGF5ZXIgYWRkcmVzc2VzLgorICAgIEluY2x1ZGVWaXNp
YmxlUmVjdHMgICAgICAgICAgPSAxIDw8IDEsCisgICAgSW5jbHVkZVRpbGVDYWNoZXMgICAgICAg
ICAgICA9IDEgPDwgMiwKKyAgICBJbmNsdWRlUmVwYWludFJlY3RzICAgICAgICAgID0gMSA8PCAz
LAorICAgIEluY2x1ZGVQYWludGluZ1BoYXNlcyAgICAgICAgPSAxIDw8IDQsCisgICAgSW5jbHVk
ZUNvbnRlbnRMYXllcnMgICAgICAgICA9IDEgPDwgNSwKKyAgICBJbmNsdWRlUGFnZU92ZXJsYXlM
YXllcnMgICAgID0gMSA8PCA2LAorICAgIEluY2x1ZGVBY2NlbGVyYXRlc0RyYXdpbmcgICAgPSAx
IDw8IDcsCisgICAgSW5jbHVkZUNsaXBwaW5nICAgICAgICAgICAgICA9IDEgPDwgOCwKKyAgICBJ
bmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQgID0gMSA8PCA5LAorICAgIEluY2x1ZGVSb290TGF5
ZXJQcm9wZXJ0aWVzICAgPSAxIDw8IDEwLAorICAgIEluY2x1ZGVFdmVudFJlZ2lvbiAgICAgICAg
ICAgPSAxIDw8IDExLAorICAgIEluY2x1ZGVEZWVwQ29sb3IgICAgICAgICAgICAgPSAxIDw8IDEy
LAorfTsKKworc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9u
cz4gQWxsTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyA9IHsKKyAgICBMYXllclRyZWVBc1RleHRPcHRp
b25zOjpEZWJ1ZywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVmlzaWJsZVJl
Y3RzLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVUaWxlQ2FjaGVzLAorICAg
IExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSZXBhaW50UmVjdHMsCisgICAgTGF5ZXJU
cmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVBhaW50aW5nUGhhc2VzLAorICAgIExheWVyVHJlZUFz
VGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzLAorICAgIExheWVyVHJlZUFzVGV4dE9w
dGlvbnM6OkluY2x1ZGVQYWdlT3ZlcmxheUxheWVycywKKyAgICBMYXllclRyZWVBc1RleHRPcHRp
b25zOjpJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVDbGlwcGluZywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRl
QmFja2luZ1N0b3JlQXR0YWNoZWQsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVk
ZVJvb3RMYXllclByb3BlcnRpZXMsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVk
ZUV2ZW50UmVnaW9uLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVEZWVwQ29s
b3IsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBjZGNk
YmJhMjgzNDBiMWYyMjM3ZWY0N2UxNzBmMjgwZjQzYTdlMjc5Li42NzkzMmFlYjdlNDdmYzZmMmQz
OTkzYmY1MzViMDlhOWFiOGEzZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTQyMDcsMTcgKzQyMDcs
MTcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmR1bXBMYXllckNoYW5nZUZsYWdzKFRleHRTdHJl
YW0mIHRleHRTdHJlYW0sIExheWVyQ2hhbmdlRmwKICAgICB0ZXh0U3RyZWFtIDw8ICIgfSI7CiB9
CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYgdGV4dFN0cmVhbSwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0
Cit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJl
YW0mIHRleHRTdHJlYW0sIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVWaXNp
YmxlUmVjdHMpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6Oklu
Y2x1ZGVWaXNpYmxlUmVjdHMpIHsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIih2
aXNpYmxlIHJlY3QgIiA8PCBtX3Zpc2libGVSZWN0LngoKSA8PCAiLCAiIDw8IG1fdmlzaWJsZVJl
Y3QueSgpIDw8ICIgIiA8PCBtX3Zpc2libGVSZWN0LndpZHRoKCkgPDwgIiB4ICIgPDwgbV92aXNp
YmxlUmVjdC5oZWlnaHQoKSA8PCAiKVxuIjsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQg
PDwgIihjb3ZlcmFnZSByZWN0ICIgPDwgbV9jb3ZlcmFnZVJlY3QueCgpIDw8ICIsICIgPDwgbV9j
b3ZlcmFnZVJlY3QueSgpIDw8ICIgIiA8PCBtX2NvdmVyYWdlUmVjdC53aWR0aCgpIDw8ICIgeCAi
IDw8IG1fY292ZXJhZ2VSZWN0LmhlaWdodCgpIDw8ICIpXG4iOwogICAgICAgICB0ZXh0U3RyZWFt
IDw8IGluZGVudCA8PCAiKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAiIDw8IG1faW50ZXJzZWN0
c0NvdmVyYWdlUmVjdCA8PCAiKVxuIjsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwg
Iihjb250ZW50c1NjYWxlICIgPDwgbV9sYXllci0+Y29udGVudHNTY2FsZSgpIDw8ICIpXG4iOwog
ICAgIH0KIAotICAgIGlmICh0aWxlZEJhY2tpbmcoKSAmJiAoYmVoYXZpb3IgJiBMYXllclRyZWVB
c1RleHRJbmNsdWRlVGlsZUNhY2hlcykpIHsKLSAgICAgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJU
cmVlQXNUZXh0RGVidWcpCisgICAgaWYgKHRpbGVkQmFja2luZygpICYmIChvcHRpb25zICYgTGF5
ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVRpbGVDYWNoZXMpKSB7CisgICAgICAgIGlmIChv
cHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgICAgICB0ZXh0
U3RyZWFtIDw8IGluZGVudCA8PCAiKHRpbGVkIGJhY2tpbmcgIiA8PCB0aWxlZEJhY2tpbmcoKSA8
PCAiKVxuIjsKIAogICAgICAgICBJbnRSZWN0IHRpbGVDb3ZlcmFnZVJlY3QgPSB0aWxlZEJhY2tp
bmcoKS0+dGlsZUNvdmVyYWdlUmVjdCgpOwpAQCAtNDIzMiwxMiArNDIzMiwxMiBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRT
dHJlYW0sIExheWVyVHJlZQogICAgICAgICB0ZXh0U3RyZWFtIDw8IGluZGVudCA8PCAiKGluIHdp
bmRvdyAiIDw8IHRpbGVkQmFja2luZygpLT5pc0luV2luZG93KCkgPDwgIilcbiI7CiAgICAgfQog
Ci0gICAgaWYgKChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVEZWVwQ29sb3IpICYm
IG1fbGF5ZXItPndhbnRzRGVlcENvbG9yQmFja2luZ1N0b3JlKCkpCisgICAgaWYgKChvcHRpb25z
ICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZURlZXBDb2xvcikgJiYgbV9sYXllci0+
d2FudHNEZWVwQ29sb3JCYWNraW5nU3RvcmUoKSkKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRl
bnQgPDwgIihkZWVwIGNvbG9yIDEpXG4iOwogCi0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVl
QXNUZXh0SW5jbHVkZUNvbnRlbnRMYXllcnMpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzKSB7CiAgICAgICAgIE9wdGlvblNl
dDxQbGF0Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdzPiBwbGF0Zm9ybUZsYWdzID0geyBQbGF0Zm9y
bUxheWVyVHJlZUFzVGV4dEZsYWdzOjpJZ25vcmVDaGlsZHJlbiB9OwotICAgICAgICBpZiAoYmVo
YXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykKKyAgICAgICAgaWYgKG9wdGlvbnMgJiBMYXll
clRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykKICAgICAgICAgICAgIHBsYXRmb3JtRmxhZ3MuYWRk
KFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M6OkRlYnVnKTsKICAgICAgICAgZHVtcElubmVy
TGF5ZXIodGV4dFN0cmVhbSwgbV9zdHJ1Y3R1cmFsTGF5ZXIuZ2V0KCksIHBsYXRmb3JtRmxhZ3Mp
OwogICAgICAgICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCBtX2NvbnRlbnRzQ2xpcHBpbmdM
YXllci5nZXQoKSwgcGxhdGZvcm1GbGFncyk7CkBAIC00MjQ4LDcgKzQyNDgsNyBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRT
dHJlYW0sIExheWVyVHJlZQogICAgICAgICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCBtX2Jh
Y2tkcm9wTGF5ZXIuZ2V0KCksIHBsYXRmb3JtRmxhZ3MpOwogICAgIH0KIAotICAgIGlmIChiZWhh
dmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSB7CisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRy
ZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykgewogICAgICAgICBpZiAobV91c2VzRGlzcGxheUxpc3RE
cmF3aW5nKQogICAgICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIih1c2VzIGRpc3Bs
YXktbGlzdCBkcmF3aW5nICIgPDwgbV91c2VzRGlzcGxheUxpc3REcmF3aW5nIDw8ICIpXG4iOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDAyZGMzOTBiNGE1YjYyZTU4NTgxZTkzMDgwYzA1ZTM5OGRjMTUyODMu
LjRiY2Y0NTQyY2E3N2UxZjQyZWUxYTk5MGI5MjllYzEzNmU2NzIxMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0zMDksNyArMzA5LDcgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJl
cGxpY2F0ZWRCeUxheWVyKFJlZlB0cjxHcmFwaGljc0xheWVyPiYmKSBvdmVycmlkZTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdp
ZHRoKSBjb25zdCBvdmVycmlkZTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXBBZGRpdGlv
bmFsUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wQWRkaXRpb25hbFBy
b3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGR1bXBJbm5lckxheWVyKFdURjo6VGV4dFN0
cmVhbSYsIFBsYXRmb3JtQ0FMYXllciosIE9wdGlvblNldDxQbGF0Zm9ybUxheWVyVHJlZUFzVGV4
dEZsYWdzPikgY29uc3Q7CiAgICAgY29uc3QgY2hhciAqcHVycG9zZU5hbWVGb3JJbm5lckxheWVy
KFBsYXRmb3JtQ0FMYXllciYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGNlNzY5Zjg1ZDYxYTk0YTQ4YTJkNzI4ZDcx
MDA5ZmMxOGZlOTA2YzEuLjZlOGFiOTFhZjVkMTA4MGNkN2FiODgyZGI1NzQ5MzRjMDJhMjMyNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CkBAIC0zNTU2LDIwICszNTU2LDIwIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjppc1RyYWNr
aW5nUmVwYWludHMoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVy
Q2xpZW50Jj4oY29tcG9zaXRvcigpKS5pc1RyYWNraW5nUmVwYWludHMoKTsKIH0KIAotYm9vbCBS
ZW5kZXJMYXllckJhY2tpbmc6OnNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xh
eWVyKiBsYXllciwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Citib29s
IFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGxheWVyLCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykKKyAgICBp
ZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAvLyBTa2lwIHRoZSByb290IHRpbGUgY2FjaGUncyBmbGF0dGVuaW5n
IGxheWVyLgogICAgIHJldHVybiBtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xheWVyICYmIGxheWVy
ICYmIGxheWVyID09IG1fY2hpbGRDb250YWlubWVudExheWVyLmdldCgpOwogfQogCi1ib29sIFJl
bmRlckxheWVyQmFja2luZzo6c2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciogbGF5ZXIsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgTGF5ZXJUcmVlQXNUZXh0
QmVoYXZpb3IgZmxhZ3MpIGNvbnN0Citib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkRHVt
cFByb3BlcnR5Rm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIsIGNvbnN0IGNoYXIq
IHByb3BlcnR5TmFtZSwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggV2ViS2l0
MSBhbmQgb3RoZXIgcGxhdGZvcm1zLAogICAgIC8vIHNraXAgc29tZSBwcm9wZXJ0aWVzIG9uIHRo
ZSByb290IHRpbGUgY2FjaGUuCi0gICAgaWYgKG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIg
JiYgbGF5ZXIgPT0gbV9ncmFwaGljc0xheWVyLmdldCgpICYmICEoZmxhZ3MgJiBMYXllclRyZWVB
c1RleHRJbmNsdWRlUm9vdExheWVyUHJvcGVydGllcykpIHsKKyAgICBpZiAobV9pc01haW5GcmFt
ZVJlbmRlclZpZXdMYXllciAmJiBsYXllciA9PSBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkgJiYgIShv
cHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJvb3RMYXllclByb3BlcnRp
ZXMpKSB7CiAgICAgICAgIGlmICghc3RyY21wKHByb3BlcnR5TmFtZSwgImRyYXdzQ29udGVudCIp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMTkzYzVkMTc1Y2VlOThkZmMwNjBkZTFjOGQ2
YTIzMTk0ODljZDQ3ZC4uYTIwZDMyNDVlNDE5MWQ5MTRhZjMxYjhmM2ZlMjZjMWRiYTY2ZDMwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAt
MjQwLDggKzI0MCw4IEBAIHB1YmxpYzoKICAgICBib29sIGdldEN1cnJlbnRUcmFuc2Zvcm0oY29u
c3QgR3JhcGhpY3NMYXllciosIFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBMYXllclRyZWVB
c1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGREdW1wUHJvcGVy
dHlGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91
bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciosIE9wdGlvblNldDxMYXllclRy
ZWVBc1RleHRPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGREdW1wUHJv
cGVydHlGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgY2hhciogcHJvcGVydHlO
YW1lLCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgYm9vbCBzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRUZW1wb3JhcmlseVJldGFpblRp
bGVDb2hvcnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXgg
NWE1ZWY2YjcxNzkzNGJlNDdmM2UyN2M1ZTQ1ZTU4ZmRiMmRkMDJiOS4uZmRiZTJjYjA1MGI1ODkx
MzdhNmY2OWY4MzgzMWE5ZWI3MDcyNTM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTIzMjgsNyArMjMyOCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0ZvckxheWVyVHJlZUFz
VGV4dER1bXAoKQogICAgIHBhZ2UoKS50cmlnZ2VyUmVuZGVyaW5nVXBkYXRlRm9yVGVzdGluZygp
OwogfQogCi1TdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQoTGF5
ZXJUcmVlRmxhZ3MgZmxhZ3MpCitTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRy
ZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMpCiB7CiAg
ICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgIlJlbmRlckxheWVyQ29t
cG9zaXRvciAiIDw8IHRoaXMgPDwgIiBsYXllclRyZWVBc1RleHQiKTsKIApAQCAtMjMzNyw0NCAr
MjMzNywxOCBAQCBTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQo
TGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCiAgICAgaWYgKCFtX3Jvb3RDb250ZW50c0xheWVyKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBMYXllclRyZWVBc1RleHRCZWhhdmlvciBsYXll
clRyZWVCZWhhdmlvciA9IExheWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsOwotICAgIGlmIChm
bGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZURlYnVnSW5mbykKLSAgICAgICAgbGF5ZXJUcmVl
QmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0RGVidWc7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlVmlzaWJsZVJlY3RzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8
PSBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3RzOwotICAgIGlmIChmbGFncyAmIExh
eWVyVHJlZUZsYWdzSW5jbHVkZVRpbGVDYWNoZXMpCi0gICAgICAgIGxheWVyVHJlZUJlaGF2aW9y
IHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzOwotICAgIGlmIChmbGFncyAmIExh
eWVyVHJlZUZsYWdzSW5jbHVkZVJlcGFpbnRSZWN0cykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZp
b3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJlcGFpbnRSZWN0czsKLSAgICBpZiAoZmxhZ3Mg
JiBMYXllclRyZWVGbGFnc0luY2x1ZGVQYWludGluZ1BoYXNlcykKLSAgICAgICAgbGF5ZXJUcmVl
QmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVBhaW50aW5nUGhhc2VzOwotICAgIGlm
IChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRMYXllcnMpCi0gICAgICAgIGxh
eWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250ZW50TGF5ZXJzOwot
ICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZykK
LSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUFjY2Vs
ZXJhdGVzRHJhd2luZzsKLSAgICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVDbGlw
cGluZykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVk
ZUNsaXBwaW5nOwotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZUJhY2tpbmdT
dG9yZUF0dGFjaGVkKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1Rl
eHRJbmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQ7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVl
RmxhZ3NJbmNsdWRlUm9vdExheWVyUHJvcGVydGllcykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZp
b3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXM7Ci0gICAgaWYg
KGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRXZlbnRSZWdpb24pCi0gICAgICAgIGxheWVy
VHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVFdmVudFJlZ2lvbjsKLSAgICBp
ZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVEZWVwQ29sb3IpCi0gICAgICAgIGxheWVy
VHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVEZWVwQ29sb3I7Ci0KICAgICAv
LyBXZSBza2lwIGR1bXBpbmcgdGhlIHNjcm9sbCBhbmQgY2xpcCBsYXllcnMgdG8ga2VlcCBsYXll
clRyZWVBc1RleHQgb3V0cHV0CiAgICAgLy8gc2ltaWxhciBiZXR3ZWVuIHBsYXRmb3Jtcy4KLSAg
ICBTdHJpbmcgbGF5ZXJUcmVlVGV4dCA9IG1fcm9vdENvbnRlbnRzTGF5ZXItPmxheWVyVHJlZUFz
VGV4dChsYXllclRyZWVCZWhhdmlvcik7CisgICAgU3RyaW5nIGxheWVyVHJlZVRleHQgPSBtX3Jv
b3RDb250ZW50c0xheWVyLT5sYXllclRyZWVBc1RleHQob3B0aW9ucyk7CiAKICAgICAvLyBEdW1w
IGFuIGVtcHR5IGxheWVyIHRyZWUgb25seSBpZiB0aGUgb25seSBjb21wb3NpdGVkIGxheWVyIGlz
IHRoZSBtYWluIGZyYW1lJ3MgdGlsZWQgYmFja2luZywKICAgICAvLyBzbyB0aGF0IHRlc3RzIGV4
cGVjdGluZyB1cyB0byBkcm9wIG91dCBvZiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyB3aGVuIHRo
ZXJlIGFyZSBubyBsYXllcnMgc3VjY2VlZC4KLSAgICBpZiAoIWhhc0NvbnRlbnRDb21wb3NpdGlu
Z0xheWVycygpICYmIGRvY3VtZW50VXNlc1RpbGVkQmFja2luZygpICYmICEobGF5ZXJUcmVlQmVo
YXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlVGlsZUNhY2hlcykgJiYgIShsYXllclRyZWVC
ZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVSb290TGF5ZXJQcm9wZXJ0aWVzKSkKKyAg
ICBpZiAoIWhhc0NvbnRlbnRDb21wb3NpdGluZ0xheWVycygpICYmIGRvY3VtZW50VXNlc1RpbGVk
QmFja2luZygpICYmICEob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVU
aWxlQ2FjaGVzKSAmJiAhKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRl
Um9vdExheWVyUHJvcGVydGllcykpCiAgICAgICAgIGxheWVyVHJlZVRleHQgPSBlbXB0eVN0cmlu
ZygpOwogCiAgICAgLy8gVGhlIHRydWUgcm9vdCBsYXllciBpcyBub3QgaW5jbHVkZWQgaW4gdGhl
IGR1bXAsIHNvIGlmIHdlIHdhbnQgdG8gcmVwb3J0CiAgICAgLy8gaXRzIHJlcGFpbnQgcmVjdHMs
IHRoZXkgbXVzdCBiZSBpbmNsdWRlZCBoZXJlLgotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZs
YWdzSW5jbHVkZVJlcGFpbnRSZWN0cykKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4
dE9wdGlvbnM6OkluY2x1ZGVSZXBhaW50UmVjdHMpCiAgICAgICAgIHJldHVybiBtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkudHJhY2tlZFJlcGFpbnRSZWN0c0FzVGV4dCgpICsgbGF5ZXJUcmVlVGV4
dDsKIAogICAgIHJldHVybiBsYXllclRyZWVUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IGQxMmYxYzVjY2MxZWQ1NDZlMmY5
MDAwODU3YjQ4ZGU2YzhjMDZmNjAuLjA3NTIwMDQ1MWQzNjczYmQ3YzRiNmJmOGVlOGFjYTAxNWMw
MzllZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKQEAgLTQ3LDggKzQ3LDYgQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBj
bGFzcyBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBUaWxlZEJhY2tp
bmc7CiAKLXR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlRmxhZ3M7Ci0KIGVudW0gY2xhc3MgQ29t
cG9zaXRpbmdVcGRhdGVUeXBlIHsKICAgICBBZnRlclN0eWxlQ2hhbmdlLAogICAgIEFmdGVyTGF5
b3V0LApAQCAtMzE2LDEwICszMTQsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWRnZXREaWRD
aGFuZ2VTaXplKFJlbmRlcldpZGdldCYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxh
eWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyA9IDApIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBsYXllclRyZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+ID0geyB9KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdHJhY2tlZFJlcGFp
bnRSZWN0c0FzVGV4dCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxheWVy
VHJlZUFzVGV4dChMYXllclRyZWVGbGFncyA9IDApOworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBsYXllclRyZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+ID0geyB9
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGxhdGZvcm1MYXll
clRyZWVBc1RleHQoRWxlbWVudCYsIE9wdGlvblNldDxQbGF0Zm9ybUxheWVyVHJlZUFzVGV4dEZs
YWdzPik7CiAKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDBlYWUwODg5YTNkMjM0NDFjYWFi
MmVjYjJkNWQ5ZjkxMGY0OGRlMGEuLjYwNTJiMDAwYzIxODhiOTBhNzY5YjExNjRjYzllYjI5ZjMy
MTc0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI4MTgsMzEgKzI4
MTgsMzEgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjppc1BhZ2VCb3hWaXNpYmxlKGlu
dCBwYWdlTnVtYmVyKQogICAgIHJldHVybiBkb2N1bWVudC0+aXNQYWdlQm94VmlzaWJsZShwYWdl
TnVtYmVyKTsKIH0KIAotc3RhdGljIExheWVyVHJlZUZsYWdzIHRvTGF5ZXJUcmVlRmxhZ3ModW5z
aWduZWQgc2hvcnQgZmxhZ3MpCitzdGF0aWMgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+IHRvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyh1bnNpZ25lZCBzaG9ydCBmbGFncykKIHsKLSAg
ICBMYXllclRyZWVGbGFncyBsYXllclRyZWVGbGFncyA9IDA7CisgICAgT3B0aW9uU2V0PExheWVy
VHJlZUFzVGV4dE9wdGlvbnM+IGxheWVyVHJlZUZsYWdzOwogICAgIGlmIChmbGFncyAmIEludGVy
bmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19WSVNJQkxFX1JFQ1RTKQotICAgICAgICBsYXllclRy
ZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHM7CisgICAgICAgIGxh
eWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVmlzaWJsZVJl
Y3RzKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfVElM
RV9DQUNIRVMpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVk
ZVRpbGVDYWNoZXM7CisgICAgICAgIGxheWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVBc1RleHRP
cHRpb25zOjpJbmNsdWRlVGlsZUNhY2hlcyk7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpM
QVlFUl9UUkVFX0lOQ0xVREVTX1JFUEFJTlRfUkVDVFMpCi0gICAgICAgIGxheWVyVHJlZUZsYWdz
IHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZVJlcGFpbnRSZWN0czsKKyAgICAgICAgbGF5ZXJUcmVl
RmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSZXBhaW50UmVjdHMpOwog
ICAgIGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19QQUlOVElOR19Q
SEFTRVMpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZVBh
aW50aW5nUGhhc2VzOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0
T3B0aW9uczo6SW5jbHVkZVBhaW50aW5nUGhhc2VzKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5h
bHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfQ09OVEVOVF9MQVlFUlMpCi0gICAgICAgIGxheWVyVHJl
ZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRMYXllcnM7CisgICAgICAgIGxh
eWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQ29udGVudExh
eWVycyk7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX0FD
Q0VMRVJBVEVTX0RSQVdJTkcpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZs
YWdzSW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZzsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRk
KExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVBY2NlbGVyYXRlc0RyYXdpbmcpOwogICAg
IGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19DTElQUElORykKLSAg
ICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ2xpcHBpbmc7Cisg
ICAgICAgIGxheWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRl
Q2xpcHBpbmcpOwogICAgIGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURF
U19CQUNLSU5HX1NUT1JFX0FUVEFDSEVEKQotICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXll
clRyZWVGbGFnc0luY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hlZDsKKyAgICAgICAgbGF5ZXJUcmVl
RmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVCYWNraW5nU3RvcmVBdHRh
Y2hlZCk7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX1JP
T1RfTEFZRVJfUFJPUEVSVElFUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVl
RmxhZ3NJbmNsdWRlUm9vdExheWVyUHJvcGVydGllczsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3Mu
YWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSb290TGF5ZXJQcm9wZXJ0aWVzKTsK
ICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVH
SU9OKQotICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVFdmVu
dFJlZ2lvbjsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVFdmVudFJlZ2lvbik7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlF
Ul9UUkVFX0lOQ0xVREVTX0RFRVBfQ09MT1IpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExh
eWVyVHJlZUZsYWdzSW5jbHVkZURlZXBDb2xvcjsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRk
KExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVEZWVwQ29sb3IpOwogCiAgICAgcmV0dXJu
IGxheWVyVHJlZUZsYWdzOwogfQpAQCAtMjg1NSw3ICsyODU1LDcgQEAgRXhjZXB0aW9uT3I8U3Ry
aW5nPiBJbnRlcm5hbHM6OmxheWVyVHJlZUFzVGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIHVuc2ln
bmVkIHNob3IKIHsKICAgICBpZiAoIWRvY3VtZW50LmZyYW1lKCkgfHwgIWRvY3VtZW50LmZyYW1l
KCktPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yIH07Ci0gICAgcmV0dXJuIGRvY3VtZW50LmZyYW1lKCktPmNvbnRlbnRSZW5k
ZXJlcigpLT5jb21wb3NpdG9yKCkubGF5ZXJUcmVlQXNUZXh0KHRvTGF5ZXJUcmVlRmxhZ3MoZmxh
Z3MpKTsKKyAgICByZXR1cm4gZG9jdW1lbnQuZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCktPmNv
bXBvc2l0b3IoKS5sYXllclRyZWVBc1RleHQodG9MYXllclRyZWVBc1RleHRPcHRpb25zKGZsYWdz
KSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiBJbnRlcm5hbHM6OmxheWVySURGb3JFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCkBAIC00NjIwLDcgKzQ2MjAsNyBAQCBFeGNlcHRpb25PcjxT
dHJpbmc+IEludGVybmFsczo6cGFnZU92ZXJsYXlMYXllclRyZWVBc1RleHQodW5zaWduZWQgc2hv
cnQgZmxhZ3MpCiAKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAKLSAgICByZXR1cm4gTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpzaW5nbGV0b24o
KS5sYXllclRyZWVBc1RleHQoKmRvY3VtZW50LT5wYWdlKCksIHRvTGF5ZXJUcmVlRmxhZ3MoZmxh
Z3MpKTsKKyAgICByZXR1cm4gTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpzaW5nbGV0b24oKS5sYXll
clRyZWVBc1RleHQoKmRvY3VtZW50LT5wYWdlKCksIHRvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyhm
bGFncykpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0UGFnZU11dGVkKFN0cmluZ1ZpZXcgc3Rh
dGVzU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92
ZXJsYXlDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlD
bGllbnQuY3BwCmluZGV4IGIyM2ZjODFlN2YyYjM4ZjEzZTc2M2QwNDIwNTgzZWYyMmM5ZjI2ZTku
LmQ5NzVmM2I0Mjg0ZjNiNjZhOGQ3NzkyZjA4YjYzZDdkM2QxNTQzZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTY3LDEzICs2
NywxMyBAQCB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6dW5pbnN0YWxsQWxsT3ZlcmxheXMo
KQogICAgIH0KIH0KIAotU3RyaW5nIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6bGF5ZXJUcmVlQXNU
ZXh0KFBhZ2UmIHBhZ2UsIExheWVyVHJlZUZsYWdzIGZsYWdzKQorU3RyaW5nIE1vY2tQYWdlT3Zl
cmxheUNsaWVudDo6bGF5ZXJUcmVlQXNUZXh0KFBhZ2UmIHBhZ2UsIE9wdGlvblNldDxMYXllclRy
ZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKQogewogICAgIEdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVy
bGF5Um9vdCA9IHBhZ2UucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudmlld092ZXJsYXlSb290TGF5
ZXIoKTsKICAgICBHcmFwaGljc0xheWVyKiBkb2N1bWVudE92ZXJsYXlSb290ID0gcGFnZS5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS5kb2N1bWVudE92ZXJsYXlSb290TGF5ZXIoKTsKICAgICAKLSAg
ICByZXR1cm4gIlZpZXctcmVsYXRpdmU6XG4iICsgKHZpZXdPdmVybGF5Um9vdCA/IHZpZXdPdmVy
bGF5Um9vdC0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzIHwgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVBh
Z2VPdmVybGF5TGF5ZXJzKSA6ICIobm8gdmlldy1yZWxhdGl2ZSBvdmVybGF5IHJvb3QpIikKLSAg
ICAgICAgKyAiXG5cbkRvY3VtZW50LXJlbGF0aXZlOlxuIiArIChkb2N1bWVudE92ZXJsYXlSb290
ID8gZG9jdW1lbnRPdmVybGF5Um9vdC0+bGF5ZXJUcmVlQXNUZXh0KGZsYWdzIHwgTGF5ZXJUcmVl
QXNUZXh0SW5jbHVkZVBhZ2VPdmVybGF5TGF5ZXJzKSA6ICIobm8gZG9jdW1lbnQtcmVsYXRpdmUg
b3ZlcmxheSByb290KSIpOworICAgIHJldHVybiAiVmlldy1yZWxhdGl2ZTpcbiIgKyAodmlld092
ZXJsYXlSb290ID8gdmlld092ZXJsYXlSb290LT5sYXllclRyZWVBc1RleHQob3B0aW9ucyB8IExh
eWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVQYWdlT3ZlcmxheUxheWVycykgOiAiKG5vIHZp
ZXctcmVsYXRpdmUgb3ZlcmxheSByb290KSIpCisgICAgICAgICsgIlxuXG5Eb2N1bWVudC1yZWxh
dGl2ZTpcbiIgKyAoZG9jdW1lbnRPdmVybGF5Um9vdCA/IGRvY3VtZW50T3ZlcmxheVJvb3QtPmxh
eWVyVHJlZUFzVGV4dChvcHRpb25zIHwgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVBh
Z2VPdmVybGF5TGF5ZXJzKSA6ICIobm8gZG9jdW1lbnQtcmVsYXRpdmUgb3ZlcmxheSByb290KSIp
OwogfQogCiB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6d2lsbE1vdmVUb1BhZ2UoUGFnZU92
ZXJsYXkmLCBQYWdlKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3Zlcmxh
eUNsaWVudC5oCmluZGV4IDQ2Njg3Y2ViM2Q4MDU2NWEyOGViYTU4N2JiMGI3YWEyZTc1MWRkYjYu
LjFkNzdhYjY1ZTYwM2FjNjhhMDdmMTk2NWYyNzExYjVjNzVjZWFmNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuaApAQCAtMjUsMTQgKzI1LDE1
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNb2Nr
UGFnZU92ZXJsYXkuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRnJhbWU7CiBjbGFzcyBQ
YWdlOworZW51bSBjbGFzcyBMYXllclRyZWVBc1RleHRPcHRpb25zIDogdWludDE2X3Q7CiAKIGNs
YXNzIE1vY2tQYWdlT3ZlcmxheUNsaWVudCBmaW5hbCA6IHB1YmxpYyBQYWdlT3ZlcmxheTo6Q2xp
ZW50IHsKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8TW9ja1BhZ2VPdmVybGF5Q2xp
ZW50PjsKQEAgLTQ0LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIFJlZjxNb2NrUGFnZU92ZXJsYXk+
IGluc3RhbGxPdmVybGF5KFBhZ2UmLCBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGUpOwogICAgIHZv
aWQgdW5pbnN0YWxsQWxsT3ZlcmxheXMoKTsKIAotICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQo
UGFnZSYsIExheWVyVHJlZUZsYWdzKTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KFBhZ2Um
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pOwogCiAgICAgdmlydHVhbCB+TW9j
a1BhZ2VPdmVybGF5Q2xpZW50KCkgPSBkZWZhdWx0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435746</attachid>
            <date>2021-08-17 21:53:17 -0700</date>
            <delta_ts>2021-08-17 22:00:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229226-20210817215316.patch</filename>
            <type>text/plain</type>
            <size>47691</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJhNDg2ZjI1MWM1Nzhm
Mjk0YWRhOWY0YjY5NGMwZjU0OGM0NjZlZC4uMWYzZjY2YTg4ZDY0NzdmZDFhODA4NzhkZDEzNDVk
YmNlMWE3MTQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA4LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBkdXBs
aWNhdGUgTGF5ZXJUcmVlQXNUZXh0IGVudW1zIGFuZCB1c2UgYW4gT3B0aW9uU2V0PD4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJD
bGllbnQgaGFkIGVudW0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JGbGFncyBhbmQgRnJhbWUgaGFk
IGFuIGFub255bW91cworICAgICAgICBlbnVtIGFuZCB0eXBlZGVmIHVuc2lnbmVkIExheWVyVHJl
ZUZsYWdzLiBDbGVhbiB1cCBieSBhZGRpbmcgTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCisgICAg
ICAgIGFuZCB1c2luZyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gZXZlcnl3aGVy
ZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBw
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6OnNob3VsZFNraXBMYXllckluRHVtcCBjb25zdCk6CisgICAgICAgICog
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmR1
bXBMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpkdW1wQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0IGNvbnN0KToKKyAgICAg
ICAgKHNob3dHcmFwaGljc0xheWVyVHJlZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6OnNob3VsZFNraXBM
YXllckluRHVtcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50
OjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpzaG91bGRTa2lwTGF5ZXJJbkR1bXAgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllciBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0xheWVyVHJlZUFzVGV4dE9wdGlvbnMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpsYXllclRyZWVBc1RleHQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYWdlT3ZlcmxheUxheWVyVHJlZUFzVGV4dCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjp0b0xheWVyVHJlZUZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAg
KiB0ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrUGFnZU92ZXJsYXlDbGllbnQ6OmxheWVyVHJlZUFzVGV4dCk6CisgICAgICAgICogdGVzdGlu
Zy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuaDoKKwogMjAyMS0wOC0xNyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEZS1kdXBsaWNhdGUgdGhlIENvY29hLXNwZWNp
ZmljIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggNjJiNmVlMTZkNGMxMDZlZTc4ZTA1MTA2NDZiZDY5ZGViMmMyY2ZjZi4uN2Q0ZmQ4Yjcy
NzEyM2JiMGQyMjA3N2RhYjUyMjIyNTkzMjdjM2JlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
MjgwLDYgKzEyODAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEhhc2guaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ludFNpemUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFNpemVIYXNoLmgKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9MYXllclRyZWVBc1RleHRPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9MYXlvdXRQb2ludC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODRjN2RlZjc2YjdhMmQ3NTQ4
MmIyYmI5ZjA4ZmYwMWJlMjUyNTRiOS4uY2Y3MWQ5NzgwYzI3MDYwYjhiZDg0MGU1YWY3NzRhZTZk
ZThlOWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzE2LDYgKzMxNiw3IEBACiAJCTBGNDk2NkFCMURCNDBDNDMwMEEyNzRC
QiAvKiBKU0RPTVBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ5NjZBNTFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludC5oICovOyB9Owog
CQkwRjQ5NjZBRDFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludEluaXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDk2NkE3MURCNDBDNDMwMEEy
NzRCQiAvKiBKU0RPTVBvaW50SW5pdC5oICovOyB9OwogCQkwRjQ5NjZBRjFEQjQwQzQzMDBBMjc0
QkIgLyogSlNET01Qb2ludFJlYWRPbmx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ5NjZBOTFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludFJl
YWRPbmx5LmggKi87IH07CisJCTBGNEQ1RDE4MjZDQ0M0QUUwMEE5REZDMSAvKiBMYXllclRyZWVB
c1RleHRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjczNkVDQTI2Q0NCOTdBMDAwQUQ3Q0EgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTNG
Qjg0MjEzQjdBNjQwMEM0MEQzNCAvKiBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUzRkI4NDIxM0I3ODY0
MDBDNDBEMzQgLyogUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTREQ0U2MTg4MTA1MUQwMDNFRURC
QiAvKiBUZXh0QXV0b1NpemluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1NERDRTQxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmgg
Ki87IH07CiAJCTBGNTRERDA4MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NEREMDUxODgxRDVGNTAwM0VF
REJCIC8qIFRvdWNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTYyMjUsNiArNjIyNiw3IEBACiAJCTBGNkI3MDc3MjM3QkMxMkYwMDUyQ0E0NyAv
KiBDU1NVbml0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NVbml0cy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjZCNzA3OTIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTVW5pdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjcwNDk1RDIxMUI1MjQyMDAzNjk5NjggLyogQWN0aXZpdHlTdGF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBY3Rpdml0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3MzZFQ0EyNkNDQjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9wdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjczQjc2NTIyMkIzMjdGMDA4MDUzMTYgLyogU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjc5
MEYzRDI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheVZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjc5MEYzRjI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVZpZXcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NjM2LDYgKzI2NjM4LDcgQEAKIAkJCQlCMjc1MzU0NzBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50U2l6ZS5oICovLAogCQkJCUIyNzUzNTQ4MEIwNTM4MTQwMDJDRTY0
RiAvKiBJbnRTaXplSGFzaC5oICovLAogCQkJCTY1Q0M2QkVEMTYwMTRFQzAwMDBFRDI3RCAvKiBM
YXRpbjFUZXh0SXRlcmF0b3IuaCAqLywKKwkJCQkwRjczNkVDQTI2Q0NCOTdBMDAwQUQ3Q0EgLyog
TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oICovLAogCQkJCTBGMzZFNzM2MUJEMTgzN0EwMDJEQjg5
MSAvKiBMYXlvdXRQb2ludC5jcHAgKi8sCiAJCQkJMTQxREMwNEIxNjQ4MzRCOTAwMzcxRTVBIC8q
IExheW91dFBvaW50LmggKi8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91
dFJlY3QuY3BwICovLApAQCAtMzMzODYsNiArMzMzODksNyBAQAogCQkJCTBGRUMxMjBDMjJCRjJD
RDIwMDRFOUQzNSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTgwMzcxNjQxQTY2RjFEMzAwQkFGNTE5IC8qIExheWVyRnJhZ21lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBQTNBNkEwMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNEQ1RDE4MjZDQ0M0QUUwMEE5REZDMSAvKiBMYXllclRyZWVBc1Rl
eHRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTVDRkE5NzIwOEI5NTJCMDAxRTY5OTEg
LyogTGF5b3V0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNjIwQkE0QTU2MDA2NUE4
RDAgLyogTGF5b3V0Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTE5OUZBNDYy
MDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lckJveC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmgKaW5kZXggMzdjMWNiNmI1ZDc3OWQ1YTNjMmFiZGQ3YTYyNWU5OTAxMWQ5OTcx
Yy4uZDc2Mjg0NTNkYTUxNTA2NGE0ZmIxNjFkZjM0MThjZDFjMzUxYmFhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuaApAQCAtMTEzLDIyICsxMTMsNiBAQCBlbnVtIE92ZXJmbG93U2Nyb2xsQWN0aW9uIHsgRG9O
b3RQZXJmb3JtT3ZlcmZsb3dTY3JvbGwsIFBlcmZvcm1PdmVyZmxvd1Njcm9sbCB9OwogdXNpbmcg
Tm9kZVF1YWxpZmllciA9IEZ1bmN0aW9uPE5vZGUqIChjb25zdCBIaXRUZXN0UmVzdWx0JiwgTm9k
ZSogdGVybWluYXRpb25Ob2RlLCBJbnRSZWN0KiBub2RlQm91bmRzKT47CiAjZW5kaWYKIAotZW51
bSB7Ci0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvICAgICAgICAgICAgICA9IDEg
PDwgMCwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHMgICAgICAgICAgID0g
MSA8PCAxLAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVRpbGVDYWNoZXMgICAgICAgICAgICAg
PSAxIDw8IDIsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzICAgICAgICAg
ICA9IDEgPDwgMywKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVQYWludGluZ1BoYXNlcyAgICAg
ICAgID0gMSA8PCA0LAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRMYXllcnMgICAg
ICAgICAgPSAxIDw8IDUsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3
aW5nICAgICA9IDEgPDwgNiwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVDbGlwcGluZyAgICAg
ICAgICAgICAgID0gMSA8PCA3LAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUJhY2tpbmdTdG9y
ZUF0dGFjaGVkICAgPSAxIDw8IDgsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUm9vdExheWVy
UHJvcGVydGllcyAgICA9IDEgPDwgOSwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVFdmVudFJl
Z2lvbiAgICAgICAgICAgID0gMSA8PCAxMCwKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVEZWVw
Q29sb3IgICAgICAgICAgICAgID0gMSA8PCAxMSwKLX07Ci10eXBlZGVmIHVuc2lnbmVkIExheWVy
VHJlZUZsYWdzOwotCiAvLyBGSVhNRTogUmVuYW1lIEZyYW1lIHRvIExvY2FsRnJhbWUgYW5kIEFi
c3RyYWN0RnJhbWUgdG8gRnJhbWUuCiBjbGFzcyBGcmFtZSBmaW5hbCA6IHB1YmxpYyBBYnN0cmFj
dEZyYW1lIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92
ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250
cm9sbGVyLmNwcAppbmRleCA5MjhkZDRiZDk2ODFlYmQwZmU5YjkyNjYyYzU5N2Q4ZDczN2FmZTIx
Li45Y2JlYjJlM2MyYjEwNGVmMzU0OGRmMTM3MGYzNGIyZDZkZDg5YTU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00MjksOSArNDI5LDkg
QEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRpZENoYW5nZU92ZXJsYXlCYWNrZ3JvdW5k
Q29sb3IoUGFnZU92ZXJsYXkmIG92ZXJsYXkKICAgICAgICAgbGF5ZXItPnNldEJhY2tncm91bmRD
b2xvcihvdmVybGF5LmJhY2tncm91bmRDb2xvcigpKTsKIH0KIAotYm9vbCBQYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OnNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Citib29sIFBhZ2VPdmVybGF5Q29u
dHJvbGxlcjo6c2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBPcHRp
b25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICByZXR1
cm4gIShiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWdlT3ZlcmxheUxheWVycyk7
CisgICAgcmV0dXJuICFvcHRpb25zLmNvbnRhaW5zKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6Oklu
Y2x1ZGVQYWdlT3ZlcmxheUxheWVycyk7CiB9CiAKIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
Ojp0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwgYm9vbCB1c2luZ1RpbGVkQmFja2luZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VP
dmVybGF5Q29udHJvbGxlci5oCmluZGV4IDYwNjI4NTNlODQ4YzUyM2IzMDA0MzNhMjE0M2ZjNzAx
MmY3ZmU0ZmQuLjA3NzkyOTgzZDM0Y2FiMDE2OGVkMmRmNzljMmQ1MzAyMjdhYWVlNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtOTUsNyArOTUs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFw
aGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChj
b25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29s
KSBvdmVycmlkZTsKIAogICAgIFBhZ2UmIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZDMyOWQ3NjhmYTA4MTY2
N2U4NGU3NmJiYWEwN2Q3YWUwOTlmODVkYS4uNTZhMzc5ZjgzYzAzYzkwMjI5NmQ2ZjU1NjFiM2Ux
YzZmOThiNmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKQEAgLTgyNiwzNiArODI2LDM2IEBAIHZvaWQgR3JhcGhpY3NMYXll
cjo6dHJhdmVyc2UoR3JhcGhpY3NMYXllciYgbGF5ZXIsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZCAoR3JhCiAgICAgICAgIHRyYXZlcnNlKCptYXNrTGF5ZXIsIHRyYXZlcnNhbEZ1bmMpOwogfQog
Ci12b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBMYXllcihUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBM
YXllcihUZXh0U3RyZWFtJiB0cywgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgdHMgPDwgaW5kZW50IDw8ICIoIiA8PCAiR3JhcGhpY3NMYXll
ciI7CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykgeworICAgIGlm
IChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpIHsKICAgICAgICAgdHMg
PDwgIiAiIDw8IHN0YXRpY19jYXN0PHZvaWQqPihjb25zdF9jYXN0PEdyYXBoaWNzTGF5ZXIqPih0
aGlzKSk7CiAgICAgICAgIHRzIDw8ICIgXCIiIDw8IG1fbmFtZSA8PCAiXCIiOwogICAgIH0KIAog
ICAgIHRzIDw8ICJcbiI7Ci0gICAgZHVtcFByb3BlcnRpZXModHMsIGJlaGF2aW9yKTsKKyAgICBk
dW1wUHJvcGVydGllcyh0cywgb3B0aW9ucyk7CiAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwog
fQogCi1zdGF0aWMgdm9pZCBkdW1wQ2hpbGRyZW4oVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZlY3Rv
cjxSZWY8R3JhcGhpY3NMYXllcj4+JiBjaGlsZHJlbiwgdW5zaWduZWQmIHRvdGFsQ2hpbGRDb3Vu
dCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpCitzdGF0aWMgdm9pZCBkdW1wQ2hp
bGRyZW4oVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZlY3RvcjxSZWY8R3JhcGhpY3NMYXllcj4+JiBj
aGlsZHJlbiwgdW5zaWduZWQmIHRvdGFsQ2hpbGRDb3VudCwgT3B0aW9uU2V0PExheWVyVHJlZUFz
VGV4dE9wdGlvbnM+IG9wdGlvbnMpCiB7CiAgICAgdG90YWxDaGlsZENvdW50ICs9IGNoaWxkcmVu
LnNpemUoKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4pIHsKLSAgICAgICAgaWYg
KChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSB8fCAhY2hpbGQtPmNsaWVudCgpLnNo
b3VsZFNraXBMYXllckluRHVtcChjaGlsZC5wdHIoKSwgYmVoYXZpb3IpKSB7CisgICAgICAgIGlm
ICgob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKSB8fCAhY2hpbGQtPmNs
aWVudCgpLnNob3VsZFNraXBMYXllckluRHVtcChjaGlsZC5wdHIoKSwgb3B0aW9ucykpIHsKICAg
ICAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKLSAgICAg
ICAgICAgIGNoaWxkLT5kdW1wTGF5ZXIodHMsIGJlaGF2aW9yKTsKKyAgICAgICAgICAgIGNoaWxk
LT5kdW1wTGF5ZXIodHMsIG9wdGlvbnMpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAogICAgICAgICB0b3RhbENoaWxkQ291bnQtLTsKLSAgICAgICAgZHVtcENoaWxkcmVuKHRz
LCBjaGlsZC0+Y2hpbGRyZW4oKSwgdG90YWxDaGlsZENvdW50LCBiZWhhdmlvcik7CisgICAgICAg
IGR1bXBDaGlsZHJlbih0cywgY2hpbGQtPmNoaWxkcmVuKCksIHRvdGFsQ2hpbGRDb3VudCwgb3B0
aW9ucyk7CiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVzKFRl
eHRTdHJlYW0mIHRzLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK3Zv
aWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIE9wdGlvblNl
dDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIFRleHRTdHJl
YW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRzKTsKICAgICBpZiAoIW1fb2Zmc2V0RnJvbVJl
bmRlcmVyLmlzWmVybygpKQpAQCAtOTAxLDEzICs5MDEsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVy
OjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3Ig
YmVoYXYKICAgICBpZiAobV9zdXBwb3J0c1N1YnBpeGVsQW50aWFsaWFzZWRUZXh0KQogICAgICAg
ICB0cyA8PCBpbmRlbnQgPDwgIihzdXBwb3J0cyBzdWJwaXhlbCBhbnRpYWxpYXNlZCB0ZXh0ICIg
PDwgbV9zdXBwb3J0c1N1YnBpeGVsQW50aWFsaWFzZWRUZXh0IDw8ICIpXG4iOwogCi0gICAgaWYg
KG1fbWFza3NUb0JvdW5kcyAmJiBiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDbGlw
cGluZykKKyAgICBpZiAobV9tYXNrc1RvQm91bmRzICYmIG9wdGlvbnMgJiBMYXllclRyZWVBc1Rl
eHRPcHRpb25zOjpJbmNsdWRlQ2xpcHBpbmcpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGNs
aXBzICIgPDwgbV9tYXNrc1RvQm91bmRzIDw8ICIpXG4iOwogCiAgICAgaWYgKG1fcHJlc2VydmVz
M0QpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHByZXNlcnZlczNEICIgPDwgbV9wcmVzZXJ2
ZXMzRCA8PCAiKVxuIjsKIAotICAgIGlmIChtX2RyYXdzQ29udGVudCAmJiBjbGllbnQoKS5zaG91
bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAiZHJhd3NDb250ZW50IiwgYmVoYXZpb3IpKQor
ICAgIGlmIChtX2RyYXdzQ29udGVudCAmJiBjbGllbnQoKS5zaG91bGREdW1wUHJvcGVydHlGb3JM
YXllcih0aGlzLCAiZHJhd3NDb250ZW50Iiwgb3B0aW9ucykpCiAgICAgICAgIHRzIDw8IGluZGVu
dCA8PCAiKGRyYXdzQ29udGVudCAiIDw8IG1fZHJhd3NDb250ZW50IDw8ICIpXG4iOwogCiAgICAg
aWYgKCFtX2NvbnRlbnRzVmlzaWJsZSkKQEAgLTkxNiwxNiArOTE2LDE2IEBAIHZvaWQgR3JhcGhp
Y3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJl
aGF2aW9yIGJlaGF2CiAgICAgaWYgKCFtX2JhY2tmYWNlVmlzaWJpbGl0eSkKICAgICAgICAgdHMg
PDwgaW5kZW50IDw8ICIoYmFja2ZhY2VWaXNpYmlsaXR5ICIgPDwgKG1fYmFja2ZhY2VWaXNpYmls
aXR5ID8gInZpc2libGUiIDogImhpZGRlbiIpIDw8ICIpXG4iOwogCi0gICAgaWYgKGJlaGF2aW9y
ICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpCisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1Rl
eHRPcHRpb25zOjpEZWJ1ZykKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocHJpbWFyeS1sYXll
ci1pZCAiIDw8IHByaW1hcnlMYXllcklEKCkgPDwgIilcbiI7CiAKLSAgICBpZiAobV9iYWNrZ3Jv
dW5kQ29sb3IuaXNWYWxpZCgpICYmIGNsaWVudCgpLnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVy
KHRoaXMsICJiYWNrZ3JvdW5kQ29sb3IiLCBiZWhhdmlvcikpCisgICAgaWYgKG1fYmFja2dyb3Vu
ZENvbG9yLmlzVmFsaWQoKSAmJiBjbGllbnQoKS5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0
aGlzLCAiYmFja2dyb3VuZENvbG9yIiwgb3B0aW9ucykpCiAgICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKGJhY2tncm91bmRDb2xvciAiIDw8IHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0
KG1fYmFja2dyb3VuZENvbG9yKSA8PCAiKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVBY2NlbGVyYXRlc0RyYXdpbmcgJiYgbV9hY2NlbGVyYXRlc0RyYXdp
bmcpCisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQWNj
ZWxlcmF0ZXNEcmF3aW5nICYmIG1fYWNjZWxlcmF0ZXNEcmF3aW5nKQogICAgICAgICB0cyA8PCBp
bmRlbnQgPDwgIihhY2NlbGVyYXRlc0RyYXdpbmcgIiA8PCBtX2FjY2VsZXJhdGVzRHJhd2luZyA8
PCAiKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVCYWNr
aW5nU3RvcmVBdHRhY2hlZCkKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hlZCkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8
ICIoYmFja2luZ1N0b3JlQXR0YWNoZWQgIiA8PCBiYWNraW5nU3RvcmVBdHRhY2hlZEZvclRlc3Rp
bmcoKSA8PCAiKVxuIjsKIAogICAgIGlmIChtX3RyYW5zZm9ybSAmJiAhbV90cmFuc2Zvcm0tPmlz
SWRlbnRpdHkoKSkgewpAQCAtOTQ4LDMyICs5NDgsMzIgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpk
dW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXYKIAogICAgIGlmIChtX21hc2tMYXllcikgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIiht
YXNrIGxheWVyIjsKLSAgICAgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcp
CisgICAgICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAg
ICAgICAgICAgICB0cyA8PCAiICIgPDwgbV9tYXNrTGF5ZXIuZ2V0KCk7CiAgICAgICAgIHRzIDw8
ICIpXG4iOwogCiAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3BlKHRz
KTsKLSAgICAgICAgbV9tYXNrTGF5ZXItPmR1bXBMYXllcih0cywgYmVoYXZpb3IpOworICAgICAg
ICBtX21hc2tMYXllci0+ZHVtcExheWVyKHRzLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBpZiAo
bV9yZXBsaWNhTGF5ZXIpIHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocmVwbGljYSBsYXll
ciI7Ci0gICAgICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgICAg
ICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICAg
ICAgdHMgPDwgIiAiIDw8IG1fcmVwbGljYUxheWVyLmdldCgpOwogICAgICAgICB0cyA8PCAiKVxu
IjsKIAogICAgICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0g
ICAgICAgIG1fcmVwbGljYUxheWVyLT5kdW1wTGF5ZXIodHMsIGJlaGF2aW9yKTsKKyAgICAgICAg
bV9yZXBsaWNhTGF5ZXItPmR1bXBMYXllcih0cywgb3B0aW9ucyk7CiAgICAgfQogCiAgICAgaWYg
KG1fcmVwbGljYXRlZExheWVyKSB7CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHJlcGxpY2F0
ZWQgbGF5ZXIiOwotICAgICAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykK
KyAgICAgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykKICAg
ICAgICAgICAgIHRzIDw8ICIgIiA8PCBtX3JlcGxpY2F0ZWRMYXllcjsKICAgICAgICAgdHMgPDwg
IilcbiI7CiAgICAgfQogCi0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVk
ZVJlcGFpbnRSZWN0cyAmJiByZXBhaW50UmVjdE1hcCgpLmNvbnRhaW5zKHRoaXMpICYmICFyZXBh
aW50UmVjdE1hcCgpLmdldCh0aGlzKS5pc0VtcHR5KCkgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFBy
b3BlcnR5Rm9yTGF5ZXIodGhpcywgInJlcGFpbnRSZWN0cyIsIGJlaGF2aW9yKSkgeworICAgIGlm
IChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJlcGFpbnRSZWN0cyAm
JiByZXBhaW50UmVjdE1hcCgpLmNvbnRhaW5zKHRoaXMpICYmICFyZXBhaW50UmVjdE1hcCgpLmdl
dCh0aGlzKS5pc0VtcHR5KCkgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIo
dGhpcywgInJlcGFpbnRSZWN0cyIsIG9wdGlvbnMpKSB7CiAgICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKHJlcGFpbnQgcmVjdHNcbiI7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVw
YWludFJlY3RNYXAoKS5nZXQodGhpcykuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGlmIChy
ZXBhaW50UmVjdE1hcCgpLmdldCh0aGlzKVtpXS5pc0VtcHR5KCkpCkBAIC05OTAsMjcgKzk5MCwy
NyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBM
YXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilc
biI7CiAgICAgfQogCi0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2
ZW50UmVnaW9uICYmICFtX2V2ZW50UmVnaW9uLmlzRW1wdHkoKSkgeworICAgIGlmIChvcHRpb25z
ICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUV2ZW50UmVnaW9uICYmICFtX2V2ZW50
UmVnaW9uLmlzRW1wdHkoKSkgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihldmVudCByZWdp
b24iIDw8IG1fZXZlbnRSZWdpb247CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKICAg
ICB9CiAgICAgCiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCi0gICAgaWYgKChiZWhhdmlv
ciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSAmJiBtX3Njcm9sbGluZ05vZGVJRCkKKyAgICBpZiAo
KG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykgJiYgbV9zY3JvbGxpbmdO
b2RlSUQpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHNjcm9sbGluZyBub2RlICIgPDwgbV9z
Y3JvbGxpbmdOb2RlSUQgPDwgIilcbiI7CiAjZW5kaWYKIAotICAgIGlmIChiZWhhdmlvciAmIExh
eWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlcyAmJiBwYWludGluZ1BoYXNlKCkpCisg
ICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFpbnRpbmdQ
aGFzZXMgJiYgcGFpbnRpbmdQaGFzZSgpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihwYWlu
dGluZ1BoYXNlcyAiIDw8IHBhaW50aW5nUGhhc2UoKSA8PCAiKVxuIjsKIAotICAgIGR1bXBBZGRp
dGlvbmFsUHJvcGVydGllcyh0cywgYmVoYXZpb3IpOworICAgIGR1bXBBZGRpdGlvbmFsUHJvcGVy
dGllcyh0cywgb3B0aW9ucyk7CiAgICAgCiAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpKSB7CiAg
ICAgICAgIFRleHRTdHJlYW0gY2hpbGRyZW5TdHJlYW07CiAgICAgICAgIAogICAgICAgICBjaGls
ZHJlblN0cmVhbS5pbmNyZWFzZUluZGVudCh0cy5pbmRlbnQoKSk7CiAgICAgICAgIHVuc2lnbmVk
IHRvdGFsQ2hpbGRDb3VudCA9IDA7Ci0gICAgICAgIGR1bXBDaGlsZHJlbihjaGlsZHJlblN0cmVh
bSwgbV9jaGlsZHJlbiwgdG90YWxDaGlsZENvdW50LCBiZWhhdmlvcik7CisgICAgICAgIGR1bXBD
aGlsZHJlbihjaGlsZHJlblN0cmVhbSwgbV9jaGlsZHJlbiwgdG90YWxDaGlsZENvdW50LCBvcHRp
b25zKTsKIAogICAgICAgICBpZiAodG90YWxDaGlsZENvdW50KSB7CiAgICAgICAgICAgICB0cyA8
PCBpbmRlbnQgPDwgIihjaGlsZHJlbiAiIDw8IHRvdGFsQ2hpbGRDb3VudCA8PCAiXG4iOwpAQCAt
MTA1OCwxMSArMTA1OCwxMSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlJiBjdQogICAgIHJldHVybiB0
czsKIH0KIAotU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVB
c1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK1N0cmluZyBHcmFwaGljc0xheWVyOjpsYXll
clRyZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CiB7CiAgICAgVGV4dFN0cmVhbSB0cyhUZXh0U3RyZWFtOjpMaW5lTW9kZTo6TXVsdGlwbGVM
aW5lLCBUZXh0U3RyZWFtOjpGb3JtYXR0aW5nOjpTVkdTdHlsZVJlY3QpOwogCi0gICAgZHVtcExh
eWVyKHRzLCBiZWhhdmlvcik7CisgICAgZHVtcExheWVyKHRzLCBvcHRpb25zKTsKICAgICByZXR1
cm4gdHMucmVsZWFzZSgpOwogfQogCkBAIC0xMDc0LDcgKzEwNzQsNyBAQCB2b2lkIHNob3dHcmFw
aGljc0xheWVyVHJlZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikKICAgICBp
ZiAoIWxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmcgb3V0cHV0ID0gbGF5ZXIt
PmxheWVyVHJlZUFzVGV4dChXZWJDb3JlOjpMYXllclRyZWVBc1RleHRTaG93QWxsKTsKKyAgICBT
dHJpbmcgb3V0cHV0ID0gbGF5ZXItPmxheWVyVHJlZUFzVGV4dChXZWJDb3JlOjpBbGxMYXllclRy
ZWVBc1RleHRPcHRpb25zKTsKICAgICBXVEZMb2dBbHdheXMoIiVzXG4iLCBvdXRwdXQudXRmOCgp
LmRhdGEoKSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAzYjNjMTE4YmZkNDZjNWI4NDA1ZWE3YjgxMTNhZjU5
Yjk2NjcxYmU5Li5lYzdiNDQ3NDhhZmJmNTljOTZjNGJhMGY1M2NhYmM3ZWMwNWRiZDAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBA
IC01NDAsNyArNTQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c09y
aWVudGF0aW9uKENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBvcmllbnRhdGlvbikg
eyBtX2NvbnRlbnRzT3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAgIENvbXBvc2l0aW5n
Q29vcmRpbmF0ZXNPcmllbnRhdGlvbiBjb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50c09yaWVudGF0aW9uOyB9CiAKLSAgICB2b2lkIGR1bXBMYXllcihXVEY6OlRl
eHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yTm9ybWFsKSBjb25zdDsKKyAgICB2b2lkIGR1bXBMYXllcihXVEY6OlRleHRTdHJlYW0mLCBP
cHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gPSB7IH0pIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3cpIHsgbV9zaG93RGVidWdCb3Jk
ZXIgPSBzaG93OyB9CiAgICAgYm9vbCBpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvd0RlYnVnQm9yZGVyOyB9CkBAIC02MDAsNyArNjAwLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gUmV0dXJuIGEgc3RyaW5nIHdpdGggYSBodW1hbiByZWFkYWJsZSBmb3JtIG9mIHRoZSBs
YXllciB0cmVlLCBJZiBkZWJ1ZyBpcyB0cnVlCiAgICAgLy8gcG9pbnRlcnMgZm9yIHRoZSBsYXll
cnMgYW5kIHRpbWluZyBkYXRhIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHJldHVybmVkIHN0cmlu
Zy4KLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUFz
VGV4dEJlaGF2aW9yID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBsYXllclRyZWVBc1RleHQoT3B0aW9uU2V0PExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM+ID0geyB9KSBjb25zdDsKIAogICAgIC8vIEZvciB0ZXN0aW5nLgogICAg
IHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFn
cykgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KQEAgLTY3OSw4ICs2NzksOCBAQCBwcm90ZWN0
ZWQ6CiAjZW5kaWYKIAogCi0gICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0m
LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGR1bXBB
ZGRpdGlvbmFsUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhh
dmlvcikgY29uc3QgeyB9CisgICAgdm9pZCBkdW1wUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0m
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0
PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCB7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyQ2xpZW50LmgKaW5kZXggMmE0MjJlZjNmYTk2MWY0MWJlZGM2YmZiN2MwYWE1M2E2
Zjk1NWY2OS4uMDgzNzc3Nzg0ZjViOWFiZjNhYWM3Y2QyMzY5YzJiY2IwYjVlYjM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJD
bGllbnQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkxh
eWVyVHJlZUFzVGV4dE9wdGlvbnMuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKICNpbmNs
dWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBA
IC02OCwyNSArNjksNiBAQCBpbmxpbmUgYm9vbCBhbmltYXRlZFByb3BlcnR5SXNUcmFuc2Zvcm1P
clJlbGF0ZWQoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQogICAgIHJldHVybiBwcm9wZXJ0
eSA9PSBBbmltYXRlZFByb3BlcnR5VHJhbnNmb3JtIHx8IHByb3BlcnR5ID09IEFuaW1hdGVkUHJv
cGVydHlUcmFuc2xhdGUgfHwgcHJvcGVydHkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVNjYWxlIHx8IHBy
b3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlSb3RhdGU7CiB9CiAKLWVudW0gTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3JGbGFncyB7Ci0gICAgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgICAg
ICAgICAgICAgICA9IDAsCi0gICAgTGF5ZXJUcmVlQXNUZXh0RGVidWcgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMCwgLy8gRHVtcCBleHRyYSBkZWJ1Z2dpbmcgaW5mbyBsaWtlIGxheWVy
IGFkZHJlc3Nlcy4KLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3RzICAgICAg
ICAgID0gMSA8PCAxLAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzICAgICAg
ICAgICAgPSAxIDw8IDIsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJlcGFpbnRSZWN0cyAg
ICAgICAgICA9IDEgPDwgMywKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlUGFpbnRpbmdQaGFz
ZXMgICAgICAgID0gMSA8PCA0LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250ZW50TGF5
ZXJzICAgICAgICAgPSAxIDw8IDUsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVBhZ2VPdmVy
bGF5TGF5ZXJzICAgICA9IDEgPDwgNiwKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlQWNjZWxl
cmF0ZXNEcmF3aW5nICAgID0gMSA8PCA3LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDbGlw
cGluZyAgICAgICAgICAgICAgPSAxIDw8IDgsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUJh
Y2tpbmdTdG9yZUF0dGFjaGVkICA9IDEgPDwgOSwKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRl
Um9vdExheWVyUHJvcGVydGllcyAgID0gMSA8PCAxMCwKLSAgICBMYXllclRyZWVBc1RleHRJbmNs
dWRlRXZlbnRSZWdpb24gICAgICAgICAgID0gMSA8PCAxMSwKLSAgICBMYXllclRyZWVBc1RleHRJ
bmNsdWRlRGVlcENvbG9yICAgICAgICAgICAgID0gMSA8PCAxMiwKLSAgICBMYXllclRyZWVBc1Rl
eHRTaG93QWxsICAgICAgICAgICAgICAgICAgICAgID0gMHhGRkZGCi19OwotdHlwZWRlZiB1bnNp
Z25lZCBMYXllclRyZWVBc1RleHRCZWhhdmlvcjsKLQogZW51bSBjbGFzcyBQbGF0Zm9ybUxheWVy
VHJlZUFzVGV4dEZsYWdzIDogdWludDhfdCB7CiAgICAgRGVidWcgPSAxIDw8IDAsCiAgICAgSWdu
b3JlQ2hpbGRyZW4gPSAxIDw8IDEsCkBAIC0xMzksOCArMTIxLDggQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciosIGNvbnN0IGNoYXIqLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29u
c3QgR3JhcGhpY3NMYXllciosIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb3BlcnR5
Rm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IGNoYXIqLCBPcHRpb25TZXQ8TGF5
ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyhjb25zdCBHcmFwaGljc0xheWVy
KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVtcG9y
YXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMDI1Zjk0ZTg5MDNhYmZh
ZTMwYTBlODhkZmJmMGRlOWE1ZWZiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXllclRyZWVBc1RleHRPcHRpb25zLmgKQEAgLTAsMCArMSw2
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyA6IHVpbnQxNl90
IHsKKyAgICBEZWJ1ZyAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLCAvLyBEdW1wIGV4
dHJhIGRlYnVnZ2luZyBpbmZvIGxpa2UgbGF5ZXIgYWRkcmVzc2VzLgorICAgIEluY2x1ZGVWaXNp
YmxlUmVjdHMgICAgICAgICAgPSAxIDw8IDEsCisgICAgSW5jbHVkZVRpbGVDYWNoZXMgICAgICAg
ICAgICA9IDEgPDwgMiwKKyAgICBJbmNsdWRlUmVwYWludFJlY3RzICAgICAgICAgID0gMSA8PCAz
LAorICAgIEluY2x1ZGVQYWludGluZ1BoYXNlcyAgICAgICAgPSAxIDw8IDQsCisgICAgSW5jbHVk
ZUNvbnRlbnRMYXllcnMgICAgICAgICA9IDEgPDwgNSwKKyAgICBJbmNsdWRlUGFnZU92ZXJsYXlM
YXllcnMgICAgID0gMSA8PCA2LAorICAgIEluY2x1ZGVBY2NlbGVyYXRlc0RyYXdpbmcgICAgPSAx
IDw8IDcsCisgICAgSW5jbHVkZUNsaXBwaW5nICAgICAgICAgICAgICA9IDEgPDwgOCwKKyAgICBJ
bmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQgID0gMSA8PCA5LAorICAgIEluY2x1ZGVSb290TGF5
ZXJQcm9wZXJ0aWVzICAgPSAxIDw8IDEwLAorICAgIEluY2x1ZGVFdmVudFJlZ2lvbiAgICAgICAg
ICAgPSAxIDw8IDExLAorICAgIEluY2x1ZGVEZWVwQ29sb3IgICAgICAgICAgICAgPSAxIDw8IDEy
LAorfTsKKworc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9u
cz4gQWxsTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyA9IHsKKyAgICBMYXllclRyZWVBc1RleHRPcHRp
b25zOjpEZWJ1ZywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVmlzaWJsZVJl
Y3RzLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVUaWxlQ2FjaGVzLAorICAg
IExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSZXBhaW50UmVjdHMsCisgICAgTGF5ZXJU
cmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVBhaW50aW5nUGhhc2VzLAorICAgIExheWVyVHJlZUFz
VGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzLAorICAgIExheWVyVHJlZUFzVGV4dE9w
dGlvbnM6OkluY2x1ZGVQYWdlT3ZlcmxheUxheWVycywKKyAgICBMYXllclRyZWVBc1RleHRPcHRp
b25zOjpJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVDbGlwcGluZywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRl
QmFja2luZ1N0b3JlQXR0YWNoZWQsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVk
ZVJvb3RMYXllclByb3BlcnRpZXMsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVk
ZUV2ZW50UmVnaW9uLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVEZWVwQ29s
b3IsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBjZGNk
YmJhMjgzNDBiMWYyMjM3ZWY0N2UxNzBmMjgwZjQzYTdlMjc5Li42NzkzMmFlYjdlNDdmYzZmMmQz
OTkzYmY1MzViMDlhOWFiOGEzZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTQyMDcsMTcgKzQyMDcs
MTcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmR1bXBMYXllckNoYW5nZUZsYWdzKFRleHRTdHJl
YW0mIHRleHRTdHJlYW0sIExheWVyQ2hhbmdlRmwKICAgICB0ZXh0U3RyZWFtIDw8ICIgfSI7CiB9
CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYgdGV4dFN0cmVhbSwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0
Cit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJl
YW0mIHRleHRTdHJlYW0sIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVWaXNp
YmxlUmVjdHMpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6Oklu
Y2x1ZGVWaXNpYmxlUmVjdHMpIHsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIih2
aXNpYmxlIHJlY3QgIiA8PCBtX3Zpc2libGVSZWN0LngoKSA8PCAiLCAiIDw8IG1fdmlzaWJsZVJl
Y3QueSgpIDw8ICIgIiA8PCBtX3Zpc2libGVSZWN0LndpZHRoKCkgPDwgIiB4ICIgPDwgbV92aXNp
YmxlUmVjdC5oZWlnaHQoKSA8PCAiKVxuIjsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQg
PDwgIihjb3ZlcmFnZSByZWN0ICIgPDwgbV9jb3ZlcmFnZVJlY3QueCgpIDw8ICIsICIgPDwgbV9j
b3ZlcmFnZVJlY3QueSgpIDw8ICIgIiA8PCBtX2NvdmVyYWdlUmVjdC53aWR0aCgpIDw8ICIgeCAi
IDw8IG1fY292ZXJhZ2VSZWN0LmhlaWdodCgpIDw8ICIpXG4iOwogICAgICAgICB0ZXh0U3RyZWFt
IDw8IGluZGVudCA8PCAiKGludGVyc2VjdHMgY292ZXJhZ2UgcmVjdCAiIDw8IG1faW50ZXJzZWN0
c0NvdmVyYWdlUmVjdCA8PCAiKVxuIjsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwg
Iihjb250ZW50c1NjYWxlICIgPDwgbV9sYXllci0+Y29udGVudHNTY2FsZSgpIDw8ICIpXG4iOwog
ICAgIH0KIAotICAgIGlmICh0aWxlZEJhY2tpbmcoKSAmJiAoYmVoYXZpb3IgJiBMYXllclRyZWVB
c1RleHRJbmNsdWRlVGlsZUNhY2hlcykpIHsKLSAgICAgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJU
cmVlQXNUZXh0RGVidWcpCisgICAgaWYgKHRpbGVkQmFja2luZygpICYmIChvcHRpb25zICYgTGF5
ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVRpbGVDYWNoZXMpKSB7CisgICAgICAgIGlmIChv
cHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgICAgICB0ZXh0
U3RyZWFtIDw8IGluZGVudCA8PCAiKHRpbGVkIGJhY2tpbmcgIiA8PCB0aWxlZEJhY2tpbmcoKSA8
PCAiKVxuIjsKIAogICAgICAgICBJbnRSZWN0IHRpbGVDb3ZlcmFnZVJlY3QgPSB0aWxlZEJhY2tp
bmcoKS0+dGlsZUNvdmVyYWdlUmVjdCgpOwpAQCAtNDIzMiwxMiArNDIzMiwxMiBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRT
dHJlYW0sIExheWVyVHJlZQogICAgICAgICB0ZXh0U3RyZWFtIDw8IGluZGVudCA8PCAiKGluIHdp
bmRvdyAiIDw8IHRpbGVkQmFja2luZygpLT5pc0luV2luZG93KCkgPDwgIilcbiI7CiAgICAgfQog
Ci0gICAgaWYgKChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVEZWVwQ29sb3IpICYm
IG1fbGF5ZXItPndhbnRzRGVlcENvbG9yQmFja2luZ1N0b3JlKCkpCisgICAgaWYgKChvcHRpb25z
ICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZURlZXBDb2xvcikgJiYgbV9sYXllci0+
d2FudHNEZWVwQ29sb3JCYWNraW5nU3RvcmUoKSkKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRl
bnQgPDwgIihkZWVwIGNvbG9yIDEpXG4iOwogCi0gICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVl
QXNUZXh0SW5jbHVkZUNvbnRlbnRMYXllcnMpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzKSB7CiAgICAgICAgIE9wdGlvblNl
dDxQbGF0Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdzPiBwbGF0Zm9ybUZsYWdzID0geyBQbGF0Zm9y
bUxheWVyVHJlZUFzVGV4dEZsYWdzOjpJZ25vcmVDaGlsZHJlbiB9OwotICAgICAgICBpZiAoYmVo
YXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykKKyAgICAgICAgaWYgKG9wdGlvbnMgJiBMYXll
clRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykKICAgICAgICAgICAgIHBsYXRmb3JtRmxhZ3MuYWRk
KFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M6OkRlYnVnKTsKICAgICAgICAgZHVtcElubmVy
TGF5ZXIodGV4dFN0cmVhbSwgbV9zdHJ1Y3R1cmFsTGF5ZXIuZ2V0KCksIHBsYXRmb3JtRmxhZ3Mp
OwogICAgICAgICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCBtX2NvbnRlbnRzQ2xpcHBpbmdM
YXllci5nZXQoKSwgcGxhdGZvcm1GbGFncyk7CkBAIC00MjQ4LDcgKzQyNDgsNyBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRT
dHJlYW0sIExheWVyVHJlZQogICAgICAgICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCBtX2Jh
Y2tkcm9wTGF5ZXIuZ2V0KCksIHBsYXRmb3JtRmxhZ3MpOwogICAgIH0KIAotICAgIGlmIChiZWhh
dmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKSB7CisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRy
ZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykgewogICAgICAgICBpZiAobV91c2VzRGlzcGxheUxpc3RE
cmF3aW5nKQogICAgICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIih1c2VzIGRpc3Bs
YXktbGlzdCBkcmF3aW5nICIgPDwgbV91c2VzRGlzcGxheUxpc3REcmF3aW5nIDw8ICIpXG4iOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oCmluZGV4IDAyZGMzOTBiNGE1YjYyZTU4NTgxZTkzMDgwYzA1ZTM5OGRjMTUyODMu
LjRiY2Y0NTQyY2E3N2UxZjQyZWUxYTk5MGI5MjllYzEzNmU2NzIxMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBA
IC0zMDksNyArMzA5LDcgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJl
cGxpY2F0ZWRCeUxheWVyKFJlZlB0cjxHcmFwaGljc0xheWVyPiYmKSBvdmVycmlkZTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdp
ZHRoKSBjb25zdCBvdmVycmlkZTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXBBZGRpdGlv
bmFsUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wQWRkaXRpb25hbFBy
b3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGR1bXBJbm5lckxheWVyKFdURjo6VGV4dFN0
cmVhbSYsIFBsYXRmb3JtQ0FMYXllciosIE9wdGlvblNldDxQbGF0Zm9ybUxheWVyVHJlZUFzVGV4
dEZsYWdzPikgY29uc3Q7CiAgICAgY29uc3QgY2hhciAqcHVycG9zZU5hbWVGb3JJbm5lckxheWVy
KFBsYXRmb3JtQ0FMYXllciYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDg0NDUyMDZkZmRlNzllY2E3
MmFlNDQ5NTdiN2M4MWU1M2MwYzk3OTQuLjUyZDFiMTU5MzA2MmRiYjhjMWM4YjNlYjY0NTcwMTFm
YTBiYzE4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC0xNDcwLDEzICsxNDcwLDEzIEBAIFBsYXRmb3JtTGF5ZXIq
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB9CiAjZW5k
aWYKIAotc3RhdGljIHZvaWQgZHVtcElubmVyTGF5ZXIoVGV4dFN0cmVhbSYgdGV4dFN0cmVhbSwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllciwgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpCitzdGF0aWMgdm9pZCBkdW1wSW5uZXJMYXll
cihUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4g
b3B0aW9ucykKIHsKICAgICBpZiAoIWxheWVyKQogICAgICAgICByZXR1cm47CiAKICAgICB0ZXh0
U3RyZWFtIDw8IGluZGVudCA8PCAiKCIgPDwgbGFiZWwgPDwgIiAiOwotICAgIGlmIChiZWhhdmlv
ciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNU
ZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgIHRleHRTdHJlYW0gPDwgIiAiIDw8IHN0YXRpY19j
YXN0PHZvaWQqPihsYXllcik7CiAgICAgdGV4dFN0cmVhbSA8PCBsYXllci0+Ym91bmRzT3JpZ2lu
KCkueCgpIDw8ICIsICIgPDwgbGF5ZXItPmJvdW5kc09yaWdpbigpLnkoKSA8PCAiICIgPDwgbGF5
ZXItPnNpemUoKS53aWR0aCgpIDw8ICIgeCAiIDw8IGxheWVyLT5zaXplKCkuaGVpZ2h0KCk7CiAg
ICAgaWYgKCFsYXllci0+Y29udGVudHNBcmVWaXNpYmxlKCkpCkBAIC0xNDg0LDkgKzE0ODQsOSBA
QCBzdGF0aWMgdm9pZCBkdW1wSW5uZXJMYXllcihUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBDb29yZGluYQogICAgIHRleHRTdHJlYW0gPDwgIilcbiI7CiB9CiAK
LXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMo
VGV4dFN0cmVhbSYgdGV4dFN0cmVhbSwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3Ip
IGNvbnN0Cit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRTdHJlYW0sIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFz
VGV4dEluY2x1ZGVDb250ZW50TGF5ZXJzKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNU
ZXh0T3B0aW9uczo6SW5jbHVkZUNvbnRlbnRMYXllcnMpCiAgICAgICAgIGR1bXBJbm5lckxheWVy
KHRleHRTdHJlYW0sICJiYWNrZHJvcCBsYXllciIsIG1fYmFja2Ryb3BMYXllci5nZXQoKSwgYmVo
YXZpb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmgKaW5kZXggNjRhNzA5ZTBkMTNkYzZjOTUwMGM3NjU4YmVjMmJjZWNkNzJi
MzIyNi4uNjg5NmM1ZTViMDI0MzgzZDc1OTU3ODkxYzk1YjBjN2NmZDc1YjRjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAt
MTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKE1vbm90
b25pY1RpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpIG92ZXJyaWRl
OwogICAgIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1Rl
eHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wQWRkaXRpb25hbFByb3Bl
cnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKIAogI2lmIFVTRShOSUNPU0lBKQogICAgIFBsYXRmb3JtTGF5ZXIq
IHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggY2U3NjlmODVkNjFhOTRhNDhhMmQ3
MjhkNzEwMDlmYzE4ZmU5MDZjMS4uNmU4YWI5MWFmNWQxMDgwY2Q3YWI4ODJkYjU3NDkzNGMwMmEy
MzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTM1NTYsMjAgKzM1NTYsMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Omlz
VHJhY2tpbmdSZXBhaW50cygpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYXBoaWNz
TGF5ZXJDbGllbnQmPihjb21wb3NpdG9yKCkpLmlzVHJhY2tpbmdSZXBhaW50cygpOwogfQogCi1i
b29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqIGxheWVyLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QK
K2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQor
ICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIFNraXAgdGhlIHJvb3QgdGlsZSBjYWNoZSdzIGZsYXR0
ZW5pbmcgbGF5ZXIuCiAgICAgcmV0dXJuIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIgJiYg
bGF5ZXIgJiYgbGF5ZXIgPT0gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXIuZ2V0KCk7CiB9CiAKLWJv
b2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllcihjb25zdCBH
cmFwaGljc0xheWVyKiBsYXllciwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBMYXllclRyZWVB
c1RleHRCZWhhdmlvciBmbGFncykgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91
bGREdW1wUHJvcGVydHlGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllciwgY29uc3Qg
Y2hhciogcHJvcGVydHlOYW1lLCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBX
ZWJLaXQxIGFuZCBvdGhlciBwbGF0Zm9ybXMsCiAgICAgLy8gc2tpcCBzb21lIHByb3BlcnRpZXMg
b24gdGhlIHJvb3QgdGlsZSBjYWNoZS4KLSAgICBpZiAobV9pc01haW5GcmFtZVJlbmRlclZpZXdM
YXllciAmJiBsYXllciA9PSBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkgJiYgIShmbGFncyAmIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVSb290TGF5ZXJQcm9wZXJ0aWVzKSkgeworICAgIGlmIChtX2lzTWFp
bkZyYW1lUmVuZGVyVmlld0xheWVyICYmIGxheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSAm
JiAhKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUm9vdExheWVyUHJv
cGVydGllcykpIHsKICAgICAgICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAiZHJhd3NDb250
ZW50IikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAxOTNjNWQxNzVjZWU5OGRmYzA2MGRl
MWM4ZDZhMjMxOTQ4OWNkNDdkLi5hMjBkMzI0NWU0MTkxZDkxNGFmMzFiOGYzZmUyNmMxZGJhNjZk
MzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CkBAIC0yNDAsOCArMjQwLDggQEAgcHVibGljOgogICAgIGJvb2wgZ2V0Q3VycmVudFRyYW5zZm9y
bShjb25zdCBHcmFwaGljc0xheWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciosIExheWVy
VHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZER1bXBQ
cm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9wZXJ0
eU5hbWUsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29s
IHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExh
eWVyVHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZER1
bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9w
ZXJ0eU5hbWUsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHNob3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFRlbXBvcmFyaWx5UmV0
YWluVGlsZUNvaG9ydHMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCA1YTVlZjZiNzE3OTM0YmU0N2YzZTI3YzVlNDVlNThmZGIyZGQwMmI5Li5mZGJlMmNiMDUw
YjU4OTEzN2E2ZjY5ZjgzODMxYTllYjcwNzI1Mzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjMyOCw3ICsyMzI4LDcg
QEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nRm9yTGF5ZXJU
cmVlQXNUZXh0RHVtcCgpCiAgICAgcGFnZSgpLnRyaWdnZXJSZW5kZXJpbmdVcGRhdGVGb3JUZXN0
aW5nKCk7CiB9CiAKLVN0cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4
dChMYXllclRyZWVGbGFncyBmbGFncykKK1N0cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6Omxh
eWVyVHJlZUFzVGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykK
IHsKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8PCAiUmVuZGVyTGF5
ZXJDb21wb3NpdG9yICIgPDwgdGhpcyA8PCAiIGxheWVyVHJlZUFzVGV4dCIpOwogCkBAIC0yMzM3
LDQ0ICsyMzM3LDE4IEBAIFN0cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFz
VGV4dChMYXllclRyZWVGbGFncyBmbGFncykKICAgICBpZiAoIW1fcm9vdENvbnRlbnRzTGF5ZXIp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9y
IGxheWVyVHJlZUJlaGF2aW9yID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWw7Ci0gICAg
aWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvKQotICAgICAgICBsYXll
clRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHREZWJ1ZzsKLSAgICBpZiAoZmxhZ3MgJiBM
YXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxlUmVjdHMpCi0gICAgICAgIGxheWVyVHJlZUJlaGF2
aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVWaXNpYmxlUmVjdHM7Ci0gICAgaWYgKGZsYWdz
ICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlVGlsZUNhY2hlcykKLSAgICAgICAgbGF5ZXJUcmVlQmVo
YXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVRpbGVDYWNoZXM7Ci0gICAgaWYgKGZsYWdz
ICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzKQotICAgICAgICBsYXllclRyZWVC
ZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlUmVwYWludFJlY3RzOwotICAgIGlmIChm
bGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZVBhaW50aW5nUGhhc2VzKQotICAgICAgICBsYXll
clRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlUGFpbnRpbmdQaGFzZXM7Ci0g
ICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVycykKLSAgICAg
ICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUNvbnRlbnRMYXll
cnM7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3
aW5nKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRl
QWNjZWxlcmF0ZXNEcmF3aW5nOwotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVk
ZUNsaXBwaW5nKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJ
bmNsdWRlQ2xpcHBpbmc7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQmFj
a2luZ1N0b3JlQXR0YWNoZWQpCi0gICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJl
ZUFzVGV4dEluY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hlZDsKLSAgICBpZiAoZmxhZ3MgJiBMYXll
clRyZWVGbGFnc0luY2x1ZGVSb290TGF5ZXJQcm9wZXJ0aWVzKQotICAgICAgICBsYXllclRyZWVC
ZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlUm9vdExheWVyUHJvcGVydGllczsKLSAg
ICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVFdmVudFJlZ2lvbikKLSAgICAgICAg
bGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2ZW50UmVnaW9uOwot
ICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZURlZXBDb2xvcikKLSAgICAgICAg
bGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZURlZXBDb2xvcjsKLQog
ICAgIC8vIFdlIHNraXAgZHVtcGluZyB0aGUgc2Nyb2xsIGFuZCBjbGlwIGxheWVycyB0byBrZWVw
IGxheWVyVHJlZUFzVGV4dCBvdXRwdXQKICAgICAvLyBzaW1pbGFyIGJldHdlZW4gcGxhdGZvcm1z
LgotICAgIFN0cmluZyBsYXllclRyZWVUZXh0ID0gbV9yb290Q29udGVudHNMYXllci0+bGF5ZXJU
cmVlQXNUZXh0KGxheWVyVHJlZUJlaGF2aW9yKTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlVGV4dCA9
IG1fcm9vdENvbnRlbnRzTGF5ZXItPmxheWVyVHJlZUFzVGV4dChvcHRpb25zKTsKIAogICAgIC8v
IER1bXAgYW4gZW1wdHkgbGF5ZXIgdHJlZSBvbmx5IGlmIHRoZSBvbmx5IGNvbXBvc2l0ZWQgbGF5
ZXIgaXMgdGhlIG1haW4gZnJhbWUncyB0aWxlZCBiYWNraW5nLAogICAgIC8vIHNvIHRoYXQgdGVz
dHMgZXhwZWN0aW5nIHVzIHRvIGRyb3Agb3V0IG9mIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHdo
ZW4gdGhlcmUgYXJlIG5vIGxheWVycyBzdWNjZWVkLgotICAgIGlmICghaGFzQ29udGVudENvbXBv
c2l0aW5nTGF5ZXJzKCkgJiYgZG9jdW1lbnRVc2VzVGlsZWRCYWNraW5nKCkgJiYgIShsYXllclRy
ZWVCZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzKSAmJiAhKGxheWVy
VHJlZUJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMp
KQorICAgIGlmICghaGFzQ29udGVudENvbXBvc2l0aW5nTGF5ZXJzKCkgJiYgZG9jdW1lbnRVc2Vz
VGlsZWRCYWNraW5nKCkgJiYgIShvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5j
bHVkZVRpbGVDYWNoZXMpICYmICEob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6Oklu
Y2x1ZGVSb290TGF5ZXJQcm9wZXJ0aWVzKSkKICAgICAgICAgbGF5ZXJUcmVlVGV4dCA9IGVtcHR5
U3RyaW5nKCk7CiAKICAgICAvLyBUaGUgdHJ1ZSByb290IGxheWVyIGlzIG5vdCBpbmNsdWRlZCBp
biB0aGUgZHVtcCwgc28gaWYgd2Ugd2FudCB0byByZXBvcnQKICAgICAvLyBpdHMgcmVwYWludCBy
ZWN0cywgdGhleSBtdXN0IGJlIGluY2x1ZGVkIGhlcmUuCi0gICAgaWYgKGZsYWdzICYgTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVl
QXNUZXh0T3B0aW9uczo6SW5jbHVkZVJlcGFpbnRSZWN0cykKICAgICAgICAgcmV0dXJuIG1fcmVu
ZGVyVmlldy5mcmFtZVZpZXcoKS50cmFja2VkUmVwYWludFJlY3RzQXNUZXh0KCkgKyBsYXllclRy
ZWVUZXh0OwogCiAgICAgcmV0dXJuIGxheWVyVHJlZVRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggZDEyZjFjNWNjYzFlZDU0
NmUyZjkwMDA4NTdiNDhkZTZjOGMwNmY2MC4uMDc1MjAwNDUxZDM2NzNiZDdjNGI2YmY4ZWU4YWNh
MDE1YzAzOWVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaApAQCAtNDcsOCArNDcsNiBAQCBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRv
cjsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFRpbGVk
QmFja2luZzsKIAotdHlwZWRlZiB1bnNpZ25lZCBMYXllclRyZWVGbGFnczsKLQogZW51bSBjbGFz
cyBDb21wb3NpdGluZ1VwZGF0ZVR5cGUgewogICAgIEFmdGVyU3R5bGVDaGFuZ2UsCiAgICAgQWZ0
ZXJMYXlvdXQsCkBAIC0zMTYsMTAgKzMxNCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdpZGdl
dERpZENoYW5nZVNpemUoUmVuZGVyV2lkZ2V0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgbGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzID0gMCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0
T3B0aW9ucz4gPSB7IH0pIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0cmFja2Vk
UmVwYWludFJlY3RzQXNUZXh0KCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGxheWVyVHJlZUFzVGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4g
PSB7IH0pOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwbGF0Zm9y
bUxheWVyVHJlZUFzVGV4dChFbGVtZW50JiwgT3B0aW9uU2V0PFBsYXRmb3JtTGF5ZXJUcmVlQXNU
ZXh0RmxhZ3M+KTsKIAogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMGVhZTA4ODlhM2QyMzQ0
MWNhYWIyZWNiMmQ1ZDlmOTEwZjQ4ZGUwYS4uNjA1MmIwMDBjMjE4OGI5MGE3NjliMTE2NGNjOWVi
MjlmMzIxNzQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjgxOCwz
MSArMjgxOCwzMSBAQCBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2li
bGUoaW50IHBhZ2VOdW1iZXIpCiAgICAgcmV0dXJuIGRvY3VtZW50LT5pc1BhZ2VCb3hWaXNpYmxl
KHBhZ2VOdW1iZXIpOwogfQogCi1zdGF0aWMgTGF5ZXJUcmVlRmxhZ3MgdG9MYXllclRyZWVGbGFn
cyh1bnNpZ25lZCBzaG9ydCBmbGFncykKK3N0YXRpYyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0
T3B0aW9ucz4gdG9MYXllclRyZWVBc1RleHRPcHRpb25zKHVuc2lnbmVkIHNob3J0IGZsYWdzKQog
ewotICAgIExheWVyVHJlZUZsYWdzIGxheWVyVHJlZUZsYWdzID0gMDsKKyAgICBPcHRpb25TZXQ8
TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gbGF5ZXJUcmVlRmxhZ3M7CiAgICAgaWYgKGZsYWdzICYg
SW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMpCi0gICAgICAgIGxh
eWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZVZpc2libGVSZWN0czsKKyAgICAg
ICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVWaXNp
YmxlUmVjdHMpOwogICAgIGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURF
U19USUxFX0NBQ0hFUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlVGlsZUNhY2hlczsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFz
VGV4dE9wdGlvbnM6OkluY2x1ZGVUaWxlQ2FjaGVzKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5h
bHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfUkVQQUlOVF9SRUNUUykKLSAgICAgICAgbGF5ZXJUcmVl
RmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzOworICAgICAgICBsYXll
clRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJlcGFpbnRSZWN0
cyk7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX1BBSU5U
SU5HX1BIQVNFUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNs
dWRlUGFpbnRpbmdQaGFzZXM7CisgICAgICAgIGxheWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVB
c1RleHRPcHRpb25zOjpJbmNsdWRlUGFpbnRpbmdQaGFzZXMpOwogICAgIGlmIChmbGFncyAmIElu
dGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19DT05URU5UX0xBWUVSUykKLSAgICAgICAgbGF5
ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVyczsKKyAgICAg
ICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250
ZW50TGF5ZXJzKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVE
RVNfQUNDRUxFUkFURVNfRFJBV0lORykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nOworICAgICAgICBsYXllclRyZWVGbGFn
cy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyk7
CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX0NMSVBQSU5H
KQotICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVDbGlwcGlu
ZzsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6Oklu
Y2x1ZGVDbGlwcGluZyk7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lO
Q0xVREVTX0JBQ0tJTkdfU1RPUkVfQVRUQUNIRUQpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9
IExheWVyVHJlZUZsYWdzSW5jbHVkZUJhY2tpbmdTdG9yZUF0dGFjaGVkOworICAgICAgICBsYXll
clRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUJhY2tpbmdTdG9y
ZUF0dGFjaGVkKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVE
RVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKQotICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXll
clRyZWVGbGFnc0luY2x1ZGVSb290TGF5ZXJQcm9wZXJ0aWVzOworICAgICAgICBsYXllclRyZWVG
bGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJvb3RMYXllclByb3BlcnRp
ZXMpOwogICAgIGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19FVkVO
VF9SRUdJT04pCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVk
ZUV2ZW50UmVnaW9uOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0
T3B0aW9uczo6SW5jbHVkZUV2ZW50UmVnaW9uKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6
OkxBWUVSX1RSRUVfSU5DTFVERVNfREVFUF9DT0xPUikKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3Mg
fD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVlcENvbG9yOworICAgICAgICBsYXllclRyZWVGbGFn
cy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZURlZXBDb2xvcik7CiAKICAgICBy
ZXR1cm4gbGF5ZXJUcmVlRmxhZ3M7CiB9CkBAIC0yODU1LDcgKzI4NTUsNyBAQCBFeGNlcHRpb25P
cjxTdHJpbmc+IEludGVybmFsczo6bGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50JiBkb2N1bWVudCwg
dW5zaWduZWQgc2hvcgogewogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSB8fCAhZG9jdW1lbnQu
ZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICByZXR1cm4gZG9jdW1lbnQuZnJhbWUoKS0+Y29udGVu
dFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS5sYXllclRyZWVBc1RleHQodG9MYXllclRyZWVGbGFn
cyhmbGFncykpOworICAgIHJldHVybiBkb2N1bWVudC5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIo
KS0+Y29tcG9zaXRvcigpLmxheWVyVHJlZUFzVGV4dCh0b0xheWVyVHJlZUFzVGV4dE9wdGlvbnMo
ZmxhZ3MpKTsKIH0KIAogRXhjZXB0aW9uT3I8dWludDY0X3Q+IEludGVybmFsczo6bGF5ZXJJREZv
ckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKQEAgLTQ2MjAsNyArNDYyMCw3IEBAIEV4Y2VwdGlv
bk9yPFN0cmluZz4gSW50ZXJuYWxzOjpwYWdlT3ZlcmxheUxheWVyVHJlZUFzVGV4dCh1bnNpZ25l
ZCBzaG9ydCBmbGFncykKIAogICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKIAotICAgIHJldHVybiBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnNpbmds
ZXRvbigpLmxheWVyVHJlZUFzVGV4dCgqZG9jdW1lbnQtPnBhZ2UoKSwgdG9MYXllclRyZWVGbGFn
cyhmbGFncykpOworICAgIHJldHVybiBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnNpbmdsZXRvbigp
LmxheWVyVHJlZUFzVGV4dCgqZG9jdW1lbnQtPnBhZ2UoKSwgdG9MYXllclRyZWVBc1RleHRPcHRp
b25zKGZsYWdzKSk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmll
dyBzdGF0ZXNTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQ
YWdlT3ZlcmxheUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3Zl
cmxheUNsaWVudC5jcHAKaW5kZXggYjIzZmM4MWU3ZjJiMzhmMTNlNzYzZDA0MjA1ODNlZjIyYzlm
MjZlOS4uZDk3NWYzYjQyODRmM2I2NmE4ZDc3OTJmMDhiNjNkN2QzZDE1NDNmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtNjcs
MTMgKzY3LDEzIEBAIHZvaWQgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVy
bGF5cygpCiAgICAgfQogfQogCi1TdHJpbmcgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpsYXllclRy
ZWVBc1RleHQoUGFnZSYgcGFnZSwgTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCitTdHJpbmcgTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50OjpsYXllclRyZWVBc1RleHQoUGFnZSYgcGFnZSwgT3B0aW9uU2V0PExh
eWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NMYXllciogdmll
d092ZXJsYXlSb290ID0gcGFnZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS52aWV3T3ZlcmxheVJv
b3RMYXllcigpOwogICAgIEdyYXBoaWNzTGF5ZXIqIGRvY3VtZW50T3ZlcmxheVJvb3QgPSBwYWdl
LnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRvY3VtZW50T3ZlcmxheVJvb3RMYXllcigpOwogICAg
IAotICAgIHJldHVybiAiVmlldy1yZWxhdGl2ZTpcbiIgKyAodmlld092ZXJsYXlSb290ID8gdmll
d092ZXJsYXlSb290LT5sYXllclRyZWVBc1RleHQoZmxhZ3MgfCBMYXllclRyZWVBc1RleHRJbmNs
dWRlUGFnZU92ZXJsYXlMYXllcnMpIDogIihubyB2aWV3LXJlbGF0aXZlIG92ZXJsYXkgcm9vdCki
KQotICAgICAgICArICJcblxuRG9jdW1lbnQtcmVsYXRpdmU6XG4iICsgKGRvY3VtZW50T3Zlcmxh
eVJvb3QgPyBkb2N1bWVudE92ZXJsYXlSb290LT5sYXllclRyZWVBc1RleHQoZmxhZ3MgfCBMYXll
clRyZWVBc1RleHRJbmNsdWRlUGFnZU92ZXJsYXlMYXllcnMpIDogIihubyBkb2N1bWVudC1yZWxh
dGl2ZSBvdmVybGF5IHJvb3QpIik7CisgICAgcmV0dXJuICJWaWV3LXJlbGF0aXZlOlxuIiArICh2
aWV3T3ZlcmxheVJvb3QgPyB2aWV3T3ZlcmxheVJvb3QtPmxheWVyVHJlZUFzVGV4dChvcHRpb25z
IHwgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVBhZ2VPdmVybGF5TGF5ZXJzKSA6ICIo
bm8gdmlldy1yZWxhdGl2ZSBvdmVybGF5IHJvb3QpIikKKyAgICAgICAgKyAiXG5cbkRvY3VtZW50
LXJlbGF0aXZlOlxuIiArIChkb2N1bWVudE92ZXJsYXlSb290ID8gZG9jdW1lbnRPdmVybGF5Um9v
dC0+bGF5ZXJUcmVlQXNUZXh0KG9wdGlvbnMgfCBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNs
dWRlUGFnZU92ZXJsYXlMYXllcnMpIDogIihubyBkb2N1bWVudC1yZWxhdGl2ZSBvdmVybGF5IHJv
b3QpIik7CiB9CiAKIHZvaWQgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp3aWxsTW92ZVRvUGFnZShQ
YWdlT3ZlcmxheSYsIFBhZ2UqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrUGFnZU92ZXJsYXlDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VP
dmVybGF5Q2xpZW50LmgKaW5kZXggNDY2ODdjZWIzZDgwNTY1YTI4ZWJhNTg3YmIwYjdhYTJlNzUx
ZGRiNi4uMWQ3N2FiNjVlNjAzYWM2OGEwN2YxOTY1ZjI3MTFiNWM3NWNlYWY2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5oCkBAIC0yNSwxNCAr
MjUsMTUgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
Ik1vY2tQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNs
YXNzIFBhZ2U7CitlbnVtIGNsYXNzIExheWVyVHJlZUFzVGV4dE9wdGlvbnMgOiB1aW50MTZfdDsK
IAogY2xhc3MgTW9ja1BhZ2VPdmVybGF5Q2xpZW50IGZpbmFsIDogcHVibGljIFBhZ2VPdmVybGF5
OjpDbGllbnQgewogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxNb2NrUGFnZU92ZXJs
YXlDbGllbnQ+OwpAQCAtNDQsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1vY2tQYWdlT3Zl
cmxheT4gaW5zdGFsbE92ZXJsYXkoUGFnZSYsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSk7CiAg
ICAgdm9pZCB1bmluc3RhbGxBbGxPdmVybGF5cygpOwogCi0gICAgU3RyaW5nIGxheWVyVHJlZUFz
VGV4dChQYWdlJiwgTGF5ZXJUcmVlRmxhZ3MpOworICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQo
UGFnZSYsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPik7CiAKICAgICB2aXJ0dWFs
IH5Nb2NrUGFnZU92ZXJsYXlDbGllbnQoKSA9IGRlZmF1bHQ7CiAK
</data>
<flag name="commit-queue"
          id="458638"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435747</attachid>
            <date>2021-08-17 22:00:24 -0700</date>
            <delta_ts>2021-08-17 23:40:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229226-20210817220023.patch</filename>
            <type>text/plain</type>
            <size>48072</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJhNDg2ZjI1MWM1Nzhm
Mjk0YWRhOWY0YjY5NGMwZjU0OGM0NjZlZC4uNzVjYmIyZmY1MjljZWNmMGJmOWMyMzQ2MmMwZWE3
MjVjZTBkNzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA4LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBkdXBs
aWNhdGUgTGF5ZXJUcmVlQXNUZXh0IGVudW1zIGFuZCB1c2UgYW4gT3B0aW9uU2V0PD4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJD
bGllbnQgaGFkIGVudW0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JGbGFncyBhbmQgRnJhbWUgaGFk
IGFuIGFub255bW91cworICAgICAgICBlbnVtIGFuZCB0eXBlZGVmIHVuc2lnbmVkIExheWVyVHJl
ZUZsYWdzLiBDbGVhbiB1cCBieSBhZGRpbmcgTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCisgICAg
ICAgIGFuZCB1c2luZyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gZXZlcnl3aGVy
ZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBw
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6OnNob3VsZFNraXBMYXllckluRHVtcCBjb25zdCk6CisgICAgICAgICog
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmR1
bXBMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpkdW1wQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0IGNvbnN0KToKKyAgICAg
ICAgKHNob3dHcmFwaGljc0xheWVyVHJlZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6OnNob3VsZFNraXBM
YXllckluRHVtcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50
OjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHVtcElubmVyTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2hv
dWxkU2tpcExheWVySW5EdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bGF5ZXJUcmVlQXNUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9MYXllclRyZWVBc1RleHRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6bGF5ZXJUcmVlQXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cGFnZU92ZXJsYXlMYXllclRyZWVBc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9MYXllclRyZWVGbGFncyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrUGFn
ZU92ZXJsYXlDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BhZ2VPdmVybGF5Q2xp
ZW50OjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5
Q2xpZW50Lmg6CisKIDIwMjEtMDgtMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgRGUtZHVwbGljYXRlIHRoZSBDb2NvYS1zcGVjaWZpYyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDYyYjZlZTE2ZDRj
MTA2ZWU3OGUwNTEwNjQ2YmQ2OWRlYjJjMmNmY2YuLjdkNGZkOGI3MjcxMjNiYjBkMjIwNzdkYWI1
MjIyMjU5MzI3YzNiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI4MCw2ICsxMjgwLDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3RIYXNoLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplSGFzaC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5
ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UG9pbnQu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0xheW91dFNpemUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDg0YzdkZWY3NmI3YTJkNzU0ODJiMmJiOWYwOGZmMDFiZTI1
MjU0YjkuLmNmNzFkOTc4MGMyNzA2MGI4YmQ4NDBlNWFmNzc0YWU2ZGU4ZTlkZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMx
Niw2ICszMTYsNyBAQAogCQkwRjQ5NjZBQjFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTY2QTUx
REI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnQuaCAqLzsgfTsKIAkJMEY0OTY2QUQxREI0MEM0
MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ5NjZBNzFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2lu
dEluaXQuaCAqLzsgfTsKIAkJMEY0OTY2QUYxREI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRS
ZWFkT25seS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY0OTY2QTkxREI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRSZWFkT25seS5oICovOyB9Owor
CQkwRjRENUQxODI2Q0NDNEFFMDBBOURGQzEgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MzZFQ0EyNkND
Qjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjUzRkI4NDIxM0I3QTY0MDBDNDBE
MzQgLyogUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1M0ZCODQyMTNCNzg2NDAwQzQwRDM0IC8qIFJlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjU0RENFNjE4ODEwNTFEMDAzRUVEQkIgLyogVGV4dEF1dG9TaXpp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTRE
Q0U0MTg4MTA1MUQwMDNFRURCQiAvKiBUZXh0QXV0b1NpemluZy5oICovOyB9OwogCQkwRjU0REQw
ODE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTRERDA1MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MjI1LDYg
KzYyMjYsNyBAQAogCQkwRjZCNzA3NzIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTVW5pdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2
QjcwNzkyMzdCQzEyRjAwNTJDQTQ3IC8qIENTU1VuaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENTU1VuaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDQ5NUQyMTFC
NTI0MjAwMzY5OTY4IC8qIEFjdGl2aXR5U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWN0
aXZpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNzM2RUNBMjZD
Q0I5N0EwMDBBRDdDQSAvKiBMYXllclRyZWVBc1RleHRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheWVyVHJlZUFzVGV4dE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OTBGM0QyNTE3Q0U2RDAwOUJB
MDM0IC8qIERpc3BsYXlWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpc3BsYXlWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OTBG
M0YyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERpc3BsYXlWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjYzNiw2ICsyNjYzOCw3IEBACiAJCQkJQjI3NTM1NDcwQjA1MzgxNDAwMkNFNjRGIC8qIElu
dFNpemUuaCAqLywKIAkJCQlCMjc1MzU0ODBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZUhhc2gu
aCAqLywKIAkJCQk2NUNDNkJFRDE2MDE0RUMwMDAwRUQyN0QgLyogTGF0aW4xVGV4dEl0ZXJhdG9y
LmggKi8sCisJCQkJMEY3MzZFQ0EyNkNDQjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9w
dGlvbnMuaCAqLywKIAkJCQkwRjM2RTczNjFCRDE4MzdBMDAyREI4OTEgLyogTGF5b3V0UG9pbnQu
Y3BwICovLAogCQkJCTE0MURDMDRCMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRQb2ludC5oICov
LAogCQkJCTE0MURDMDRDMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCAqLywKQEAg
LTMzMzg2LDYgKzMzMzg5LDcgQEAKIAkJCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5
ZXJBbmNlc3RvckNsaXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjRENUQxODI2Q0NDNEFFMDBBOURGQzEgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTE1Q0ZBOTcyMDhCOTUyQjAwMUU2OTkxIC8qIExheW91dEJveC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjYyMEJBNEE1NjAwNjVBOEQwIC8qIExheW91dENoaWxk
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTExOTlGQTQ2MjA4RTM1QTMwMDIzNThDQyAv
KiBMYXlvdXRDb250YWluZXJCb3guaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4
IDM3YzFjYjZiNWQ3NzlkNWEzYzJhYmRkN2E2MjVlOTkwMTFkOTk3MWMuLmQ3NjI4NDUzZGE1MTUw
NjRhNGZiMTYxZGYzNDE4Y2QxYzM1MWJhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTExMywyMiAr
MTEzLDYgQEAgZW51bSBPdmVyZmxvd1Njcm9sbEFjdGlvbiB7IERvTm90UGVyZm9ybU92ZXJmbG93
U2Nyb2xsLCBQZXJmb3JtT3ZlcmZsb3dTY3JvbGwgfTsKIHVzaW5nIE5vZGVRdWFsaWZpZXIgPSBG
dW5jdGlvbjxOb2RlKiAoY29uc3QgSGl0VGVzdFJlc3VsdCYsIE5vZGUqIHRlcm1pbmF0aW9uTm9k
ZSwgSW50UmVjdCogbm9kZUJvdW5kcyk+OwogI2VuZGlmCiAKLWVudW0gewotICAgIExheWVyVHJl
ZUZsYWdzSW5jbHVkZURlYnVnSW5mbyAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlVmlzaWJsZVJlY3RzICAgICAgICAgICA9IDEgPDwgMSwKLSAgICBMYXll
clRyZWVGbGFnc0luY2x1ZGVUaWxlQ2FjaGVzICAgICAgICAgICAgID0gMSA8PCAyLAotICAgIExh
eWVyVHJlZUZsYWdzSW5jbHVkZVJlcGFpbnRSZWN0cyAgICAgICAgICAgPSAxIDw8IDMsCi0gICAg
TGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMgICAgICAgICA9IDEgPDwgNCwKLSAg
ICBMYXllclRyZWVGbGFnc0luY2x1ZGVDb250ZW50TGF5ZXJzICAgICAgICAgID0gMSA8PCA1LAot
ICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyAgICAgPSAxIDw8IDYs
Ci0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ2xpcHBpbmcgICAgICAgICAgICAgICA9IDEgPDwg
NywKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hlZCAgID0gMSA8
PCA4LAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMgICAgPSAx
IDw8IDksCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRXZlbnRSZWdpb24gICAgICAgICAgICA9
IDEgPDwgMTAsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVlcENvbG9yICAgICAgICAgICAg
ICA9IDEgPDwgMTEsCi19OwotdHlwZWRlZiB1bnNpZ25lZCBMYXllclRyZWVGbGFnczsKLQogLy8g
RklYTUU6IFJlbmFtZSBGcmFtZSB0byBMb2NhbEZyYW1lIGFuZCBBYnN0cmFjdEZyYW1lIHRvIEZy
YW1lLgogY2xhc3MgRnJhbWUgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RGcmFtZSB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXgg
OTI4ZGQ0YmQ5NjgxZWJkMGZlOWI5MjY2MmM1OTdkOGQ3MzdhZmUyMS4uOWNiZWIyZTNjMmIxMDRl
ZjM1NDhkZjEzNzBmMzRiMmQ2ZGQ4OWE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtNDI5LDkgKzQyOSw5IEBAIHZvaWQgUGFnZU92ZXJs
YXlDb250cm9sbGVyOjpkaWRDaGFuZ2VPdmVybGF5QmFja2dyb3VuZENvbG9yKFBhZ2VPdmVybGF5
JiBvdmVybGF5CiAgICAgICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNr
Z3JvdW5kQ29sb3IoKSk7CiB9CiAKLWJvb2wgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpzaG91bGRT
a2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciosIExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yIGJlaGF2aW9yKSBjb25zdAorYm9vbCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNob3VsZFNr
aXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExheWVyVHJlZUFz
VGV4dE9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICEoYmVoYXZpb3IgJiBM
YXllclRyZWVBc1RleHRJbmNsdWRlUGFnZU92ZXJsYXlMYXllcnMpOworICAgIHJldHVybiAhb3B0
aW9ucy5jb250YWlucyhMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFnZU92ZXJsYXlM
YXllcnMpOwogfQogCiB2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dGlsZWRCYWNraW5nVXNh
Z2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGJvb2wgdXNpbmdU
aWxlZEJhY2tpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
aAppbmRleCA2MDYyODUzZTg0OGM1MjNiMzAwNDMzYTIxNDNmYzcwMTJmN2ZlNGZkLi4wNzc5Mjk4
M2QzNGNhYjAxNjhlZDJkZjc5YzJkNTMwMjI3YWFlZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NMYXllclBhaW50QmVo
YXZpb3IpIG92ZXJyaWRlOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXll
ciosIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNo
b3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExheWVy
VHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRpbGVkQmFja2lu
Z1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9vbCkgb3ZlcnJpZGU7CiAKICAg
ICBQYWdlJiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGQzMjlkNzY4ZmEwODE2NjdlODRlNzZiYmFhMDdkN2Fl
MDk5Zjg1ZGEuLjU2YTM3OWY4M2MwM2M5MDIyOTZkNmY1NTYxYjNlMWM2Zjk4YjZhNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC04MjYsMzYgKzgyNiwzNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnRyYXZlcnNlKEdyYXBo
aWNzTGF5ZXImIGxheWVyLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEdyYQogICAgICAgICB0
cmF2ZXJzZSgqbWFza0xheWVyLCB0cmF2ZXJzYWxGdW5jKTsKIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyOjpkdW1wTGF5ZXIoVGV4dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJl
aGF2aW9yKSBjb25zdAordm9pZCBHcmFwaGljc0xheWVyOjpkdW1wTGF5ZXIoVGV4dFN0cmVhbSYg
dHMsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIHRzIDw8IGluZGVudCA8PCAiKCIgPDwgIkdyYXBoaWNzTGF5ZXIiOwogCi0gICAgaWYgKGJl
aGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVy
VHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKSB7CiAgICAgICAgIHRzIDw8ICIgIiA8PCBzdGF0aWNf
Y2FzdDx2b2lkKj4oY29uc3RfY2FzdDxHcmFwaGljc0xheWVyKj4odGhpcykpOwogICAgICAgICB0
cyA8PCAiIFwiIiA8PCBtX25hbWUgPDwgIlwiIjsKICAgICB9CiAKICAgICB0cyA8PCAiXG4iOwot
ICAgIGR1bXBQcm9wZXJ0aWVzKHRzLCBiZWhhdmlvcik7CisgICAgZHVtcFByb3BlcnRpZXModHMs
IG9wdGlvbnMpOwogICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKIH0KIAotc3RhdGljIHZvaWQg
ZHVtcENoaWxkcmVuKFRleHRTdHJlYW0mIHRzLCBjb25zdCBWZWN0b3I8UmVmPEdyYXBoaWNzTGF5
ZXI+PiYgY2hpbGRyZW4sIHVuc2lnbmVkJiB0b3RhbENoaWxkQ291bnQsIExheWVyVHJlZUFzVGV4
dEJlaGF2aW9yIGJlaGF2aW9yKQorc3RhdGljIHZvaWQgZHVtcENoaWxkcmVuKFRleHRTdHJlYW0m
IHRzLCBjb25zdCBWZWN0b3I8UmVmPEdyYXBoaWNzTGF5ZXI+PiYgY2hpbGRyZW4sIHVuc2lnbmVk
JiB0b3RhbENoaWxkQ291bnQsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRp
b25zKQogewogICAgIHRvdGFsQ2hpbGRDb3VudCArPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKSB7Ci0gICAgICAgIGlmICgoYmVoYXZpb3IgJiBMYXll
clRyZWVBc1RleHREZWJ1ZykgfHwgIWNoaWxkLT5jbGllbnQoKS5zaG91bGRTa2lwTGF5ZXJJbkR1
bXAoY2hpbGQucHRyKCksIGJlaGF2aW9yKSkgeworICAgICAgICBpZiAoKG9wdGlvbnMgJiBMYXll
clRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykgfHwgIWNoaWxkLT5jbGllbnQoKS5zaG91bGRTa2lw
TGF5ZXJJbkR1bXAoY2hpbGQucHRyKCksIG9wdGlvbnMpKSB7CiAgICAgICAgICAgICBUZXh0U3Ry
ZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgICAgICAgICBjaGlsZC0+ZHVt
cExheWVyKHRzLCBiZWhhdmlvcik7CisgICAgICAgICAgICBjaGlsZC0+ZHVtcExheWVyKHRzLCBv
cHRpb25zKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgdG90
YWxDaGlsZENvdW50LS07Ci0gICAgICAgIGR1bXBDaGlsZHJlbih0cywgY2hpbGQtPmNoaWxkcmVu
KCksIHRvdGFsQ2hpbGRDb3VudCwgYmVoYXZpb3IpOworICAgICAgICBkdW1wQ2hpbGRyZW4odHMs
IGNoaWxkLT5jaGlsZHJlbigpLCB0b3RhbENoaWxkQ291bnQsIG9wdGlvbnMpOwogICAgIH0KIH0K
IAotdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit2b2lkIEdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBp
bmRlbnRTY29wZSh0cyk7CiAgICAgaWYgKCFtX29mZnNldEZyb21SZW5kZXJlci5pc1plcm8oKSkK
QEAgLTkwMSwxMyArOTAxLDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMo
VGV4dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2CiAgICAgaWYgKG1f
c3VwcG9ydHNTdWJwaXhlbEFudGlhbGlhc2VkVGV4dCkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8
ICIoc3VwcG9ydHMgc3VicGl4ZWwgYW50aWFsaWFzZWQgdGV4dCAiIDw8IG1fc3VwcG9ydHNTdWJw
aXhlbEFudGlhbGlhc2VkVGV4dCA8PCAiKVxuIjsKIAotICAgIGlmIChtX21hc2tzVG9Cb3VuZHMg
JiYgYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlQ2xpcHBpbmcpCisgICAgaWYgKG1f
bWFza3NUb0JvdW5kcyAmJiBvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVk
ZUNsaXBwaW5nKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihjbGlwcyAiIDw8IG1fbWFza3NU
b0JvdW5kcyA8PCAiKVxuIjsKIAogICAgIGlmIChtX3ByZXNlcnZlczNEKQogICAgICAgICB0cyA8
PCBpbmRlbnQgPDwgIihwcmVzZXJ2ZXMzRCAiIDw8IG1fcHJlc2VydmVzM0QgPDwgIilcbiI7CiAK
LSAgICBpZiAobV9kcmF3c0NvbnRlbnQgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9y
TGF5ZXIodGhpcywgImRyYXdzQ29udGVudCIsIGJlaGF2aW9yKSkKKyAgICBpZiAobV9kcmF3c0Nv
bnRlbnQgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgImRyYXdz
Q29udGVudCIsIG9wdGlvbnMpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihkcmF3c0NvbnRl
bnQgIiA8PCBtX2RyYXdzQ29udGVudCA8PCAiKVxuIjsKIAogICAgIGlmICghbV9jb250ZW50c1Zp
c2libGUpCkBAIC05MTYsMTYgKzkxNiwxNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgogICAg
IGlmICghbV9iYWNrZmFjZVZpc2liaWxpdHkpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGJh
Y2tmYWNlVmlzaWJpbGl0eSAiIDw8IChtX2JhY2tmYWNlVmlzaWJpbGl0eSA/ICJ2aXNpYmxlIiA6
ICJoaWRkZW4iKSA8PCAiKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4
dERlYnVnKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcp
CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHByaW1hcnktbGF5ZXItaWQgIiA8PCBwcmltYXJ5
TGF5ZXJJRCgpIDw8ICIpXG4iOwogCi0gICAgaWYgKG1fYmFja2dyb3VuZENvbG9yLmlzVmFsaWQo
KSAmJiBjbGllbnQoKS5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAiYmFja2dyb3Vu
ZENvbG9yIiwgYmVoYXZpb3IpKQorICAgIGlmIChtX2JhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkg
JiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgImJhY2tncm91bmRD
b2xvciIsIG9wdGlvbnMpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihiYWNrZ3JvdW5kQ29s
b3IgIiA8PCBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChtX2JhY2tncm91bmRDb2xv
cikgPDwgIilcbiI7CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRl
QWNjZWxlcmF0ZXNEcmF3aW5nICYmIG1fYWNjZWxlcmF0ZXNEcmF3aW5nKQorICAgIGlmIChvcHRp
b25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyAm
JiBtX2FjY2VsZXJhdGVzRHJhd2luZykKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoYWNjZWxl
cmF0ZXNEcmF3aW5nICIgPDwgbV9hY2NlbGVyYXRlc0RyYXdpbmcgPDwgIilcbiI7CiAKLSAgICBp
ZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQp
CisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQmFja2lu
Z1N0b3JlQXR0YWNoZWQpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGJhY2tpbmdTdG9yZUF0
dGFjaGVkICIgPDwgYmFja2luZ1N0b3JlQXR0YWNoZWRGb3JUZXN0aW5nKCkgPDwgIilcbiI7CiAK
ICAgICBpZiAobV90cmFuc2Zvcm0gJiYgIW1fdHJhbnNmb3JtLT5pc0lkZW50aXR5KCkpIHsKQEAg
LTk0OCwzMiArOTQ4LDMyIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4
dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2CiAKICAgICBpZiAobV9t
YXNrTGF5ZXIpIHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIobWFzayBsYXllciI7Ci0gICAg
ICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgICAgICBpZiAob3B0
aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICAgICAgdHMgPDwg
IiAiIDw8IG1fbWFza0xheWVyLmdldCgpOwogICAgICAgICB0cyA8PCAiKVxuIjsKIAogICAgICAg
ICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgICAgIG1fbWFz
a0xheWVyLT5kdW1wTGF5ZXIodHMsIGJlaGF2aW9yKTsKKyAgICAgICAgbV9tYXNrTGF5ZXItPmR1
bXBMYXllcih0cywgb3B0aW9ucyk7CiAgICAgfQogCiAgICAgaWYgKG1fcmVwbGljYUxheWVyKSB7
CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHJlcGxpY2EgbGF5ZXIiOwotICAgICAgICBpZiAo
YmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykKKyAgICAgICAgaWYgKG9wdGlvbnMgJiBM
YXllclRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykKICAgICAgICAgICAgIHRzIDw8ICIgIiA8PCBt
X3JlcGxpY2FMYXllci5nZXQoKTsKICAgICAgICAgdHMgPDwgIilcbiI7CiAKICAgICAgICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgICAgICBtX3JlcGxpY2FM
YXllci0+ZHVtcExheWVyKHRzLCBiZWhhdmlvcik7CisgICAgICAgIG1fcmVwbGljYUxheWVyLT5k
dW1wTGF5ZXIodHMsIG9wdGlvbnMpOwogICAgIH0KIAogICAgIGlmIChtX3JlcGxpY2F0ZWRMYXll
cikgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihyZXBsaWNhdGVkIGxheWVyIjsKLSAgICAg
ICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpCisgICAgICAgIGlmIChvcHRp
b25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgICAgICB0cyA8PCAi
ICIgPDwgbV9yZXBsaWNhdGVkTGF5ZXI7CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgIH0KIAot
ICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHMgJiYg
cmVwYWludFJlY3RNYXAoKS5jb250YWlucyh0aGlzKSAmJiAhcmVwYWludFJlY3RNYXAoKS5nZXQo
dGhpcykuaXNFbXB0eSgpICYmIGNsaWVudCgpLnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKHRo
aXMsICJyZXBhaW50UmVjdHMiLCBiZWhhdmlvcikpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVy
VHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSZXBhaW50UmVjdHMgJiYgcmVwYWludFJlY3RNYXAo
KS5jb250YWlucyh0aGlzKSAmJiAhcmVwYWludFJlY3RNYXAoKS5nZXQodGhpcykuaXNFbXB0eSgp
ICYmIGNsaWVudCgpLnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKHRoaXMsICJyZXBhaW50UmVj
dHMiLCBvcHRpb25zKSkgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihyZXBhaW50IHJlY3Rz
XG4iOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlcGFpbnRSZWN0TWFwKCkuZ2V0
KHRoaXMpLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBpZiAocmVwYWludFJlY3RNYXAoKS5n
ZXQodGhpcylbaV0uaXNFbXB0eSgpKQpAQCAtOTkwLDI3ICs5OTAsMjcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVlQXNUZXh0QmVo
YXZpb3IgYmVoYXYKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0KIAotICAg
IGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVFdmVudFJlZ2lvbiAmJiAhbV9l
dmVudFJlZ2lvbi5pc0VtcHR5KCkpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4
dE9wdGlvbnM6OkluY2x1ZGVFdmVudFJlZ2lvbiAmJiAhbV9ldmVudFJlZ2lvbi5pc0VtcHR5KCkp
IHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZXZlbnQgcmVnaW9uIiA8PCBtX2V2ZW50UmVn
aW9uOwogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilcbiI7CiAgICAgfQogICAgIAogI2lmIEVO
QUJMRShTQ1JPTExJTkdfVEhSRUFEKQotICAgIGlmICgoYmVoYXZpb3IgJiBMYXllclRyZWVBc1Rl
eHREZWJ1ZykgJiYgbV9zY3JvbGxpbmdOb2RlSUQpCisgICAgaWYgKChvcHRpb25zICYgTGF5ZXJU
cmVlQXNUZXh0T3B0aW9uczo6RGVidWcpICYmIG1fc2Nyb2xsaW5nTm9kZUlEKQogICAgICAgICB0
cyA8PCBpbmRlbnQgPDwgIihzY3JvbGxpbmcgbm9kZSAiIDw8IG1fc2Nyb2xsaW5nTm9kZUlEIDw8
ICIpXG4iOwogI2VuZGlmCiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNs
dWRlUGFpbnRpbmdQaGFzZXMgJiYgcGFpbnRpbmdQaGFzZSgpKQorICAgIGlmIChvcHRpb25zICYg
TGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVBhaW50aW5nUGhhc2VzICYmIHBhaW50aW5n
UGhhc2UoKSkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocGFpbnRpbmdQaGFzZXMgIiA8PCBw
YWludGluZ1BoYXNlKCkgPDwgIilcbiI7CiAKLSAgICBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMo
dHMsIGJlaGF2aW9yKTsKKyAgICBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXModHMsIG9wdGlvbnMp
OwogICAgIAogICAgIGlmIChtX2NoaWxkcmVuLnNpemUoKSkgewogICAgICAgICBUZXh0U3RyZWFt
IGNoaWxkcmVuU3RyZWFtOwogICAgICAgICAKICAgICAgICAgY2hpbGRyZW5TdHJlYW0uaW5jcmVh
c2VJbmRlbnQodHMuaW5kZW50KCkpOwogICAgICAgICB1bnNpZ25lZCB0b3RhbENoaWxkQ291bnQg
PSAwOwotICAgICAgICBkdW1wQ2hpbGRyZW4oY2hpbGRyZW5TdHJlYW0sIG1fY2hpbGRyZW4sIHRv
dGFsQ2hpbGRDb3VudCwgYmVoYXZpb3IpOworICAgICAgICBkdW1wQ2hpbGRyZW4oY2hpbGRyZW5T
dHJlYW0sIG1fY2hpbGRyZW4sIHRvdGFsQ2hpbGRDb3VudCwgb3B0aW9ucyk7CiAKICAgICAgICAg
aWYgKHRvdGFsQ2hpbGRDb3VudCkgewogICAgICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoY2hp
bGRyZW4gIiA8PCB0b3RhbENoaWxkQ291bnQgPDwgIlxuIjsKQEAgLTEwNTgsMTEgKzEwNTgsMTEg
QEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgR3JhcGhpY3NM
YXllcjo6Q3VzdG9tQXBwZWFyYW5jZSYgY3UKICAgICByZXR1cm4gdHM7CiB9CiAKLVN0cmluZyBH
cmFwaGljc0xheWVyOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXZpb3IpIGNvbnN0CitTdHJpbmcgR3JhcGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0KE9wdGlv
blNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIFRleHRT
dHJlYW0gdHMoVGV4dFN0cmVhbTo6TGluZU1vZGU6Ok11bHRpcGxlTGluZSwgVGV4dFN0cmVhbTo6
Rm9ybWF0dGluZzo6U1ZHU3R5bGVSZWN0KTsKIAotICAgIGR1bXBMYXllcih0cywgYmVoYXZpb3Ip
OworICAgIGR1bXBMYXllcih0cywgb3B0aW9ucyk7CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsK
IH0KIApAQCAtMTA3NCw3ICsxMDc0LDcgQEAgdm9pZCBzaG93R3JhcGhpY3NMYXllclRyZWUoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgaWYgKCFsYXllcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIG91dHB1dCA9IGxheWVyLT5sYXllclRyZWVBc1RleHQo
V2ViQ29yZTo6TGF5ZXJUcmVlQXNUZXh0U2hvd0FsbCk7CisgICAgU3RyaW5nIG91dHB1dCA9IGxh
eWVyLT5sYXllclRyZWVBc1RleHQoV2ViQ29yZTo6QWxsTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyk7
CiAgICAgV1RGTG9nQWx3YXlzKCIlc1xuIiwgb3V0cHV0LnV0ZjgoKS5kYXRhKCkpOwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKaW5kZXggM2IzYzExOGJmZDQ2YzViODQwNWVhN2I4MTEzYWY1OWI5NjY3MWJlOS4uZWM3YjQ0
NzQ4YWZiZjU5Yzk2YzRiYTBmNTNjYWJjN2VjMDVkYmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNTQwLDcgKzU0MCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNPcmllbnRhdGlvbihDb21wb3Np
dGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9jb250ZW50c09yaWVu
dGF0aW9uID0gb3JpZW50YXRpb247IH0KICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50
YXRpb24gY29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNPcmll
bnRhdGlvbjsgfQogCi0gICAgdm9pZCBkdW1wTGF5ZXIoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7
CisgICAgdm9pZCBkdW1wTGF5ZXIoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM+ID0geyB9KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93
RGVidWdCb3JkZXIoYm9vbCBzaG93KSB7IG1fc2hvd0RlYnVnQm9yZGVyID0gc2hvdzsgfQogICAg
IGJvb2wgaXNTaG93aW5nRGVidWdCb3JkZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0Jv
cmRlcjsgfQpAQCAtNjAwLDcgKzYwMCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybiBhIHN0
cmluZyB3aXRoIGEgaHVtYW4gcmVhZGFibGUgZm9ybSBvZiB0aGUgbGF5ZXIgdHJlZSwgSWYgZGVi
dWcgaXMgdHJ1ZQogICAgIC8vIHBvaW50ZXJzIGZvciB0aGUgbGF5ZXJzIGFuZCB0aW1pbmcgZGF0
YSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCi0gICAgV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgbGF5ZXJUcmVlQXNUZXh0KE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiA9
IHsgfSkgY29uc3Q7CiAKICAgICAvLyBGb3IgdGVzdGluZy4KICAgICB2aXJ0dWFsIFN0cmluZyBk
aXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MpIGNvbnN0IHsgcmV0dXJu
IFN0cmluZygpOyB9CkBAIC02NzksOCArNjc5LDggQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKIAot
ICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0
QmVoYXZpb3IpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IHsgfQor
ICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVy
VHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZHVtcEFkZGl0aW9u
YWxQcm9wZXJ0aWVzKFdURjo6VGV4dFN0cmVhbSYsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRP
cHRpb25zPikgY29uc3QgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZ2V0
RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CmluZGV4IDJhNDIyZWYzZmE5NjFmNDFiZWRjNmJmYjdjMGFhNTNhNmY5NTVmNjkuLjA4Mzc3Nzc4
NGY1YjlhYmYzYWFjN2NkMjM2OWMyYmNiMGI1ZWIzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJMYXllclRyZWVBc1RleHRPcHRp
b25zLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRp
b25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjgsMjUgKzY5LDYgQEAg
aW5saW5lIGJvb2wgYW5pbWF0ZWRQcm9wZXJ0eUlzVHJhbnNmb3JtT3JSZWxhdGVkKEFuaW1hdGVk
UHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICByZXR1cm4gcHJvcGVydHkgPT0gQW5pbWF0ZWRQcm9w
ZXJ0eVRyYW5zZm9ybSB8fCBwcm9wZXJ0eSA9PSBBbmltYXRlZFByb3BlcnR5VHJhbnNsYXRlIHx8
IHByb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlTY2FsZSB8fCBwcm9wZXJ0eSA9PSBBbmltYXRl
ZFByb3BlcnR5Um90YXRlOwogfQogCi1lbnVtIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yRmxhZ3Mg
ewotICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsICAgICAgICAgICAgICAgPSAwLAot
ICAgIExheWVyVHJlZUFzVGV4dERlYnVnICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAs
IC8vIER1bXAgZXh0cmEgZGVidWdnaW5nIGluZm8gbGlrZSBsYXllciBhZGRyZXNzZXMuCi0gICAg
TGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyAgICAgICAgICA9IDEgPDwgMSwKLSAg
ICBMYXllclRyZWVBc1RleHRJbmNsdWRlVGlsZUNhY2hlcyAgICAgICAgICAgID0gMSA8PCAyLAot
ICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHMgICAgICAgICAgPSAxIDw8IDMs
Ci0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVBhaW50aW5nUGhhc2VzICAgICAgICA9IDEgPDwg
NCwKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlQ29udGVudExheWVycyAgICAgICAgID0gMSA8
PCA1LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWdlT3ZlcmxheUxheWVycyAgICAgPSAx
IDw8IDYsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyAgICA9
IDEgPDwgNywKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlQ2xpcHBpbmcgICAgICAgICAgICAg
ID0gMSA8PCA4LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hl
ZCAgPSAxIDw8IDksCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJvb3RMYXllclByb3BlcnRp
ZXMgICA9IDEgPDwgMTAsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2ZW50UmVnaW9uICAg
ICAgICAgICA9IDEgPDwgMTEsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZURlZXBDb2xvciAg
ICAgICAgICAgICA9IDEgPDwgMTIsCi0gICAgTGF5ZXJUcmVlQXNUZXh0U2hvd0FsbCAgICAgICAg
ICAgICAgICAgICAgICA9IDB4RkZGRgotfTsKLXR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3I7Ci0KIGVudW0gY2xhc3MgUGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncyA6
IHVpbnQ4X3QgewogICAgIERlYnVnID0gMSA8PCAwLAogICAgIElnbm9yZUNoaWxkcmVuID0gMSA8
PCAxLApAQCAtMTM5LDggKzEyMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Ry
YWNraW5nUmVwYWludHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBj
aGFyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWdn
cmVzc2l2ZWx5UmV0YWluVGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNv
aG9ydHMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheWVyVHJlZUFzVGV4dE9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheWVyVHJlZUFzVGV4
dE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjAyNWY5NGU4OTAzYWJmYWUzMGEwZTg4ZGZiZjBkZTlh
NWVmYjMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIExheWVyVHJlZUFzVGV4dE9wdGlvbnMgOiB1aW50MTZfdCB7CisgICAgRGVidWcgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwgLy8gRHVtcCBleHRyYSBkZWJ1Z2dpbmcgaW5m
byBsaWtlIGxheWVyIGFkZHJlc3Nlcy4KKyAgICBJbmNsdWRlVmlzaWJsZVJlY3RzICAgICAgICAg
ID0gMSA8PCAxLAorICAgIEluY2x1ZGVUaWxlQ2FjaGVzICAgICAgICAgICAgPSAxIDw8IDIsCisg
ICAgSW5jbHVkZVJlcGFpbnRSZWN0cyAgICAgICAgICA9IDEgPDwgMywKKyAgICBJbmNsdWRlUGFp
bnRpbmdQaGFzZXMgICAgICAgID0gMSA8PCA0LAorICAgIEluY2x1ZGVDb250ZW50TGF5ZXJzICAg
ICAgICAgPSAxIDw8IDUsCisgICAgSW5jbHVkZVBhZ2VPdmVybGF5TGF5ZXJzICAgICA9IDEgPDwg
NiwKKyAgICBJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nICAgID0gMSA8PCA3LAorICAgIEluY2x1
ZGVDbGlwcGluZyAgICAgICAgICAgICAgPSAxIDw8IDgsCisgICAgSW5jbHVkZUJhY2tpbmdTdG9y
ZUF0dGFjaGVkICA9IDEgPDwgOSwKKyAgICBJbmNsdWRlUm9vdExheWVyUHJvcGVydGllcyAgID0g
MSA8PCAxMCwKKyAgICBJbmNsdWRlRXZlbnRSZWdpb24gICAgICAgICAgID0gMSA8PCAxMSwKKyAg
ICBJbmNsdWRlRGVlcENvbG9yICAgICAgICAgICAgID0gMSA8PCAxMiwKK307CisKK3N0YXRpYyBj
b25zdGV4cHIgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IEFsbExheWVyVHJlZUFz
VGV4dE9wdGlvbnMgPSB7CisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcsCisgICAg
TGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVZpc2libGVSZWN0cywKKyAgICBMYXllclRy
ZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVGlsZUNhY2hlcywKKyAgICBMYXllclRyZWVBc1RleHRP
cHRpb25zOjpJbmNsdWRlUmVwYWludFJlY3RzLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6
OkluY2x1ZGVQYWludGluZ1BoYXNlcywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNs
dWRlQ29udGVudExheWVycywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFn
ZU92ZXJsYXlMYXllcnMsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUFjY2Vs
ZXJhdGVzRHJhd2luZywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQ2xpcHBp
bmcsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUJhY2tpbmdTdG9yZUF0dGFj
aGVkLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSb290TGF5ZXJQcm9wZXJ0
aWVzLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVFdmVudFJlZ2lvbiwKKyAg
ICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlRGVlcENvbG9yLAorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggY2RjZGJiYTI4MzQwYjFmMjIzN2Vm
NDdlMTcwZjI4MGY0M2E3ZTI3OS4uNjc5MzJhZWI3ZTQ3ZmM2ZjJkMzk5M2JmNTM1YjA5YTlhYjhh
M2RiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC00MjA3LDE3ICs0MjA3LDE3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpkdW1wTGF5ZXJDaGFuZ2VGbGFncyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBM
YXllckNoYW5nZUZsCiAgICAgdGV4dFN0cmVhbSA8PCAiIH0iOwogfQogCi12b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRTdHJlYW0s
IExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2aW9yKSBjb25zdAordm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBP
cHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBp
ZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3RzKSB7CisgICAg
aWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVmlzaWJsZVJlY3Rz
KSB7CiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIodmlzaWJsZSByZWN0ICIgPDwg
bV92aXNpYmxlUmVjdC54KCkgPDwgIiwgIiA8PCBtX3Zpc2libGVSZWN0LnkoKSA8PCAiICIgPDwg
bV92aXNpYmxlUmVjdC53aWR0aCgpIDw8ICIgeCAiIDw8IG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCkg
PDwgIilcbiI7CiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIoY292ZXJhZ2UgcmVj
dCAiIDw8IG1fY292ZXJhZ2VSZWN0LngoKSA8PCAiLCAiIDw8IG1fY292ZXJhZ2VSZWN0LnkoKSA8
PCAiICIgPDwgbV9jb3ZlcmFnZVJlY3Qud2lkdGgoKSA8PCAiIHggIiA8PCBtX2NvdmVyYWdlUmVj
dC5oZWlnaHQoKSA8PCAiKVxuIjsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIihp
bnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgIiA8PCBtX2ludGVyc2VjdHNDb3ZlcmFnZVJlY3QgPDwg
IilcbiI7CiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIoY29udGVudHNTY2FsZSAi
IDw8IG1fbGF5ZXItPmNvbnRlbnRzU2NhbGUoKSA8PCAiKVxuIjsKICAgICB9CiAKLSAgICBpZiAo
dGlsZWRCYWNraW5nKCkgJiYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVRpbGVD
YWNoZXMpKSB7Ci0gICAgICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQor
ICAgIGlmICh0aWxlZEJhY2tpbmcoKSAmJiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVUaWxlQ2FjaGVzKSkgeworICAgICAgICBpZiAob3B0aW9ucyAmIExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQg
PDwgIih0aWxlZCBiYWNraW5nICIgPDwgdGlsZWRCYWNraW5nKCkgPDwgIilcbiI7CiAKICAgICAg
ICAgSW50UmVjdCB0aWxlQ292ZXJhZ2VSZWN0ID0gdGlsZWRCYWNraW5nKCktPnRpbGVDb3ZlcmFn
ZVJlY3QoKTsKQEAgLTQyMzIsMTIgKzQyMzIsMTIgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmR1
bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBMYXllclRyZWUK
ICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIihpbiB3aW5kb3cgIiA8PCB0aWxlZEJh
Y2tpbmcoKS0+aXNJbldpbmRvdygpIDw8ICIpXG4iOwogICAgIH0KIAotICAgIGlmICgoYmVoYXZp
b3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlRGVlcENvbG9yKSAmJiBtX2xheWVyLT53YW50c0Rl
ZXBDb2xvckJhY2tpbmdTdG9yZSgpKQorICAgIGlmICgob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4
dE9wdGlvbnM6OkluY2x1ZGVEZWVwQ29sb3IpICYmIG1fbGF5ZXItPndhbnRzRGVlcENvbG9yQmFj
a2luZ1N0b3JlKCkpCiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIoZGVlcCBjb2xv
ciAxKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250
ZW50TGF5ZXJzKSB7CisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJ
bmNsdWRlQ29udGVudExheWVycykgewogICAgICAgICBPcHRpb25TZXQ8UGxhdGZvcm1MYXllclRy
ZWVBc1RleHRGbGFncz4gcGxhdGZvcm1GbGFncyA9IHsgUGxhdGZvcm1MYXllclRyZWVBc1RleHRG
bGFnczo6SWdub3JlQ2hpbGRyZW4gfTsKLSAgICAgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVl
QXNUZXh0RGVidWcpCisgICAgICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9u
czo6RGVidWcpCiAgICAgICAgICAgICBwbGF0Zm9ybUZsYWdzLmFkZChQbGF0Zm9ybUxheWVyVHJl
ZUFzVGV4dEZsYWdzOjpEZWJ1Zyk7CiAgICAgICAgIGR1bXBJbm5lckxheWVyKHRleHRTdHJlYW0s
IG1fc3RydWN0dXJhbExheWVyLmdldCgpLCBwbGF0Zm9ybUZsYWdzKTsKICAgICAgICAgZHVtcElu
bmVyTGF5ZXIodGV4dFN0cmVhbSwgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXIuZ2V0KCksIHBsYXRm
b3JtRmxhZ3MpOwpAQCAtNDI0OCw3ICs0MjQ4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmR1
bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBMYXllclRyZWUK
ICAgICAgICAgZHVtcElubmVyTGF5ZXIodGV4dFN0cmVhbSwgbV9iYWNrZHJvcExheWVyLmdldCgp
LCBwbGF0Zm9ybUZsYWdzKTsKICAgICB9CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVB
c1RleHREZWJ1ZykgeworICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6
RGVidWcpIHsKICAgICAgICAgaWYgKG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZykKICAgICAgICAg
ICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIodXNlcyBkaXNwbGF5LWxpc3QgZHJhd2luZyAi
IDw8IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZyA8PCAiKVxuIjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCAw
MmRjMzkwYjRhNWI2MmU1ODU4MWU5MzA4MGMwNWUzOThkYzE1MjgzLi40YmNmNDU0MmNhNzdlMWY0
MmVlMWE5OTBiOTI5ZWMxMzZlNjcyMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMzA5LDcgKzMwOSw3IEBA
IHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihS
ZWZQdHI8R3JhcGhpY3NMYXllcj4mJikgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGdldERlYnVnQm9yZGVySW5mbyhDb2xvciYsIGZsb2F0JiB3aWR0aCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RG
OjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFdURjo6VGV4
dFN0cmVhbSYsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkdW1wSW5uZXJMYXllcihXVEY6OlRleHRTdHJlYW0mLCBQbGF0Zm9ybUNB
TGF5ZXIqLCBPcHRpb25TZXQ8UGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncz4pIGNvbnN0Owog
ICAgIGNvbnN0IGNoYXIgKnB1cnBvc2VOYW1lRm9ySW5uZXJMYXllcihQbGF0Zm9ybUNBTGF5ZXIm
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAppbmRleCA4NDQ1MjA2ZGZkZTc5ZWNhNzJhZTQ0OTU3YjdjODFlNTNj
MGM5Nzk0Li5hNzQ5MDdjZTFjYjcwMWI3ODcwZDA4YmJjY2UwNDIzN2Q4YTRhMzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtMTQ3MCwxMyArMTQ3MCwxMyBAQCBQbGF0Zm9ybUxheWVyKiBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogfQogI2VuZGlmCiAKLXN0YXRpYyB2b2lk
IGR1bXBJbm5lckxheWVyKFRleHRTdHJlYW0mIHRleHRTdHJlYW0sIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIsIExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yIGJlaGF2aW9yKQorc3RhdGljIHZvaWQgZHVtcElubmVyTGF5ZXIoVGV4dFN0cmVhbSYgdGV4
dFN0cmVhbSwgY29uc3QgU3RyaW5nJiBsYWJlbCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBs
YXllciwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMpCiB7CiAgICAg
aWYgKCFsYXllcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQg
PDwgIigiIDw8IGxhYmVsIDw8ICIgIjsKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1Rl
eHREZWJ1ZykKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVn
KQogICAgICAgICB0ZXh0U3RyZWFtIDw8ICIgIiA8PCBzdGF0aWNfY2FzdDx2b2lkKj4obGF5ZXIp
OwogICAgIHRleHRTdHJlYW0gPDwgbGF5ZXItPmJvdW5kc09yaWdpbigpLngoKSA8PCAiLCAiIDw8
IGxheWVyLT5ib3VuZHNPcmlnaW4oKS55KCkgPDwgIiAiIDw8IGxheWVyLT5zaXplKCkud2lkdGgo
KSA8PCAiIHggIiA8PCBsYXllci0+c2l6ZSgpLmhlaWdodCgpOwogICAgIGlmICghbGF5ZXItPmNv
bnRlbnRzQXJlVmlzaWJsZSgpKQpAQCAtMTQ4NCwxMCArMTQ4NCwxMCBAQCBzdGF0aWMgdm9pZCBk
dW1wSW5uZXJMYXllcihUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBjb25zdCBTdHJpbmcmIGxhYmVs
LCBDb29yZGluYQogICAgIHRleHRTdHJlYW0gPDwgIilcbiI7CiB9CiAKLXZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdGV4
dFN0cmVhbSwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJl
YW0mIHRleHRTdHJlYW0sIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250
ZW50TGF5ZXJzKQotICAgICAgICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCAiYmFja2Ryb3Ag
bGF5ZXIiLCBtX2JhY2tkcm9wTGF5ZXIuZ2V0KCksIGJlaGF2aW9yKTsKKyAgICBpZiAob3B0aW9u
cyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzKQorICAgICAg
ICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCAiYmFja2Ryb3AgbGF5ZXIiLCBtX2JhY2tkcm9w
TGF5ZXIuZ2V0KCksIG9wdGlvbnMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5k
ZXggNjRhNzA5ZTBkMTNkYzZjOTUwMGM3NjU4YmVjMmJjZWNkNzJiMzIyNi4uNjg5NmM1ZTViMDI0
MzgzZDc1OTU3ODkxYzk1YjBjN2NmZDc1YjRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKE1vbm90b25pY1RpbWUpIG92ZXJyaWRl
OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpIG92ZXJyaWRlOwogICAgIGJvb2wgdXNlc0Nv
bnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGR1bXBBZGRpdGlvbmFsUHJv
cGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RGOjpUZXh0U3Ry
ZWFtJiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsK
IAogI2lmIFVTRShOSUNPU0lBKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggY2U3NjlmODVkNjFhOTRhNDhhMmQ3MjhkNzEwMDlmYzE4ZmU5MDZj
MS4uNmU4YWI5MWFmNWQxMDgwY2Q3YWI4ODJkYjU3NDkzNGMwMmEyMzI2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTM1NTYsMjAg
KzM1NTYsMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmlzVHJhY2tpbmdSZXBhaW50cygp
IGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDbGllbnQmPihjb21w
b3NpdG9yKCkpLmlzVHJhY2tpbmdSZXBhaW50cygpOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFj
a2luZzo6c2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBM
YXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJC
YWNraW5nOjpzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIs
IE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgIGlmIChvcHRpb25zICYg
TGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIFNraXAgdGhlIHJvb3QgdGlsZSBjYWNoZSdzIGZsYXR0ZW5pbmcgbGF5ZXIuCiAgICAg
cmV0dXJuIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIgJiYgbGF5ZXIgJiYgbGF5ZXIgPT0g
bV9jaGlsZENvbnRhaW5tZW50TGF5ZXIuZ2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXll
ciwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBmbGFn
cykgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JM
YXllcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllciwgY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAg
ICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBXZWJLaXQxIGFuZCBvdGhlciBw
bGF0Zm9ybXMsCiAgICAgLy8gc2tpcCBzb21lIHByb3BlcnRpZXMgb24gdGhlIHJvb3QgdGlsZSBj
YWNoZS4KLSAgICBpZiAobV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllciAmJiBsYXllciA9PSBt
X2dyYXBoaWNzTGF5ZXIuZ2V0KCkgJiYgIShmbGFncyAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVS
b290TGF5ZXJQcm9wZXJ0aWVzKSkgeworICAgIGlmIChtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xh
eWVyICYmIGxheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSAmJiAhKG9wdGlvbnMgJiBMYXll
clRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUm9vdExheWVyUHJvcGVydGllcykpIHsKICAgICAg
ICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAiZHJhd3NDb250ZW50IikpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAppbmRleCAxOTNjNWQxNzVjZWU5OGRmYzA2MGRlMWM4ZDZhMjMxOTQ4OWNkNDdk
Li5hMjBkMzI0NWU0MTkxZDkxNGFmMzFiOGYzZmUyNmMxZGJhNjZkMzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0yNDAsOCArMjQwLDgg
QEAgcHVibGljOgogICAgIGJvb2wgZ2V0Q3VycmVudFRyYW5zZm9ybShjb25zdCBHcmFwaGljc0xh
eWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wg
aXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRTa2lw
TGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciosIExheWVyVHJlZUFzVGV4dEJlaGF2aW9y
KSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIExheWVyVHJlZUFz
VGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFNraXBMYXllcklu
RHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVy
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIE9wdGlvblNl
dDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHNo
b3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIHNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHMoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA1YTVlZjZiNzE3OTM0
YmU0N2YzZTI3YzVlNDVlNThmZGIyZGQwMmI5Li5mZGJlMmNiMDUwYjU4OTEzN2E2ZjY5ZjgzODMx
YTllYjcwNzI1Mzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjMyOCw3ICsyMzI4LDcgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nRm9yTGF5ZXJUcmVlQXNUZXh0RHVtcCgpCiAg
ICAgcGFnZSgpLnRyaWdnZXJSZW5kZXJpbmdVcGRhdGVGb3JUZXN0aW5nKCk7CiB9CiAKLVN0cmlu
ZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyBm
bGFncykKK1N0cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChPcHRp
b25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yICIgPDwg
dGhpcyA8PCAiIGxheWVyVHJlZUFzVGV4dCIpOwogCkBAIC0yMzM3LDQ0ICsyMzM3LDE4IEBAIFN0
cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFn
cyBmbGFncykKICAgICBpZiAoIW1fcm9vdENvbnRlbnRzTGF5ZXIpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGxheWVyVHJlZUJlaGF2aW9y
ID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWw7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBM
YXllclRyZWVBc1RleHREZWJ1ZzsKLSAgICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1
ZGVWaXNpYmxlUmVjdHMpCi0gICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFz
VGV4dEluY2x1ZGVWaXNpYmxlUmVjdHM7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlVGlsZUNhY2hlcykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVl
QXNUZXh0SW5jbHVkZVRpbGVDYWNoZXM7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlUmVwYWludFJlY3RzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRy
ZWVBc1RleHRJbmNsdWRlUmVwYWludFJlY3RzOwotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZs
YWdzSW5jbHVkZVBhaW50aW5nUGhhc2VzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBM
YXllclRyZWVBc1RleHRJbmNsdWRlUGFpbnRpbmdQaGFzZXM7Ci0gICAgaWYgKGZsYWdzICYgTGF5
ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVycykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZp
b3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUNvbnRlbnRMYXllcnM7Ci0gICAgaWYgKGZsYWdz
ICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nKQotICAgICAgICBsYXll
clRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5n
OwotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZUNsaXBwaW5nKQotICAgICAg
ICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlQ2xpcHBpbmc7Ci0g
ICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQp
Ci0gICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVCYWNr
aW5nU3RvcmVBdHRhY2hlZDsKLSAgICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVS
b290TGF5ZXJQcm9wZXJ0aWVzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRy
ZWVBc1RleHRJbmNsdWRlUm9vdExheWVyUHJvcGVydGllczsKLSAgICBpZiAoZmxhZ3MgJiBMYXll
clRyZWVGbGFnc0luY2x1ZGVFdmVudFJlZ2lvbikKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3Ig
fD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2ZW50UmVnaW9uOwotICAgIGlmIChmbGFncyAmIExh
eWVyVHJlZUZsYWdzSW5jbHVkZURlZXBDb2xvcikKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3Ig
fD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZURlZXBDb2xvcjsKLQogICAgIC8vIFdlIHNraXAgZHVt
cGluZyB0aGUgc2Nyb2xsIGFuZCBjbGlwIGxheWVycyB0byBrZWVwIGxheWVyVHJlZUFzVGV4dCBv
dXRwdXQKICAgICAvLyBzaW1pbGFyIGJldHdlZW4gcGxhdGZvcm1zLgotICAgIFN0cmluZyBsYXll
clRyZWVUZXh0ID0gbV9yb290Q29udGVudHNMYXllci0+bGF5ZXJUcmVlQXNUZXh0KGxheWVyVHJl
ZUJlaGF2aW9yKTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlVGV4dCA9IG1fcm9vdENvbnRlbnRzTGF5
ZXItPmxheWVyVHJlZUFzVGV4dChvcHRpb25zKTsKIAogICAgIC8vIER1bXAgYW4gZW1wdHkgbGF5
ZXIgdHJlZSBvbmx5IGlmIHRoZSBvbmx5IGNvbXBvc2l0ZWQgbGF5ZXIgaXMgdGhlIG1haW4gZnJh
bWUncyB0aWxlZCBiYWNraW5nLAogICAgIC8vIHNvIHRoYXQgdGVzdHMgZXhwZWN0aW5nIHVzIHRv
IGRyb3Agb3V0IG9mIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHdoZW4gdGhlcmUgYXJlIG5vIGxh
eWVycyBzdWNjZWVkLgotICAgIGlmICghaGFzQ29udGVudENvbXBvc2l0aW5nTGF5ZXJzKCkgJiYg
ZG9jdW1lbnRVc2VzVGlsZWRCYWNraW5nKCkgJiYgIShsYXllclRyZWVCZWhhdmlvciAmIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzKSAmJiAhKGxheWVyVHJlZUJlaGF2aW9yICYgTGF5
ZXJUcmVlQXNUZXh0SW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMpKQorICAgIGlmICghaGFzQ29u
dGVudENvbXBvc2l0aW5nTGF5ZXJzKCkgJiYgZG9jdW1lbnRVc2VzVGlsZWRCYWNraW5nKCkgJiYg
IShvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVRpbGVDYWNoZXMpICYm
ICEob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSb290TGF5ZXJQcm9w
ZXJ0aWVzKSkKICAgICAgICAgbGF5ZXJUcmVlVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAKICAgICAv
LyBUaGUgdHJ1ZSByb290IGxheWVyIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgZHVtcCwgc28gaWYg
d2Ugd2FudCB0byByZXBvcnQKICAgICAvLyBpdHMgcmVwYWludCByZWN0cywgdGhleSBtdXN0IGJl
IGluY2x1ZGVkIGhlcmUuCi0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUmVw
YWludFJlY3RzKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5j
bHVkZVJlcGFpbnRSZWN0cykKICAgICAgICAgcmV0dXJuIG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KS50cmFja2VkUmVwYWludFJlY3RzQXNUZXh0KCkgKyBsYXllclRyZWVUZXh0OwogCiAgICAgcmV0
dXJuIGxheWVyVHJlZVRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggZDEyZjFjNWNjYzFlZDU0NmUyZjkwMDA4NTdiNDhkZTZj
OGMwNmY2MC4uMDc1MjAwNDUxZDM2NzNiZDdjNGI2YmY4ZWU4YWNhMDE1YzAzOWVmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAt
NDcsOCArNDcsNiBAQCBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvcjsKIGNsYXNzIFN0aWNreVBv
c2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFRpbGVkQmFja2luZzsKIAotdHlwZWRl
ZiB1bnNpZ25lZCBMYXllclRyZWVGbGFnczsKLQogZW51bSBjbGFzcyBDb21wb3NpdGluZ1VwZGF0
ZVR5cGUgewogICAgIEFmdGVyU3R5bGVDaGFuZ2UsCiAgICAgQWZ0ZXJMYXlvdXQsCkBAIC0zMTYs
MTAgKzMxNCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdpZGdldERpZENoYW5nZVNpemUoUmVu
ZGVyV2lkZ2V0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0
KExheWVyVHJlZUZsYWdzID0gMCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxh
eWVyVHJlZUFzVGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gPSB7IH0pIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0cmFja2VkUmVwYWludFJlY3RzQXNUZXh0
KCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KExh
eWVyVHJlZUZsYWdzID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxheWVyVHJlZUFz
VGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gPSB7IH0pOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChF
bGVtZW50JiwgT3B0aW9uU2V0PFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M+KTsKIAogICAg
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggMGVhZTA4ODlhM2QyMzQ0MWNhYWIyZWNiMmQ1ZDlmOTEw
ZjQ4ZGUwYS4uNjA1MmIwMDBjMjE4OGI5MGE3NjliMTE2NGNjOWViMjlmMzIxNzQzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjgxOCwzMSArMjgxOCwzMSBAQCBFeGNl
cHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VOdW1iZXIp
CiAgICAgcmV0dXJuIGRvY3VtZW50LT5pc1BhZ2VCb3hWaXNpYmxlKHBhZ2VOdW1iZXIpOwogfQog
Ci1zdGF0aWMgTGF5ZXJUcmVlRmxhZ3MgdG9MYXllclRyZWVGbGFncyh1bnNpZ25lZCBzaG9ydCBm
bGFncykKK3N0YXRpYyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gdG9MYXllclRy
ZWVBc1RleHRPcHRpb25zKHVuc2lnbmVkIHNob3J0IGZsYWdzKQogewotICAgIExheWVyVHJlZUZs
YWdzIGxheWVyVHJlZUZsYWdzID0gMDsKKyAgICBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0
aW9ucz4gbGF5ZXJUcmVlRmxhZ3M7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9U
UkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExh
eWVyVHJlZUZsYWdzSW5jbHVkZVZpc2libGVSZWN0czsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3Mu
YWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVWaXNpYmxlUmVjdHMpOwogICAgIGlm
IChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUykKLSAg
ICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlVGlsZUNhY2hlczsK
KyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1
ZGVUaWxlQ2FjaGVzKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5D
TFVERVNfUkVQQUlOVF9SRUNUUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVl
RmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5
ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJlcGFpbnRSZWN0cyk7CiAgICAgaWYgKGZsYWdz
ICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX1BBSU5USU5HX1BIQVNFUykKLSAgICAg
ICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXM7
CisgICAgICAgIGxheWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNs
dWRlUGFpbnRpbmdQaGFzZXMpOwogICAgIGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJF
RV9JTkNMVURFU19DT05URU5UX0xBWUVSUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5
ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVyczsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3Mu
YWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzKTsKICAgICBp
ZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfQUNDRUxFUkFURVNfRFJB
V0lORykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNj
ZWxlcmF0ZXNEcmF3aW5nOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNU
ZXh0T3B0aW9uczo6SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyk7CiAgICAgaWYgKGZsYWdzICYg
SW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX0NMSVBQSU5HKQotICAgICAgICBsYXllclRy
ZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVDbGlwcGluZzsKKyAgICAgICAgbGF5ZXJU
cmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDbGlwcGluZyk7CiAg
ICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX0JBQ0tJTkdfU1RP
UkVfQVRUQUNIRUQpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5j
bHVkZUJhY2tpbmdTdG9yZUF0dGFjaGVkOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5
ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUJhY2tpbmdTdG9yZUF0dGFjaGVkKTsKICAgICBp
ZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9Q
RVJUSUVTKQotICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVS
b290TGF5ZXJQcm9wZXJ0aWVzOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVl
QXNUZXh0T3B0aW9uczo6SW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMpOwogICAgIGlmIChmbGFn
cyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04pCi0gICAgICAg
IGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZUV2ZW50UmVnaW9uOworICAg
ICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUV2
ZW50UmVnaW9uKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVE
RVNfREVFUF9DT0xPUikKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlRGVlcENvbG9yOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNU
ZXh0T3B0aW9uczo6SW5jbHVkZURlZXBDb2xvcik7CiAKICAgICByZXR1cm4gbGF5ZXJUcmVlRmxh
Z3M7CiB9CkBAIC0yODU1LDcgKzI4NTUsNyBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFs
czo6bGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgc2hvcgogewog
ICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSB8fCAhZG9jdW1lbnQuZnJhbWUoKS0+Y29udGVudFJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKLSAgICByZXR1cm4gZG9jdW1lbnQuZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCktPmNvbXBv
c2l0b3IoKS5sYXllclRyZWVBc1RleHQodG9MYXllclRyZWVGbGFncyhmbGFncykpOworICAgIHJl
dHVybiBkb2N1bWVudC5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKS0+Y29tcG9zaXRvcigpLmxh
eWVyVHJlZUFzVGV4dCh0b0xheWVyVHJlZUFzVGV4dE9wdGlvbnMoZmxhZ3MpKTsKIH0KIAogRXhj
ZXB0aW9uT3I8dWludDY0X3Q+IEludGVybmFsczo6bGF5ZXJJREZvckVsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCkKQEAgLTQ2MjAsNyArNDYyMCw3IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJu
YWxzOjpwYWdlT3ZlcmxheUxheWVyVHJlZUFzVGV4dCh1bnNpZ25lZCBzaG9ydCBmbGFncykKIAog
ICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAot
ICAgIHJldHVybiBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnNpbmdsZXRvbigpLmxheWVyVHJlZUFz
VGV4dCgqZG9jdW1lbnQtPnBhZ2UoKSwgdG9MYXllclRyZWVGbGFncyhmbGFncykpOworICAgIHJl
dHVybiBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnNpbmdsZXRvbigpLmxheWVyVHJlZUFzVGV4dCgq
ZG9jdW1lbnQtPnBhZ2UoKSwgdG9MYXllclRyZWVBc1RleHRPcHRpb25zKGZsYWdzKSk7CiB9CiAK
IHZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmlldyBzdGF0ZXNTdHJpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5k
ZXggYjIzZmM4MWU3ZjJiMzhmMTNlNzYzZDA0MjA1ODNlZjIyYzlmMjZlOS4uZDk3NWYzYjQyODRm
M2I2NmE4ZDc3OTJmMDhiNjNkN2QzZDE1NDNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtNjcsMTMgKzY3LDEzIEBAIHZvaWQg
TW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgfQogfQog
Ci1TdHJpbmcgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpsYXllclRyZWVBc1RleHQoUGFnZSYgcGFn
ZSwgTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCitTdHJpbmcgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojps
YXllclRyZWVBc1RleHQoUGFnZSYgcGFnZSwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+IG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NMYXllciogdmlld092ZXJsYXlSb290ID0gcGFn
ZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS52aWV3T3ZlcmxheVJvb3RMYXllcigpOwogICAgIEdy
YXBoaWNzTGF5ZXIqIGRvY3VtZW50T3ZlcmxheVJvb3QgPSBwYWdlLnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmRvY3VtZW50T3ZlcmxheVJvb3RMYXllcigpOwogICAgIAotICAgIHJldHVybiAiVmll
dy1yZWxhdGl2ZTpcbiIgKyAodmlld092ZXJsYXlSb290ID8gdmlld092ZXJsYXlSb290LT5sYXll
clRyZWVBc1RleHQoZmxhZ3MgfCBMYXllclRyZWVBc1RleHRJbmNsdWRlUGFnZU92ZXJsYXlMYXll
cnMpIDogIihubyB2aWV3LXJlbGF0aXZlIG92ZXJsYXkgcm9vdCkiKQotICAgICAgICArICJcblxu
RG9jdW1lbnQtcmVsYXRpdmU6XG4iICsgKGRvY3VtZW50T3ZlcmxheVJvb3QgPyBkb2N1bWVudE92
ZXJsYXlSb290LT5sYXllclRyZWVBc1RleHQoZmxhZ3MgfCBMYXllclRyZWVBc1RleHRJbmNsdWRl
UGFnZU92ZXJsYXlMYXllcnMpIDogIihubyBkb2N1bWVudC1yZWxhdGl2ZSBvdmVybGF5IHJvb3Qp
Iik7CisgICAgcmV0dXJuICJWaWV3LXJlbGF0aXZlOlxuIiArICh2aWV3T3ZlcmxheVJvb3QgPyB2
aWV3T3ZlcmxheVJvb3QtPmxheWVyVHJlZUFzVGV4dChvcHRpb25zIHwgTGF5ZXJUcmVlQXNUZXh0
T3B0aW9uczo6SW5jbHVkZVBhZ2VPdmVybGF5TGF5ZXJzKSA6ICIobm8gdmlldy1yZWxhdGl2ZSBv
dmVybGF5IHJvb3QpIikKKyAgICAgICAgKyAiXG5cbkRvY3VtZW50LXJlbGF0aXZlOlxuIiArIChk
b2N1bWVudE92ZXJsYXlSb290ID8gZG9jdW1lbnRPdmVybGF5Um9vdC0+bGF5ZXJUcmVlQXNUZXh0
KG9wdGlvbnMgfCBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFnZU92ZXJsYXlMYXll
cnMpIDogIihubyBkb2N1bWVudC1yZWxhdGl2ZSBvdmVybGF5IHJvb3QpIik7CiB9CiAKIHZvaWQg
TW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2Uq
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmgKaW5k
ZXggNDY2ODdjZWIzZDgwNTY1YTI4ZWJhNTg3YmIwYjdhYTJlNzUxZGRiNi4uMWQ3N2FiNjVlNjAz
YWM2OGEwN2YxOTY1ZjI3MTFiNWM3NWNlYWY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5oCkBAIC0yNSwxNCArMjUsMTUgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk1vY2tQYWdlT3ZlcmxheS5o
IgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIFBhZ2U7CitlbnVtIGNs
YXNzIExheWVyVHJlZUFzVGV4dE9wdGlvbnMgOiB1aW50MTZfdDsKIAogY2xhc3MgTW9ja1BhZ2VP
dmVybGF5Q2xpZW50IGZpbmFsIDogcHVibGljIFBhZ2VPdmVybGF5OjpDbGllbnQgewogICAgIGZy
aWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxNb2NrUGFnZU92ZXJsYXlDbGllbnQ+OwpAQCAtNDQs
NyArNDUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1vY2tQYWdlT3ZlcmxheT4gaW5zdGFsbE92ZXJs
YXkoUGFnZSYsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSk7CiAgICAgdm9pZCB1bmluc3RhbGxB
bGxPdmVybGF5cygpOwogCi0gICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChQYWdlJiwgTGF5ZXJU
cmVlRmxhZ3MpOworICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoUGFnZSYsIE9wdGlvblNldDxM
YXllclRyZWVBc1RleHRPcHRpb25zPik7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUGFnZU92ZXJsYXlD
bGllbnQoKSA9IGRlZmF1bHQ7CiAK
</data>
<flag name="commit-queue"
          id="458647"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435748</attachid>
            <date>2021-08-17 23:09:59 -0700</date>
            <delta_ts>2021-08-19 08:47:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229226-20210817230958.patch</filename>
            <type>text/plain</type>
            <size>48791</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJhNDg2ZjI1MWM1Nzhm
Mjk0YWRhOWY0YjY5NGMwZjU0OGM0NjZlZC4uNzVjYmIyZmY1MjljZWNmMGJmOWMyMzQ2MmMwZWE3
MjVjZTBkNzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA4LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBkdXBs
aWNhdGUgTGF5ZXJUcmVlQXNUZXh0IGVudW1zIGFuZCB1c2UgYW4gT3B0aW9uU2V0PD4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJD
bGllbnQgaGFkIGVudW0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JGbGFncyBhbmQgRnJhbWUgaGFk
IGFuIGFub255bW91cworICAgICAgICBlbnVtIGFuZCB0eXBlZGVmIHVuc2lnbmVkIExheWVyVHJl
ZUZsYWdzLiBDbGVhbiB1cCBieSBhZGRpbmcgTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCisgICAg
ICAgIGFuZCB1c2luZyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gZXZlcnl3aGVy
ZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBw
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6OnNob3VsZFNraXBMYXllckluRHVtcCBjb25zdCk6CisgICAgICAgICog
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmR1
bXBMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpkdW1wQ2hpbGRyZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0IGNvbnN0KToKKyAgICAg
ICAgKHNob3dHcmFwaGljc0xheWVyVHJlZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmxheWVyVHJlZUFzVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6OnNob3VsZFNraXBM
YXllckluRHVtcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50
OjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHVtcElubmVyTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2hv
dWxkU2tpcExheWVySW5EdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bGF5ZXJUcmVlQXNUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9MYXllclRyZWVBc1RleHRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6bGF5ZXJUcmVlQXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cGFnZU92ZXJsYXlMYXllclRyZWVBc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9MYXllclRyZWVGbGFncyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrUGFn
ZU92ZXJsYXlDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BhZ2VPdmVybGF5Q2xp
ZW50OjpsYXllclRyZWVBc1RleHQpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5
Q2xpZW50Lmg6CisKIDIwMjEtMDgtMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgRGUtZHVwbGljYXRlIHRoZSBDb2NvYS1zcGVjaWZpYyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDYyYjZlZTE2ZDRj
MTA2ZWU3OGUwNTEwNjQ2YmQ2OWRlYjJjMmNmY2YuLjdkNGZkOGI3MjcxMjNiYjBkMjIwNzdkYWI1
MjIyMjU5MzI3YzNiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI4MCw2ICsxMjgwLDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3RIYXNoLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplSGFzaC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5
ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UG9pbnQu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0xheW91dFNpemUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDg0YzdkZWY3NmI3YTJkNzU0ODJiMmJiOWYwOGZmMDFiZTI1
MjU0YjkuLmNmNzFkOTc4MGMyNzA2MGI4YmQ4NDBlNWFmNzc0YWU2ZGU4ZTlkZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMx
Niw2ICszMTYsNyBAQAogCQkwRjQ5NjZBQjFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTY2QTUx
REI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnQuaCAqLzsgfTsKIAkJMEY0OTY2QUQxREI0MEM0
MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ5NjZBNzFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2lu
dEluaXQuaCAqLzsgfTsKIAkJMEY0OTY2QUYxREI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRS
ZWFkT25seS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY0OTY2QTkxREI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRSZWFkT25seS5oICovOyB9Owor
CQkwRjRENUQxODI2Q0NDNEFFMDBBOURGQzEgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MzZFQ0EyNkND
Qjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjUzRkI4NDIxM0I3QTY0MDBDNDBE
MzQgLyogUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1M0ZCODQyMTNCNzg2NDAwQzQwRDM0IC8qIFJlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjU0RENFNjE4ODEwNTFEMDAzRUVEQkIgLyogVGV4dEF1dG9TaXpp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTRE
Q0U0MTg4MTA1MUQwMDNFRURCQiAvKiBUZXh0QXV0b1NpemluZy5oICovOyB9OwogCQkwRjU0REQw
ODE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTRERDA1MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MjI1LDYg
KzYyMjYsNyBAQAogCQkwRjZCNzA3NzIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTVW5pdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2
QjcwNzkyMzdCQzEyRjAwNTJDQTQ3IC8qIENTU1VuaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENTU1VuaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDQ5NUQyMTFC
NTI0MjAwMzY5OTY4IC8qIEFjdGl2aXR5U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWN0
aXZpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNzM2RUNBMjZD
Q0I5N0EwMDBBRDdDQSAvKiBMYXllclRyZWVBc1RleHRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheWVyVHJlZUFzVGV4dE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OTBGM0QyNTE3Q0U2RDAwOUJB
MDM0IC8qIERpc3BsYXlWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpc3BsYXlWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OTBG
M0YyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERpc3BsYXlWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjYzNiw2ICsyNjYzOCw3IEBACiAJCQkJQjI3NTM1NDcwQjA1MzgxNDAwMkNFNjRGIC8qIElu
dFNpemUuaCAqLywKIAkJCQlCMjc1MzU0ODBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZUhhc2gu
aCAqLywKIAkJCQk2NUNDNkJFRDE2MDE0RUMwMDAwRUQyN0QgLyogTGF0aW4xVGV4dEl0ZXJhdG9y
LmggKi8sCisJCQkJMEY3MzZFQ0EyNkNDQjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9w
dGlvbnMuaCAqLywKIAkJCQkwRjM2RTczNjFCRDE4MzdBMDAyREI4OTEgLyogTGF5b3V0UG9pbnQu
Y3BwICovLAogCQkJCTE0MURDMDRCMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRQb2ludC5oICov
LAogCQkJCTE0MURDMDRDMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCAqLywKQEAg
LTMzMzg2LDYgKzMzMzg5LDcgQEAKIAkJCQkwRkVDMTIwQzIyQkYyQ0QyMDA0RTlEMzUgLyogTGF5
ZXJBbmNlc3RvckNsaXBwaW5nU3RhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2
NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjRENUQxODI2Q0NDNEFFMDBBOURGQzEgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTE1Q0ZBOTcyMDhCOTUyQjAwMUU2OTkxIC8qIExheW91dEJveC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjYyMEJBNEE1NjAwNjVBOEQwIC8qIExheW91dENoaWxk
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTExOTlGQTQ2MjA4RTM1QTMwMDIzNThDQyAv
KiBMYXlvdXRDb250YWluZXJCb3guaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4
IDM3YzFjYjZiNWQ3NzlkNWEzYzJhYmRkN2E2MjVlOTkwMTFkOTk3MWMuLmQ3NjI4NDUzZGE1MTUw
NjRhNGZiMTYxZGYzNDE4Y2QxYzM1MWJhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTExMywyMiAr
MTEzLDYgQEAgZW51bSBPdmVyZmxvd1Njcm9sbEFjdGlvbiB7IERvTm90UGVyZm9ybU92ZXJmbG93
U2Nyb2xsLCBQZXJmb3JtT3ZlcmZsb3dTY3JvbGwgfTsKIHVzaW5nIE5vZGVRdWFsaWZpZXIgPSBG
dW5jdGlvbjxOb2RlKiAoY29uc3QgSGl0VGVzdFJlc3VsdCYsIE5vZGUqIHRlcm1pbmF0aW9uTm9k
ZSwgSW50UmVjdCogbm9kZUJvdW5kcyk+OwogI2VuZGlmCiAKLWVudW0gewotICAgIExheWVyVHJl
ZUZsYWdzSW5jbHVkZURlYnVnSW5mbyAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlVmlzaWJsZVJlY3RzICAgICAgICAgICA9IDEgPDwgMSwKLSAgICBMYXll
clRyZWVGbGFnc0luY2x1ZGVUaWxlQ2FjaGVzICAgICAgICAgICAgID0gMSA8PCAyLAotICAgIExh
eWVyVHJlZUZsYWdzSW5jbHVkZVJlcGFpbnRSZWN0cyAgICAgICAgICAgPSAxIDw8IDMsCi0gICAg
TGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMgICAgICAgICA9IDEgPDwgNCwKLSAg
ICBMYXllclRyZWVGbGFnc0luY2x1ZGVDb250ZW50TGF5ZXJzICAgICAgICAgID0gMSA8PCA1LAot
ICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyAgICAgPSAxIDw8IDYs
Ci0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ2xpcHBpbmcgICAgICAgICAgICAgICA9IDEgPDwg
NywKLSAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hlZCAgID0gMSA8
PCA4LAotICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMgICAgPSAx
IDw8IDksCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRXZlbnRSZWdpb24gICAgICAgICAgICA9
IDEgPDwgMTAsCi0gICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlRGVlcENvbG9yICAgICAgICAgICAg
ICA9IDEgPDwgMTEsCi19OwotdHlwZWRlZiB1bnNpZ25lZCBMYXllclRyZWVGbGFnczsKLQogLy8g
RklYTUU6IFJlbmFtZSBGcmFtZSB0byBMb2NhbEZyYW1lIGFuZCBBYnN0cmFjdEZyYW1lIHRvIEZy
YW1lLgogY2xhc3MgRnJhbWUgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RGcmFtZSB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXgg
OTI4ZGQ0YmQ5NjgxZWJkMGZlOWI5MjY2MmM1OTdkOGQ3MzdhZmUyMS4uOWNiZWIyZTNjMmIxMDRl
ZjM1NDhkZjEzNzBmMzRiMmQ2ZGQ4OWE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtNDI5LDkgKzQyOSw5IEBAIHZvaWQgUGFnZU92ZXJs
YXlDb250cm9sbGVyOjpkaWRDaGFuZ2VPdmVybGF5QmFja2dyb3VuZENvbG9yKFBhZ2VPdmVybGF5
JiBvdmVybGF5CiAgICAgICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNr
Z3JvdW5kQ29sb3IoKSk7CiB9CiAKLWJvb2wgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpzaG91bGRT
a2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciosIExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yIGJlaGF2aW9yKSBjb25zdAorYm9vbCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNob3VsZFNr
aXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExheWVyVHJlZUFz
VGV4dE9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICEoYmVoYXZpb3IgJiBM
YXllclRyZWVBc1RleHRJbmNsdWRlUGFnZU92ZXJsYXlMYXllcnMpOworICAgIHJldHVybiAhb3B0
aW9ucy5jb250YWlucyhMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFnZU92ZXJsYXlM
YXllcnMpOwogfQogCiB2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dGlsZWRCYWNraW5nVXNh
Z2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGJvb2wgdXNpbmdU
aWxlZEJhY2tpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
aAppbmRleCA2MDYyODUzZTg0OGM1MjNiMzAwNDMzYTIxNDNmYzcwMTJmN2ZlNGZkLi4wNzc5Mjk4
M2QzNGNhYjAxNjhlZDJkZjc5YzJkNTMwMjI3YWFlZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NMYXllclBhaW50QmVo
YXZpb3IpIG92ZXJyaWRlOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXll
ciosIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNo
b3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExheWVy
VHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRpbGVkQmFja2lu
Z1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9vbCkgb3ZlcnJpZGU7CiAKICAg
ICBQYWdlJiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGQzMjlkNzY4ZmEwODE2NjdlODRlNzZiYmFhMDdkN2Fl
MDk5Zjg1ZGEuLjU2YTM3OWY4M2MwM2M5MDIyOTZkNmY1NTYxYjNlMWM2Zjk4YjZhNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC04MjYsMzYgKzgyNiwzNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnRyYXZlcnNlKEdyYXBo
aWNzTGF5ZXImIGxheWVyLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEdyYQogICAgICAgICB0
cmF2ZXJzZSgqbWFza0xheWVyLCB0cmF2ZXJzYWxGdW5jKTsKIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyOjpkdW1wTGF5ZXIoVGV4dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJl
aGF2aW9yKSBjb25zdAordm9pZCBHcmFwaGljc0xheWVyOjpkdW1wTGF5ZXIoVGV4dFN0cmVhbSYg
dHMsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIHRzIDw8IGluZGVudCA8PCAiKCIgPDwgIkdyYXBoaWNzTGF5ZXIiOwogCi0gICAgaWYgKGJl
aGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVy
VHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKSB7CiAgICAgICAgIHRzIDw8ICIgIiA8PCBzdGF0aWNf
Y2FzdDx2b2lkKj4oY29uc3RfY2FzdDxHcmFwaGljc0xheWVyKj4odGhpcykpOwogICAgICAgICB0
cyA8PCAiIFwiIiA8PCBtX25hbWUgPDwgIlwiIjsKICAgICB9CiAKICAgICB0cyA8PCAiXG4iOwot
ICAgIGR1bXBQcm9wZXJ0aWVzKHRzLCBiZWhhdmlvcik7CisgICAgZHVtcFByb3BlcnRpZXModHMs
IG9wdGlvbnMpOwogICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKIH0KIAotc3RhdGljIHZvaWQg
ZHVtcENoaWxkcmVuKFRleHRTdHJlYW0mIHRzLCBjb25zdCBWZWN0b3I8UmVmPEdyYXBoaWNzTGF5
ZXI+PiYgY2hpbGRyZW4sIHVuc2lnbmVkJiB0b3RhbENoaWxkQ291bnQsIExheWVyVHJlZUFzVGV4
dEJlaGF2aW9yIGJlaGF2aW9yKQorc3RhdGljIHZvaWQgZHVtcENoaWxkcmVuKFRleHRTdHJlYW0m
IHRzLCBjb25zdCBWZWN0b3I8UmVmPEdyYXBoaWNzTGF5ZXI+PiYgY2hpbGRyZW4sIHVuc2lnbmVk
JiB0b3RhbENoaWxkQ291bnQsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRp
b25zKQogewogICAgIHRvdGFsQ2hpbGRDb3VudCArPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKSB7Ci0gICAgICAgIGlmICgoYmVoYXZpb3IgJiBMYXll
clRyZWVBc1RleHREZWJ1ZykgfHwgIWNoaWxkLT5jbGllbnQoKS5zaG91bGRTa2lwTGF5ZXJJbkR1
bXAoY2hpbGQucHRyKCksIGJlaGF2aW9yKSkgeworICAgICAgICBpZiAoKG9wdGlvbnMgJiBMYXll
clRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykgfHwgIWNoaWxkLT5jbGllbnQoKS5zaG91bGRTa2lw
TGF5ZXJJbkR1bXAoY2hpbGQucHRyKCksIG9wdGlvbnMpKSB7CiAgICAgICAgICAgICBUZXh0U3Ry
ZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgICAgICAgICBjaGlsZC0+ZHVt
cExheWVyKHRzLCBiZWhhdmlvcik7CisgICAgICAgICAgICBjaGlsZC0+ZHVtcExheWVyKHRzLCBv
cHRpb25zKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgdG90
YWxDaGlsZENvdW50LS07Ci0gICAgICAgIGR1bXBDaGlsZHJlbih0cywgY2hpbGQtPmNoaWxkcmVu
KCksIHRvdGFsQ2hpbGRDb3VudCwgYmVoYXZpb3IpOworICAgICAgICBkdW1wQ2hpbGRyZW4odHMs
IGNoaWxkLT5jaGlsZHJlbigpLCB0b3RhbENoaWxkQ291bnQsIG9wdGlvbnMpOwogICAgIH0KIH0K
IAotdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit2b2lkIEdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBp
bmRlbnRTY29wZSh0cyk7CiAgICAgaWYgKCFtX29mZnNldEZyb21SZW5kZXJlci5pc1plcm8oKSkK
QEAgLTkwMSwxMyArOTAxLDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMo
VGV4dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2CiAgICAgaWYgKG1f
c3VwcG9ydHNTdWJwaXhlbEFudGlhbGlhc2VkVGV4dCkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8
ICIoc3VwcG9ydHMgc3VicGl4ZWwgYW50aWFsaWFzZWQgdGV4dCAiIDw8IG1fc3VwcG9ydHNTdWJw
aXhlbEFudGlhbGlhc2VkVGV4dCA8PCAiKVxuIjsKIAotICAgIGlmIChtX21hc2tzVG9Cb3VuZHMg
JiYgYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlQ2xpcHBpbmcpCisgICAgaWYgKG1f
bWFza3NUb0JvdW5kcyAmJiBvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVk
ZUNsaXBwaW5nKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihjbGlwcyAiIDw8IG1fbWFza3NU
b0JvdW5kcyA8PCAiKVxuIjsKIAogICAgIGlmIChtX3ByZXNlcnZlczNEKQogICAgICAgICB0cyA8
PCBpbmRlbnQgPDwgIihwcmVzZXJ2ZXMzRCAiIDw8IG1fcHJlc2VydmVzM0QgPDwgIilcbiI7CiAK
LSAgICBpZiAobV9kcmF3c0NvbnRlbnQgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9y
TGF5ZXIodGhpcywgImRyYXdzQ29udGVudCIsIGJlaGF2aW9yKSkKKyAgICBpZiAobV9kcmF3c0Nv
bnRlbnQgJiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgImRyYXdz
Q29udGVudCIsIG9wdGlvbnMpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihkcmF3c0NvbnRl
bnQgIiA8PCBtX2RyYXdzQ29udGVudCA8PCAiKVxuIjsKIAogICAgIGlmICghbV9jb250ZW50c1Zp
c2libGUpCkBAIC05MTYsMTYgKzkxNiwxNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgogICAg
IGlmICghbV9iYWNrZmFjZVZpc2liaWxpdHkpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGJh
Y2tmYWNlVmlzaWJpbGl0eSAiIDw8IChtX2JhY2tmYWNlVmlzaWJpbGl0eSA/ICJ2aXNpYmxlIiA6
ICJoaWRkZW4iKSA8PCAiKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4
dERlYnVnKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcp
CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHByaW1hcnktbGF5ZXItaWQgIiA8PCBwcmltYXJ5
TGF5ZXJJRCgpIDw8ICIpXG4iOwogCi0gICAgaWYgKG1fYmFja2dyb3VuZENvbG9yLmlzVmFsaWQo
KSAmJiBjbGllbnQoKS5zaG91bGREdW1wUHJvcGVydHlGb3JMYXllcih0aGlzLCAiYmFja2dyb3Vu
ZENvbG9yIiwgYmVoYXZpb3IpKQorICAgIGlmIChtX2JhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkg
JiYgY2xpZW50KCkuc2hvdWxkRHVtcFByb3BlcnR5Rm9yTGF5ZXIodGhpcywgImJhY2tncm91bmRD
b2xvciIsIG9wdGlvbnMpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihiYWNrZ3JvdW5kQ29s
b3IgIiA8PCBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChtX2JhY2tncm91bmRDb2xv
cikgPDwgIilcbiI7CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRl
QWNjZWxlcmF0ZXNEcmF3aW5nICYmIG1fYWNjZWxlcmF0ZXNEcmF3aW5nKQorICAgIGlmIChvcHRp
b25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyAm
JiBtX2FjY2VsZXJhdGVzRHJhd2luZykKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoYWNjZWxl
cmF0ZXNEcmF3aW5nICIgPDwgbV9hY2NlbGVyYXRlc0RyYXdpbmcgPDwgIilcbiI7CiAKLSAgICBp
ZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQp
CisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQmFja2lu
Z1N0b3JlQXR0YWNoZWQpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGJhY2tpbmdTdG9yZUF0
dGFjaGVkICIgPDwgYmFja2luZ1N0b3JlQXR0YWNoZWRGb3JUZXN0aW5nKCkgPDwgIilcbiI7CiAK
ICAgICBpZiAobV90cmFuc2Zvcm0gJiYgIW1fdHJhbnNmb3JtLT5pc0lkZW50aXR5KCkpIHsKQEAg
LTk0OCwzMiArOTQ4LDMyIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMoVGV4
dFN0cmVhbSYgdHMsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2CiAKICAgICBpZiAobV9t
YXNrTGF5ZXIpIHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIobWFzayBsYXllciI7Ci0gICAg
ICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgICAgICBpZiAob3B0
aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICAgICAgdHMgPDwg
IiAiIDw8IG1fbWFza0xheWVyLmdldCgpOwogICAgICAgICB0cyA8PCAiKVxuIjsKIAogICAgICAg
ICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7Ci0gICAgICAgIG1fbWFz
a0xheWVyLT5kdW1wTGF5ZXIodHMsIGJlaGF2aW9yKTsKKyAgICAgICAgbV9tYXNrTGF5ZXItPmR1
bXBMYXllcih0cywgb3B0aW9ucyk7CiAgICAgfQogCiAgICAgaWYgKG1fcmVwbGljYUxheWVyKSB7
CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHJlcGxpY2EgbGF5ZXIiOwotICAgICAgICBpZiAo
YmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHREZWJ1ZykKKyAgICAgICAgaWYgKG9wdGlvbnMgJiBM
YXllclRyZWVBc1RleHRPcHRpb25zOjpEZWJ1ZykKICAgICAgICAgICAgIHRzIDw8ICIgIiA8PCBt
X3JlcGxpY2FMYXllci5nZXQoKTsKICAgICAgICAgdHMgPDwgIilcbiI7CiAKICAgICAgICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOwotICAgICAgICBtX3JlcGxpY2FM
YXllci0+ZHVtcExheWVyKHRzLCBiZWhhdmlvcik7CisgICAgICAgIG1fcmVwbGljYUxheWVyLT5k
dW1wTGF5ZXIodHMsIG9wdGlvbnMpOwogICAgIH0KIAogICAgIGlmIChtX3JlcGxpY2F0ZWRMYXll
cikgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihyZXBsaWNhdGVkIGxheWVyIjsKLSAgICAg
ICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0RGVidWcpCisgICAgICAgIGlmIChvcHRp
b25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgICAgICB0cyA8PCAi
ICIgPDwgbV9yZXBsaWNhdGVkTGF5ZXI7CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgIH0KIAot
ICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHMgJiYg
cmVwYWludFJlY3RNYXAoKS5jb250YWlucyh0aGlzKSAmJiAhcmVwYWludFJlY3RNYXAoKS5nZXQo
dGhpcykuaXNFbXB0eSgpICYmIGNsaWVudCgpLnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKHRo
aXMsICJyZXBhaW50UmVjdHMiLCBiZWhhdmlvcikpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVy
VHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSZXBhaW50UmVjdHMgJiYgcmVwYWludFJlY3RNYXAo
KS5jb250YWlucyh0aGlzKSAmJiAhcmVwYWludFJlY3RNYXAoKS5nZXQodGhpcykuaXNFbXB0eSgp
ICYmIGNsaWVudCgpLnNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKHRoaXMsICJyZXBhaW50UmVj
dHMiLCBvcHRpb25zKSkgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihyZXBhaW50IHJlY3Rz
XG4iOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlcGFpbnRSZWN0TWFwKCkuZ2V0
KHRoaXMpLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBpZiAocmVwYWludFJlY3RNYXAoKS5n
ZXQodGhpcylbaV0uaXNFbXB0eSgpKQpAQCAtOTkwLDI3ICs5OTAsMjcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJUcmVlQXNUZXh0QmVo
YXZpb3IgYmVoYXYKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0KIAotICAg
IGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVFdmVudFJlZ2lvbiAmJiAhbV9l
dmVudFJlZ2lvbi5pc0VtcHR5KCkpIHsKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4
dE9wdGlvbnM6OkluY2x1ZGVFdmVudFJlZ2lvbiAmJiAhbV9ldmVudFJlZ2lvbi5pc0VtcHR5KCkp
IHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZXZlbnQgcmVnaW9uIiA8PCBtX2V2ZW50UmVn
aW9uOwogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilcbiI7CiAgICAgfQogICAgIAogI2lmIEVO
QUJMRShTQ1JPTExJTkdfVEhSRUFEKQotICAgIGlmICgoYmVoYXZpb3IgJiBMYXllclRyZWVBc1Rl
eHREZWJ1ZykgJiYgbV9zY3JvbGxpbmdOb2RlSUQpCisgICAgaWYgKChvcHRpb25zICYgTGF5ZXJU
cmVlQXNUZXh0T3B0aW9uczo6RGVidWcpICYmIG1fc2Nyb2xsaW5nTm9kZUlEKQogICAgICAgICB0
cyA8PCBpbmRlbnQgPDwgIihzY3JvbGxpbmcgbm9kZSAiIDw8IG1fc2Nyb2xsaW5nTm9kZUlEIDw8
ICIpXG4iOwogI2VuZGlmCiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNs
dWRlUGFpbnRpbmdQaGFzZXMgJiYgcGFpbnRpbmdQaGFzZSgpKQorICAgIGlmIChvcHRpb25zICYg
TGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVBhaW50aW5nUGhhc2VzICYmIHBhaW50aW5n
UGhhc2UoKSkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocGFpbnRpbmdQaGFzZXMgIiA8PCBw
YWludGluZ1BoYXNlKCkgPDwgIilcbiI7CiAKLSAgICBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMo
dHMsIGJlaGF2aW9yKTsKKyAgICBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXModHMsIG9wdGlvbnMp
OwogICAgIAogICAgIGlmIChtX2NoaWxkcmVuLnNpemUoKSkgewogICAgICAgICBUZXh0U3RyZWFt
IGNoaWxkcmVuU3RyZWFtOwogICAgICAgICAKICAgICAgICAgY2hpbGRyZW5TdHJlYW0uaW5jcmVh
c2VJbmRlbnQodHMuaW5kZW50KCkpOwogICAgICAgICB1bnNpZ25lZCB0b3RhbENoaWxkQ291bnQg
PSAwOwotICAgICAgICBkdW1wQ2hpbGRyZW4oY2hpbGRyZW5TdHJlYW0sIG1fY2hpbGRyZW4sIHRv
dGFsQ2hpbGRDb3VudCwgYmVoYXZpb3IpOworICAgICAgICBkdW1wQ2hpbGRyZW4oY2hpbGRyZW5T
dHJlYW0sIG1fY2hpbGRyZW4sIHRvdGFsQ2hpbGRDb3VudCwgb3B0aW9ucyk7CiAKICAgICAgICAg
aWYgKHRvdGFsQ2hpbGRDb3VudCkgewogICAgICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoY2hp
bGRyZW4gIiA8PCB0b3RhbENoaWxkQ291bnQgPDwgIlxuIjsKQEAgLTEwNTgsMTEgKzEwNTgsMTEg
QEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgR3JhcGhpY3NM
YXllcjo6Q3VzdG9tQXBwZWFyYW5jZSYgY3UKICAgICByZXR1cm4gdHM7CiB9CiAKLVN0cmluZyBH
cmFwaGljc0xheWVyOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVo
YXZpb3IpIGNvbnN0CitTdHJpbmcgR3JhcGhpY3NMYXllcjo6bGF5ZXJUcmVlQXNUZXh0KE9wdGlv
blNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIFRleHRT
dHJlYW0gdHMoVGV4dFN0cmVhbTo6TGluZU1vZGU6Ok11bHRpcGxlTGluZSwgVGV4dFN0cmVhbTo6
Rm9ybWF0dGluZzo6U1ZHU3R5bGVSZWN0KTsKIAotICAgIGR1bXBMYXllcih0cywgYmVoYXZpb3Ip
OworICAgIGR1bXBMYXllcih0cywgb3B0aW9ucyk7CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsK
IH0KIApAQCAtMTA3NCw3ICsxMDc0LDcgQEAgdm9pZCBzaG93R3JhcGhpY3NMYXllclRyZWUoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgaWYgKCFsYXllcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIG91dHB1dCA9IGxheWVyLT5sYXllclRyZWVBc1RleHQo
V2ViQ29yZTo6TGF5ZXJUcmVlQXNUZXh0U2hvd0FsbCk7CisgICAgU3RyaW5nIG91dHB1dCA9IGxh
eWVyLT5sYXllclRyZWVBc1RleHQoV2ViQ29yZTo6QWxsTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucyk7
CiAgICAgV1RGTG9nQWx3YXlzKCIlc1xuIiwgb3V0cHV0LnV0ZjgoKS5kYXRhKCkpOwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKaW5kZXggM2IzYzExOGJmZDQ2YzViODQwNWVhN2I4MTEzYWY1OWI5NjY3MWJlOS4uZWM3YjQ0
NzQ4YWZiZjU5Yzk2YzRiYTBmNTNjYWJjN2VjMDVkYmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNTQwLDcgKzU0MCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNPcmllbnRhdGlvbihDb21wb3Np
dGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9jb250ZW50c09yaWVu
dGF0aW9uID0gb3JpZW50YXRpb247IH0KICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50
YXRpb24gY29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNPcmll
bnRhdGlvbjsgfQogCi0gICAgdm9pZCBkdW1wTGF5ZXIoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7
CisgICAgdm9pZCBkdW1wTGF5ZXIoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM+ID0geyB9KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93
RGVidWdCb3JkZXIoYm9vbCBzaG93KSB7IG1fc2hvd0RlYnVnQm9yZGVyID0gc2hvdzsgfQogICAg
IGJvb2wgaXNTaG93aW5nRGVidWdCb3JkZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0Jv
cmRlcjsgfQpAQCAtNjAwLDcgKzYwMCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybiBhIHN0
cmluZyB3aXRoIGEgaHVtYW4gcmVhZGFibGUgZm9ybSBvZiB0aGUgbGF5ZXIgdHJlZSwgSWYgZGVi
dWcgaXMgdHJ1ZQogICAgIC8vIHBvaW50ZXJzIGZvciB0aGUgbGF5ZXJzIGFuZCB0aW1pbmcgZGF0
YSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCi0gICAgV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgbGF5ZXJUcmVlQXNUZXh0KE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiA9
IHsgfSkgY29uc3Q7CiAKICAgICAvLyBGb3IgdGVzdGluZy4KICAgICB2aXJ0dWFsIFN0cmluZyBk
aXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MpIGNvbnN0IHsgcmV0dXJu
IFN0cmluZygpOyB9CkBAIC02NzksOCArNjc5LDggQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKIAot
ICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0
QmVoYXZpb3IpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IHsgfQor
ICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgT3B0aW9uU2V0PExheWVy
VHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZHVtcEFkZGl0aW9u
YWxQcm9wZXJ0aWVzKFdURjo6VGV4dFN0cmVhbSYsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRP
cHRpb25zPikgY29uc3QgeyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZ2V0
RGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CmluZGV4IDJhNDIyZWYzZmE5NjFmNDFiZWRjNmJmYjdjMGFhNTNhNmY5NTVmNjkuLjA4Mzc3Nzc4
NGY1YjlhYmYzYWFjN2NkMjM2OWMyYmNiMGI1ZWIzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJMYXllclRyZWVBc1RleHRPcHRp
b25zLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRp
b25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjgsMjUgKzY5LDYgQEAg
aW5saW5lIGJvb2wgYW5pbWF0ZWRQcm9wZXJ0eUlzVHJhbnNmb3JtT3JSZWxhdGVkKEFuaW1hdGVk
UHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICByZXR1cm4gcHJvcGVydHkgPT0gQW5pbWF0ZWRQcm9w
ZXJ0eVRyYW5zZm9ybSB8fCBwcm9wZXJ0eSA9PSBBbmltYXRlZFByb3BlcnR5VHJhbnNsYXRlIHx8
IHByb3BlcnR5ID09IEFuaW1hdGVkUHJvcGVydHlTY2FsZSB8fCBwcm9wZXJ0eSA9PSBBbmltYXRl
ZFByb3BlcnR5Um90YXRlOwogfQogCi1lbnVtIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yRmxhZ3Mg
ewotICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsICAgICAgICAgICAgICAgPSAwLAot
ICAgIExheWVyVHJlZUFzVGV4dERlYnVnICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAs
IC8vIER1bXAgZXh0cmEgZGVidWdnaW5nIGluZm8gbGlrZSBsYXllciBhZGRyZXNzZXMuCi0gICAg
TGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0cyAgICAgICAgICA9IDEgPDwgMSwKLSAg
ICBMYXllclRyZWVBc1RleHRJbmNsdWRlVGlsZUNhY2hlcyAgICAgICAgICAgID0gMSA8PCAyLAot
ICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHMgICAgICAgICAgPSAxIDw8IDMs
Ci0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVBhaW50aW5nUGhhc2VzICAgICAgICA9IDEgPDwg
NCwKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlQ29udGVudExheWVycyAgICAgICAgID0gMSA8
PCA1LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWdlT3ZlcmxheUxheWVycyAgICAgPSAx
IDw8IDYsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyAgICA9
IDEgPDwgNywKLSAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlQ2xpcHBpbmcgICAgICAgICAgICAg
ID0gMSA8PCA4LAotICAgIExheWVyVHJlZUFzVGV4dEluY2x1ZGVCYWNraW5nU3RvcmVBdHRhY2hl
ZCAgPSAxIDw8IDksCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVJvb3RMYXllclByb3BlcnRp
ZXMgICA9IDEgPDwgMTAsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2ZW50UmVnaW9uICAg
ICAgICAgICA9IDEgPDwgMTEsCi0gICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZURlZXBDb2xvciAg
ICAgICAgICAgICA9IDEgPDwgMTIsCi0gICAgTGF5ZXJUcmVlQXNUZXh0U2hvd0FsbCAgICAgICAg
ICAgICAgICAgICAgICA9IDB4RkZGRgotfTsKLXR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3I7Ci0KIGVudW0gY2xhc3MgUGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncyA6
IHVpbnQ4X3QgewogICAgIERlYnVnID0gMSA8PCAwLAogICAgIElnbm9yZUNoaWxkcmVuID0gMSA8
PCAxLApAQCAtMTM5LDggKzEyMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Ry
YWNraW5nUmVwYWludHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBj
aGFyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWdn
cmVzc2l2ZWx5UmV0YWluVGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNv
aG9ydHMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheWVyVHJlZUFzVGV4dE9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheWVyVHJlZUFzVGV4
dE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjAyNWY5NGU4OTAzYWJmYWUzMGEwZTg4ZGZiZjBkZTlh
NWVmYjMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5ZXJUcmVlQXNUZXh0T3B0aW9ucy5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIExheWVyVHJlZUFzVGV4dE9wdGlvbnMgOiB1aW50MTZfdCB7CisgICAgRGVidWcgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwgLy8gRHVtcCBleHRyYSBkZWJ1Z2dpbmcgaW5m
byBsaWtlIGxheWVyIGFkZHJlc3Nlcy4KKyAgICBJbmNsdWRlVmlzaWJsZVJlY3RzICAgICAgICAg
ID0gMSA8PCAxLAorICAgIEluY2x1ZGVUaWxlQ2FjaGVzICAgICAgICAgICAgPSAxIDw8IDIsCisg
ICAgSW5jbHVkZVJlcGFpbnRSZWN0cyAgICAgICAgICA9IDEgPDwgMywKKyAgICBJbmNsdWRlUGFp
bnRpbmdQaGFzZXMgICAgICAgID0gMSA8PCA0LAorICAgIEluY2x1ZGVDb250ZW50TGF5ZXJzICAg
ICAgICAgPSAxIDw8IDUsCisgICAgSW5jbHVkZVBhZ2VPdmVybGF5TGF5ZXJzICAgICA9IDEgPDwg
NiwKKyAgICBJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nICAgID0gMSA8PCA3LAorICAgIEluY2x1
ZGVDbGlwcGluZyAgICAgICAgICAgICAgPSAxIDw8IDgsCisgICAgSW5jbHVkZUJhY2tpbmdTdG9y
ZUF0dGFjaGVkICA9IDEgPDwgOSwKKyAgICBJbmNsdWRlUm9vdExheWVyUHJvcGVydGllcyAgID0g
MSA8PCAxMCwKKyAgICBJbmNsdWRlRXZlbnRSZWdpb24gICAgICAgICAgID0gMSA8PCAxMSwKKyAg
ICBJbmNsdWRlRGVlcENvbG9yICAgICAgICAgICAgID0gMSA8PCAxMiwKK307CisKK3N0YXRpYyBj
b25zdGV4cHIgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IEFsbExheWVyVHJlZUFz
VGV4dE9wdGlvbnMgPSB7CisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcsCisgICAg
TGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVZpc2libGVSZWN0cywKKyAgICBMYXllclRy
ZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVGlsZUNhY2hlcywKKyAgICBMYXllclRyZWVBc1RleHRP
cHRpb25zOjpJbmNsdWRlUmVwYWludFJlY3RzLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6
OkluY2x1ZGVQYWludGluZ1BoYXNlcywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNs
dWRlQ29udGVudExheWVycywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFn
ZU92ZXJsYXlMYXllcnMsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUFjY2Vs
ZXJhdGVzRHJhd2luZywKKyAgICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlQ2xpcHBp
bmcsCisgICAgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUJhY2tpbmdTdG9yZUF0dGFj
aGVkLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSb290TGF5ZXJQcm9wZXJ0
aWVzLAorICAgIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVFdmVudFJlZ2lvbiwKKyAg
ICBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlRGVlcENvbG9yLAorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggY2RjZGJiYTI4MzQwYjFmMjIzN2Vm
NDdlMTcwZjI4MGY0M2E3ZTI3OS4uNjc5MzJhZWI3ZTQ3ZmM2ZjJkMzk5M2JmNTM1YjA5YTlhYjhh
M2RiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC00MjA3LDE3ICs0MjA3LDE3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpkdW1wTGF5ZXJDaGFuZ2VGbGFncyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBM
YXllckNoYW5nZUZsCiAgICAgdGV4dFN0cmVhbSA8PCAiIH0iOwogfQogCi12b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRleHRTdHJlYW0s
IExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2aW9yKSBjb25zdAordm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBP
cHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBp
ZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlVmlzaWJsZVJlY3RzKSB7CisgICAg
aWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlVmlzaWJsZVJlY3Rz
KSB7CiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIodmlzaWJsZSByZWN0ICIgPDwg
bV92aXNpYmxlUmVjdC54KCkgPDwgIiwgIiA8PCBtX3Zpc2libGVSZWN0LnkoKSA8PCAiICIgPDwg
bV92aXNpYmxlUmVjdC53aWR0aCgpIDw8ICIgeCAiIDw8IG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCkg
PDwgIilcbiI7CiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIoY292ZXJhZ2UgcmVj
dCAiIDw8IG1fY292ZXJhZ2VSZWN0LngoKSA8PCAiLCAiIDw8IG1fY292ZXJhZ2VSZWN0LnkoKSA8
PCAiICIgPDwgbV9jb3ZlcmFnZVJlY3Qud2lkdGgoKSA8PCAiIHggIiA8PCBtX2NvdmVyYWdlUmVj
dC5oZWlnaHQoKSA8PCAiKVxuIjsKICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIihp
bnRlcnNlY3RzIGNvdmVyYWdlIHJlY3QgIiA8PCBtX2ludGVyc2VjdHNDb3ZlcmFnZVJlY3QgPDwg
IilcbiI7CiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIoY29udGVudHNTY2FsZSAi
IDw8IG1fbGF5ZXItPmNvbnRlbnRzU2NhbGUoKSA8PCAiKVxuIjsKICAgICB9CiAKLSAgICBpZiAo
dGlsZWRCYWNraW5nKCkgJiYgKGJlaGF2aW9yICYgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVRpbGVD
YWNoZXMpKSB7Ci0gICAgICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQor
ICAgIGlmICh0aWxlZEJhY2tpbmcoKSAmJiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlv
bnM6OkluY2x1ZGVUaWxlQ2FjaGVzKSkgeworICAgICAgICBpZiAob3B0aW9ucyAmIExheWVyVHJl
ZUFzVGV4dE9wdGlvbnM6OkRlYnVnKQogICAgICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQg
PDwgIih0aWxlZCBiYWNraW5nICIgPDwgdGlsZWRCYWNraW5nKCkgPDwgIilcbiI7CiAKICAgICAg
ICAgSW50UmVjdCB0aWxlQ292ZXJhZ2VSZWN0ID0gdGlsZWRCYWNraW5nKCktPnRpbGVDb3ZlcmFn
ZVJlY3QoKTsKQEAgLTQyMzIsMTIgKzQyMzIsMTIgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmR1
bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBMYXllclRyZWUK
ICAgICAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQgPDwgIihpbiB3aW5kb3cgIiA8PCB0aWxlZEJh
Y2tpbmcoKS0+aXNJbldpbmRvdygpIDw8ICIpXG4iOwogICAgIH0KIAotICAgIGlmICgoYmVoYXZp
b3IgJiBMYXllclRyZWVBc1RleHRJbmNsdWRlRGVlcENvbG9yKSAmJiBtX2xheWVyLT53YW50c0Rl
ZXBDb2xvckJhY2tpbmdTdG9yZSgpKQorICAgIGlmICgob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4
dE9wdGlvbnM6OkluY2x1ZGVEZWVwQ29sb3IpICYmIG1fbGF5ZXItPndhbnRzRGVlcENvbG9yQmFj
a2luZ1N0b3JlKCkpCiAgICAgICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIoZGVlcCBjb2xv
ciAxKVxuIjsKIAotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250
ZW50TGF5ZXJzKSB7CisgICAgaWYgKG9wdGlvbnMgJiBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJ
bmNsdWRlQ29udGVudExheWVycykgewogICAgICAgICBPcHRpb25TZXQ8UGxhdGZvcm1MYXllclRy
ZWVBc1RleHRGbGFncz4gcGxhdGZvcm1GbGFncyA9IHsgUGxhdGZvcm1MYXllclRyZWVBc1RleHRG
bGFnczo6SWdub3JlQ2hpbGRyZW4gfTsKLSAgICAgICAgaWYgKGJlaGF2aW9yICYgTGF5ZXJUcmVl
QXNUZXh0RGVidWcpCisgICAgICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9u
czo6RGVidWcpCiAgICAgICAgICAgICBwbGF0Zm9ybUZsYWdzLmFkZChQbGF0Zm9ybUxheWVyVHJl
ZUFzVGV4dEZsYWdzOjpEZWJ1Zyk7CiAgICAgICAgIGR1bXBJbm5lckxheWVyKHRleHRTdHJlYW0s
IG1fc3RydWN0dXJhbExheWVyLmdldCgpLCBwbGF0Zm9ybUZsYWdzKTsKICAgICAgICAgZHVtcElu
bmVyTGF5ZXIodGV4dFN0cmVhbSwgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXIuZ2V0KCksIHBsYXRm
b3JtRmxhZ3MpOwpAQCAtNDI0OCw3ICs0MjQ4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmR1
bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBMYXllclRyZWUK
ICAgICAgICAgZHVtcElubmVyTGF5ZXIodGV4dFN0cmVhbSwgbV9iYWNrZHJvcExheWVyLmdldCgp
LCBwbGF0Zm9ybUZsYWdzKTsKICAgICB9CiAKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVB
c1RleHREZWJ1ZykgeworICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6
RGVidWcpIHsKICAgICAgICAgaWYgKG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZykKICAgICAgICAg
ICAgIHRleHRTdHJlYW0gPDwgaW5kZW50IDw8ICIodXNlcyBkaXNwbGF5LWxpc3QgZHJhd2luZyAi
IDw8IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZyA8PCAiKVxuIjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCAw
MmRjMzkwYjRhNWI2MmU1ODU4MWU5MzA4MGMwNWUzOThkYzE1MjgzLi40YmNmNDU0MmNhNzdlMWY0
MmVlMWE5OTBiOTI5ZWMxMzZlNjcyMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMzA5LDcgKzMwOSw3IEBA
IHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihS
ZWZQdHI8R3JhcGhpY3NMYXllcj4mJikgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGdldERlYnVnQm9yZGVySW5mbyhDb2xvciYsIGZsb2F0JiB3aWR0aCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RG
OjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFdURjo6VGV4
dFN0cmVhbSYsIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkdW1wSW5uZXJMYXllcihXVEY6OlRleHRTdHJlYW0mLCBQbGF0Zm9ybUNB
TGF5ZXIqLCBPcHRpb25TZXQ8UGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncz4pIGNvbnN0Owog
ICAgIGNvbnN0IGNoYXIgKnB1cnBvc2VOYW1lRm9ySW5uZXJMYXllcihQbGF0Zm9ybUNBTGF5ZXIm
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAppbmRleCA4NDQ1MjA2ZGZkZTc5ZWNhNzJhZTQ0OTU3YjdjODFlNTNj
MGM5Nzk0Li5hNzQ5MDdjZTFjYjcwMWI3ODcwZDA4YmJjY2UwNDIzN2Q4YTRhMzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtMTQ3MCwxMyArMTQ3MCwxMyBAQCBQbGF0Zm9ybUxheWVyKiBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogfQogI2VuZGlmCiAKLXN0YXRpYyB2b2lk
IGR1bXBJbm5lckxheWVyKFRleHRTdHJlYW0mIHRleHRTdHJlYW0sIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIsIExheWVyVHJlZUFzVGV4dEJlaGF2
aW9yIGJlaGF2aW9yKQorc3RhdGljIHZvaWQgZHVtcElubmVyTGF5ZXIoVGV4dFN0cmVhbSYgdGV4
dFN0cmVhbSwgY29uc3QgU3RyaW5nJiBsYWJlbCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBs
YXllciwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+IG9wdGlvbnMpCiB7CiAgICAg
aWYgKCFsYXllcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGV4dFN0cmVhbSA8PCBpbmRlbnQg
PDwgIigiIDw8IGxhYmVsIDw8ICIgIjsKLSAgICBpZiAoYmVoYXZpb3IgJiBMYXllclRyZWVBc1Rl
eHREZWJ1ZykKKyAgICBpZiAob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkRlYnVn
KQogICAgICAgICB0ZXh0U3RyZWFtIDw8ICIgIiA8PCBzdGF0aWNfY2FzdDx2b2lkKj4obGF5ZXIp
OwogICAgIHRleHRTdHJlYW0gPDwgbGF5ZXItPmJvdW5kc09yaWdpbigpLngoKSA8PCAiLCAiIDw8
IGxheWVyLT5ib3VuZHNPcmlnaW4oKS55KCkgPDwgIiAiIDw8IGxheWVyLT5zaXplKCkud2lkdGgo
KSA8PCAiIHggIiA8PCBsYXllci0+c2l6ZSgpLmhlaWdodCgpOwogICAgIGlmICghbGF5ZXItPmNv
bnRlbnRzQXJlVmlzaWJsZSgpKQpAQCAtMTQ4NCwxMCArMTQ4NCwxMCBAQCBzdGF0aWMgdm9pZCBk
dW1wSW5uZXJMYXllcihUZXh0U3RyZWFtJiB0ZXh0U3RyZWFtLCBjb25zdCBTdHJpbmcmIGxhYmVs
LCBDb29yZGluYQogICAgIHRleHRTdHJlYW0gPDwgIilcbiI7CiB9CiAKLXZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdGV4
dFN0cmVhbSwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpIGNvbnN0Cit2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJl
YW0mIHRleHRTdHJlYW0sIE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewotICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVDb250
ZW50TGF5ZXJzKQotICAgICAgICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCAiYmFja2Ryb3Ag
bGF5ZXIiLCBtX2JhY2tkcm9wTGF5ZXIuZ2V0KCksIGJlaGF2aW9yKTsKKyAgICBpZiAob3B0aW9u
cyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzKQorICAgICAg
ICBkdW1wSW5uZXJMYXllcih0ZXh0U3RyZWFtLCAiYmFja2Ryb3AgbGF5ZXIiLCBtX2JhY2tkcm9w
TGF5ZXIuZ2V0KCksIG9wdGlvbnMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5k
ZXggNjRhNzA5ZTBkMTNkYzZjOTUwMGM3NjU4YmVjMmJjZWNkNzJiMzIyNi4uNjg5NmM1ZTViMDI0
MzgzZDc1OTU3ODkxYzk1YjBjN2NmZDc1YjRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKE1vbm90b25pY1RpbWUpIG92ZXJyaWRl
OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpIG92ZXJyaWRlOwogICAgIGJvb2wgdXNlc0Nv
bnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGR1bXBBZGRpdGlvbmFsUHJv
cGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RGOjpUZXh0U3Ry
ZWFtJiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsK
IAogI2lmIFVTRShOSUNPU0lBKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggY2U3NjlmODVkNjFhOTRhNDhhMmQ3MjhkNzEwMDlmYzE4ZmU5MDZj
MS4uNmU4YWI5MWFmNWQxMDgwY2Q3YWI4ODJkYjU3NDkzNGMwMmEyMzI2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTM1NTYsMjAg
KzM1NTYsMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmlzVHJhY2tpbmdSZXBhaW50cygp
IGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDbGllbnQmPihjb21w
b3NpdG9yKCkpLmlzVHJhY2tpbmdSZXBhaW50cygpOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFj
a2luZzo6c2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBM
YXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhhdmlvcikgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJC
YWNraW5nOjpzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIs
IE9wdGlvblNldDxMYXllclRyZWVBc1RleHRPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dERlYnVnKQorICAgIGlmIChvcHRpb25zICYg
TGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6RGVidWcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIFNraXAgdGhlIHJvb3QgdGlsZSBjYWNoZSdzIGZsYXR0ZW5pbmcgbGF5ZXIuCiAgICAg
cmV0dXJuIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIgJiYgbGF5ZXIgJiYgbGF5ZXIgPT0g
bV9jaGlsZENvbnRhaW5tZW50TGF5ZXIuZ2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXll
ciwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBmbGFn
cykgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGREdW1wUHJvcGVydHlGb3JM
YXllcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllciwgY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LCBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAg
ICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBXZWJLaXQxIGFuZCBvdGhlciBw
bGF0Zm9ybXMsCiAgICAgLy8gc2tpcCBzb21lIHByb3BlcnRpZXMgb24gdGhlIHJvb3QgdGlsZSBj
YWNoZS4KLSAgICBpZiAobV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllciAmJiBsYXllciA9PSBt
X2dyYXBoaWNzTGF5ZXIuZ2V0KCkgJiYgIShmbGFncyAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVS
b290TGF5ZXJQcm9wZXJ0aWVzKSkgeworICAgIGlmIChtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xh
eWVyICYmIGxheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSAmJiAhKG9wdGlvbnMgJiBMYXll
clRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUm9vdExheWVyUHJvcGVydGllcykpIHsKICAgICAg
ICAgaWYgKCFzdHJjbXAocHJvcGVydHlOYW1lLCAiZHJhd3NDb250ZW50IikpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAppbmRleCAxOTNjNWQxNzVjZWU5OGRmYzA2MGRlMWM4ZDZhMjMxOTQ4OWNkNDdk
Li5hMjBkMzI0NWU0MTkxZDkxNGFmMzFiOGYzZmUyNmMxZGJhNjZkMzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0yNDAsOCArMjQwLDgg
QEAgcHVibGljOgogICAgIGJvb2wgZ2V0Q3VycmVudFRyYW5zZm9ybShjb25zdCBHcmFwaGljc0xh
eWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wg
aXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRTa2lw
TGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciosIExheWVyVHJlZUFzVGV4dEJlaGF2aW9y
KSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIExheWVyVHJlZUFz
VGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFNraXBMYXllcklu
RHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVy
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIE9wdGlvblNl
dDxMYXllclRyZWVBc1RleHRPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHNo
b3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIHNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHMoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA1YTVlZjZiNzE3OTM0
YmU0N2YzZTI3YzVlNDVlNThmZGIyZGQwMmI5Li5mZGJlMmNiMDUwYjU4OTEzN2E2ZjY5ZjgzODMx
YTllYjcwNzI1Mzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjMyOCw3ICsyMzI4LDcgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nRm9yTGF5ZXJUcmVlQXNUZXh0RHVtcCgpCiAg
ICAgcGFnZSgpLnRyaWdnZXJSZW5kZXJpbmdVcGRhdGVGb3JUZXN0aW5nKCk7CiB9CiAKLVN0cmlu
ZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyBm
bGFncykKK1N0cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChPcHRp
b25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gb3B0aW9ucykKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yICIgPDwg
dGhpcyA8PCAiIGxheWVyVHJlZUFzVGV4dCIpOwogCkBAIC0yMzM3LDQ0ICsyMzM3LDE4IEBAIFN0
cmluZyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFn
cyBmbGFncykKICAgICBpZiAoIW1fcm9vdENvbnRlbnRzTGF5ZXIpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yIGxheWVyVHJlZUJlaGF2aW9y
ID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWw7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJU
cmVlRmxhZ3NJbmNsdWRlRGVidWdJbmZvKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBM
YXllclRyZWVBc1RleHREZWJ1ZzsKLSAgICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1
ZGVWaXNpYmxlUmVjdHMpCi0gICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFz
VGV4dEluY2x1ZGVWaXNpYmxlUmVjdHM7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlVGlsZUNhY2hlcykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3IgfD0gTGF5ZXJUcmVl
QXNUZXh0SW5jbHVkZVRpbGVDYWNoZXM7Ci0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlUmVwYWludFJlY3RzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRy
ZWVBc1RleHRJbmNsdWRlUmVwYWludFJlY3RzOwotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZs
YWdzSW5jbHVkZVBhaW50aW5nUGhhc2VzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBM
YXllclRyZWVBc1RleHRJbmNsdWRlUGFpbnRpbmdQaGFzZXM7Ci0gICAgaWYgKGZsYWdzICYgTGF5
ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVycykKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZp
b3IgfD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUNvbnRlbnRMYXllcnM7Ci0gICAgaWYgKGZsYWdz
ICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5nKQotICAgICAgICBsYXll
clRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlQWNjZWxlcmF0ZXNEcmF3aW5n
OwotICAgIGlmIChmbGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZUNsaXBwaW5nKQotICAgICAg
ICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlQ2xpcHBpbmc7Ci0g
ICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQmFja2luZ1N0b3JlQXR0YWNoZWQp
Ci0gICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVCYWNr
aW5nU3RvcmVBdHRhY2hlZDsKLSAgICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVS
b290TGF5ZXJQcm9wZXJ0aWVzKQotICAgICAgICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRy
ZWVBc1RleHRJbmNsdWRlUm9vdExheWVyUHJvcGVydGllczsKLSAgICBpZiAoZmxhZ3MgJiBMYXll
clRyZWVGbGFnc0luY2x1ZGVFdmVudFJlZ2lvbikKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3Ig
fD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZUV2ZW50UmVnaW9uOwotICAgIGlmIChmbGFncyAmIExh
eWVyVHJlZUZsYWdzSW5jbHVkZURlZXBDb2xvcikKLSAgICAgICAgbGF5ZXJUcmVlQmVoYXZpb3Ig
fD0gTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZURlZXBDb2xvcjsKLQogICAgIC8vIFdlIHNraXAgZHVt
cGluZyB0aGUgc2Nyb2xsIGFuZCBjbGlwIGxheWVycyB0byBrZWVwIGxheWVyVHJlZUFzVGV4dCBv
dXRwdXQKICAgICAvLyBzaW1pbGFyIGJldHdlZW4gcGxhdGZvcm1zLgotICAgIFN0cmluZyBsYXll
clRyZWVUZXh0ID0gbV9yb290Q29udGVudHNMYXllci0+bGF5ZXJUcmVlQXNUZXh0KGxheWVyVHJl
ZUJlaGF2aW9yKTsKKyAgICBTdHJpbmcgbGF5ZXJUcmVlVGV4dCA9IG1fcm9vdENvbnRlbnRzTGF5
ZXItPmxheWVyVHJlZUFzVGV4dChvcHRpb25zKTsKIAogICAgIC8vIER1bXAgYW4gZW1wdHkgbGF5
ZXIgdHJlZSBvbmx5IGlmIHRoZSBvbmx5IGNvbXBvc2l0ZWQgbGF5ZXIgaXMgdGhlIG1haW4gZnJh
bWUncyB0aWxlZCBiYWNraW5nLAogICAgIC8vIHNvIHRoYXQgdGVzdHMgZXhwZWN0aW5nIHVzIHRv
IGRyb3Agb3V0IG9mIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHdoZW4gdGhlcmUgYXJlIG5vIGxh
eWVycyBzdWNjZWVkLgotICAgIGlmICghaGFzQ29udGVudENvbXBvc2l0aW5nTGF5ZXJzKCkgJiYg
ZG9jdW1lbnRVc2VzVGlsZWRCYWNraW5nKCkgJiYgIShsYXllclRyZWVCZWhhdmlvciAmIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzKSAmJiAhKGxheWVyVHJlZUJlaGF2aW9yICYgTGF5
ZXJUcmVlQXNUZXh0SW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMpKQorICAgIGlmICghaGFzQ29u
dGVudENvbXBvc2l0aW5nTGF5ZXJzKCkgJiYgZG9jdW1lbnRVc2VzVGlsZWRCYWNraW5nKCkgJiYg
IShvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVRpbGVDYWNoZXMpICYm
ICEob3B0aW9ucyAmIExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVSb290TGF5ZXJQcm9w
ZXJ0aWVzKSkKICAgICAgICAgbGF5ZXJUcmVlVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAKICAgICAv
LyBUaGUgdHJ1ZSByb290IGxheWVyIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgZHVtcCwgc28gaWYg
d2Ugd2FudCB0byByZXBvcnQKICAgICAvLyBpdHMgcmVwYWludCByZWN0cywgdGhleSBtdXN0IGJl
IGluY2x1ZGVkIGhlcmUuCi0gICAgaWYgKGZsYWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUmVw
YWludFJlY3RzKQorICAgIGlmIChvcHRpb25zICYgTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5j
bHVkZVJlcGFpbnRSZWN0cykKICAgICAgICAgcmV0dXJuIG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KS50cmFja2VkUmVwYWludFJlY3RzQXNUZXh0KCkgKyBsYXllclRyZWVUZXh0OwogCiAgICAgcmV0
dXJuIGxheWVyVHJlZVRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggZDEyZjFjNWNjYzFlZDU0NmUyZjkwMDA4NTdiNDhkZTZj
OGMwNmY2MC4uMDc1MjAwNDUxZDM2NzNiZDdjNGI2YmY4ZWU4YWNhMDE1YzAzOWVmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAt
NDcsOCArNDcsNiBAQCBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvcjsKIGNsYXNzIFN0aWNreVBv
c2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFRpbGVkQmFja2luZzsKIAotdHlwZWRl
ZiB1bnNpZ25lZCBMYXllclRyZWVGbGFnczsKLQogZW51bSBjbGFzcyBDb21wb3NpdGluZ1VwZGF0
ZVR5cGUgewogICAgIEFmdGVyU3R5bGVDaGFuZ2UsCiAgICAgQWZ0ZXJMYXlvdXQsCkBAIC0zMTYs
MTAgKzMxNCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdpZGdldERpZENoYW5nZVNpemUoUmVu
ZGVyV2lkZ2V0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0
KExheWVyVHJlZUZsYWdzID0gMCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxh
eWVyVHJlZUFzVGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gPSB7IH0pIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0cmFja2VkUmVwYWludFJlY3RzQXNUZXh0
KCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KExh
eWVyVHJlZUZsYWdzID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxheWVyVHJlZUFz
VGV4dChPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gPSB7IH0pOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChF
bGVtZW50JiwgT3B0aW9uU2V0PFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M+KTsKIAogICAg
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggMGVhZTA4ODlhM2QyMzQ0MWNhYWIyZWNiMmQ1ZDlmOTEw
ZjQ4ZGUwYS4uNjA1MmIwMDBjMjE4OGI5MGE3NjliMTE2NGNjOWViMjlmMzIxNzQzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjgxOCwzMSArMjgxOCwzMSBAQCBFeGNl
cHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoaW50IHBhZ2VOdW1iZXIp
CiAgICAgcmV0dXJuIGRvY3VtZW50LT5pc1BhZ2VCb3hWaXNpYmxlKHBhZ2VOdW1iZXIpOwogfQog
Ci1zdGF0aWMgTGF5ZXJUcmVlRmxhZ3MgdG9MYXllclRyZWVGbGFncyh1bnNpZ25lZCBzaG9ydCBm
bGFncykKK3N0YXRpYyBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0aW9ucz4gdG9MYXllclRy
ZWVBc1RleHRPcHRpb25zKHVuc2lnbmVkIHNob3J0IGZsYWdzKQogewotICAgIExheWVyVHJlZUZs
YWdzIGxheWVyVHJlZUZsYWdzID0gMDsKKyAgICBPcHRpb25TZXQ8TGF5ZXJUcmVlQXNUZXh0T3B0
aW9ucz4gbGF5ZXJUcmVlRmxhZ3M7CiAgICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9U
UkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExh
eWVyVHJlZUZsYWdzSW5jbHVkZVZpc2libGVSZWN0czsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3Mu
YWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVWaXNpYmxlUmVjdHMpOwogICAgIGlm
IChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUykKLSAg
ICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlVGlsZUNhY2hlczsK
KyAgICAgICAgbGF5ZXJUcmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1
ZGVUaWxlQ2FjaGVzKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5D
TFVERVNfUkVQQUlOVF9SRUNUUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVl
RmxhZ3NJbmNsdWRlUmVwYWludFJlY3RzOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5
ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZVJlcGFpbnRSZWN0cyk7CiAgICAgaWYgKGZsYWdz
ICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX1BBSU5USU5HX1BIQVNFUykKLSAgICAg
ICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXM7
CisgICAgICAgIGxheWVyVHJlZUZsYWdzLmFkZChMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNs
dWRlUGFpbnRpbmdQaGFzZXMpOwogICAgIGlmIChmbGFncyAmIEludGVybmFsczo6TEFZRVJfVFJF
RV9JTkNMVURFU19DT05URU5UX0xBWUVSUykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5
ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVyczsKKyAgICAgICAgbGF5ZXJUcmVlRmxhZ3Mu
YWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDb250ZW50TGF5ZXJzKTsKICAgICBp
ZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfQUNDRUxFUkFURVNfRFJB
V0lORykKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQWNj
ZWxlcmF0ZXNEcmF3aW5nOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNU
ZXh0T3B0aW9uczo6SW5jbHVkZUFjY2VsZXJhdGVzRHJhd2luZyk7CiAgICAgaWYgKGZsYWdzICYg
SW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX0NMSVBQSU5HKQotICAgICAgICBsYXllclRy
ZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVDbGlwcGluZzsKKyAgICAgICAgbGF5ZXJU
cmVlRmxhZ3MuYWRkKExheWVyVHJlZUFzVGV4dE9wdGlvbnM6OkluY2x1ZGVDbGlwcGluZyk7CiAg
ICAgaWYgKGZsYWdzICYgSW50ZXJuYWxzOjpMQVlFUl9UUkVFX0lOQ0xVREVTX0JBQ0tJTkdfU1RP
UkVfQVRUQUNIRUQpCi0gICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5j
bHVkZUJhY2tpbmdTdG9yZUF0dGFjaGVkOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5
ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUJhY2tpbmdTdG9yZUF0dGFjaGVkKTsKICAgICBp
ZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9Q
RVJUSUVTKQotICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVS
b290TGF5ZXJQcm9wZXJ0aWVzOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVl
QXNUZXh0T3B0aW9uczo6SW5jbHVkZVJvb3RMYXllclByb3BlcnRpZXMpOwogICAgIGlmIChmbGFn
cyAmIEludGVybmFsczo6TEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04pCi0gICAgICAg
IGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZUV2ZW50UmVnaW9uOworICAg
ICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNUZXh0T3B0aW9uczo6SW5jbHVkZUV2
ZW50UmVnaW9uKTsKICAgICBpZiAoZmxhZ3MgJiBJbnRlcm5hbHM6OkxBWUVSX1RSRUVfSU5DTFVE
RVNfREVFUF9DT0xPUikKLSAgICAgICAgbGF5ZXJUcmVlRmxhZ3MgfD0gTGF5ZXJUcmVlRmxhZ3NJ
bmNsdWRlRGVlcENvbG9yOworICAgICAgICBsYXllclRyZWVGbGFncy5hZGQoTGF5ZXJUcmVlQXNU
ZXh0T3B0aW9uczo6SW5jbHVkZURlZXBDb2xvcik7CiAKICAgICByZXR1cm4gbGF5ZXJUcmVlRmxh
Z3M7CiB9CkBAIC0yODU1LDcgKzI4NTUsNyBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFs
czo6bGF5ZXJUcmVlQXNUZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgc2hvcgogewog
ICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSB8fCAhZG9jdW1lbnQuZnJhbWUoKS0+Y29udGVudFJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKLSAgICByZXR1cm4gZG9jdW1lbnQuZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCktPmNvbXBv
c2l0b3IoKS5sYXllclRyZWVBc1RleHQodG9MYXllclRyZWVGbGFncyhmbGFncykpOworICAgIHJl
dHVybiBkb2N1bWVudC5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKS0+Y29tcG9zaXRvcigpLmxh
eWVyVHJlZUFzVGV4dCh0b0xheWVyVHJlZUFzVGV4dE9wdGlvbnMoZmxhZ3MpKTsKIH0KIAogRXhj
ZXB0aW9uT3I8dWludDY0X3Q+IEludGVybmFsczo6bGF5ZXJJREZvckVsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCkKQEAgLTQ2MjAsNyArNDYyMCw3IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJu
YWxzOjpwYWdlT3ZlcmxheUxheWVyVHJlZUFzVGV4dCh1bnNpZ25lZCBzaG9ydCBmbGFncykKIAog
ICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAot
ICAgIHJldHVybiBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnNpbmdsZXRvbigpLmxheWVyVHJlZUFz
VGV4dCgqZG9jdW1lbnQtPnBhZ2UoKSwgdG9MYXllclRyZWVGbGFncyhmbGFncykpOworICAgIHJl
dHVybiBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnNpbmdsZXRvbigpLmxheWVyVHJlZUFzVGV4dCgq
ZG9jdW1lbnQtPnBhZ2UoKSwgdG9MYXllclRyZWVBc1RleHRPcHRpb25zKGZsYWdzKSk7CiB9CiAK
IHZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmlldyBzdGF0ZXNTdHJpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5k
ZXggYjIzZmM4MWU3ZjJiMzhmMTNlNzYzZDA0MjA1ODNlZjIyYzlmMjZlOS4uZDk3NWYzYjQyODRm
M2I2NmE4ZDc3OTJmMDhiNjNkN2QzZDE1NDNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcApAQCAtNjcsMTMgKzY3LDEzIEBAIHZvaWQg
TW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgfQogfQog
Ci1TdHJpbmcgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpsYXllclRyZWVBc1RleHQoUGFnZSYgcGFn
ZSwgTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCitTdHJpbmcgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojps
YXllclRyZWVBc1RleHQoUGFnZSYgcGFnZSwgT3B0aW9uU2V0PExheWVyVHJlZUFzVGV4dE9wdGlv
bnM+IG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NMYXllciogdmlld092ZXJsYXlSb290ID0gcGFn
ZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS52aWV3T3ZlcmxheVJvb3RMYXllcigpOwogICAgIEdy
YXBoaWNzTGF5ZXIqIGRvY3VtZW50T3ZlcmxheVJvb3QgPSBwYWdlLnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmRvY3VtZW50T3ZlcmxheVJvb3RMYXllcigpOwogICAgIAotICAgIHJldHVybiAiVmll
dy1yZWxhdGl2ZTpcbiIgKyAodmlld092ZXJsYXlSb290ID8gdmlld092ZXJsYXlSb290LT5sYXll
clRyZWVBc1RleHQoZmxhZ3MgfCBMYXllclRyZWVBc1RleHRJbmNsdWRlUGFnZU92ZXJsYXlMYXll
cnMpIDogIihubyB2aWV3LXJlbGF0aXZlIG92ZXJsYXkgcm9vdCkiKQotICAgICAgICArICJcblxu
RG9jdW1lbnQtcmVsYXRpdmU6XG4iICsgKGRvY3VtZW50T3ZlcmxheVJvb3QgPyBkb2N1bWVudE92
ZXJsYXlSb290LT5sYXllclRyZWVBc1RleHQoZmxhZ3MgfCBMYXllclRyZWVBc1RleHRJbmNsdWRl
UGFnZU92ZXJsYXlMYXllcnMpIDogIihubyBkb2N1bWVudC1yZWxhdGl2ZSBvdmVybGF5IHJvb3Qp
Iik7CisgICAgcmV0dXJuICJWaWV3LXJlbGF0aXZlOlxuIiArICh2aWV3T3ZlcmxheVJvb3QgPyB2
aWV3T3ZlcmxheVJvb3QtPmxheWVyVHJlZUFzVGV4dChvcHRpb25zIHwgTGF5ZXJUcmVlQXNUZXh0
T3B0aW9uczo6SW5jbHVkZVBhZ2VPdmVybGF5TGF5ZXJzKSA6ICIobm8gdmlldy1yZWxhdGl2ZSBv
dmVybGF5IHJvb3QpIikKKyAgICAgICAgKyAiXG5cbkRvY3VtZW50LXJlbGF0aXZlOlxuIiArIChk
b2N1bWVudE92ZXJsYXlSb290ID8gZG9jdW1lbnRPdmVybGF5Um9vdC0+bGF5ZXJUcmVlQXNUZXh0
KG9wdGlvbnMgfCBMYXllclRyZWVBc1RleHRPcHRpb25zOjpJbmNsdWRlUGFnZU92ZXJsYXlMYXll
cnMpIDogIihubyBkb2N1bWVudC1yZWxhdGl2ZSBvdmVybGF5IHJvb3QpIik7CiB9CiAKIHZvaWQg
TW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2Uq
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmgKaW5k
ZXggNDY2ODdjZWIzZDgwNTY1YTI4ZWJhNTg3YmIwYjdhYTJlNzUxZGRiNi4uMWQ3N2FiNjVlNjAz
YWM2OGEwN2YxOTY1ZjI3MTFiNWM3NWNlYWY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5oCkBAIC0yNSwxNCArMjUsMTUgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk1vY2tQYWdlT3ZlcmxheS5o
IgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIFBhZ2U7CitlbnVtIGNs
YXNzIExheWVyVHJlZUFzVGV4dE9wdGlvbnMgOiB1aW50MTZfdDsKIAogY2xhc3MgTW9ja1BhZ2VP
dmVybGF5Q2xpZW50IGZpbmFsIDogcHVibGljIFBhZ2VPdmVybGF5OjpDbGllbnQgewogICAgIGZy
aWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxNb2NrUGFnZU92ZXJsYXlDbGllbnQ+OwpAQCAtNDQs
NyArNDUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1vY2tQYWdlT3ZlcmxheT4gaW5zdGFsbE92ZXJs
YXkoUGFnZSYsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSk7CiAgICAgdm9pZCB1bmluc3RhbGxB
bGxPdmVybGF5cygpOwogCi0gICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChQYWdlJiwgTGF5ZXJU
cmVlRmxhZ3MpOworICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoUGFnZSYsIE9wdGlvblNldDxM
YXllclRyZWVBc1RleHRPcHRpb25zPik7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUGFnZU92ZXJsYXlD
bGllbnQoKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LmNwcAppbmRleCA0YWYxYmU4MWY5ODc5NzZlNzUyMjgxODNiY2JhNWRmOWVlYzMyOWVl
Li4wZTdjM2RlYTY4MjI5YzhhNGE0NmIxODU5OTRiMzNkMWQ5ZGUzZmNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAg
U3RyaW5nIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpsYXllclRyZWVBc1N0cmluZygp
IGNvbnN0CiAgICAgaWYgKCFtX3Jvb3RMYXllcikKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IHJldHVybiBtX3Jvb3RMYXllci0+bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUFzVGV4dFNob3dB
bGwpOworICAgIHJldHVybiBtX3Jvb3RMYXllci0+bGF5ZXJUcmVlQXNUZXh0KEFsbExheWVyVHJl
ZUFzVGV4dE9wdGlvbnMpOwogfQogCiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>