<?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>244444</bug_id>
          
          <creation_ts>2022-08-27 22:15:53 -0700</creation_ts>
          <short_desc>REGRESSION(253834@main): crash on Speedometer2.1</short_desc>
          <delta_ts>2022-08-27 22:28:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>234538</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1894280</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-08-27 22:15:53 -0700</bug_when>
    <thetext>https://commits.webkit.org/253834@main introduced a regression:
crash on Speedometer2.1

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894283</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-27 22:27:08 -0700</bug_when>
    <thetext>Committed 253875@main (badb430c13e3): &lt;https://commits.webkit.org/253875@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461940.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894284</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-08-27 22:28:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/99240060&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461940</attachid>
            <date>2022-08-27 22:16:01 -0700</date>
            <delta_ts>2022-08-27 22:27:08 -0700</delta_ts>
            <desc>REVERT of 253834@main</desc>
            <filename>bug-244444-20220827221601.patch</filename>
            <type>text/plain</type>
            <size>146015</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAwNmVkNzlmOWYzMmZkNGRjZWFjZWE4MzU4ODA2MTJkNzEyY2U0YmY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBTYXQsIDI3IEF1ZyAyMDIyIDIyOjE1OjU4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTM4MzRAbWFpbi4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDQ0NDQKCmNyYXNoIG9uIFNwZWVkb21ldGVyMi4xCgpSZXZl
cnRlZCBjaGFuZ2VzZXQ6CgoiW1dlYklETF0gRWFnZXJseSBhbGxvY2F0ZSBlbGVtZW50IHdyYXBw
ZXJzIG9udG8gYSBidXR0ZXJmbHkgc3RvcmFnZSBvZiBhIHN0YXRpYyBOb2RlTGlzdCIKaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDUzOApodHRwczovL2NvbW1pdHMu
d2Via2l0Lm9yZy8yNTM4MzRAbWFpbgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dCAgICAgICAgICB8ICAgMiAtCiAuLi4vSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9B
Y2Nlc3NDYXNlLmNwcCB8ICAxNCAtLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Fj
Y2Vzc0Nhc2UuaCAgIHwgICAxIC0KIC4uLml2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9p
bnRCYXNlLmNwcCB8ICAgMiAtCiAuLi5wdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9p
bnRCYXNlLmggfCAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuY3BwICB8ICAgNSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FycmF5UHJv
ZmlsZS5oIHwgICA2IC0KIC4uLi9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAgICAgICAg
ICAgICB8ICAgMyAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUmVwYXRjaC5jcHAg
ICAgfCAgIDMgLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuY3Bw
IHwgICAyIC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmggICB8
ICAgOCArLQogLi4uL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oICAgICAgIHwg
ICA1IC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCAgICB8ICA1
MCArKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaCAgICAgIHwg
IDIyICstLQogLi4uL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmggICAgICAgIHwg
ICAyIC0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwICB8ICA1
NiArKy0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oICAgICB8
ICAgNyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCAgIHwg
IDQxICstLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwICB8
ICAxNCArLQogLi4uL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCAgICAgICAgICAgIHwg
ICAzICstCiAuLi4vZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwICAgICAgICAgICAgICAgfCAg
IDUgKy0KIC4uLi9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICAgICAgICAgICB8ICAg
MSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgfCAgMjYg
Ky0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQ2VsbC5oICAgICAgICAgfCAgIDIg
Ky0KIC4uLi9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgICB8ICAgNyAt
CiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gICAgICAgICAgICAgfCAgMjIgKy0t
CiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSAgICAgICAgfCAgIDQgKy0K
IC4uLi9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtICAgICAgICAgICB8ICAgNCArLQog
Li4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIHwgIDI0ICsrLQog
Li4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kZXhpbmdUeXBlLmNwcCAgIHwgICAzIC0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGV4aW5nVHlwZS5oICB8ICA2OSArKystLS0t
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCAgICAgfCAgIDggKy0K
IC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCB8ICAxMCAtCiAu
Li4vSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oICAgfCAgMTYgLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCAgICB8ICAyNyArLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggICAgICB8ICAxMSArLQogLi4u
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggIHwgIDE1IC0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmggICAgfCAgIDIgLQogLi4uL09i
amVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50LmggIHwgICAyICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCAgICAgfCAgIDIgKy0KIC4uLi9ydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oICAgICAgICB8ICAgMiArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwICAgIHwgMTc2IC0tLS0tLS0tLS0tLS0t
LS0tLQogLi4uL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICAy
ICstCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwICAgfCAgMzIg
LS0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggIHwgICA2
IC0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwICB8ICA4MCAt
LS0tLS0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5oIHwg
IDMxIC0tLQogU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmggICAgICAgICAgICAgICAgIHwg
ICAxIC0KIFNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5jcHAgICAgICAgICB8ICAx
MCAtCiBTb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljTm9kZUxpc3QuaCAgICAgICAgICAgfCAgIDQg
LQogLi4ubGlzdC1zdGF0aWMtaGF2aW5nLWEtYmFkLXRpbWUtZXhwZWN0ZWQudHh0IHwgIDEwIC0K
IC4uLi9ub2RlbGlzdC1zdGF0aWMtaGF2aW5nLWEtYmFkLXRpbWUuaHRtbCAgICB8ICAyMyAtLS0K
IC4uLmF0aWMtbGVuZ3RoLWdldHRlci10YW1wZXJlZC0xLWV4cGVjdGVkLnR4dCB8ICAgMyAtCiAu
Li5lTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1wZXJlZC0xLmh0bWwgfCAgMjEgLS0tCiAu
Li5hdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtMi1leHBlY3RlZC50eHQgfCAgIDMgLQogLi4u
ZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtMi5odG1sIHwgIDIxIC0tLQogLi4u
YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTMtZXhwZWN0ZWQudHh0IHwgICAzIC0KIC4uLmVM
aXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTMuaHRtbCB8ICAyMSAtLS0KIC4uLmd0
aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0xLWV4cGVjdGVkLnR4dCB8ICAgMyAtCiAuLi5hdGlj
LWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0xLmh0bWwgfCAgMjEgLS0tCiAuLi5ndGgt
Z2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMi1leHBlY3RlZC50eHQgfCAgIDMgLQogLi4uYXRpYy1s
ZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMi5odG1sIHwgIDIxIC0tLQogLi4uZ3RoLWdl
dHRlci10YW1wZXJlZC1pbmRleE9mLTMtZXhwZWN0ZWQudHh0IHwgICAzIC0KIC4uLmF0aWMtbGVu
Z3RoLWdldHRlci10YW1wZXJlZC1pbmRleE9mLTMuaHRtbCB8ICAyMSAtLS0KIC4uLi9Ob2RlTGlz
dC1zdGF0aWMtbGVuZ3RoLXRhbXBlcmVkLmpzICAgICAgICB8ICA0NiAtLS0tLQogLmdpdGlnbm9y
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIC4uLnR5cGUtaW5k
ZXhPZi1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1dC5qcyB8ICAxNSAtLQogLi4uL2FycmF5LXBy
b3RvdHlwZS1pbmRleE9mLWNvbnRpZ3VvdXMuanMgICAgIHwgIDE1IC0tCiAuLi50b3R5cGUtc2xp
Y2UtY29udGlndW91cy1hbHdheXMtc2xvdy1wdXQuanMgfCAgMTYgLS0KIC4uLi9hcnJheS1wcm90
b3R5cGUtc2xpY2UtY29udGlndW91cy5qcyAgICAgICB8ICAxNiAtLQogLi4uL2dldC1ieS12YWwt
Y29udGlndW91cy1hbHdheXMtc2xvdy1wdXQuanMgIHwgIDE3IC0tCiAuLi4vbWljcm9iZW5jaG1h
cmtzL2dldC1ieS12YWwtY29udGlndW91cy5qcyAgfCAgMTcgLS0KIC4uLi1zbG93LXB1dC1jb250
aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2UtMS5qcyB8ICAyNSAtLS0KIC4uLi1zbG93LXB1dC1jb250
aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2UtMi5qcyB8ICAyNSAtLS0KIC4uLi1zbG93LXB1dC1jb250
aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2UtMy5qcyB8ICAyNSAtLS0KIC4uLi1zbG93LXB1dC1jb250
aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2UtNC5qcyB8ICAyNSAtLS0KIC4uLnJyYXktcmV2ZXJzZS1j
b250aWd1b3VzLWFsd2F5cy1zbG93LXB1dC5qcyB8ICAgOSAtCiAuLi55LXZhbC1hbHdheXMtc2xv
dy1wdXQtY29udGlndW91cy10cmlja3kuanMgfCAgMjEgLS0tCiAuLi4vZm9yLWluLWFsd2F5cy1z
bG93LXB1dC1jb250aWd1b3VzLmpzICAgICAgfCAgMTUgLS0KIC4uLnktdmFsLWFsd2F5cy1zbG93
LXB1dC1jb250aWd1b3VzLXRyaWNreS5qcyB8ICAxOSAtLQogLi4ueS12YWwtYWx3YXlzLXNsb3ct
cHV0LWNvbnRpZ3VvdXMtdHJpY2t5LmpzIHwgIDIxIC0tLQogODIgZmlsZXMgY2hhbmdlZCwgMTQx
IGluc2VydGlvbnMoKyksIDEyMjMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxpc3Qtc3RhdGljLWhhdmluZy1hLWJhZC10
aW1lLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZG9t
L05vZGVMaXN0L25vZGVsaXN0LXN0YXRpYy1oYXZpbmctYS1iYWQtdGltZS5odG1sCiBkZWxldGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtMS1leHBlY3Rl
ZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1w
ZXJlZC0xLmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRl
ci10YW1wZXJlZC0yLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRp
Yy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTIuaHRtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0
LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTMtZXhwZWN0ZWQudHh0CiBkZWxldGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtMy5odG1sCiBkZWxl
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhP
Zi0xLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgt
Z2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qt
c3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0yLWV4cGVjdGVkLnR4dAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4
T2YtMi5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXIt
dGFtcGVyZWQtaW5kZXhPZi0zLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0
LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMy5odG1sCiBkZWxldGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvc3VwcG9ydC9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLXRhbXBlcmVkLmpzCiBkZWxldGUg
bW9kZSAxMDA2NDQgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLWluZGV4
T2YtY29udGlndW91cy1hbHdheXMtc2xvdy1wdXQuanMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBKU1Rl
c3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtaW5kZXhPZi1jb250aWd1b3VzLmpz
CiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90
eXBlLXNsaWNlLWNvbnRpZ3VvdXMtYWx3YXlzLXNsb3ctcHV0LmpzCiBkZWxldGUgbW9kZSAxMDA2
NDQgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNsaWNlLWNvbnRpZ3Vv
dXMuanMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtYnkt
dmFsLWNvbnRpZ3VvdXMtYWx3YXlzLXNsb3ctcHV0LmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvZ2V0LWJ5LXZhbC1jb250aWd1b3VzLmpzCiBkZWxldGUgbW9k
ZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3MvYWx3YXlzLXNsb3ctcHV0LWNvbnRpZ3VvdXMtdG8tYXJy
YXktc3RvcmFnZS0xLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3MvYWx3YXlz
LXNsb3ctcHV0LWNvbnRpZ3VvdXMtdG8tYXJyYXktc3RvcmFnZS0yLmpzCiBkZWxldGUgbW9kZSAx
MDA2NDQgSlNUZXN0cy9zdHJlc3MvYWx3YXlzLXNsb3ctcHV0LWNvbnRpZ3VvdXMtdG8tYXJyYXkt
c3RvcmFnZS0zLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3MvYWx3YXlzLXNs
b3ctcHV0LWNvbnRpZ3VvdXMtdG8tYXJyYXktc3RvcmFnZS00LmpzCiBkZWxldGUgbW9kZSAxMDA2
NDQgSlNUZXN0cy9zdHJlc3MvYXJyYXktcmV2ZXJzZS1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1
dC5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3RyZXNzL2RlbGV0ZS1ieS12YWwtYWx3
YXlzLXNsb3ctcHV0LWNvbnRpZ3VvdXMtdHJpY2t5LmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNU
ZXN0cy9zdHJlc3MvZm9yLWluLWFsd2F5cy1zbG93LXB1dC1jb250aWd1b3VzLmpzCiBkZWxldGUg
bW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC1hbHdheXMtc2xvdy1wdXQtY29u
dGlndW91cy10cmlja3kuanMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3N0cmVzcy9wdXQt
YnktdmFsLWFsd2F5cy1zbG93LXB1dC1jb250aWd1b3VzLXRyaWNreS5qcwoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiNmY1ZDFmZDU4MjAuLmMyZTFjZGE2NGIyOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjE4LDcgKzYxOCw2IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYnVpbHRpbnMvQnVp
bHRpbk5hbWVzLmgKICAgICBidWlsdGlucy9CdWlsdGluVXRpbHMuaAogCi0gICAgYnl0ZWNvZGUv
QWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oCiAgICAgYnl0ZWNv
ZGUvQXJpdGhQcm9maWxlLmgKICAgICBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmgK
ICAgICBieXRlY29kZS9BcnJheVByb2ZpbGUuaApAQCAtMTEzMyw3ICsxMTMyLDYgQEAgc2V0KEph
dmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL051bWVy
aWNTdHJpbmdzLmgKICAgICBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKICAgICBydW50aW1l
L09iamVjdEluaXRpYWxpemF0aW9uU2NvcGUuaAotICAgIHJ1bnRpbWUvT2JqZWN0UHJvcGVydHlD
aGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQuaAogICAgIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgK
ICAgICBydW50aW1lL09wZXJhdGlvbnMuaAogICAgIHJ1bnRpbWUvT3B0aW9ucy5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQzNmM5NmFkYmM3ZC4uYjI1N2JkOGRjNjk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5MCw3ICsxMDkwLDcgQEAKIAkJNTM2QjMx
OUMxRjczNUU3RDAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UxMzQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM2QjMxOTcxRjczNUU1QjAwMzdGQzMz
IC8qIFVuaWZpZWRTb3VyY2UxMzQuY3BwICovOyB9OwogCQk1MzZCMzE5RDFGNzM1RTdEMDAzN0ZD
MzMgLyogVW5pZmllZFNvdXJjZTEzNS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MzZCMzE5OTFGNzM1RTVEMDAzN0ZDMzMgLyogVW5pZmllZFNvdXJj
ZTEzNS5jcHAgKi87IH07CiAJCTUzNzA4MDZCMUZFMjMyREYwMDI5OUU0NCAvKiBKU0FycmF5QnVm
ZmVyVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYyQjY2QkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmggKi87IH07Ci0J
CTUzNzBCNEY2MUJGMjYyMDUwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1
ZVdhdGNocG9pbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MzcwQjRGNDFCRjI1RUEyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3Bl
cnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTUzNzBCNEY2MUJGMjYyMDUwMDVDNDBGQyAvKiBBZGFwdGl2ZUlu
ZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzcwQjRGNDFCRjI1RUEyMDA1QzQwRkMgLyogQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oICovOyB9OwogCQk1MzdG
RUVDOTI3NDJCREEzMDBDOUVGRUUgLyogU3RydWN0dXJlSUQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzN0ZFRUM4Mjc0MkJEQTMwMEM5RUZFRSAvKiBT
dHJ1Y3R1cmVJRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUzN0ZFRUQwMjc0MkJERTEwMEM5RUZFRSAvKiBTdHJ1Y3R1cmVBbGlnbmVkTWVtb3J5
QWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MzdGRUVDQzI3NDJCREUwMDBDOUVGRUUgLyogU3RydWN0dXJlQWxpZ25lZE1lbW9yeUFsbG9j
YXRvci5oICovOyB9OwogCQk1MzgxQjkzOTFFNjBFOTdEMDA5MEY3OTQgLyogV2FzbUZhdWx0U2ln
bmFsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTM4MUI5MzgxRTYwRTk3RDAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjAxMSw3
ICsyMDExLDcgQEAKIAkJRTNCRjNDNTMyMzkwRDIwNTAwOEJDNzUyIC8qIFdlYkFzc2VtYmx5R2xv
YmFsQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQkYzQzUxMjM5MEQxRkMwMDhCQzc1MiAvKiBXZWJBc3NlbWJseUdsb2JhbENvbnN0
cnVjdG9yLmggKi87IH07CiAJCUUzQkZBNUQwMjFFODUzQTEwMDlDMEVCQSAvKiBERkdEZXNpcmVk
R2xvYmFsUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQkZBNUNEMjFFODUzQTEwMDlDMEVCQSAvKiBERkdEZXNpcmVkR2xvYmFsUHJvcGVy
dHkuaCAqLzsgfTsKIAkJRTNCRkQwQkMxREFGODA4RTAwNjVERUEyIC8qIEFjY2Vzc0Nhc2VTbmlw
cGV0UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0JGRDBCQTFEQUY4MDdDMDA2NURFQTIgLyogQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaCAq
LzsgfTsKLQkJRTNDMjk1REQxRUQyQ0JEQTAwRDMwMTZGIC8qIE9iamVjdFByb3BlcnR5Q2hhbmdl
QWRhcHRpdmVXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFM0MyOTVEQzFFRDJDQkFBMDBEMzAxNkYgLyogT2JqZWN0UHJvcGVydHlDaGFu
Z2VBZGFwdGl2ZVdhdGNocG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlFM0MyOTVERDFFRDJDQkRBMDBEMzAxNkYgLyogT2JqZWN0UHJvcGVy
dHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzI5NURDMUVEMkNCQUEwMEQzMDE2RiAvKiBPYmplY3RQcm9w
ZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oICovOyB9OwogCQlFM0M0MTMxRDI4OUUwOEVB
MDAxMTUwRjggLyogU3ludGhldGljTW9kdWxlUmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M0MTMxQzI4OUUwOEU1MDAxMTUwRjggLyogU3lu
dGhldGljTW9kdWxlUmVjb3JkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTNDNjk0QjMyMzAyNjg3NzAwNkZCRTQyIC8qIFdhc21PU1JFbnRyeURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzY5
NEIxMjMwMjY4NzMwMDZGQkU0MiAvKiBXYXNtT1NSRW50cnlEYXRhLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNDNzNBOTEyNUJGQTczQjAwRUZF
MzAzIC8qIFdhc21TdHJlYW1pbmdQbGFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0M3M0E5MDI1QkZBNzM0MDBFRkUzMDMgLyogV2FzbVN0cmVhbWlu
Z1BsYW4uaCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9BY2Nlc3NDYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3ND
YXNlLmNwcAppbmRleCA0MzQ0YzUxN2Q1YzEuLmIxNDFlYzcyY2Y0MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtODYsNyArODYsNiBAQCBS
ZWY8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Y3JlYXRlKFZNJiB2bSwgSlNDZWxsKiBvd25lciwg
QWNjZXNzVHlwZSB0eXBlLCBDYWNoZQogICAgIGNhc2UgSW5kZXhlZEludDMyTG9hZDoKICAgICBj
YXNlIEluZGV4ZWREb3VibGVMb2FkOgogICAgIGNhc2UgSW5kZXhlZENvbnRpZ3VvdXNMb2FkOgot
ICAgIGNhc2UgSW5kZXhlZEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzTG9hZDoKICAgICBjYXNlIElu
ZGV4ZWRBcnJheVN0b3JhZ2VMb2FkOgogICAgIGNhc2UgSW5kZXhlZFNjb3BlZEFyZ3VtZW50c0xv
YWQ6CiAgICAgY2FzZSBJbmRleGVkRGlyZWN0QXJndW1lbnRzTG9hZDoKQEAgLTMwOCw3ICszMDcs
NiBAQCBib29sIEFjY2Vzc0Nhc2U6Omd1YXJkZWRCeVN0cnVjdHVyZUNoZWNrU2tpcHBpbmdDb25z
dGFudElkZW50aWZpZXJDaGVjaygpIGNvbnN0CiAgICAgY2FzZSBJbmRleGVkSW50MzJMb2FkOgog
ICAgIGNhc2UgSW5kZXhlZERvdWJsZUxvYWQ6CiAgICAgY2FzZSBJbmRleGVkQ29udGlndW91c0xv
YWQ6Ci0gICAgY2FzZSBJbmRleGVkQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNMb2FkOgogICAgIGNh
c2UgSW5kZXhlZEFycmF5U3RvcmFnZUxvYWQ6CiAgICAgY2FzZSBJbmRleGVkU2NvcGVkQXJndW1l
bnRzTG9hZDoKICAgICBjYXNlIEluZGV4ZWREaXJlY3RBcmd1bWVudHNMb2FkOgpAQCAtMzc3LDcg
KzM3NSw2IEBAIGJvb2wgQWNjZXNzQ2FzZTo6cmVxdWlyZXNJZGVudGlmaWVyTmFtZU1hdGNoKCkg
Y29uc3QKICAgICBjYXNlIEluZGV4ZWRJbnQzMkxvYWQ6CiAgICAgY2FzZSBJbmRleGVkRG91Ymxl
TG9hZDoKICAgICBjYXNlIEluZGV4ZWRDb250aWd1b3VzTG9hZDoKLSAgICBjYXNlIEluZGV4ZWRB
bHdheXNTbG93UHV0Q29udGlndW91c0xvYWQ6CiAgICAgY2FzZSBJbmRleGVkQXJyYXlTdG9yYWdl
TG9hZDoKICAgICBjYXNlIEluZGV4ZWRTY29wZWRBcmd1bWVudHNMb2FkOgogICAgIGNhc2UgSW5k
ZXhlZERpcmVjdEFyZ3VtZW50c0xvYWQ6CkBAIC00NDQsNyArNDQxLDYgQEAgYm9vbCBBY2Nlc3ND
YXNlOjpyZXF1aXJlc0ludDMyUHJvcGVydHlDaGVjaygpIGNvbnN0CiAgICAgY2FzZSBJbmRleGVk
SW50MzJMb2FkOgogICAgIGNhc2UgSW5kZXhlZERvdWJsZUxvYWQ6CiAgICAgY2FzZSBJbmRleGVk
Q29udGlndW91c0xvYWQ6Ci0gICAgY2FzZSBJbmRleGVkQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNM
b2FkOgogICAgIGNhc2UgSW5kZXhlZEFycmF5U3RvcmFnZUxvYWQ6CiAgICAgY2FzZSBJbmRleGVk
U2NvcGVkQXJndW1lbnRzTG9hZDoKICAgICBjYXNlIEluZGV4ZWREaXJlY3RBcmd1bWVudHNMb2Fk
OgpAQCAtNTA4LDcgKzUwNCw2IEBAIGJvb2wgQWNjZXNzQ2FzZTo6bmVlZHNTY3JhdGNoRlBSKCkg
Y29uc3QKICAgICBjYXNlIEluc3RhbmNlT2ZHZW5lcmljOgogICAgIGNhc2UgSW5kZXhlZEludDMy
TG9hZDoKICAgICBjYXNlIEluZGV4ZWRDb250aWd1b3VzTG9hZDoKLSAgICBjYXNlIEluZGV4ZWRB
bHdheXNTbG93UHV0Q29udGlndW91c0xvYWQ6CiAgICAgY2FzZSBJbmRleGVkQXJyYXlTdG9yYWdl
TG9hZDoKICAgICBjYXNlIEluZGV4ZWRTY29wZWRBcmd1bWVudHNMb2FkOgogICAgIGNhc2UgSW5k
ZXhlZERpcmVjdEFyZ3VtZW50c0xvYWQ6CkBAIC02MTIsNyArNjA3LDYgQEAgdm9pZCBBY2Nlc3ND
YXNlOjpmb3JFYWNoRGVwZW5kZW50Q2VsbChWTSYsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIGNv
bnN0CiAgICAgY2FzZSBJbmRleGVkSW50MzJMb2FkOgogICAgIGNhc2UgSW5kZXhlZERvdWJsZUxv
YWQ6CiAgICAgY2FzZSBJbmRleGVkQ29udGlndW91c0xvYWQ6Ci0gICAgY2FzZSBJbmRleGVkQWx3
YXlzU2xvd1B1dENvbnRpZ3VvdXNMb2FkOgogICAgIGNhc2UgSW5kZXhlZEFycmF5U3RvcmFnZUxv
YWQ6CiAgICAgY2FzZSBJbmRleGVkU2NvcGVkQXJndW1lbnRzTG9hZDoKICAgICBjYXNlIEluZGV4
ZWREaXJlY3RBcmd1bWVudHNMb2FkOgpAQCAtNjgxLDcgKzY3NSw2IEBAIGJvb2wgQWNjZXNzQ2Fz
ZTo6ZG9lc0NhbGxzKFZNJiB2bSwgVmVjdG9yPEpTQ2VsbCo+KiBjZWxsc1RvTWFya0lmRG9lc0Nh
bGxzKSBjb25zCiAgICAgY2FzZSBJbmRleGVkSW50MzJMb2FkOgogICAgIGNhc2UgSW5kZXhlZERv
dWJsZUxvYWQ6CiAgICAgY2FzZSBJbmRleGVkQ29udGlndW91c0xvYWQ6Ci0gICAgY2FzZSBJbmRl
eGVkQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNMb2FkOgogICAgIGNhc2UgSW5kZXhlZEFycmF5U3Rv
cmFnZUxvYWQ6CiAgICAgY2FzZSBJbmRleGVkU2NvcGVkQXJndW1lbnRzTG9hZDoKICAgICBjYXNl
IEluZGV4ZWREaXJlY3RBcmd1bWVudHNMb2FkOgpAQCAtNzczLDcgKzc2Niw2IEBAIGJvb2wgQWNj
ZXNzQ2FzZTo6Y2FuUmVwbGFjZShjb25zdCBBY2Nlc3NDYXNlJiBvdGhlcikgY29uc3QKICAgICBj
YXNlIEluZGV4ZWRJbnQzMkxvYWQ6CiAgICAgY2FzZSBJbmRleGVkRG91YmxlTG9hZDoKICAgICBj
YXNlIEluZGV4ZWRDb250aWd1b3VzTG9hZDoKLSAgICBjYXNlIEluZGV4ZWRBbHdheXNTbG93UHV0
Q29udGlndW91c0xvYWQ6CiAgICAgY2FzZSBJbmRleGVkQXJyYXlTdG9yYWdlTG9hZDoKICAgICBj
YXNlIEFycmF5TGVuZ3RoOgogICAgIGNhc2UgU3RyaW5nTGVuZ3RoOgpAQCAtMTM0OCw3ICsxMzQw
LDYgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICBjYXNlIEluZGV4
ZWRJbnQzMkxvYWQ6CiAgICAgY2FzZSBJbmRleGVkRG91YmxlTG9hZDoKICAgICBjYXNlIEluZGV4
ZWRDb250aWd1b3VzTG9hZDoKLSAgICBjYXNlIEluZGV4ZWRBbHdheXNTbG93UHV0Q29udGlndW91
c0xvYWQ6CiAgICAgY2FzZSBJbmRleGVkQXJyYXlTdG9yYWdlTG9hZDogewogICAgICAgICBBU1NF
UlQoIXZpYVByb3h5KCkpOwogICAgICAgICAvLyBUaGlzIGNvZGUgaXMgd3JpdHRlbiBzdWNoIHRo
YXQgdGhlIHJlc3VsdCBjb3VsZCBhbGlhcyB3aXRoIHRoZSBiYXNlIG9yIHRoZSBwcm9wZXJ0eS4K
QEAgLTE0MDMsOSArMTM5NCw2IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQo
CiAgICAgICAgICAgICBjYXNlIEluZGV4ZWRDb250aWd1b3VzTG9hZDoKICAgICAgICAgICAgICAg
ICBleHBlY3RlZFNoYXBlID0gQ29udGlndW91c1NoYXBlOwogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSBJbmRleGVkQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNMb2FkOgot
ICAgICAgICAgICAgICAgIGV4cGVjdGVkU2hhcGUgPSBBbHdheXNTbG93UHV0Q29udGlndW91c1No
YXBlOwotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMjU0OSw3ICsyNTM3LDYgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUlt
cGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICBjYXNlIEluZGV4ZWRJbnQzMkxv
YWQ6CiAgICAgY2FzZSBJbmRleGVkRG91YmxlTG9hZDoKICAgICBjYXNlIEluZGV4ZWRDb250aWd1
b3VzTG9hZDoKLSAgICBjYXNlIEluZGV4ZWRBbHdheXNTbG93UHV0Q29udGlndW91c0xvYWQ6CiAg
ICAgY2FzZSBJbmRleGVkQXJyYXlTdG9yYWdlTG9hZDoKICAgICBjYXNlIEluZGV4ZWRTY29wZWRB
cmd1bWVudHNMb2FkOgogICAgIGNhc2UgSW5kZXhlZERpcmVjdEFyZ3VtZW50c0xvYWQ6CkBAIC0y
Njc1LDcgKzI2NjIsNiBAQCBib29sIEFjY2Vzc0Nhc2U6OmNhbkJlU2hhcmVkKGNvbnN0IEFjY2Vz
c0Nhc2UmIGxocywgY29uc3QgQWNjZXNzQ2FzZSYgcmhzKQogICAgIGNhc2UgSW5kZXhlZEludDMy
TG9hZDoKICAgICBjYXNlIEluZGV4ZWREb3VibGVMb2FkOgogICAgIGNhc2UgSW5kZXhlZENvbnRp
Z3VvdXNMb2FkOgotICAgIGNhc2UgSW5kZXhlZEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzTG9hZDoK
ICAgICBjYXNlIEluZGV4ZWRBcnJheVN0b3JhZ2VMb2FkOgogICAgIGNhc2UgSW5kZXhlZFNjb3Bl
ZEFyZ3VtZW50c0xvYWQ6CiAgICAgY2FzZSBJbmRleGVkRGlyZWN0QXJndW1lbnRzTG9hZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oCmluZGV4IGMwMDAwMTc4
MmU0Yy4uNGMxNmFiNzVkODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQWNjZXNzQ2FzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9B
Y2Nlc3NDYXNlLmgKQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4ZWRJ
bnQzMkxvYWQsCiAgICAgICAgIEluZGV4ZWREb3VibGVMb2FkLAogICAgICAgICBJbmRleGVkQ29u
dGlndW91c0xvYWQsCi0gICAgICAgIEluZGV4ZWRBbHdheXNTbG93UHV0Q29udGlndW91c0xvYWQs
CiAgICAgICAgIEluZGV4ZWRBcnJheVN0b3JhZ2VMb2FkLAogICAgICAgICBJbmRleGVkU2NvcGVk
QXJndW1lbnRzTG9hZCwKICAgICAgICAgSW5kZXhlZERpcmVjdEFyZ3VtZW50c0xvYWQsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFBy
b3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAKaW5k
ZXggYjQ1MDlkMzU1ODAxLi5iNTNlZGZiMTc4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWRhcHRpdmVJbmZl
cnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAKQEAgLTM2LDggKzM2LDYgQEAgQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZTo6QWRhcHRpdmVJbmZlcnJl
ZFByb3BlcnR5VmFsdWVXYXRjaHAKICAgICBSRUxFQVNFX0FTU0VSVChrZXkua2luZCgpID09IFBy
b3BlcnR5Q29uZGl0aW9uOjpFcXVpdmFsZW5jZSk7CiB9CiAKLUFkYXB0aXZlSW5mZXJyZWRQcm9w
ZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2U6On5BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdh
dGNocG9pbnRCYXNlKCkgPSBkZWZhdWx0OwotCiB2b2lkIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0
eVZhbHVlV2F0Y2hwb2ludEJhc2U6OmluaXRpYWxpemUoY29uc3QgT2JqZWN0UHJvcGVydHlDb25k
aXRpb24mIGtleSkKIHsKICAgICBtX2tleSA9IGtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9p
bnRCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJl
ZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oCmluZGV4IDM0ZWEzMjA2NTMwNi4uMGE5ZWJh
ZDhkOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWRhcHRp
dmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9p
bnRCYXNlLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIC8vIEZJWE1FOiBU
aGlzIGlzbid0IGFjdHVhbGx5IGEgV2F0Y2hwb2ludC4gV2Ugc2hvdWxkIHByb2JhYmx5IGhhdmUg
YSBuYW1lIHdoaWNoIGJldHRlciByZWZsZWN0cyB0aGF0OgogLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjM4MQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZSB7CitjbGFzcyBBZGFwdGl2
ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJik7CiAgICAg
dm9pZCBpbnN0YWxsKFZNJik7CiAKLSAgICB2aXJ0dWFsIH5BZGFwdGl2ZUluZmVycmVkUHJvcGVy
dHlWYWx1ZVdhdGNocG9pbnRCYXNlKCk7CisgICAgdmlydHVhbCB+QWRhcHRpdmVJbmZlcnJlZFBy
b3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZSgpID0gZGVmYXVsdDsKIAogICAgIGNsYXNzIFN0cnVj
dHVyZVdhdGNocG9pbnQgZmluYWwgOiBwdWJsaWMgV2F0Y2hwb2ludCB7CiAgICAgcHVibGljOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FycmF5UHJvZmlsZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAppbmRl
eCA4YzdkZGIzNTE5NTQuLjUzZTFjMDZiNzkwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHAKQEAgLTY5LDggKzY5LDYgQEAgdm9pZCBkdW1w
QXJyYXlNb2RlcyhQcmludFN0cmVhbSYgb3V0LCBBcnJheU1vZGVzIGFycmF5TW9kZXMpCiAgICAg
ICAgIG91dC5wcmludChjb21tYSwgIk5vbkFycmF5V2l0aERvdWJsZSIpOwogICAgIGlmIChhcnJh
eU1vZGVzICYgYXNBcnJheU1vZGVzSWdub3JpbmdUeXBlZEFycmF5cyhOb25BcnJheVdpdGhDb250
aWd1b3VzKSkKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiTm9uQXJyYXlXaXRoQ29udGlndW91
cyIpOwotICAgIGlmIChhcnJheU1vZGVzICYgYXNBcnJheU1vZGVzSWdub3JpbmdUeXBlZEFycmF5
cyhOb25BcnJheVdpdGhBbHdheXNTbG93UHV0Q29udGlndW91cykpCi0gICAgICAgIG91dC5wcmlu
dChjb21tYSwgIk5vbkFycmF5V2l0aEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzIik7CiAgICAgaWYg
KGFycmF5TW9kZXMgJiBhc0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKE5vbkFycmF5V2l0
aEFycmF5U3RvcmFnZSkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgIk5vbkFycmF5V2l0aEFy
cmF5U3RvcmFnZSIpOwogICAgIGlmIChhcnJheU1vZGVzICYgYXNBcnJheU1vZGVzSWdub3JpbmdU
eXBlZEFycmF5cyhOb25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlKSkKQEAgLTE0NCw4ICsx
NDIsNyBAQCB2b2lkIEFycmF5UHJvZmlsZTo6Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGNvbnN0
IENvbmN1cnJlbnRKU0xvY2tlciYsIENvZGVCbG9jawogICAgICAgICBsYXN0U2VlblN0cnVjdHVy
ZS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvKCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKCFnbG9iYWxPYmplY3QtPmlzT3JpZ2lu
YWxBcnJheVN0cnVjdHVyZShsYXN0U2VlblN0cnVjdHVyZSkKLSAgICAgICAgJiYgIWdsb2JhbE9i
amVjdC0+aXNPcmlnaW5hbFR5cGVkQXJyYXlTdHJ1Y3R1cmUobGFzdFNlZW5TdHJ1Y3R1cmUpCi0g
ICAgICAgICYmICEoaGFzQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMobGFzdFNlZW5TdHJ1Y3R1cmUt
PmluZGV4aW5nTW9kZSgpKSAmJiBnbG9iYWxPYmplY3QtPmlzT3JpZ2luYWxTbG93UHV0Q29udGln
aW91c1N0cnVjdHVyZShsYXN0U2VlblN0cnVjdHVyZSkpKQorICAgICAgICAmJiAhZ2xvYmFsT2Jq
ZWN0LT5pc09yaWdpbmFsVHlwZWRBcnJheVN0cnVjdHVyZShsYXN0U2VlblN0cnVjdHVyZSkpCiAg
ICAgICAgIG1fdXNlc09yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVzID0gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUuaAppbmRleCBjNjQyMmFm
MzIyYzYuLmE1NTZjMjJmMzc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FycmF5UHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9BcnJheVByb2ZpbGUuaApAQCAtODYsNyArODYsNiBAQCBjb25zdGV4cHIgQXJyYXlNb2RlcyBh
c0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKEluZGV4aW5nVHlwZSBpbmRleGluZ01vZGUp
CiAgICAgfCBhc0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKE5vbkFycmF5V2l0aEludDMy
KSAgICAgICAgICAgICAgICAgICBcCiAgICAgfCBhc0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJy
YXlzKE5vbkFycmF5V2l0aERvdWJsZSkgICAgICAgICAgICAgICAgICBcCiAgICAgfCBhc0FycmF5
TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKE5vbkFycmF5V2l0aENvbnRpZ3VvdXMpICAgICAgICAg
ICAgICBcCi0gICAgfCBhc0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKE5vbkFycmF5V2l0
aEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzKSBcCiAgICAgfCBhc0FycmF5TW9kZXNJZ25vcmluZ1R5
cGVkQXJyYXlzKE5vbkFycmF5V2l0aEFycmF5U3RvcmFnZSkgICAgICAgICAgICBcCiAgICAgfCBh
c0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKE5vbkFycmF5V2l0aFNsb3dQdXRBcnJheVN0
b3JhZ2UpICAgICBcCiAgICAgfCBBTExfVFlQRURfQVJSQVlfTU9ERVMpCkBAIC0xNjUsMTEgKzE2
NCw2IEBAIGlubGluZSBib29sIHNob3VsZFVzZUNvbnRpZ3VvdXMoQXJyYXlNb2RlcyBhcnJheU1v
ZGVzKQogICAgIHJldHVybiBhcnJheU1vZGVzSW5jbHVkZUlnbm9yaW5nVHlwZWRBcnJheXMoYXJy
YXlNb2RlcywgQ29udGlndW91c1NoYXBlKTsKIH0KIAotaW5saW5lIGJvb2wgc2hvdWxkVXNlQWx3
YXlzU2xvd1B1dENvbnRpZ3VvdXMoQXJyYXlNb2RlcyBhcnJheU1vZGVzKQotewotICAgIHJldHVy
biBhcnJheU1vZGVzSW5jbHVkZUlnbm9yaW5nVHlwZWRBcnJheXMoYXJyYXlNb2RlcywgQWx3YXlz
U2xvd1B1dENvbnRpZ3VvdXNTaGFwZSk7Ci19Ci0KIGlubGluZSBib29sIHNob3VsZFVzZURvdWJs
ZShBcnJheU1vZGVzIGFycmF5TW9kZXMpCiB7CiAgICAgcmV0dXJuIGFycmF5TW9kZXNJbmNsdWRl
SWdub3JpbmdUeXBlZEFycmF5cyhhcnJheU1vZGVzLCBEb3VibGVTaGFwZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAppbmRl
eCBiYWZiYjk2ZmM4ZTEuLjM3NzZkNmMwNmY0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC05ODQsOSArOTg0LDYg
QEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEFjY2Vzc0Nhc2U6OkFjY2Vz
c1R5cGUgdHlwZSkKICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkluZGV4ZWRDb250aWd1b3VzTG9hZDoK
ICAgICAgICAgb3V0LnByaW50KCJJbmRleGVkQ29udGlndW91c0xvYWQiKTsKICAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgQWNjZXNzQ2FzZTo6SW5kZXhlZEFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
TG9hZDoKLSAgICAgICAgb3V0LnByaW50KCJJbmRleGVkQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNM
b2FkIik7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkluZGV4ZWRBcnJh
eVN0b3JhZ2VMb2FkOgogICAgICAgICBvdXQucHJpbnQoIkluZGV4ZWRBcnJheVN0b3JhZ2VMb2Fk
Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9SZXBh
dGNoLmNwcAppbmRleCBlMDk2YjhhYjM5YWUuLjI4YTM4N2Y0MDhjMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9SZXBhdGNoLmNwcApAQCAtNjY0LDkgKzY2NCw2IEBAIHN0YXRp
YyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUFycmF5R2V0QnlWYWwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ29kCiAgICAgICAgICAgICBjYXNlIENvbnRpZ3VvdXNTaGFwZToKICAg
ICAgICAgICAgICAgICBhY2Nlc3NUeXBlID0gQWNjZXNzQ2FzZTo6SW5kZXhlZENvbnRpZ3VvdXNM
b2FkOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBBbHdheXNTbG93
UHV0Q29udGlndW91c1NoYXBlOgotICAgICAgICAgICAgICAgIGFjY2Vzc1R5cGUgPSBBY2Nlc3ND
YXNlOjpJbmRleGVkQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNMb2FkOwotICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBcnJheVN0b3JhZ2VTaGFwZToKICAgICAgICAgICAg
ICAgICBhY2Nlc3NUeXBlID0gQWNjZXNzQ2FzZTo6SW5kZXhlZEFycmF5U3RvcmFnZUxvYWQ7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
V2F0Y2hwb2ludC5jcHAKaW5kZXggMjZiMTQyZjNiODZiLi4wMWUwYTc2YTdhODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAKQEAgLTQzLDggKzQz
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElG
SUVSKFdhdGNocG9pbnQpOwogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihX
YXRjaHBvaW50U2V0KTsKIAotRmlyZURldGFpbDo6fkZpcmVEZXRhaWwoKSA9IGRlZmF1bHQ7Ci0K
IHZvaWQgU3RyaW5nRmlyZURldGFpbDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewog
ICAgIG91dC5wcmludChtX3N0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1dhdGNocG9pbnQuaAppbmRleCA1NGM4MTEzOThlOGUuLjM1MjY4MGRjYWJjOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCkBAIC00MiwxNiArNDIsMTYg
QEAgc3RydWN0IEFycmF5QnVmZmVyVmlld1dhdGNocG9pbnRBZGFwdG9yOwogCiBjbGFzcyBWTTsK
IAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgRmlyZURldGFpbCB7CitjbGFzcyBGaXJlRGV0YWls
IHsKICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KSA9IGRlbGV0ZTsKICAgICAKIHB1Ymxp
YzoKICAgICBGaXJlRGV0YWlsKCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgfkZpcmVEZXRhaWwo
KTsKKyAgICB2aXJ0dWFsIH5GaXJlRGV0YWlsKCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3QgPSAwOwogfTsKIAotY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgU3RyaW5nRmlyZURldGFpbCBmaW5hbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsKK2NsYXNz
IFN0cmluZ0ZpcmVEZXRhaWwgZmluYWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CiBwdWJsaWM6CiAg
ICAgU3RyaW5nRmlyZURldGFpbChjb25zdCBjaGFyKiBzdHJpbmcpCiAgICAgICAgIDogbV9zdHJp
bmcoc3RyaW5nKQpAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKICAgICB7IH0KIAogcHJvdGVj
dGVkOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIH5XYXRjaHBvaW50KCk7CisgICAgfldhdGNocG9p
bnQoKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2F0Y2hwb2ludFNldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaAppbmRleCBmN2E5MWI5NzE1MzEuLmExMGFjMDk0YWYxMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaApAQCAtMjMxNiw3ICsyMzE2LDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFi
c3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAg
ICAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgICAgICAgICAgY2FzZSBBcnJheTo6RG91
YmxlOgogICAgICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICAgICAgICAgIGNh
c2UgQXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOgogICAgICAgICAgICAgY2FzZSBBcnJh
eTo6QXJyYXlTdG9yYWdlOgogICAgICAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3Rv
cmFnZToKICAgICAgICAgICAgICAgICBpZiAoZm9sZEdldEJ5VmFsT25Db25zdGFudFByb3BlcnR5
KG1fZ3JhcGguY2hpbGQobm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobm9kZSwgMSkpKSB7CkBAIC0y
NDQ2LDcgKzI0NDUsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgICAg
IHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVjRG91YmxlUmVhbCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBB
cnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6CiAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5
U3RvcmFnZToKICAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZToKICAgICAg
ICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0VmZmVjdGZ1bE91dE9mQm91bmRzKCkpCkBA
IC0zNzAyLDcgKzM3MDAsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBjYXNl
IEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNl
IEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29u
dGlndW91czoKICAgICAgICAgY2FzZSBBcnJheTo6VW5kZWNpZGVkOgogICAgICAgICBjYXNlIEFy
cmF5OjpBcnJheVN0b3JhZ2U6CiAgICAgICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3Jh
Z2U6CkBAIC00MzAyLDcgKzQyOTksNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAg
ICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAg
ICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93
UHV0Q29udGlndW91czoKICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOiB7CiAgICAg
ICAgICAgICBpZiAobW9kZS5pc0luQm91bmRzKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC00MzM0LDcgKzQzMzAsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAg
Y2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAg
ICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICAgICAgY2FzZSBBcnJheTo6
QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0
b3JhZ2U6IHsKICAgICAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0FycmF5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fy
cmF5TW9kZS5jcHAKaW5kZXggMzM5MTdhNjNiOTE4Li45NjFjYTQ0NDZlMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKQEAgLTExMiw5ICsxMTIsNiBAQCBB
cnJheU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2ZWQoY29uc3QgQ29uY3VycmVudEpTTG9ja2Vy
JiBsb2NrZXIsIEFycmF5UHJvZmlsZQogICAgIGNhc2UgYXNBcnJheU1vZGVzSWdub3JpbmdUeXBl
ZEFycmF5cyhOb25BcnJheVdpdGhDb250aWd1b3VzKSB8IGFzQXJyYXlNb2Rlc0lnbm9yaW5nVHlw
ZWRBcnJheXMoQXJyYXlXaXRoQ29udGlndW91cykgfCBhc0FycmF5TW9kZXNJZ25vcmluZ1R5cGVk
QXJyYXlzKENvcHlPbldyaXRlQXJyYXlXaXRoQ29udGlndW91cyk6CiAgICAgICAgIHJldHVybiBo
YW5kbGVDb250aWd1b3VzTW9kZXMoQXJyYXk6OkNvbnRpZ3VvdXMsIG9ic2VydmVkKTsKIAotICAg
IGNhc2UgYXNBcnJheU1vZGVzSWdub3JpbmdUeXBlZEFycmF5cyhOb25BcnJheVdpdGhBbHdheXNT
bG93UHV0Q29udGlndW91cyk6Ci0gICAgICAgIHJldHVybiBoYW5kbGVDb250aWd1b3VzTW9kZXMo
QXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzLCBvYnNlcnZlZCk7Ci0KICAgICBjYXNlIGFz
QXJyYXlNb2Rlc0lnbm9yaW5nVHlwZWRBcnJheXMoTm9uQXJyYXlXaXRoQXJyYXlTdG9yYWdlKToK
ICAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6QXJyYXlTdG9yYWdlLCBub25BcnJheSwg
QXJyYXk6OkFzSXMsIGFjdGlvbikud2l0aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2Fm
ZSk7CiAgICAgY2FzZSBhc0FycmF5TW9kZXNJZ25vcmluZ1R5cGVkQXJyYXlzKE5vbkFycmF5V2l0
aFNsb3dQdXRBcnJheVN0b3JhZ2UpOgpAQCAtMTc0LDggKzE3MSw2IEBAIEFycmF5TW9kZSBBcnJh
eU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgQXJy
YXlQcm9maWxlCiAgICAgICAgICAgICB0eXBlID0gQXJyYXk6OkRvdWJsZTsKICAgICAgICAgZWxz
ZSBpZiAoc2hvdWxkVXNlSW50MzIob2JzZXJ2ZWQpKQogICAgICAgICAgICAgdHlwZSA9IEFycmF5
OjpJbnQzMjsKLSAgICAgICAgZWxzZSBpZiAoc2hvdWxkVXNlQWx3YXlzU2xvd1B1dENvbnRpZ3Vv
dXMob2JzZXJ2ZWQpKQotICAgICAgICAgICAgdHlwZSA9IEFycmF5OjpBbHdheXNTbG93UHV0Q29u
dGlndW91czsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdHlwZSA9IEFycmF5OjpTZWxlY3RV
c2luZ0FyZ3VtZW50czsKICAgICAgICAgCkBAIC0zODQsNyArMzc5LDcgQEAgQXJyYXlNb2RlIEFy
cmF5TW9kZTo6cmVmaW5lKAogICAgIH0KIH0KIAotU3RydWN0dXJlU2V0IEFycmF5TW9kZTo6b3Jp
Z2luYWxBcnJheVN0cnVjdHVyZVNldChHcmFwaCYgZ3JhcGgsIGNvbnN0IENvZGVPcmlnaW4mIGNv
ZGVPcmlnaW4pIGNvbnN0CitTdHJ1Y3R1cmUqIEFycmF5TW9kZTo6b3JpZ2luYWxBcnJheVN0cnVj
dHVyZShHcmFwaCYgZ3JhcGgsIGNvbnN0IENvZGVPcmlnaW4mIGNvZGVPcmlnaW4pIGNvbnN0CiB7
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGdyYXBoLmdsb2JhbE9iamVjdEZv
cihjb2RlT3JpZ2luKTsKICAgICAKQEAgLTQwMCw3ICszOTUsNyBAQCBTdHJ1Y3R1cmVTZXQgQXJy
YXlNb2RlOjpvcmlnaW5hbEFycmF5U3RydWN0dXJlU2V0KEdyYXBoJiBncmFwaCwgY29uc3QgQ29k
ZU9yaWdpbgogICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJy
YXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGUoQ29weU9uV3JpdGVBcnJheVdpdGhDb250aWd1b3Vz
KTsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEZBTExUSFJPVUdIOwpAQCAtNDIwLDMw
ICs0MTUsMjYgQEAgU3RydWN0dXJlU2V0IEFycmF5TW9kZTo6b3JpZ2luYWxBcnJheVN0cnVjdHVy
ZVNldChHcmFwaCYgZ3JhcGgsIGNvbnN0IENvZGVPcmlnaW4KICAgICAgICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGUoQXJyYXlX
aXRoQXJyYXlTdG9yYWdlKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIENSQVNIKCk7
Ci0gICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6Ok9yaWdpbmFsTm9uQXJy
YXk6IHsKICAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IHR5cGVkQXJyYXlUeXBlKCk7Ci0g
ICAgICAgIGlmICh0eXBlID09IE5vdFR5cGVkQXJyYXkpIHsKLSAgICAgICAgICAgIGlmICh0aGlz
LT50eXBlKCkgPT0gQXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzKQotICAgICAgICAgICAg
ICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNT
dHJ1Y3R1cmVTZXQoKTsKLQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgfQorICAg
ICAgICBpZiAodHlwZSA9PSBOb3RUeXBlZEFycmF5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT50eXBlZEFycmF5U3Ry
dWN0dXJlQ29uY3VycmVudGx5KHR5cGUpOwogICAgIH0KICAgICAgICAgCiAgICAgZGVmYXVsdDoK
LSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQog
Ci1TdHJ1Y3R1cmVTZXQgQXJyYXlNb2RlOjpvcmlnaW5hbEFycmF5U3RydWN0dXJlU2V0KEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkgY29uc3QKK1N0cnVjdHVyZSogQXJyYXlNb2RlOjpvcmlnaW5h
bEFycmF5U3RydWN0dXJlKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gb3JpZ2luYWxBcnJheVN0cnVjdHVyZVNldChncmFwaCwgbm9kZS0+b3JpZ2luLnNlbWFu
dGljKTsKKyAgICByZXR1cm4gb3JpZ2luYWxBcnJheVN0cnVjdHVyZShncmFwaCwgbm9kZS0+b3Jp
Z2luLnNlbWFudGljKTsKIH0KIAogYm9vbCBBcnJheU1vZGU6OmFscmVhZHlDaGVja2VkKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgQWJzdHJhY3RWYWx1ZSYgdmFsdWUsIEluZGV4aW5n
VHlwZSBzaGFwZSkgY29uc3QKQEAgLTQ3MCwxNyArNDYxLDcgQEAgYm9vbCBBcnJheU1vZGU6OmFs
cmVhZHlDaGVja2VkKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgQWJzdHJhY3RWYWx1
ZSYgdmEKIAogICAgIC8vIEFycmF5OjpPcmlnaW5hbE5vbkFycmF5IGNhbiBiZSBzaG93biB3aGVu
IHRoZSB2YWx1ZSBpcyBhIFR5cGVkQXJyYXkgd2l0aCBvcmlnaW5hbCBzdHJ1Y3R1cmUuCiAgICAg
Ly8gQnV0IGhlcmUsIHdlIGFscmVhZHkgZmlsdGVyZWQgVHlwZWRBcnJheXMuIFNvLCBqdXN0IGhh
bmRsZSBpdCBsaWtlIGEgTm9uQXJyYXkuCi0gICAgY2FzZSBBcnJheTo6T3JpZ2luYWxOb25BcnJh
eTogewotICAgICAgICBpZiAodHlwZSgpID09IEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91
cykgewotICAgICAgICAgICAgaWYgKCF2YWx1ZS5tX3N0cnVjdHVyZS5pc0Zpbml0ZSgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KTsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tX3N0cnVjdHVyZS50b1N0cnVjdHVyZVNldCgp
LmlzU3Vic2V0T2YoZ2xvYmFsT2JqZWN0LT5vcmlnaW5hbEFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
U3RydWN0dXJlU2V0KCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgRkFMTFRIUk9VR0g7Ci0gICAg
fQotCisgICAgY2FzZSBBcnJheTo6T3JpZ2luYWxOb25BcnJheToKICAgICBjYXNlIEFycmF5OjpO
b25BcnJheTogewogICAgICAgICBpZiAoYXJyYXlNb2Rlc0FscmVhZHlDaGVja2VkKHZhbHVlLm1f
YXJyYXlNb2RlcywgYXNBcnJheU1vZGVzSWdub3JpbmdUeXBlZEFycmF5cyhzaGFwZSkpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC01MTMsNyArNDk0LDEwIEBAIGJvb2wgQXJyYXlNb2Rl
OjphbHJlYWR5Q2hlY2tlZChHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IEFic3RyYWN0
VmFsdWUmIHZhCiAgICAgY2FzZSBBcnJheTo6T3JpZ2luYWxDb3B5T25Xcml0ZUFycmF5OiB7CiAg
ICAgICAgIGlmICghdmFsdWUubV9zdHJ1Y3R1cmUuaXNGaW5pdGUoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHZhbHVlLm1fc3RydWN0dXJlLnRvU3RydWN0dXJl
U2V0KCkuaXNTdWJzZXRPZihvcmlnaW5hbEFycmF5U3RydWN0dXJlU2V0KGdyYXBoLCBub2RlKSk7
CisgICAgICAgIFN0cnVjdHVyZSogb3JpZ2luYWxTdHJ1Y3R1cmUgPSBvcmlnaW5hbEFycmF5U3Ry
dWN0dXJlKGdyYXBoLCBub2RlKTsKKyAgICAgICAgaWYgKHZhbHVlLm1fc3RydWN0dXJlLnNpemUo
KSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdmFsdWUu
bV9zdHJ1Y3R1cmUub25seVN0cnVjdHVyZSgpLmdldCgpID09IG9yaWdpbmFsU3RydWN0dXJlOwog
ICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTM5LDkgKzUyMyw2IEBAIGJvb2wg
QXJyYXlNb2RlOjphbHJlYWR5Q2hlY2tlZChHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0
IEFic3RyYWN0VmFsdWUmIHZhCiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6
CiAgICAgICAgIHJldHVybiBhbHJlYWR5Q2hlY2tlZChncmFwaCwgbm9kZSwgdmFsdWUsIENvbnRp
Z3VvdXNTaGFwZSk7Ci0KLSAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91czoK
LSAgICAgICAgcmV0dXJuIGFscmVhZHlDaGVja2VkKGdyYXBoLCBub2RlLCB2YWx1ZSwgQWx3YXlz
U2xvd1B1dENvbnRpZ3VvdXNTaGFwZSk7CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6OkFycmF5
U3RvcmFnZToKICAgICAgICAgcmV0dXJuIGFscmVhZHlDaGVja2VkKGdyYXBoLCBub2RlLCB2YWx1
ZSwgQXJyYXlTdG9yYWdlU2hhcGUpOwpAQCAtNjkzLDggKzY3NCw2IEBAIGNvbnN0IGNoYXIqIGFy
cmF5VHlwZVRvU3RyaW5nKEFycmF5OjpUeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiAiRG91Ymxl
IjsKICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgogICAgICAgICByZXR1cm4gIkNvbnRpZ3Vv
dXMiOwotICAgIGNhc2UgQXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOgotICAgICAgICBy
ZXR1cm4gIkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzIjsKICAgICBjYXNlIEFycmF5OjpBcnJheVN0
b3JhZ2U6CiAgICAgICAgIHJldHVybiAiQXJyYXlTdG9yYWdlIjsKICAgICBjYXNlIEFycmF5OjpT
bG93UHV0QXJyYXlTdG9yYWdlOgpAQCAtNzk1LDggKzc3NCw2IEBAIEluZGV4aW5nVHlwZSB0b0lu
ZGV4aW5nU2hhcGUoQXJyYXk6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIERvdWJsZVNoYXBl
OwogICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6CiAgICAgICAgIHJldHVybiBDb250aWd1b3Vz
U2hhcGU7Ci0gICAgY2FzZSBBcnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6Ci0gICAgICAg
IHJldHVybiBBbHdheXNTbG93UHV0Q29udGlndW91c1NoYXBlOwogICAgIGNhc2UgQXJyYXk6OlVu
ZGVjaWRlZDoKICAgICAgICAgcmV0dXJuIFVuZGVjaWRlZFNoYXBlOwogICAgIGNhc2UgQXJyYXk6
OkFycmF5U3RvcmFnZToKQEAgLTg5MCw3ICs4NjcsNiBAQCBib29sIHBlcm1pdHNCb3VuZHNDaGVj
a0xvd2VyaW5nKEFycmF5OjpUeXBlIHR5cGUpCiAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAg
Y2FzZSBBcnJheTo6RG91YmxlOgogICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgY2Fz
ZSBBcnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6CiAgICAgY2FzZSBBcnJheTo6QXJyYXlT
dG9yYWdlOgogICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6CiAgICAgY2FzZSBB
cnJheTo6SW50OEFycmF5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcnJheU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgK
aW5kZXggOWFmMmRmNmJjYzc1Li5kZjc1Yzc4OTBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQXJyYXlQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1
cmVTZXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTYyLDcgKzYxLDYgQEAgZW51bSBUeXBl
IDogdWludDhfdCB7CiAgICAgSW50MzIsCiAgICAgRG91YmxlLAogICAgIENvbnRpZ3VvdXMsCi0g
ICAgQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMsCiAgICAgQXJyYXlTdG9yYWdlLAogICAgIFNsb3dQ
dXRBcnJheVN0b3JhZ2UsCiAgICAgCkBAIC0yNjYsNyArMjY0LDYgQEAgcHVibGljOgogICAgICAg
ICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAg
ICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93
UHV0Q29udGlndW91czoKICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgogICAgICAg
ICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC0zMzUsMTIgKzMzMiw3IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIGlzU2xvd1B1
dCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gdHlwZSgpID09IEFycmF5OjpTbG93UHV0
QXJyYXlTdG9yYWdlIHx8IHR5cGUoKSA9PSBBcnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM7
Ci0gICAgfQotCi0gICAgYm9vbCBpc0FueUtpbmRPZkNvbnRpZ3VvdXMoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHR5cGUoKSA9PSBBcnJheTo6Q29udGlndW91cyB8fCB0eXBlKCkgPT0g
QXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOworICAgICAgICByZXR1cm4gdHlwZSgpID09
IEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOwogICAgIH0KIAogICAgIGJvb2wgY2FuQ1NFU3Rv
cmFnZSgpIGNvbnN0CkBAIC0zNjcsNyArMzU5LDYgQEAgcHVibGljOgogICAgICAgICBjYXNlIEFy
cmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFy
cmF5OjpDb250aWd1b3VzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGln
dW91czoKICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgogICAgICAgICBjYXNlIEFy
cmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0z
ODIsNyArMzczLDYgQEAgcHVibGljOgogICAgICAgICBjYXNlIEFycmF5OjpTdHJpbmc6CiAgICAg
ICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKICAgICAgICAgY2FzZSBBcnJheTo6U2Nv
cGVkQXJndW1lbnRzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91
czoKICAgICAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMpOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuICp0aGlzOwpAQCAtNDEwLDcgKzQwMCw2IEBA
IHB1YmxpYzoKICAgICAgICAgY2FzZSBBcnJheTo6VW5wcm9maWxlZDoKICAgICAgICAgY2FzZSBB
cnJheTo6Rm9yY2VFeGl0OgogICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgotICAgICAgICBj
YXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91czoKICAgICAgICAgLy8gVHlwZWRBcnJh
eXMgZG8gbm90IGhhdmUgYSBzZWxmIGxlbmd0aCBwcm9wZXJ0eSBhcyBvZiBFUzYuCiAgICAgICAg
IGNhc2UgQXJyYXk6OkludDhBcnJheToKICAgICAgICAgY2FzZSBBcnJheTo6SW50MTZBcnJheToK
QEAgLTQ1MSw5ICs0NDAsOSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAg
Ly8gUmV0dXJucyBlbXB0eSBzZXQgaWYgdGhpcyBpcyBub3Qgb3JpZ2luYWwgYXJyYXkuCi0gICAg
U3RydWN0dXJlU2V0IG9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVTZXQoR3JhcGgmLCBjb25zdCBDb2Rl
T3JpZ2luJikgY29uc3Q7Ci0gICAgU3RydWN0dXJlU2V0IG9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVT
ZXQoR3JhcGgmLCBOb2RlKikgY29uc3Q7CisgICAgLy8gUmV0dXJucyAwIGlmIHRoaXMgaXMgbm90
IE9yaWdpbmFsQXJyYXkuCisgICAgU3RydWN0dXJlKiBvcmlnaW5hbEFycmF5U3RydWN0dXJlKEdy
YXBoJiwgY29uc3QgQ29kZU9yaWdpbiYpIGNvbnN0OworICAgIFN0cnVjdHVyZSogb3JpZ2luYWxB
cnJheVN0cnVjdHVyZShHcmFwaCYsIE5vZGUqKSBjb25zdDsKICAgICAKICAgICBib29sIGRvZXND
b252ZXJzaW9uKCkgY29uc3QKICAgICB7CkBAIC00ODIsOSArNDcxLDYgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgogICAgICAgICAgICAgcmVzdWx0ID0gYXJyYXlN
b2Rlc1dpdGhJbmRleGluZ1NoYXBlcyhDb250aWd1b3VzU2hhcGUpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOgotICAgICAg
ICAgICAgcmVzdWx0ID0gYXJyYXlNb2Rlc1dpdGhJbmRleGluZ1NoYXBlcyhBbHdheXNTbG93UHV0
Q29udGlndW91c1NoYXBlKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5
OjpBcnJheVN0b3JhZ2U6CiAgICAgICAgICAgICByZXR1cm4gYXJyYXlNb2Rlc1dpdGhJbmRleGlu
Z1NoYXBlcyhBcnJheVN0b3JhZ2VTaGFwZSk7CiAgICAgICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRB
cnJheVN0b3JhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fy
cmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXJyYXlpZnlTbG93UGF0aEdlbmVyYXRvci5oCmluZGV4IGExZjVhZDk4NzA1Yy4uNjBmMzkwYjE0
MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xv
d1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5
aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtODAsNyArODAsNiBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6
CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICAgICAgY2FzZSBB
cnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6CiAgICAgICAgICAgICAgICAgbV9iYWRQcm9w
ZXJ0eUp1bXAuZmlsbChqaXQsIGppdC0+bV9qaXQuYnJhbmNoMzIoCiAgICAgICAgICAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIG1fcHJvcGVydHlHUFIsCiAgICAgICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoTUlOX1NQQVJTRV9BUlJB
WV9JTkRFWCkpKTsKQEAgLTEwMSw3ICsxMDAsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgaml0
LT5jYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkVuc3VyZURvdWJsZSwgbV90ZW1wR1BSLCBTcGVjdWxh
dGl2ZUpJVDo6VHJ1c3RlZEltbVB0cigmdm0pLCBtX2Jhc2VHUFIpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgICAgIGNhc2UgQXJyYXk6
OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOgogICAgICAgICAgICAgaml0LT5jYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMsIG1fdGVtcEdQUiwgU3BlY3VsYXRpdmVKSVQ6OlRy
dXN0ZWRJbW1QdHIoJnZtKSwgbV9iYXNlR1BSKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDNmMTRiOGE3MGQ5ZS4uOWQ5YzIxNTJkNGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cApAQCAtMjUxNiw2ICsyNTE2LDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmlu
c2ljQ2FsbChOb2RlKiBjYWxsZWUsIE9wZXJhbmQgcmVzdWx0LCBJbnRyaW5zaWMKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUg
PSBnZXRBcnJheU1vZGUoQXJyYXk6OlJlYWQpOworICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUu
aXNKU0FycmF5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgICAgICAg
ICBpZiAoIWFycmF5TW9kZS5pc0pTQXJyYXlXaXRoT3JpZ2luYWxTdHJ1Y3R1cmUoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTI2MDIsMzIgKzI2MDUsMjEgQEAgYm9vbCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIE9wZXJhbmQg
cmVzdWx0LCBJbnRyaW5zaWMKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRBcnJheU1vZGUoQXJyYXk6OlJlYWQpOwot
ICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gY29udmVydCBhcnJheXMgaW50byBvbmUg
dHlwZSBqdXN0IHRvIHBlcmZvcm0gaW5kZXhPZi4KLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUu
ZG9lc0NvbnZlcnNpb24oKSkKKyAgICAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzSlNBcnJheSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBhZGRU
b0dyYXBoQW5kU2V0UmVzdWx0ID0gWyZdIHsKLSAgICAgICAgICAgICAgICBpbnNlcnRDaGVja3Mo
KTsKLQotICAgICAgICAgICAgICAgIE5vZGUqIGFycmF5ID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZv
ckFyZ3VtZW50SW5jbHVkaW5nVGhpcygwLCByZWdpc3Rlck9mZnNldCkpOwotICAgICAgICAgICAg
ICAgIGFkZFZhckFyZ0NoaWxkKGFycmF5KTsKLSAgICAgICAgICAgICAgICBhZGRWYXJBcmdDaGls
ZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKDEsIHJlZ2lzdGVy
T2Zmc2V0KSkpOyAvLyBTZWFyY2ggZWxlbWVudC4KLSAgICAgICAgICAgICAgICBpZiAoYXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMgPj0gMykKLSAgICAgICAgICAgICAgICAgICAgYWRkVmFyQXJn
Q2hpbGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5jbHVkaW5nVGhpcygyLCByZWdp
c3Rlck9mZnNldCkpKTsgLy8gU3RhcnQgaW5kZXguCi0gICAgICAgICAgICAgICAgYWRkVmFyQXJn
Q2hpbGQobnVsbHB0cik7Ci0KLSAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYWRkVG9HcmFw
aChOb2RlOjpWYXJBcmcsIEFycmF5SW5kZXhPZiwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSks
IE9wSW5mbygpKTsKLSAgICAgICAgICAgICAgICBzZXRSZXN1bHQobm9kZSk7Ci0gICAgICAgICAg
ICB9OworICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNKU0FycmF5V2l0aE9yaWdpbmFsU3Ry
dWN0dXJlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY3Vy
cmVudE5vZGVPcmlnaW4oKS5zZW1hbnRpYyk7CisgICAgICAgICAgICAvLyBXZSBkbyBub3Qgd2Fu
dCB0byBjb252ZXJ0IGFycmF5cyBpbnRvIG9uZSB0eXBlIGp1c3QgdG8gcGVyZm9ybSBpbmRleE9m
LgorICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5kb2VzQ29udmVyc2lvbigpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlw
ZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgICAgICAgICBjYXNl
IEFycmF5OjpJbnQzMjoKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAg
ICAgICAgICAgICAgICBpZiAoIWFycmF5TW9kZS5pc0pTQXJyYXlXaXRoT3JpZ2luYWxTdHJ1Y3R1
cmUoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihj
dXJyZW50Tm9kZU9yaWdpbigpLnNlbWFudGljKTsKIAogICAgICAgICAgICAgICAgIFN0cnVjdHVy
ZSogYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFycmF5UHJvdG90eXBl
KCktPnN0cnVjdHVyZSgpOwogICAgICAgICAgICAgICAgIFN0cnVjdHVyZSogb2JqZWN0UHJvdG90
eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKS0+c3RydWN0dXJl
KCk7CkBAIC0yNjQxLDI3ICsyNjMzLDE3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlu
dHJpbnNpY0NhbGwoTm9kZSogY2FsbGVlLCBPcGVyYW5kIHJlc3VsdCwgSW50cmluc2ljCiAgICAg
ICAgICAgICAgICAgICAgIG1fZ3JhcGgucmVnaXN0ZXJBbmRXYXRjaFN0cnVjdHVyZVRyYW5zaXRp
b24oYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgICAgICAgICBtX2dyYXBo
LnJlZ2lzdGVyQW5kV2F0Y2hTdHJ1Y3R1cmVUcmFuc2l0aW9uKG9iamVjdFByb3RvdHlwZVN0cnVj
dHVyZSk7CiAKLSAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaEFuZFNldFJlc3VsdCgpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGNhc2UgQXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOiB7Ci0gICAgICAgICAgICAgICAg
aWYgKGFycmF5TW9kZS5hcnJheUNsYXNzKCkgIT0gQXJyYXk6Ok9yaWdpbmFsTm9uQXJyYXkpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgICAgIFN0cnVj
dHVyZSogb2JqZWN0UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90
b3R5cGUoKS0+c3RydWN0dXJlKCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5hbHdheXNTbG93UHV0Q29udGlndW91c1Byb3RvdHlwZXNBcmVTYW5lV2F0Y2hwb2ludFNldCgp
LmlzU3RpbGxWYWxpZCgpCi0gICAgICAgICAgICAgICAgICAgICYmIG9iamVjdFByb3RvdHlwZVN0
cnVjdHVyZS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRJc1N0aWxsVmFsaWQoKQotICAgICAgICAg
ICAgICAgICAgICAmJiBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZUlzU2FuZUNvbmN1cnJl
bnRseShvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlu
c2VydENoZWNrcygpOwogCi0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMo
KS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5hbHdheXNTbG93UHV0Q29udGlndW91c1Byb3RvdHlw
ZXNBcmVTYW5lV2F0Y2hwb2ludFNldCgpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5y
ZWdpc3RlckFuZFdhdGNoU3RydWN0dXJlVHJhbnNpdGlvbihvYmplY3RQcm90b3R5cGVTdHJ1Y3R1
cmUpOworICAgICAgICAgICAgICAgICAgICBOb2RlKiBhcnJheSA9IGdldCh2aXJ0dWFsUmVnaXN0
ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoYXJyYXkpOworICAgICAgICAgICAgICAgICAgICBh
ZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlz
KDEsIHJlZ2lzdGVyT2Zmc2V0KSkpOyAvLyBTZWFyY2ggZWxlbWVudC4KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID49IDMpCisgICAgICAgICAgICAg
ICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnRJ
bmNsdWRpbmdUaGlzKDIsIHJlZ2lzdGVyT2Zmc2V0KSkpOyAvLyBTdGFydCBpbmRleC4KKyAgICAg
ICAgICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7CiAKLSAgICAgICAgICAgICAg
ICAgICAgYWRkVG9HcmFwaEFuZFNldFJlc3VsdCgpOworICAgICAgICAgICAgICAgICAgICBOb2Rl
KiBub2RlID0gYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcsIEFycmF5SW5kZXhPZiwgT3BJbmZvKGFy
cmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbygpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVz
dWx0KG5vZGUpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAg
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXgg
MWMwZGRiNWY3ZjU1Li5iOGFjM2U1MmQ3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCkBAIC0zOTYsOCArMzk2LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRl
RnUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlzU2xvd1B1
dENvbnRpZ3VvdXM6IHsKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewogICAgICAg
ICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kcygpKSB7CiAgICAgICAgICAgICAgICAgcmVhZChCdXR0
ZXJmbHlfcHVibGljTGVuZ3RoKTsKICAgICAgICAgICAgICAgICByZWFkKEluZGV4ZWRDb250aWd1
b3VzUHJvcGVydGllcyk7CkBAIC02NjgsNyArNjY3LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRl
RnUKICAgICAgICAgICAgIHJlYWQoSW5kZXhlZEludDMyUHJvcGVydGllcyk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgICAgIGNhc2Ug
QXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOgogICAgICAgICAgICAgcmVhZChJbmRleGVk
Q29udGlndW91c1Byb3BlcnRpZXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkZWZh
dWx0OgpAQCAtMTAxOCw3ICsxMDE2LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwg
Tm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1
b3VzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91czoKICAgICAg
ICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHMoKSB8fCBtb2RlLmlzT3V0T2ZCb3VuZHNTYW5lQ2hh
aW4oKSkgewogICAgICAgICAgICAgICAgIHJlYWQoQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCk7CiAg
ICAgICAgICAgICAgICAgcmVhZChJbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXMpOwpAQCAtMTE4
OSw3ICsxMTg2LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgY2FzZSBBcnJh
eTo6U3RyaW5nOgogICAgICAgICBjYXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6CiAgICAgICAg
IGNhc2UgQXJyYXk6OlNjb3BlZEFyZ3VtZW50czoKLSAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlz
U2xvd1B1dENvbnRpZ3VvdXM6CiAgICAgICAgICAgICBERkdfQ1JBU0goZ3JhcGgsIG5vZGUsICJp
bXBvc3NpYmxlIGFycmF5IG1vZGUgZm9yIHB1dCIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CkBAIC0xNDM3LDcgKzE0MzMsNiBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAg
ICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAg
ICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNT
bG93UHV0Q29udGlndW91czoKICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgogICAg
ICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOgogICAgICAgICAgICAgcmVhZChC
dXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCmluZGV4IGYzOWY3YzI5YmUyZS4uZGM3Yzc1OTgyMTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTM2ODEsMjUgKzM2ODEs
MjUgQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIE5vdGUgdGhh
dCB3ZSBvbmx5IG5lZWQgdG8gYmUgdXNpbmcgYSBzdHJ1Y3R1cmUgY2hlY2sgaWYgd2Ugb3B0IGZv
ciBJbkJvdW5kc1NhbmVDaGFpbiwgc2luY2UKICAgICAgICAgICAgIC8vIHRoYXQgbmVlZHMgdG8g
cHJvdGVjdCBhZ2FpbnN0IEpTQXJyYXkncyBfX3Byb3RvX18gYmVpbmcgY2hhbmdlZC4KLSAgICAg
ICAgICAgIFN0cnVjdHVyZVNldCBzdHJ1Y3R1cmVTZXQgPSBhcnJheU1vZGUub3JpZ2luYWxBcnJh
eVN0cnVjdHVyZVNldChtX2dyYXBoLCBvcmlnaW4uc2VtYW50aWMpOworICAgICAgICAgICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBhcnJheU1vZGUub3JpZ2luYWxBcnJheVN0cnVjdHVyZShtX2dy
YXBoLCBvcmlnaW4uc2VtYW50aWMpOwogICAgICAgICAKICAgICAgICAgICAgIEVkZ2UgaW5kZXhF
ZGdlID0gaW5kZXggPyBFZGdlKGluZGV4LCBJbnQzMlVzZSkgOiBFZGdlKCk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmIChhcnJheU1vZGUuZG9lc0NvbnZlcnNpb24oKSkgewotICAgICAg
ICAgICAgICAgIGlmICghc3RydWN0dXJlU2V0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAg
IGlmIChzdHJ1Y3R1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5z
ZXJ0Tm9kZSgKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjTm9u
ZSwgQXJyYXlpZnlUb1N0cnVjdHVyZSwgb3JpZ2luLAotICAgICAgICAgICAgICAgICAgICAgICAg
T3BJbmZvKG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1cmUoc3RydWN0dXJlU2V0Lm9ubHlTdHJ1Y3R1
cmUoKSkpLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgRWRnZShhcnJheSwgQ2VsbFVzZSks
IGluZGV4RWRnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBPcEluZm8obV9ncmFwaC5yZWdp
c3RlclN0cnVjdHVyZShzdHJ1Y3R1cmUpKSwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIEVk
Z2UoYXJyYXksIENlbGxVc2UpLCBpbmRleEVkZ2UpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY05vbmUsIEFycmF5aWZ5LCBvcmln
aW4sCiAgICAgICAgICAgICAgICAgICAgICAgICBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwg
RWRnZShhcnJheSwgQ2VsbFVzZSksIGluZGV4RWRnZSk7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIXN0cnVjdHVyZVNldC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RydWN0dXJlKSB7CiAgICAgICAgICAgICAg
ICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2luZGV4SW5CbG9jaywgU3BlY05vbmUsIENoZWNrU3RydWN0dXJlLCBvcmlnaW4sCi0gICAg
ICAgICAgICAgICAgICAgICAgICBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQoc3RydWN0
dXJlU2V0KSksIEVkZ2UoYXJyYXksIENlbGxVc2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChzdHJ1Y3R1cmUpKSwgRWRnZShhcnJheSwg
Q2VsbFVzZSkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2lu
ZGV4SW5CbG9jaywgU3BlY05vbmUsIENoZWNrQXJyYXksIG9yaWdpbiwKQEAgLTQxMjEsMzkgKzQx
MjEsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBhdHRlbXB0VG9Gb3JjZVN0cmluZ0Fy
cmF5TW9kZUJ5VG9TdHJpbmdDb252ZXJzaW9uPFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlPihhcnJh
eU1vZGUsIG5vZGUpOwogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgaWYgKCFhcnJh
eU1vZGUuc3VwcG9ydHNTZWxmTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUu
dHlwZSgpID09IEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91cykKLSAgICAgICAgICAgICAg
ICByZXR1cm4gYXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoRm9yQWx3YXlzU2xvd1B1dENvbnRp
Z3VvdXMobm9kZSwgYXJyYXlNb2RlKTsKLQorICAgICAgICBpZiAoIWFycmF5TW9kZS5zdXBwb3J0
c1NlbGZMZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgY29udmVydFRvR2V0QXJyYXlMZW5ndGgobm9kZSwgYXJyYXlNb2RlKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYm9vbCBhdHRlbXB0VG9NYWtlR2V0
QXJyYXlMZW5ndGhGb3JBbHdheXNTbG93UHV0Q29udGlndW91cyhOb2RlKiBub2RlLCBBcnJheU1v
ZGUgYXJyYXlNb2RlKQotICAgIHsKLSAgICAgICAgaWYgKGFycmF5TW9kZS5hcnJheUNsYXNzKCkg
IT0gQXJyYXk6Ok9yaWdpbmFsTm9uQXJyYXkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIFN0cnVjdHVyZSogb2JqZWN0
UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKS0+c3Ry
dWN0dXJlKCk7Ci0KLSAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+YWx3YXlzU2xvd1B1dENvbnRp
Z3VvdXNQcm90b3R5cGVzQXJlU2FuZVdhdGNocG9pbnRTZXQoKS5pc1N0aWxsVmFsaWQoKQotICAg
ICAgICAgICAgJiYgb2JqZWN0UHJvdG90eXBlU3RydWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2lu
dFNldElzU3RpbGxWYWxpZCgpCi0gICAgICAgICAgICAmJiBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZUlzU2FuZUNvbmN1cnJlbnRseShvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUpKSB7Ci0K
LSAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0
LT5hbHdheXNTbG93UHV0Q29udGlndW91c1Byb3RvdHlwZXNBcmVTYW5lV2F0Y2hwb2ludFNldCgp
KTsKLSAgICAgICAgICAgIG1fZ3JhcGgucmVnaXN0ZXJBbmRXYXRjaFN0cnVjdHVyZVRyYW5zaXRp
b24ob2JqZWN0UHJvdG90eXBlU3RydWN0dXJlKTsKLQotICAgICAgICAgICAgY29udmVydFRvR2V0
QXJyYXlMZW5ndGgobm9kZSwgYXJyYXlNb2RlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQogICAgIHZvaWQgY29u
dmVydFRvR2V0QXJyYXlMZW5ndGgoTm9kZSogbm9kZSwgQXJyYXlNb2RlIGFycmF5TW9kZSkKICAg
ICB7CiAgICAgICAgIG5vZGUtPnNldE9wKEdldEFycmF5TGVuZ3RoKTsKQEAgLTQzODMsOCArNDM1
Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4oc2VhcmNo
RWxlbWVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBB
cnJheTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlzU2xvd1B1dENvbnRp
Z3VvdXM6IHsKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewogICAgICAgICAgICAg
aWYgKHNlYXJjaEVsZW1lbnQtPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKQogICAgICAgICAgICAg
ICAgIGZpeEVkZ2U8U3RyaW5nVXNlPihzZWFyY2hFbGVtZW50KTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKHNlYXJjaEVsZW1lbnQtPnNob3VsZFNwZWN1bGF0ZVN5bWJvbCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBjOWQ2MzkzMzZj
NTguLjMyOGZlY2NjZjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTc4MCw3ICs3ODAsNiBAQCBKSVRDb21waWxlcjo6SnVtcExp
c3QgU3BlY3VsYXRpdmVKSVQ6Omp1bXBTbG93Rm9yVW53YW50ZWRBcnJheU1vZGUoR1BSUmVnIHRl
bXBHUAogICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAg
ICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgIGNhc2UgQXJyYXk6OkFsd2F5c1Nsb3dQdXRD
b250aWd1b3VzOgogICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRlZDoKICAgICBjYXNlIEFycmF5OjpB
cnJheVN0b3JhZ2U6IHsKICAgICAgICAgSW5kZXhpbmdUeXBlIHNoYXBlID0gYXJyYXlNb2RlLnNo
YXBlTWFzaygpOwpAQCAtODc5LDcgKzg3OCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNr
QXJyYXkoTm9kZSogbm9kZSkKICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICBjYXNlIEFycmF5
OjpEb3VibGU6CiAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICBjYXNlIEFycmF5OjpB
bHdheXNTbG93UHV0Q29udGlndW91czoKICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CiAgICAg
Y2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgogICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0
b3JhZ2U6IHsKQEAgLTkwNywxMSArOTA1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tB
cnJheShOb2RlKiBub2RlKQogICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNhc2UgQXJyYXk6
OkRvdWJsZToKICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgIGNhc2UgQXJyYXk6OkFs
d2F5c1Nsb3dQdXRDb250aWd1b3VzOgogICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRlZDoKICAgICBj
YXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CiAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3Rv
cmFnZTogewotICAgICAgICBBU1NFUlQodGVtcEdQUi5oYXNfdmFsdWUoKSk7CiAgICAgICAgIG1f
aml0LmxvYWQ4KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQ2VsbDo6aW5kZXhp
bmdUeXBlQW5kTWlzY09mZnNldCgpKSwgdGVtcEdQUi52YWx1ZSgpKTsKICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjaygKICAgICAgICAgICAgIEJhZEluZGV4aW5nVHlwZSwgSlNWYWx1ZVNvdXJjZTo6
dW5ib3hlZENlbGwoYmFzZVJlZyksIG51bGxwdHIsCkBAIC0yNjgxLDcgKzI2NzcsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKICAgICBjYXNlIEFy
cmF5OjpTdHJpbmc6CiAgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgogICAgIGNhc2Ug
QXJyYXk6OlNjb3BlZEFyZ3VtZW50czoKLSAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29u
dGlndW91czoKICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKICAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5OgpAQCAtODY0OSw4ICs4NjQ0LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBBcnJheTo6VW5kZWNpZGVkOgogICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgIGNh
c2UgQXJyYXk6OkRvdWJsZToKLSAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgIGNhc2Ug
QXJyYXk6OkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOiB7CisgICAgY2FzZSBBcnJheTo6Q29udGln
dW91czogewogICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgc3RvcmFnZSk7
CiAgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKQEAgLTEwMTU1LDcg
KzEwMTQ5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5SW5kZXhPZihOb2Rl
KiBub2RlKQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHNlYXJjaEVsZW1lbnRFZGdlLnVzZUtp
bmQoKSA9PSBPdGhlclVzZSkgewotICAgICAgICAgICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgp
LmlzQW55S2luZE9mQ29udGlndW91cygpKTsKKyAgICAgICAgICAgIEFTU0VSVChub2RlLT5hcnJh
eU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkNvbnRpZ3VvdXMpOwogICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgc2VhcmNoRWxlbWVudCh0aGlzLCBzZWFyY2hFbGVtZW50RWRnZSwgTWFudWFsT3Bl
cmFuZFNwZWN1bGF0aW9uKTsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwog
CkBAIC0xMDE3NSw3ICsxMDE2OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJh
eUluZGV4T2YoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIEFTU0VSVChub2RlLT5hcnJheU1vZGUoKS5pc0FueUtpbmRPZkNvbnRpZ3VvdXMoKSk7
CisgICAgICAgIEFTU0VSVChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkNvbnRp
Z3VvdXMpOwogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzZWFyY2hFbGVtZW50KHRoaXMs
IHNlYXJjaEVsZW1lbnRFZGdlKTsKICAgICAgICAgR1BSUmVnIHNlYXJjaEVsZW1lbnRHUFIgPSBz
ZWFyY2hFbGVtZW50LmdwcigpOwogCkBAIC0xMDIzNSw3ICsxMDIyOSw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcnJheUluZGV4T2YoTm9kZSogbm9kZSkKICAgICB9CiAKICAgICBj
YXNlIFN0cmluZ1VzZTogewotICAgICAgICBBU1NFUlQobm9kZS0+YXJyYXlNb2RlKCkuaXNBbnlL
aW5kT2ZDb250aWd1b3VzKCkpOworICAgICAgICBBU1NFUlQobm9kZS0+YXJyYXlNb2RlKCkudHlw
ZSgpID09IEFycmF5OjpDb250aWd1b3VzKTsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
c2VhcmNoRWxlbWVudCh0aGlzLCBzZWFyY2hFbGVtZW50RWRnZSk7CiAKICAgICAgICAgR1BSUmVn
IHNlYXJjaEVsZW1lbnRHUFIgPSBzZWFyY2hFbGVtZW50LmdwcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggM2Fh
MjQ0OTY4NTJhLi5hOTgwNWQ0YzgxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMTg3Myw4ICsxODczLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
QXJyYXk6OkludDMyOgotICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgY2FzZSBBcnJh
eTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6IHsKKyAgICBjYXNlIEFycmF5OjpDb250aWd1b3Vz
OiB7CiAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkpIHsKICAgICAg
ICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBo
LnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKICAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3Jh
Z2UodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBkM2JkOTdlYjBi
NDYuLjYxNjY4ODQ4NjQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yNTE0LDggKzI1MTQsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0
ZDo6dHVwbGU8SgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJheTo6SW50MzI6
Ci0gICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93
UHV0Q29udGlndW91czogeworICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKICAgICAgICAg
aWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICAgICAgU3BlY3Vs
YXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMSkpOwogICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2dy
YXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKQEAgLTI1MzUsNyArMjUzNCw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1i
ZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAgICAgIG1faml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCksIHJlc3VsdCk7CiAgICAgICAgICAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJ
bkJvdW5kc1NhbmVDaGFpbigpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUtPmFycmF5
TW9kZSgpLmlzQW55S2luZE9mQ29udGlndW91cygpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpDb250aWd1b3VzKTsKICAgICAgICAg
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RIb2xlID0gbV9qaXQuYnJhbmNoSWZOb3RFbXB0
eShyZXN1bHQpOwogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTY0KEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSksIHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgbm90
SG9sZS5saW5rKCZtX2ppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IDQ2OTgyY2FjNjQ2OC4uYjI4ZGU2MjJi
MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaApAQCAtMjU0LDcgKzI1NCw2IEBAIHB1YmxpYzoKICAgICAgICAgY2Fz
ZSBERkc6OkFycmF5OjpEb3VibGU6CiAgICAgICAgICAgICByZXR1cm4gaW5kZXhlZERvdWJsZVBy
b3BlcnRpZXM7CiAgICAgICAgIGNhc2UgREZHOjpBcnJheTo6Q29udGlndW91czoKLSAgICAgICAg
Y2FzZSBERkc6OkFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91czoKICAgICAgICAgICAgIHJl
dHVybiBpbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXM7CiAgICAgICAgIGNhc2UgREZHOjpBcnJh
eTo6QXJyYXlTdG9yYWdlOgogICAgICAgICBjYXNlIERGRzo6QXJyYXk6OlNsb3dQdXRBcnJheVN0
b3JhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggMjIyOGNiZDJiYzk5Li5hNzBhZTQ2YzZkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTM4NTgsNyArMzg1OCw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgICAgIGNhc2UgQXJy
YXk6OkRvdWJsZToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgICAg
ICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91czoKICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAgICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCks
IG51bGxwdHIsCiAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChwcm9wZXJ0
eSwgbV9vdXQuY29uc3RJbnQzMihNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSkpOwpAQCAtMzg3Niw3
ICszODc1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHZtQ2FsbChWb2lkLCBvcGVyYXRpb25F
bnN1cmVEb3VibGUsIG1fdm1WYWx1ZSwgY2VsbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlzU2xv
d1B1dENvbnRpZ3VvdXM6CiAgICAgICAgICAgICB2bUNhbGwoVm9pZCwgb3BlcmF0aW9uRW5zdXJl
Q29udGlndW91cywgbV92bVZhbHVlLCBjZWxsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CkBAIC01MDU2LDggKzUwNTQsNyBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRlZDoKICAgICAg
ICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKLSAgICAg
ICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlzU2xv
d1B1dENvbnRpZ3VvdXM6IHsKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewogICAg
ICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUobG93U3RvcmFnZShtX25v
ZGUtPmNoaWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTUyMDMsOCArNTIwMCw3IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgc3dpdGNo
IChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQz
MjoKLSAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBBcnJheTo6
QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6IHsKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91
czogewogICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFwaC52YXJBcmdD
aGlsZChtX25vZGUsIDEpKTsKICAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFn
ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMikpOwogICAgICAgICAgICAgCkBAIC01MjE4
LDEzICs1MjE0LDEzIEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAg
ICBMVmFsdWUgaXNIb2xlID0gbV9vdXQuaXNaZXJvNjQocmVzdWx0KTsKICAgICAgICAgICAgICAg
ICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzU2FuZUNoYWluKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgREZHX0FTU0VSVCgKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3Jh
cGgsIG1fbm9kZSwgbV9ub2RlLT5hcnJheU1vZGUoKS5pc0FueUtpbmRPZkNvbnRpZ3VvdXMoKSwg
bV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV9n
cmFwaCwgbV9ub2RlLCBtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6Q29udGln
dW91cywgbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpOwogICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBtX291dC5zZWxlY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICBpc0hvbGUsIG1f
b3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKSwgcmVzdWx0KTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRlKExv
YWRGcm9tSG9sZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBpc0hvbGUpOwogICAgICAgICAgICAgICAg
IC8vIFdlIGhhdmUgdG8ga2VlcCBiYXNlIGFsaXZlIHRvIGtlZXAgY29udGVudCBpbiBzdG9yYWdl
IGFsaXZlLgotICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLmlzQW55S2lu
ZE9mQ29udGlndW91cygpKQorICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgp
LnR5cGUoKSA9PSBBcnJheTo6Q29udGlndW91cykKICAgICAgICAgICAgICAgICAgICAgZW5zdXJl
U3RpbGxBbGl2ZUhlcmUoYmFzZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICAgICAgICAgIH0KQEAgLTUyNTYsNyArNTI1Miw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGtlZXAgYmFzZSBhbGl2ZSB0
byBrZWVwIGNvbnRlbnQgaW4gc3RvcmFnZSBhbGl2ZS4KLSAgICAgICAgICAgIGlmIChtX25vZGUt
PmFycmF5TW9kZSgpLmlzQW55S2luZE9mQ29udGlndW91cygpKQorICAgICAgICAgICAgaWYgKG1f
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpDb250aWd1b3VzKQogICAgICAgICAg
ICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJhc2UpOwogICAgICAgICAgICAgcmV0dXJuIG1f
b3V0LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCk7CiAgICAgICAgIH0KQEAgLTYx
MzYsNyArNjEzMiw2IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgY2FzZSBB
cnJheTo6Rm9yY2VFeGl0OgogICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgogICAgICAgICBj
YXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkFsd2F5c1Ns
b3dQdXRDb250aWd1b3VzOgogICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ0FyZ3VtZW50
czoKICAgICAgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKICAgICAgICAg
Y2FzZSBBcnJheTo6VW5kZWNpZGVkOgpAQCAtNjcyOCwxNSArNjcyMywxNSBAQCBJR05PUkVfQ0xB
TkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgc2VhcmNoRWxlbWVudCA9IGxvd0pTVmFs
dWUoc2VhcmNoRWxlbWVudEVkZ2UsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE9iamVjdFVzZToKLSAgICAgICAgICAg
ICAgICBBU1NFUlQobV9ub2RlLT5hcnJheU1vZGUoKS5pc0FueUtpbmRPZkNvbnRpZ3VvdXMoKSk7
CisgICAgICAgICAgICAgICAgQVNTRVJUKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFy
cmF5OjpDb250aWd1b3VzKTsKICAgICAgICAgICAgICAgICBzZWFyY2hFbGVtZW50ID0gbG93T2Jq
ZWN0KHNlYXJjaEVsZW1lbnRFZGdlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgU3ltYm9sVXNlOgotICAgICAgICAgICAgICAgIEFTU0VSVChtX25vZGUtPmFycmF5
TW9kZSgpLmlzQW55S2luZE9mQ29udGlndW91cygpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
bV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkNvbnRpZ3VvdXMpOwogICAgICAg
ICAgICAgICAgIHNlYXJjaEVsZW1lbnQgPSBsb3dTeW1ib2woc2VhcmNoRWxlbWVudEVkZ2UpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBPdGhlclVzZToKLSAgICAg
ICAgICAgICAgICBBU1NFUlQobV9ub2RlLT5hcnJheU1vZGUoKS5pc0FueUtpbmRPZkNvbnRpZ3Vv
dXMoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgp
ID09IEFycmF5OjpDb250aWd1b3VzKTsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoc2VhcmNo
RWxlbWVudEVkZ2UpOwogICAgICAgICAgICAgICAgIHNlYXJjaEVsZW1lbnQgPSBsb3dKU1ZhbHVl
KHNlYXJjaEVsZW1lbnRFZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtNjgwNCw3ICs2Nzk5LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6Ci0gICAgICAgICAgICBB
U1NFUlQobV9ub2RlLT5hcnJheU1vZGUoKS5pc0FueUtpbmRPZkNvbnRpZ3VvdXMoKSk7CisgICAg
ICAgICAgICBBU1NFUlQobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkNvbnRp
Z3VvdXMpOwogICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBrZWVwIGJhc2UgYWxpdmUgc2luY2Ug
dGhhdCBrZWVwcyBzdG9yYWdlIGFsaXZlLgogICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhl
cmUoYmFzZSk7CiAgICAgICAgICAgICBzZXRJbnQzMihtX291dC5jYXN0VG9JbnQzMih2bUNhbGwo
SW50NjQsIG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZywgd2Vha1BvaW50ZXIoZ2xvYmFsT2Jq
ZWN0KSwgc3RvcmFnZSwgbG93U3RyaW5nKHNlYXJjaEVsZW1lbnRFZGdlKSwgc3RhcnRJbmRleCkp
KTsKQEAgLTY4MTYsNyArNjgxMSw2IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAg
ICAgICAgICAgICBzZXRJbnQzMihtX291dC5jYXN0VG9JbnQzMih2bUNhbGwoSW50NjQsIG9wZXJh
dGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBz
dG9yYWdlLCBsb3dKU1ZhbHVlKHNlYXJjaEVsZW1lbnRFZGdlKSwgc3RhcnRJbmRleCkpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3Vz
OgotICAgICAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXM6CiAgICAg
ICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBrZWVwIGJhc2UgYWxpdmUgc2luY2UgdGhhdCBrZWVw
cyBjb250ZW50IG9mIHN0b3JhZ2UgYWxpdmUuCiAgICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxB
bGl2ZUhlcmUoYmFzZSk7CiAgICAgICAgICAgICAgICAgRkFMTFRIUk9VR0g7CkBAIC0xOTc2OCw3
ICsxOTc2Miw2IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgY2FzZSBBcnJh
eTo6SW50MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAgICAgICAgY2FzZSBBcnJh
eTo6Q29udGlndW91czoKLSAgICAgICAgY2FzZSBBcnJheTo6QWx3YXlzU2xvd1B1dENvbnRpZ3Vv
dXM6CiAgICAgICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRlZDoKICAgICAgICAgY2FzZSBBcnJheTo6
QXJyYXlTdG9yYWdlOiB7CiAgICAgICAgICAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdNb2RlTWFz
ayA9IElzQXJyYXkgfCBJbmRleGluZ1NoYXBlTWFzazsKQEAgLTE5ODY0LDcgKzE5ODU3LDYgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAg
ICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3Vz
OgotICAgICAgICBjYXNlIEFycmF5OjpBbHdheXNTbG93UHV0Q29udGlndW91czoKICAgICAgICAg
Y2FzZSBBcnJheTo6VW5kZWNpZGVkOgogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6
CiAgICAgICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcENlbGwuaAppbmRleCBjZWY4NzJmYTQyZmIuLmIyNjczNjY4NmM5YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcENlbGwuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQ2VsbC5oCkBAIC02MCw3ICs2MCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAgICAgYm9vbCBpc1phcHBlZCgpIGNvbnN0IHsgcmV0dXJuICEqYml0d2lzZV9j
YXN0PGNvbnN0IHVpbnQzMl90Kj4odGhpcyk7IH0KIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIGJv
b2wgaXNMaXZlKCk7CisgICAgYm9vbCBpc0xpdmUoKTsKIAogICAgIGJvb2wgaXNQcmVjaXNlQWxs
b2NhdGlvbigpIGNvbnN0OwogICAgIENlbGxDb250YWluZXIgY2VsbENvbnRhaW5lcigpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5k
ZXggMzQwOTdiMWE1M2VhLi4xODU1ZDA3MDQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtODYzLDEzICs4NjMsNiBAQCBzdGF0aWMg
SlNWYWx1ZSBwZXJmb3JtTExJbnRHZXRCeUlEKEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCwg
Q29kZUJsb2NrKiBjb2RlQgogCiAgICAgICAgICAgICBpZiAoISgtLW1ldGFkYXRhLmhpdENvdW50
Rm9yTExJbnRDYWNoaW5nKSkKICAgICAgICAgICAgICAgICBzZXR1cEdldEJ5SWRQcm90b3R5cGVD
YWNoZShnbG9iYWxPYmplY3QsIHZtLCBjb2RlQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIG1ldGFkYXRh
LCBiYXNlQ2VsbCwgc2xvdCwgaWRlbnQpOwotICAgICAgICB9IGVsc2UgaWYgKGhhc0Fsd2F5c1Ns
b3dQdXRDb250aWd1b3VzKGJhc2VDZWxsLT5pbmRleGluZ01vZGUoKSkgJiYgaWRlbnQgPT0gdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
Q29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAg
ICAgICAgbWV0YWRhdGEuc2V0QXJyYXlMZW5ndGhNb2RlKCk7Ci0gICAgICAgICAgICAgICAgbWV0
YWRhdGEuYXJyYXlMZW5ndGhNb2RlLmFycmF5UHJvZmlsZS5vYnNlcnZlU3RydWN0dXJlKHN0cnVj
dHVyZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2bS53cml0ZUJhcnJpZXIoY29kZUJs
b2NrKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoT3B0aW9uczo6dXNlTExJbnRJQ3MoKSAm
JiBpc0pTQXJyYXkoYmFzZVZhbHVlKSAmJiBpZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgpIHsKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGM2NjNkMTk3NjYxYi4uNThkNzFhYjk5Yzg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCkBAIC01NTIsMTcgKzU1MiwxNyBAQCBjb25zdCBUYWdPZmZzZXQgPSBjb25zdGV4cHIg
VGFnT2Zmc2V0CiBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gY29uc3RleHByIFBheWxvYWRPZmZzZXQK
IAogIyBDb25zdGFudCBmb3IgcmVhc29uaW5nIGFib3V0IGJ1dHRlcmZsaWVzLgotY29uc3QgSXNB
cnJheSAgICAgICAgICAgICAgICAgICAgICA9IGNvbnN0ZXhwciBJc0FycmF5Ci1jb25zdCBJbmRl
eGluZ1NoYXBlTWFzayAgICAgICAgICAgID0gY29uc3RleHByIEluZGV4aW5nU2hhcGVNYXNrCi1j
b25zdCBJbmRleGluZ1R5cGVNYXNrICAgICAgICAgICAgID0gY29uc3RleHByIEluZGV4aW5nVHlw
ZU1hc2sKLWNvbnN0IE5vSW5kZXhpbmdTaGFwZSAgICAgICAgICAgICAgPSBjb25zdGV4cHIgTm9J
bmRleGluZ1NoYXBlCi1jb25zdCBJbnQzMlNoYXBlICAgICAgICAgICAgICAgICAgID0gY29uc3Rl
eHByIEludDMyU2hhcGUKLWNvbnN0IERvdWJsZVNoYXBlICAgICAgICAgICAgICAgICAgPSBjb25z
dGV4cHIgRG91YmxlU2hhcGUKLWNvbnN0IENvbnRpZ3VvdXNTaGFwZSAgICAgICAgICAgICAgPSBj
b25zdGV4cHIgQ29udGlndW91c1NoYXBlCi1jb25zdCBBbHdheXNTbG93UHV0Q29udGlndW91c1No
YXBlID0gY29uc3RleHByIEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU2hhcGUKLWNvbnN0IEFycmF5
U3RvcmFnZVNoYXBlICAgICAgICAgICAgPSBjb25zdGV4cHIgQXJyYXlTdG9yYWdlU2hhcGUKLWNv
bnN0IENvcHlPbldyaXRlICAgICAgICAgICAgICAgICAgPSBjb25zdGV4cHIgQ29weU9uV3JpdGUK
LWNvbnN0IEFycmF5V2l0aFVuZGVjaWRlZCAgICAgICAgICAgPSBjb25zdGV4cHIgQXJyYXlXaXRo
VW5kZWNpZGVkCitjb25zdCBJc0FycmF5ICAgICAgICAgICAgICAgICAgPSBjb25zdGV4cHIgSXNB
cnJheQorY29uc3QgSW5kZXhpbmdTaGFwZU1hc2sgICAgICAgID0gY29uc3RleHByIEluZGV4aW5n
U2hhcGVNYXNrCitjb25zdCBJbmRleGluZ1R5cGVNYXNrICAgICAgICAgPSBjb25zdGV4cHIgSW5k
ZXhpbmdUeXBlTWFzaworY29uc3QgTm9JbmRleGluZ1NoYXBlICAgICAgICAgID0gY29uc3RleHBy
IE5vSW5kZXhpbmdTaGFwZQorY29uc3QgSW50MzJTaGFwZSAgICAgICAgICAgICAgID0gY29uc3Rl
eHByIEludDMyU2hhcGUKK2NvbnN0IERvdWJsZVNoYXBlICAgICAgICAgICAgICA9IGNvbnN0ZXhw
ciBEb3VibGVTaGFwZQorY29uc3QgQ29udGlndW91c1NoYXBlICAgICAgICAgID0gY29uc3RleHBy
IENvbnRpZ3VvdXNTaGFwZQorY29uc3QgQXJyYXlTdG9yYWdlU2hhcGUgICAgICAgID0gY29uc3Rl
eHByIEFycmF5U3RvcmFnZVNoYXBlCitjb25zdCBTbG93UHV0QXJyYXlTdG9yYWdlU2hhcGUgPSBj
b25zdGV4cHIgU2xvd1B1dEFycmF5U3RvcmFnZVNoYXBlCitjb25zdCBDb3B5T25Xcml0ZSAgICAg
ICAgICAgICAgPSBjb25zdGV4cHIgQ29weU9uV3JpdGUKK2NvbnN0IEFycmF5V2l0aFVuZGVjaWRl
ZCAgICAgICA9IGNvbnN0ZXhwciBBcnJheVdpdGhVbmRlY2lkZWQKIAogIyBUeXBlIGNvbnN0YW50
cy4KIGNvbnN0IFN0cnVjdHVyZVR5cGUgPSBjb25zdGV4cHIgU3RydWN0dXJlVHlwZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQppbmRleCAwNjI3ZDJkYTJiYTQuLjA2N2M5MDAzZjc1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KQEAgLTE3NzEsOCArMTc3MSw4IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3Zh
bCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkCiAgICAgam1w
IC5vcEdldEJ5VmFsTm90RW1wdHkKIAogLm9wR2V0QnlWYWxOb3REb3VibGU6Ci0gICAgYmllcSB0
MiwgQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNTaGFwZSwgLm9wR2V0QnlWYWxJc0NvbnRpZ3VvdXMK
LSAgICBiaWx0IHQyLCBBcnJheVN0b3JhZ2VTaGFwZSwgLm9wR2V0QnlWYWxOb3RJbmRleGVkU3Rv
cmFnZQorICAgIHN1YmkgQXJyYXlTdG9yYWdlU2hhcGUsIHQyCisgICAgYmlhIHQyLCBTbG93UHV0
QXJyYXlTdG9yYWdlU2hhcGUgLSBBcnJheVN0b3JhZ2VTaGFwZSwgLm9wR2V0QnlWYWxOb3RJbmRl
eGVkU3RvcmFnZQogICAgIGJpYWVxIHQxLCAtc2l6ZW9mIEluZGV4aW5nSGVhZGVyICsgSW5kZXhp
bmdIZWFkZXI6OnUubGVuZ3Rocy52ZWN0b3JMZW5ndGhbdDNdLCAub3BHZXRCeVZhbFNsb3cKICAg
ICBsb2FkaSBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yICsgVGFnT2Zmc2V0W3QzLCB0MSwgOF0sIHQy
CiAgICAgbG9hZGkgQXJyYXlTdG9yYWdlOjptX3ZlY3RvciArIFBheWxvYWRPZmZzZXRbdDMsIHQx
LCA4XSwgdDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggOWU3MDU2NzNjOTU0Li5kZjk1NWJjODdmM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtCkBAIC0xOTEwLDggKzE5MTAsOCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9i
eV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZAogICAg
IGptcCAub3BHZXRCeVZhbERvbmUKICAgICAKIC5vcEdldEJ5VmFsTm90RG91YmxlOgotICAgIGJp
ZXEgdDIsIEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU2hhcGUsIC5vcEdldEJ5VmFsSXNDb250aWd1
b3VzCi0gICAgYmlsdCB0MiwgQXJyYXlTdG9yYWdlU2hhcGUsIC5vcEdldEJ5VmFsTm90SW5kZXhl
ZFN0b3JhZ2UKKyAgICBzdWJpIEFycmF5U3RvcmFnZVNoYXBlLCB0MgorICAgIGJpYSB0MiwgU2xv
d1B1dEFycmF5U3RvcmFnZVNoYXBlIC0gQXJyYXlTdG9yYWdlU2hhcGUsIC5vcEdldEJ5VmFsTm90
SW5kZXhlZFN0b3JhZ2UKICAgICBiaWFlcSB0MSwgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIElu
ZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMudmVjdG9yTGVuZ3RoW3QzXSwgLm9wR2V0QnlWYWxTbG93
CiAgICAgZ2V0KG1fZHN0LCB0MCkKICAgICBsb2FkcSBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3Qz
LCB0MSwgOF0sIHQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKaW5kZXggZjE0YWI3YmEyODE5Li5lNjNlMzQzODY1MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEwMTIs
NyArMTAxMiw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1JldmVy
c2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgdGhpc09iamVjdC0+ZW5z
dXJlV3JpdGFibGUodm0pOwogCiAgICAgc3dpdGNoICh0aGlzT2JqZWN0LT5pbmRleGluZ1R5cGUo
KSkgewotICAgIGNhc2UgQUxMX0ZBU1RfUFVUX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6Cisg
ICAgY2FzZSBBTExfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzoKICAgICBjYXNlIEFMTF9JTlQz
Ml9JTkRFWElOR19UWVBFUzogewogICAgICAgICBhdXRvJiBidXR0ZXJmbHkgPSAqdGhpc09iamVj
dC0+YnV0dGVyZmx5KCk7CiAgICAgICAgIGlmIChsZW5ndGggPiBidXR0ZXJmbHkucHVibGljTGVu
Z3RoKCkpCkBAIC0xMzIyLDcgKzEzMjIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJy
YXlQcm90b0Z1bmNVblNoaWZ0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogCiBl
bnVtIGNsYXNzIEluZGV4T2ZEaXJlY3Rpb24geyBGb3J3YXJkLCBCYWNrd2FyZCB9OwogdGVtcGxh
dGU8SW5kZXhPZkRpcmVjdGlvbiBkaXJlY3Rpb24+Ci1BTFdBWVNfSU5MSU5FIEpTVmFsdWUgdHJ5
RmFzdEluZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU09iamVj
dCogYXJyYXksIHVpbnQ2NF90IGxlbmd0aDY0LCBKU1ZhbHVlIHNlYXJjaEVsZW1lbnQsIHVpbnQ2
NF90IGluZGV4NjQpCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgZmFzdEluZGV4T2YoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU0FycmF5KiBhcnJheSwgdWludDY0X3QgbGVu
Z3RoNjQsIEpTVmFsdWUgc2VhcmNoRWxlbWVudCwgdWludDY0X3QgaW5kZXg2NCkKIHsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTE0NDQsMTAgKzE0NDQs
MTIgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgIEpTVmFsdWUgc2VhcmNoRWxlbWVudCA9IGNhbGxGcmFtZS0+YXJndW1l
bnQoMCk7CiAKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IHRyeUZhc3RJbmRleE9mPEluZGV4T2ZEaXJl
Y3Rpb246OkZvcndhcmQ+KGdsb2JhbE9iamVjdCwgdm0sIHRoaXNPYmplY3QsIGxlbmd0aCwgc2Vh
cmNoRWxlbWVudCwgaW5kZXgpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OworICAgIGlmIChpc0pTQXJyYXkodGhpc09iamVjdCkpIHsKKyAgICAgICAgSlNWYWx1ZSByZXN1
bHQgPSBmYXN0SW5kZXhPZjxJbmRleE9mRGlyZWN0aW9uOjpGb3J3YXJkPihnbG9iYWxPYmplY3Qs
IHZtLCBhc0FycmF5KHRoaXNPYmplY3QpLCBsZW5ndGgsIHNlYXJjaEVsZW1lbnQsIGluZGV4KTsK
KyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgaWYgKHJl
c3VsdCkKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICB9
CiAKICAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKICAgICAgICAgSlNWYWx1
ZSBlID0gZ2V0UHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCBpbmRleCk7CkBAIC0x
NDk0LDEwICsxNDk2LDEyIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVu
Y0xhc3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAKICAgICBKU1ZhbHVl
IHNlYXJjaEVsZW1lbnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogCi0gICAgSlNWYWx1ZSBy
ZXN1bHQgPSB0cnlGYXN0SW5kZXhPZjxJbmRleE9mRGlyZWN0aW9uOjpCYWNrd2FyZD4oZ2xvYmFs
T2JqZWN0LCB2bSwgdGhpc09iamVjdCwgbGVuZ3RoLCBzZWFyY2hFbGVtZW50LCBpbmRleCk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICBpZiAocmVzdWx0KQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgaWYgKGlzSlNBcnJheSh0
aGlzT2JqZWN0KSkgeworICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGZhc3RJbmRleE9mPEluZGV4
T2ZEaXJlY3Rpb246OkJhY2t3YXJkPihnbG9iYWxPYmplY3QsIHZtLCBhc0FycmF5KHRoaXNPYmpl
Y3QpLCBsZW5ndGgsIHNlYXJjaEVsZW1lbnQsIGluZGV4KTsKKyAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICB9CiAKICAgICBkbyB7CiAgICAgICAg
IEFTU0VSVChpbmRleCA8IGxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbmRleGluZ1R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW5kZXhpbmdUeXBlLmNwcAppbmRleCBmZjUyODkzZGU2YjkuLjY0ZmNkODFkNmRjZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kZXhpbmdUeXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCkBAIC04
OCw5ICs4OCw2IEBAIHZvaWQgZHVtcEluZGV4aW5nVHlwZShQcmludFN0cmVhbSYgb3V0LCBJbmRl
eGluZ1R5cGUgaW5kZXhpbmdUeXBlKQogICAgIGNhc2UgTm9uQXJyYXlXaXRoQ29udGlndW91czoK
ICAgICAgICAgYmFzaWNOYW1lID0gIk5vbkFycmF5V2l0aENvbnRpZ3VvdXMiOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIE5vbkFycmF5V2l0aEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzOgotICAg
ICAgICBiYXNpY05hbWUgPSAiTm9uQXJyYXlXaXRoQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMiOwot
ICAgICAgICBicmVhazsKICAgICBjYXNlIE5vbkFycmF5V2l0aEFycmF5U3RvcmFnZToKICAgICAg
ICAgYmFzaWNOYW1lID0gIk5vbkFycmF5V2l0aEFycmF5U3RvcmFnZSI7CiAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kZXhpbmdUeXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuaAppbmRleCBh
NWVhMzdmNDhlY2UuLjBkZTQ1MGM5MGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW5kZXhpbmdUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW5kZXhpbmdUeXBlLmgKQEAgLTY4LDEzICs2OCwxMiBAQCBzdGF0aWMgY29uc3QgSW5k
ZXhpbmdUeXBlIFVuZGVjaWRlZFNoYXBlICAgICAgICAgICAgICAgICAgPSAweDAyOyAvLyBPbmx5
IHVzZWZ1bAogc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBJbnQzMlNoYXBlICAgICAgICAgICAg
ICAgICAgICAgID0gMHgwNDsKIHN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgRG91YmxlU2hhcGUg
ICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CiBzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIENv
bnRpZ3VvdXNTaGFwZSAgICAgICAgICAgICAgICAgPSAweDA4Owotc3RhdGljIGNvbnN0IEluZGV4
aW5nVHlwZSBBbHdheXNTbG93UHV0Q29udGlndW91c1NoYXBlICAgID0gMHgwQTsKLXN0YXRpYyBj
b25zdCBJbmRleGluZ1R5cGUgQXJyYXlTdG9yYWdlU2hhcGUgICAgICAgICAgICAgICA9IDB4MEM7
Ci1zdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFwZSAgICAg
ICAgPSAweDBFOworc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVN0b3JhZ2VTaGFwZSAg
ICAgICAgICAgICAgID0gMHgwQTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgU2xvd1B1dEFy
cmF5U3RvcmFnZVNoYXBlICAgICAgICA9IDB4MEM7CiAKIHN0YXRpYyBjb25zdCBJbmRleGluZ1R5
cGUgSW5kZXhpbmdTaGFwZU1hc2sgICAgICAgICAgICAgICA9IDB4MEU7CiBzdGF0aWMgY29uc3Qg
SW5kZXhpbmdUeXBlIEluZGV4aW5nU2hhcGVTaGlmdCAgICAgICAgICAgICAgPSAxOwotc3RhdGlj
IGNvbnN0IEluZGV4aW5nVHlwZSBOdW1iZXJPZkluZGV4aW5nU2hhcGVzICAgICAgICAgID0gODsK
K3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgTnVtYmVyT2ZJbmRleGluZ1NoYXBlcyAgICAgICAg
ICA9IDc7CiBzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIEluZGV4aW5nVHlwZU1hc2sgICAgICAg
ICAgICAgICAgPSBJbmRleGluZ1NoYXBlTWFzayB8IElzQXJyYXk7CiAKIC8vIFdoZXRoZXIgb3Ig
bm90IHRoZSBidXR0ZXJmbHkgaXMgY29weSBvbiB3cml0ZS4gSWYgaXQgaXMgY29weSBvbiB3cml0
ZSB0aGVuIHRoZSBidXR0ZXJmbHkgaXMgYWN0dWFsbHkgYSBKU0ltbXV0YWJsZUJ1dHRlcmZseS4g
VGhpcyBzaG91bGQgb25seSBldmVyIGJlIHNldCBpZiB0aGVyZSBhcmUgbm8gbmFtZWQgcHJvcGVy
dGllcy4KQEAgLTk2LDIzICs5NSwyMiBAQCBzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIEluZGV4
aW5nVHlwZUxvY2tJc0hlbGQgICAgICAgICAgPSAweDQwOwogc3RhdGljIGNvbnN0IEluZGV4aW5n
VHlwZSBJbmRleGluZ1R5cGVMb2NrSGFzUGFya2VkICAgICAgID0gMHg4MDsKIAogLy8gTGlzdCBv
ZiBhY2NlcHRhYmxlIGFycmF5IHR5cGVzLgotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOb25B
cnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDsKLXN0YXRpYyBjb25zdCBJbmRl
eGluZ1R5cGUgTm9uQXJyYXlXaXRoSW50MzIgICAgICAgICAgICAgICAgICAgPSBJbnQzMlNoYXBl
Owotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOb25BcnJheVdpdGhEb3VibGUgICAgICAgICAg
ICAgICAgICA9IERvdWJsZVNoYXBlOwotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOb25BcnJh
eVdpdGhDb250aWd1b3VzICAgICAgICAgICAgICA9IENvbnRpZ3VvdXNTaGFwZTsKLXN0YXRpYyBj
b25zdCBJbmRleGluZ1R5cGUgTm9uQXJyYXlXaXRoQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMgPSBB
bHdheXNTbG93UHV0Q29udGlndW91c1NoYXBlOwotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBO
b25BcnJheVdpdGhBcnJheVN0b3JhZ2UgICAgICAgICAgICA9IEFycmF5U3RvcmFnZVNoYXBlOwot
c3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOb25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdl
ICAgICA9IFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFwZTsKLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5
cGUgQXJyYXlDbGFzcyAgICAgICAgICAgICAgICAgICAgICAgICAgPSBJc0FycmF5OyAvLyBJJ2Qg
d2FudCB0byBjYWxsIHRoaXMgIkFycmF5IiBidXQgdGhpcyB3b3VsZCBsZWFkIHRvIGRpc2FzdHJv
dXMgbmFtZXNwYWNlIHBvbGx1dGlvbi4KLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQXJyYXlX
aXRoVW5kZWNpZGVkICAgICAgICAgICAgICAgICAgPSBJc0FycmF5IHwgVW5kZWNpZGVkU2hhcGU7
Ci1zdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIEFycmF5V2l0aEludDMyICAgICAgICAgICAgICAg
ICAgICAgID0gSXNBcnJheSB8IEludDMyU2hhcGU7Ci1zdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBl
IEFycmF5V2l0aERvdWJsZSAgICAgICAgICAgICAgICAgICAgID0gSXNBcnJheSB8IERvdWJsZVNo
YXBlOwotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVdpdGhDb250aWd1b3VzICAgICAg
ICAgICAgICAgICA9IElzQXJyYXkgfCBDb250aWd1b3VzU2hhcGU7Ci1zdGF0aWMgY29uc3QgSW5k
ZXhpbmdUeXBlIEFycmF5V2l0aEFycmF5U3RvcmFnZSAgICAgICAgICAgICAgID0gSXNBcnJheSB8
IEFycmF5U3RvcmFnZVNoYXBlOwotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVdpdGhT
bG93UHV0QXJyYXlTdG9yYWdlICAgICAgICA9IElzQXJyYXkgfCBTbG93UHV0QXJyYXlTdG9yYWdl
U2hhcGU7Ci1zdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIENvcHlPbldyaXRlQXJyYXlXaXRoSW50
MzIgICAgICAgICAgID0gSXNBcnJheSB8IEludDMyU2hhcGUgfCBDb3B5T25Xcml0ZTsKLXN0YXRp
YyBjb25zdCBJbmRleGluZ1R5cGUgQ29weU9uV3JpdGVBcnJheVdpdGhEb3VibGUgICAgICAgICAg
PSBJc0FycmF5IHwgRG91YmxlU2hhcGUgfCBDb3B5T25Xcml0ZTsKLXN0YXRpYyBjb25zdCBJbmRl
eGluZ1R5cGUgQ29weU9uV3JpdGVBcnJheVdpdGhDb250aWd1b3VzICAgICAgPSBJc0FycmF5IHwg
Q29udGlndW91c1NoYXBlIHwgQ29weU9uV3JpdGU7CitzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBl
IE5vbkFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDA7CitzdGF0aWMgY29uc3QgSW5k
ZXhpbmdUeXBlIE5vbkFycmF5V2l0aEludDMyICAgICAgICAgICAgICAgPSBJbnQzMlNoYXBlOwor
c3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOb25BcnJheVdpdGhEb3VibGUgICAgICAgICAgICAg
ID0gRG91YmxlU2hhcGU7CitzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIE5vbkFycmF5V2l0aENv
bnRpZ3VvdXMgICAgICAgICAgPSBDb250aWd1b3VzU2hhcGU7CitzdGF0aWMgY29uc3QgSW5kZXhp
bmdUeXBlIE5vbkFycmF5V2l0aEFycmF5U3RvcmFnZSAgICAgICAgPSBBcnJheVN0b3JhZ2VTaGFw
ZTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgTm9uQXJyYXlXaXRoU2xvd1B1dEFycmF5U3Rv
cmFnZSA9IFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFwZTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5
cGUgQXJyYXlDbGFzcyAgICAgICAgICAgICAgICAgICAgICA9IElzQXJyYXk7IC8vIEknZCB3YW50
IHRvIGNhbGwgdGhpcyAiQXJyYXkiIGJ1dCB0aGlzIHdvdWxkIGxlYWQgdG8gZGlzYXN0cm91cyBu
YW1lc3BhY2UgcG9sbHV0aW9uLgorc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVdpdGhV
bmRlY2lkZWQgICAgICAgICAgICAgID0gSXNBcnJheSB8IFVuZGVjaWRlZFNoYXBlOworc3RhdGlj
IGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVdpdGhJbnQzMiAgICAgICAgICAgICAgICAgID0gSXNB
cnJheSB8IEludDMyU2hhcGU7CitzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIEFycmF5V2l0aERv
dWJsZSAgICAgICAgICAgICAgICAgPSBJc0FycmF5IHwgRG91YmxlU2hhcGU7CitzdGF0aWMgY29u
c3QgSW5kZXhpbmdUeXBlIEFycmF5V2l0aENvbnRpZ3VvdXMgICAgICAgICAgICAgPSBJc0FycmF5
IHwgQ29udGlndW91c1NoYXBlOworc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVdpdGhB
cnJheVN0b3JhZ2UgICAgICAgICAgID0gSXNBcnJheSB8IEFycmF5U3RvcmFnZVNoYXBlOworc3Rh
dGljIGNvbnN0IEluZGV4aW5nVHlwZSBBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlICAgID0g
SXNBcnJheSB8IFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFwZTsKK3N0YXRpYyBjb25zdCBJbmRleGlu
Z1R5cGUgQ29weU9uV3JpdGVBcnJheVdpdGhJbnQzMiAgICAgICA9IElzQXJyYXkgfCBJbnQzMlNo
YXBlIHwgQ29weU9uV3JpdGU7CitzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIENvcHlPbldyaXRl
QXJyYXlXaXRoRG91YmxlICAgICAgPSBJc0FycmF5IHwgRG91YmxlU2hhcGUgfCBDb3B5T25Xcml0
ZTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQ29weU9uV3JpdGVBcnJheVdpdGhDb250aWd1
b3VzICA9IElzQXJyYXkgfCBDb250aWd1b3VzU2hhcGUgfCBDb3B5T25Xcml0ZTsKIAogI2RlZmlu
ZSBBTExfQkxBTktfSU5ERVhJTkdfVFlQRVMgXAogICAgIE5vbkFycmF5OiAgICAgICAgICAgICAg
ICAgICAgXApAQCAtMTM3LDIyICsxMzUsMTQgQEAgc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBD
b3B5T25Xcml0ZUFycmF5V2l0aENvbnRpZ3VvdXMgICAgICA9IElzQXJyYXkgfCBDb250aWcKICAg
ICBBTExfV1JJVEFCTEVfRE9VQkxFX0lOREVYSU5HX1RZUEVTOiBcCiAgICAgY2FzZSBDb3B5T25X
cml0ZUFycmF5V2l0aERvdWJsZQogCi0jZGVmaW5lIEFMTF9XUklUQUJMRV9GQVNUX1BVVF9DT05U
SUdVT1VTX0lOREVYSU5HX1RZUEVTIFwKKyNkZWZpbmUgQUxMX1dSSVRBQkxFX0NPTlRJR1VPVVNf
SU5ERVhJTkdfVFlQRVMgICAgXAogICAgIE5vbkFycmF5V2l0aENvbnRpZ3VvdXM6ICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgY2FzZSBBcnJheVdpdGhDb250aWd1b3VzICAgICAgICAgICAg
ICAgICAgICAgIFwKIAotI2RlZmluZSBBTExfV1JJVEFCTEVfQ09OVElHVU9VU19JTkRFWElOR19U
WVBFUyAgICAgICBcCi0gICAgQUxMX1dSSVRBQkxFX0ZBU1RfUFVUX0NPTlRJR1VPVVNfSU5ERVhJ
TkdfVFlQRVM6IFwKLSAgICBjYXNlIE5vbkFycmF5V2l0aEFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
Ci0KLSNkZWZpbmUgQUxMX0ZBU1RfUFVUX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVMgICAgICAg
IFwKLSAgICBBTExfV1JJVEFCTEVfRkFTVF9QVVRfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzog
IFwKKyNkZWZpbmUgQUxMX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVMgICAgICAgIFwKKyAgICBB
TExfV1JJVEFCTEVfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzogIFwKICAgICBjYXNlIENvcHlP
bldyaXRlQXJyYXlXaXRoQ29udGlndW91cwogCi0jZGVmaW5lIEFMTF9DT05USUdVT1VTX0lOREVY
SU5HX1RZUEVTICAgICAgICAgXAotICAgIEFMTF9GQVNUX1BVVF9DT05USUdVT1VTX0lOREVYSU5H
X1RZUEVTOiAgIFwKLSAgICBjYXNlIE5vbkFycmF5V2l0aEFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
Ci0KICNkZWZpbmUgQVJSQVlfV0lUSF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTIFwKICAg
ICBBcnJheVdpdGhBcnJheVN0b3JhZ2U6ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBjYXNl
IEFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UKQEAgLTE4NywxNiArMTc3LDYgQEAgaW5saW5l
IGJvb2wgaGFzQ29udGlndW91cyhJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlKQogICAgIHJldHVy
biAoaW5kZXhpbmdUeXBlICYgSW5kZXhpbmdTaGFwZU1hc2spID09IENvbnRpZ3VvdXNTaGFwZTsK
IH0KIAotaW5saW5lIGJvb2wgaGFzQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMoSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZSkKLXsKLSAgICByZXR1cm4gKGluZGV4aW5nVHlwZSAmIEluZGV4aW5nU2hh
cGVNYXNrKSA9PSBBbHdheXNTbG93UHV0Q29udGlndW91c1NoYXBlOwotfQotCi1pbmxpbmUgYm9v
bCBoYXNBbnlDb250aWd1b3VzKEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUpCi17Ci0gICAgcmV0
dXJuIGhhc0NvbnRpZ3VvdXMoaW5kZXhpbmdUeXBlKSB8fCBoYXNBbHdheXNTbG93UHV0Q29udGln
dW91cyhpbmRleGluZ1R5cGUpOwotfQotCiBpbmxpbmUgYm9vbCBoYXNBcnJheVN0b3JhZ2UoSW5k
ZXhpbmdUeXBlIGluZGV4aW5nVHlwZSkKIHsKICAgICByZXR1cm4gKGluZGV4aW5nVHlwZSAmIElu
ZGV4aW5nU2hhcGVNYXNrKSA9PSBBcnJheVN0b3JhZ2VTaGFwZTsKQEAgLTIxMiwxMSArMTkyLDYg
QEAgaW5saW5lIGJvb2wgaGFzU2xvd1B1dEFycmF5U3RvcmFnZShJbmRleGluZ1R5cGUgaW5kZXhp
bmdUeXBlKQogICAgIHJldHVybiAoaW5kZXhpbmdUeXBlICYgSW5kZXhpbmdTaGFwZU1hc2spID09
IFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFwZTsKIH0KIAotaW5saW5lIGJvb2wgaGFzQW55U2xvd1B1
dEluZGV4aW5nVHlwZShJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlKQotewotICAgIHJldHVybiBo
YXNBbHdheXNTbG93UHV0Q29udGlndW91cyhpbmRleGluZ1R5cGUpIHx8IGhhc1Nsb3dQdXRBcnJh
eVN0b3JhZ2UoaW5kZXhpbmdUeXBlKTsKLX0KLQogaW5saW5lIGJvb2wgc2hvdWxkVXNlU2xvd1B1
dChJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlKQogewogICAgIHJldHVybiBoYXNTbG93UHV0QXJy
YXlTdG9yYWdlKGluZGV4aW5nVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCmluZGV4IDdiMDdhNTdhMDVmOC4uNTgwM2UyNTY0YmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtNzMwLDE2ICs3MzAsMTYgQEAgSlNB
cnJheSogSlNBcnJheTo6ZmFzdFNsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBzb3VyY2UsIHVpbnQKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAKLSAgICBpZiAoIXNvdXJjZS0+Y2FuRG9GYXN0SW5kZXhlZEFjY2VzcygpKQorICAgIFN0cnVj
dHVyZSogc291cmNlU3RydWN0dXJlID0gc291cmNlLT5zdHJ1Y3R1cmUoKTsKKyAgICBpZiAoc291
cmNlU3RydWN0dXJlLT50eXBlSW5mbygpLmludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBhdXRvIHNvdXJjZUluZGV4aW5nVHlwZSA9IHNvdXJjZS0+aW5kZXhpbmdUeXBlKCk7Ci0g
ICAgYXV0byBhcnJheVR5cGUgPSBzb3VyY2VJbmRleGluZ1R5cGUgPT0gTm9uQXJyYXlXaXRoQWx3
YXlzU2xvd1B1dENvbnRpZ3VvdXMgPyBBcnJheVdpdGhDb250aWd1b3VzIDogc291cmNlSW5kZXhp
bmdUeXBlIHwgSXNBcnJheTsKKyAgICBhdXRvIGFycmF5VHlwZSA9IHNvdXJjZS0+aW5kZXhpbmdU
eXBlKCkgfCBJc0FycmF5OwogICAgIHN3aXRjaCAoYXJyYXlUeXBlKSB7CiAgICAgY2FzZSBBcnJh
eVdpdGhEb3VibGU6CiAgICAgY2FzZSBBcnJheVdpdGhJbnQzMjoKICAgICBjYXNlIEFycmF5V2l0
aENvbnRpZ3VvdXM6IHsKLSAgICAgICAgaWYgKGNvdW50ID49IE1JTl9TUEFSU0VfQVJSQVlfSU5E
RVgpCisgICAgICAgIGlmIChjb3VudCA+PSBNSU5fU1BBUlNFX0FSUkFZX0lOREVYIHx8IHNvdXJj
ZVN0cnVjdHVyZS0+aG9sZXNNdXN0Rm9yd2FyZFRvUHJvdG90eXBlKHNvdXJjZSkpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBpZiAoc3RhcnRJbmRleCArIGNvdW50ID4g
c291cmNlLT5idXR0ZXJmbHkoKS0+dmVjdG9yTGVuZ3RoKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMTZkY2ZhMDFlNTczLi5l
NDcwNjBjYTJhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTk1MCw3ICs5NTAsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpp
bml0KFZNJiB2bSkKICAgICBtX29yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBl
W2FycmF5SW5kZXhGcm9tSW5kZXhpbmdUeXBlKEludDMyU2hhcGUpXS5zZXQodm0sIHRoaXMsIEpT
QXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9hcnJheVByb3RvdHlwZS5nZXQoKSwg
QXJyYXlXaXRoSW50MzIpKTsKICAgICBtX29yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGlu
Z1NoYXBlW2FycmF5SW5kZXhGcm9tSW5kZXhpbmdUeXBlKERvdWJsZVNoYXBlKV0uc2V0KHZtLCB0
aGlzLCBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fYXJyYXlQcm90b3R5cGUu
Z2V0KCksIEFycmF5V2l0aERvdWJsZSkpOwogICAgIG1fb3JpZ2luYWxBcnJheVN0cnVjdHVyZUZv
ckluZGV4aW5nU2hhcGVbYXJyYXlJbmRleEZyb21JbmRleGluZ1R5cGUoQ29udGlndW91c1NoYXBl
KV0uc2V0KHZtLCB0aGlzLCBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fYXJy
YXlQcm90b3R5cGUuZ2V0KCksIEFycmF5V2l0aENvbnRpZ3VvdXMpKTsKLSAgICBtX29yaWdpbmFs
QXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1NoYXBlW2FycmF5SW5kZXhGcm9tSW5kZXhpbmdUeXBl
KEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU2hhcGUpXS5zZXRNYXlCZU51bGwodm0sIHRoaXMsIG51
bGxwdHIpOwogICAgIG1fb3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVbYXJy
YXlJbmRleEZyb21JbmRleGluZ1R5cGUoQXJyYXlTdG9yYWdlU2hhcGUpXS5zZXQodm0sIHRoaXMs
IEpTQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9hcnJheVByb3RvdHlwZS5nZXQo
KSwgQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSk7CiAgICAgbV9vcmlnaW5hbEFycmF5U3RydWN0dXJl
Rm9ySW5kZXhpbmdTaGFwZVthcnJheUluZGV4RnJvbUluZGV4aW5nVHlwZShTbG93UHV0QXJyYXlT
dG9yYWdlU2hhcGUpXS5zZXQodm0sIHRoaXMsIEpTQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9hcnJheVByb3RvdHlwZS5nZXQoKSwgQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFn
ZSkpOwogICAgIG1fb3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVbYXJyYXlJ
bmRleEZyb21JbmRleGluZ1R5cGUoQ29weU9uV3JpdGVBcnJheVdpdGhJbnQzMildLnNldCh2bSwg
dGhpcywgSlNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2FycmF5UHJvdG90eXBl
LmdldCgpLCBDb3B5T25Xcml0ZUFycmF5V2l0aEludDMyKSk7CkBAIC0yNDE2LDkgKzI0MTUsNiBA
QCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZp
c2l0b3ImIHZpc2l0b3IpCiAgICAgdGhpc09iamVjdC0+bV90eXBlZEFycmF5UHJvdG8udmlzaXQo
dmlzaXRvcik7CiAgICAgdGhpc09iamVjdC0+bV90eXBlZEFycmF5U3VwZXJDb25zdHJ1Y3Rvci52
aXNpdCh2aXNpdG9yKTsKICAgICB0aGlzT2JqZWN0LT5tX3JlZ0V4cEdsb2JhbERhdGEudmlzaXRB
Z2dyZWdhdGUodmlzaXRvcik7Ci0KLSAgICBmb3IgKFN0cnVjdHVyZSogc3RydWN0dXJlIDogdGhp
c09iamVjdC0+bV9vcmlnaW5hbEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU3RydWN0dXJlU2V0KQot
ICAgICAgICB2aXNpdG9yLmFwcGVuZFVuYmFycmllcmVkKHN0cnVjdHVyZSk7CiB9CiAKIERFRklO
RV9WSVNJVF9DSElMRFJFTl9XSVRIX01PRElGSUVSKEpTX0VYUE9SVF9QUklWQVRFLCBKU0dsb2Jh
bE9iamVjdCk7CkBAIC0yODIyLDEyICsyODE4LDYgQEAgSlNHbG9iYWxPYmplY3QqIEpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHMK
ICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0OwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0OjpyZWNv
cmRPcmlnaW5hbEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU3RydWN0dXJlKFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQotewotICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpID09IHRoaXMp
OwotICAgIG1fb3JpZ2luYWxBbHdheXNTbG93UHV0Q29udGlndW91c1N0cnVjdHVyZVNldC5hZGQo
c3RydWN0dXJlKTsKLX0KLQogdm9pZCBKU0dsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtKQogewogICAgIERlZmVyVGVybWluYXRpb24gZGVmZXJUZXJtaW5hdGlvbih2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAyMTc2
OTk3Y2UxZmIuLjY2OTVjMjBlZWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC01MzQsOSArNTM0LDYgQEAgcHVibGljOgogICAgIElu
bGluZVdhdGNocG9pbnRTZXQgbV9zaGFyZWRBcnJheUJ1ZmZlclNwZWNpZXNXYXRjaHBvaW50U2V0
IHsgQ2xlYXJXYXRjaHBvaW50IH07CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX3R5cGVkQXJy
YXlDb25zdHJ1Y3RvclNwZWNpZXNXYXRjaHBvaW50U2V0IHsgSXNXYXRjaGVkIH07CiAgICAgSW5s
aW5lV2F0Y2hwb2ludFNldCBtX3R5cGVkQXJyYXlQcm90b3R5cGVJdGVyYXRvclByb3RvY29sV2F0
Y2hwb2ludFNldCB7IElzV2F0Y2hlZCB9OwotCi0gICAgLy8gQ3VycmVudCB0aGlzIGlzIGJlaW5n
IHNldCB1cCBpbiBKU0RPTVdpbmRvd0Jhc2UgYW5kIHdhdGNoZXMgb25seSBOb2RlTGlzdC5wcm90
b3R5cGUubGVuZ3RoIGdldHRlciB0byBiZSBvcmlnaW5hbC4KLSAgICBJbmxpbmVXYXRjaHBvaW50
U2V0IG1fYWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNQcm90b3R5cGVzQXJlU2FuZVdhdGNocG9pbnRT
ZXQgeyBDbGVhcldhdGNocG9pbnQgfTsKICNkZWZpbmUgREVDTEFSRV9UWVBFRF9BUlJBWV9UWVBF
X1NQRUNJRVNfV0FUQ0hQT0lOVF9TRVQobmFtZSkgXAogICAgIElubGluZVdhdGNocG9pbnRTZXQg
bV90eXBlZEFycmF5ICMjIG5hbWUgIyMgU3BlY2llc1dhdGNocG9pbnRTZXQgeyBDbGVhcldhdGNo
cG9pbnQgfTsgXAogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV90eXBlZEFycmF5ICMjIG5hbWUg
IyMgSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQgeyBDbGVhcldhdGNocG9pbnQgfTsKQEAg
LTY2Nyw3ICs2NjQsNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIElubGluZVdhdGNocG9pbnRTZXQm
IHR5cGVkQXJyYXlDb25zdHJ1Y3RvclNwZWNpZXNXYXRjaHBvaW50U2V0KCkgeyByZXR1cm4gbV90
eXBlZEFycmF5Q29uc3RydWN0b3JTcGVjaWVzV2F0Y2hwb2ludFNldDsgfQogICAgIElubGluZVdh
dGNocG9pbnRTZXQmIHR5cGVkQXJyYXlQcm90b3R5cGVJdGVyYXRvclByb3RvY29sV2F0Y2hwb2lu
dFNldCgpIHsgcmV0dXJuIG1fdHlwZWRBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xXYXRj
aHBvaW50U2V0OyB9Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCYgYWx3YXlzU2xvd1B1dENvbnRp
Z3VvdXNQcm90b3R5cGVzQXJlU2FuZVdhdGNocG9pbnRTZXQoKSB7IHJldHVybiBtX2Fsd2F5c1Ns
b3dQdXRDb250aWd1b3VzUHJvdG90eXBlc0FyZVNhbmVXYXRjaHBvaW50U2V0OyB9CiAKICAgICBi
b29sIGlzQXJyYXlQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUo
KTsKICAgICBib29sIGlzVHlwZWRBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5k
Tm9uT2JzZXJ2YWJsZShUeXBlZEFycmF5VHlwZSk7CkBAIC04ODgsMTQgKzg4NCw2IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBvcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhp
bmdUeXBlKHN0cnVjdHVyZS0+aW5kZXhpbmdNb2RlKCkgfCBJc0FycmF5KSA9PSBzdHJ1Y3R1cmU7
CiAgICAgfQotCi0gICAgYm9vbCBpc09yaWdpbmFsU2xvd1B1dENvbnRpZ2lvdXNTdHJ1Y3R1cmUo
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgewotICAgICAgICBBU1NFUlQoaGFzQWx3YXlzU2xv
d1B1dENvbnRpZ3VvdXMoc3RydWN0dXJlLT5pbmRleGluZ01vZGUoKSkpOwotICAgICAgICByZXR1
cm4gbV9vcmlnaW5hbEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU3RydWN0dXJlU2V0LmNvbnRhaW5z
KHN0cnVjdHVyZSk7Ci0gICAgfQotCi0gICAgY29uc3QgU3RydWN0dXJlU2V0JiBvcmlnaW5hbEFs
d2F5c1Nsb3dQdXRDb250aWd1b3VzU3RydWN0dXJlU2V0KCkgY29uc3QgeyByZXR1cm4gbV9vcmln
aW5hbEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU3RydWN0dXJlU2V0OyB9CiAgICAgICAgIAogICAg
IFN0cnVjdHVyZSogYm9vbGVhbk9iamVjdFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9v
bGVhbk9iamVjdFN0cnVjdHVyZS5nZXQodGhpcyk7IH0KICAgICBTdHJ1Y3R1cmUqIGNhbGxiYWNr
Q29uc3RydWN0b3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrQ29uc3RydWN0
b3JTdHJ1Y3R1cmUuZ2V0KHRoaXMpOyB9CkBAIC0xMzMyLDggKzEzMjAsNiBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIHNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGJvb2wgbmVlZFF1aXJrcykg
eyBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gbmVlZFF1aXJrczsgfQogCi0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCByZWNvcmRPcmlnaW5hbEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzU3Ry
dWN0dXJlKFN0cnVjdHVyZSopOwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMTEludE9m
ZnNldHNFeHRyYWN0b3I7CiAKQEAgLTEzNTcsOCArMTM0Myw2IEBAIHByaXZhdGU6CiAjaWZkZWYg
SlNDX0dMSUJfQVBJX0VOQUJMRUQKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V3JhcHBlck1hcD4gbV93
cmFwcGVyTWFwOwogI2VuZGlmCi0KLSAgICBTdHJ1Y3R1cmVTZXQgbV9vcmlnaW5hbEFsd2F5c1Ns
b3dQdXRDb250aWd1b3VzU3RydWN0dXJlU2V0OwogfTsKIAogaW5saW5lIEpTQXJyYXkqIGNvbnN0
cnVjdEVtcHR5QXJyYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSogcHJvZmlsZSwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCA9IDAsIEpTVmFsdWUg
bmV3VGFyZ2V0ID0gSlNWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCmluZGV4IDlmMDcxZTA3MjM2Ni4uMjQxNWQ1OTc0ODNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NzIsOCArNTcyLDYgQEAgYm9v
bCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogdGhpc09iamVj
dCwgSlNHbG9iYWxPYmplY3QqIGcKICAgICAKICAgICBpZiAoaSA+IE1BWF9BUlJBWV9JTkRFWCkK
ICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGkpLCBz
bG90KTsKLQotICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBoYXNBbnlTbG93UHV0SW5kZXhpbmdU
eXBlKHRoaXNPYmplY3QtPmluZGV4aW5nVHlwZSgpKSAmJiB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUo
KS0+dHlwZUluZm8oKS5zbG93UHV0QXJyYXlTdG9yYWdlVmVjdG9yUHJvcGVydGllc0FyZVJlYWRP
bmx5KCkgPyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSk7CiAgICAg
CiAgICAgc3dpdGNoICh0aGlzT2JqZWN0LT5pbmRleGluZ1R5cGUoKSkgewogICAgIGNhc2UgQUxM
X0JMQU5LX0lOREVYSU5HX1RZUEVTOgpAQCAtNTg4LDcgKzU4Niw3IEBAIGJvb2wgSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTR2xvYmFs
T2JqZWN0KiBnCiAgICAgICAgIAogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gYnV0dGVyZmx5LT5j
b250aWd1b3VzKCkuYXQodGhpc09iamVjdCwgaSkuZ2V0KCk7CiAgICAgICAgIGlmICh2YWx1ZSkg
ewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzLCB2YWx1
ZSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHZhbHVlKTsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIApAQCAtNjAyLDcgKzYwMCw3IEBAIGJvb2wg
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIHRoaXNPYmplY3Qs
IEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgICAgIAogICAgICAgICBkb3VibGUgdmFsdWUgPSBidXR0
ZXJmbHktPmNvbnRpZ3VvdXNEb3VibGUoKS5hdCh0aGlzT2JqZWN0LCBpKTsKICAgICAgICAgaWYg
KHZhbHVlID09IHZhbHVlKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IGF0dHJpYnV0ZXMsIEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIHZhbHVlKSk7Cisg
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3Vi
bGUsIHZhbHVlKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICAKQEAgLTYxNyw3ICs2MTUsNyBAQCBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZwogICAgICAgICBp
ZiAoaSA8IHN0b3JhZ2UtPnZlY3Rvckxlbmd0aCgpKSB7CiAgICAgICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gc3RvcmFnZS0+bV92ZWN0b3JbaV0uZ2V0KCk7CiAgICAgICAgICAgICBpZiAodmFsdWUp
IHsKLSAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMs
IHZhbHVlKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHZhbHVlKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlm
IChTcGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZU1hcC5nZXQoKSkg
ewpAQCAtMTQ2MCw3ICsxNDU4LDcgQEAgQXJyYXlTdG9yYWdlKiBKU09iamVjdDo6Y29udmVydERv
dWJsZVRvQXJyYXlTdG9yYWdlKFZNJiB2bSkKIEFycmF5U3RvcmFnZSogSlNPYmplY3Q6OmNvbnZl
cnRDb250aWd1b3VzVG9BcnJheVN0b3JhZ2UoVk0mIHZtLCBUcmFuc2l0aW9uS2luZCB0cmFuc2l0
aW9uKQogewogICAgIERlZmVyR0MgZGVmZXJHQyh2bSk7Ci0gICAgQVNTRVJUKGhhc0FueUNvbnRp
Z3VvdXMoaW5kZXhpbmdUeXBlKCkpKTsKKyAgICBBU1NFUlQoaGFzQ29udGlndW91cyhpbmRleGlu
Z1R5cGUoKSkpOwogCiAgICAgdW5zaWduZWQgdmVjdG9yTGVuZ3RoID0gbV9idXR0ZXJmbHktPnZl
Y3Rvckxlbmd0aCgpOwogICAgIEFycmF5U3RvcmFnZSogbmV3U3RvcmFnZSA9IGNvbnN0cnVjdENv
bnZlcnRlZEFycmF5U3RvcmFnZVdpdGhvdXRDb3B5aW5nRWxlbWVudHModm0sIHZlY3Rvckxlbmd0
aCk7CkBAIC0xNzUwLDcgKzE3NDgsNiBAQCBDb250aWd1b3VzSlNWYWx1ZXMgSlNPYmplY3Q6OnRy
eU1ha2VXcml0YWJsZUNvbnRpZ3VvdXNTbG93KFZNJiB2bSkKICAgICAgICAgcmV0dXJuIGNvbnZl
cnREb3VibGVUb0NvbnRpZ3VvdXModm0pOwogICAgICAgICAKICAgICBjYXNlIEFMTF9BUlJBWV9T
VE9SQUdFX0lOREVYSU5HX1RZUEVTOgotICAgIGNhc2UgTm9uQXJyYXlXaXRoQWx3YXlzU2xvd1B1
dENvbnRpZ3VvdXM6CiAgICAgICAgIHJldHVybiBDb250aWd1b3VzSlNWYWx1ZXMoKTsKICAgICAg
ICAgCiAgICAgZGVmYXVsdDoKQEAgLTE4MjEsMTQgKzE4MTgsMTEgQEAgQXJyYXlTdG9yYWdlKiBK
U09iamVjdDo6ZW5zdXJlQXJyYXlTdG9yYWdlRXhpc3RzQW5kRW50ZXJEaWN0aW9uYXJ5SW5kZXhp
bmdNb2RlKFYKICAgICBjYXNlIEFMTF9ET1VCTEVfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAgIHJl
dHVybiBlbnRlckRpY3Rpb25hcnlJbmRleGluZ01vZGVXaGVuQXJyYXlTdG9yYWdlQWxyZWFkeUV4
aXN0cyh2bSwgY29udmVydERvdWJsZVRvQXJyYXlTdG9yYWdlKHZtKSk7CiAgICAgICAgIAotICAg
IGNhc2UgQUxMX0ZBU1RfUFVUX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6CisgICAgY2FzZSBB
TExfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzoKICAgICAgICAgcmV0dXJuIGVudGVyRGljdGlv
bmFyeUluZGV4aW5nTW9kZVdoZW5BcnJheVN0b3JhZ2VBbHJlYWR5RXhpc3RzKHZtLCBjb252ZXJ0
Q29udGlndW91c1RvQXJyYXlTdG9yYWdlKHZtKSk7CiAgICAgICAgIAogICAgIGNhc2UgQUxMX0FS
UkFZX1NUT1JBR0VfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAgIHJldHVybiBlbnRlckRpY3Rpb25h
cnlJbmRleGluZ01vZGVXaGVuQXJyYXlTdG9yYWdlQWxyZWFkeUV4aXN0cyh2bSwgbV9idXR0ZXJm
bHktPmFycmF5U3RvcmFnZSgpKTsKLQotICAgIGNhc2UgTm9uQXJyYXlXaXRoQWx3YXlzU2xvd1B1
dENvbnRpZ3VvdXM6Ci0gICAgICAgIHJldHVybiBlbnRlckRpY3Rpb25hcnlJbmRleGluZ01vZGVX
aGVuQXJyYXlTdG9yYWdlQWxyZWFkeUV4aXN0cyh2bSwgY29udmVydENvbnRpZ3VvdXNUb0FycmF5
U3RvcmFnZSh2bSwgVHJhbnNpdGlvbktpbmQ6OkFsbG9jYXRlU2xvd1B1dEFycmF5U3RvcmFnZSkp
OwogICAgICAgICAKICAgICBkZWZhdWx0OgogICAgICAgICBDUkFTSCgpOwpAQCAtMTg2MSwxMyAr
MTg1NSw5IEBAIHZvaWQgSlNPYmplY3Q6OnN3aXRjaFRvU2xvd1B1dEFycmF5U3RvcmFnZShWTSYg
dm0pCiAgICAgICAgIGNvbnZlcnREb3VibGVUb0FycmF5U3RvcmFnZSh2bSwgVHJhbnNpdGlvbktp
bmQ6OkFsbG9jYXRlU2xvd1B1dEFycmF5U3RvcmFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgICAg
ICAKLSAgICBjYXNlIEFMTF9GQVNUX1BVVF9DT05USUdVT1VTX0lOREVYSU5HX1RZUEVTOgorICAg
IGNhc2UgQUxMX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6CiAgICAgICAgIGNvbnZlcnRDb250
aWd1b3VzVG9BcnJheVN0b3JhZ2Uodm0sIFRyYW5zaXRpb25LaW5kOjpBbGxvY2F0ZVNsb3dQdXRB
cnJheVN0b3JhZ2UpOwogICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTm9uQXJyYXlXaXRoQWx3
YXlzU2xvd1B1dENvbnRpZ3VvdXM6Ci0gICAgICAgIGVudGVyRGljdGlvbmFyeUluZGV4aW5nTW9k
ZSh2bSk7Ci0gICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIE5vbkFycmF5V2l0aEFy
cmF5U3RvcmFnZToKICAgICBjYXNlIEFycmF5V2l0aEFycmF5U3RvcmFnZTogewpAQCAtMjk3OCw5
ICsyOTY4LDggQEAgYm9vbCBKU09iamVjdDo6cHV0QnlJbmRleEJleW9uZFZlY3Rvckxlbmd0aFdp
dGhvdXRBdHRyaWJ1dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICAgICAgfHwgKGkgPj0gTUlO
X1NQQVJTRV9BUlJBWV9JTkRFWCAmJiAhaXNEZW5zZUVub3VnaEZvclZlY3RvcihpLCBjb3VudEVs
ZW1lbnRzPGluZGV4aW5nU2hhcGU+KGJ1dHRlcmZseSkpKQogICAgICAgICB8fCBpbmRleElzU3Vm
ZmljaWVudGx5QmV5b25kTGVuZ3RoRm9yU3BhcnNlTWFwKGksIGJ1dHRlcmZseS0+dmVjdG9yTGVu
Z3RoKCkpKSB7CiAgICAgICAgIEFTU0VSVChpIDw9IE1BWF9BUlJBWV9JTkRFWCk7Ci0gICAgICAg
IGJvb2wgbmVlZHNEaWN0aW9uYXJ5SW5kZXhpbmdNb2RlID0gaGFzQWx3YXlzU2xvd1B1dENvbnRp
Z3VvdXMoaW5kZXhpbmdUeXBlKCkpOwotICAgICAgICBBcnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBl
bnN1cmVBcnJheVN0b3JhZ2VTbG93KHZtKTsKLSAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcCog
bWFwID0gbmVlZHNEaWN0aW9uYXJ5SW5kZXhpbmdNb2RlID8gZW50ZXJEaWN0aW9uYXJ5SW5kZXhp
bmdNb2RlV2hlbkFycmF5U3RvcmFnZUFscmVhZHlFeGlzdHModm0sIHN0b3JhZ2UpLT5tX3NwYXJz
ZU1hcC5nZXQoKSA6IGFsbG9jYXRlU3BhcnNlSW5kZXhNYXAodm0pOworICAgICAgICBlbnN1cmVB
cnJheVN0b3JhZ2VTbG93KHZtKTsKKyAgICAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcCogbWFwID0g
YWxsb2NhdGVTcGFyc2VJbmRleE1hcCh2bSk7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gbWFwLT5w
dXRFbnRyeShnbG9iYWxPYmplY3QsIHRoaXMsIGksIHZhbHVlLCBmYWxzZSk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAgICAgQVNTRVJUKGkgPj0gYXJy
YXlTdG9yYWdlKCktPmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCmluZGV4IDliNGFkYmEyYjMxZi4uNmZmZWU0OGIzZTAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTQzNiw3ICs0MzYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgfQotICAgICAg
ICBjYXNlIEFMTF9XUklUQUJMRV9GQVNUX1BVVF9DT05USUdVT1VTX0lOREVYSU5HX1RZUEVTOiB7
CisgICAgICAgIGNhc2UgQUxMX1dSSVRBQkxFX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6IHsK
ICAgICAgICAgICAgIGlmIChpID49IGJ1dHRlcmZseS0+dmVjdG9yTGVuZ3RoKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnV0dGVyZmx5LT5jb250aWd1b3Vz
KCkuYXQodGhpcywgaSkuc2V0V2l0aG91dFdyaXRlQmFycmllcih2KTsKQEAgLTQ3NCw4ICs0NzQs
NiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
c2V0SW5kZXhRdWlja2x5Rm9yQXJyYXlTdG9yYWdlSW5kZXhpbmdUeXBlKHZtLCBpLCB2KTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIE5vbkFycmF5V2l0aEFsd2F5c1Ns
b3dQdXRDb250aWd1b3VzOgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNDb3B5T25Xcml0ZShpbmRleGluZ01v
ZGUoKSkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDk1LDcgKzQ5Myw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQUxMX0ZBU1RfUFVUX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6IHsK
KyAgICAgICAgY2FzZSBBTExfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzogewogICAgICAgICAg
ICAgQVNTRVJUKGkgPCBidXR0ZXJmbHktPnZlY3Rvckxlbmd0aCgpKTsKICAgICAgICAgICAgIGJ1
dHRlcmZseS0+Y29udGlndW91cygpLmF0KHRoaXMsIGkpLnNldFdpdGhvdXRXcml0ZUJhcnJpZXIo
dik7CiAgICAgICAgICAgICBpZiAoaSA+PSBidXR0ZXJmbHktPnB1YmxpY0xlbmd0aCgpKQpAQCAt
ODYyLDcgKzg2MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRnJvemVuKFZNJiB2bSkgeyByZXR1
cm4gc3RydWN0dXJlKCktPmlzRnJvemVuKHZtKTsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBhbnlPYmplY3RJbkNoYWluTWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2VzKCkgY29uc3Q7
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBuZWVkc1Nsb3dQdXRJbmRleGluZygpIGNvbnN0
OworICAgIGJvb2wgbmVlZHNTbG93UHV0SW5kZXhpbmcoKSBjb25zdDsKIAogcHJpdmF0ZToKICAg
ICBUcmFuc2l0aW9uS2luZCBzdWdnZXN0ZWRBcnJheVN0b3JhZ2VUcmFuc2l0aW9uKCkgY29uc3Q7
CkBAIC05ODksNyArOTg3LDYgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNW
YWx1ZSBnZXRNZXRob2QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRGF0YSYsIGNvbnN0IElkZW50aWZp
ZXImLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKLSAgICBib29sIGNhbkRvRmFzdElu
ZGV4ZWRBY2Nlc3MoKTsKICAgICBib29sIGNhblBlcmZvcm1GYXN0UHV0SW5saW5lKFZNJiwgUHJv
cGVydHlOYW1lKTsKICAgICBib29sIGNhblBlcmZvcm1GYXN0UHV0SW5saW5lRXhjbHVkaW5nUHJv
dG8oKTsKIApAQCAtMTA4NCw3ICsxMDgxLDcgQEAgcHJvdGVjdGVkOgogICAgIEFycmF5U3RvcmFn
ZSogY29udmVydENvbnRpZ3VvdXNUb0FycmF5U3RvcmFnZShWTSYpOwogCiAgICAgICAgIAotICAg
IEpTX0VYUE9SVF9QUklWQVRFIEFycmF5U3RvcmFnZSogZW5zdXJlQXJyYXlTdG9yYWdlRXhpc3Rz
QW5kRW50ZXJEaWN0aW9uYXJ5SW5kZXhpbmdNb2RlKFZNJik7CisgICAgQXJyYXlTdG9yYWdlKiBl
bnN1cmVBcnJheVN0b3JhZ2VFeGlzdHNBbmRFbnRlckRpY3Rpb25hcnlJbmRleGluZ01vZGUoVk0m
KTsKICAgICAgICAgCiAgICAgYm9vbCBkZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KEpTR2xvYmFs
T2JqZWN0KiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29sIHRo
cm93RXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdElubGluZXMuaAppbmRleCBhMmFjMmNiZDNiMjkuLjI3YjM5OTVkYjM3YyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKQEAgLTQ4Nywy
MSArNDg3LDYgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OmNhbkdldEluZGV4UXVpY2tseUZvclR5
cGVkQXJyYXkodW5zaWduZWQgaSkgY29uc3QKICAgICB9CiB9CiAKLWlubGluZSBib29sIEpTT2Jq
ZWN0OjpjYW5Eb0Zhc3RJbmRleGVkQWNjZXNzKCkKLXsKLSAgICBpZiAoTElLRUxZKGlzSlNBcnJh
eSh0aGlzKSkpCi0gICAgICAgIHJldHVybiBhc0FycmF5KHRoaXMpLT5jYW5Eb0Zhc3RJbmRleGVk
QWNjZXNzKCk7Ci0KLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSgp
OwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoc3RydWN0dXJlLT5ob2xlc011c3RGb3J3YXJkVG9Qcm90b3R5cGUodGhp
cykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCiBpbmxp
bmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0SW5kZXhRdWlja2x5Rm9yVHlwZWRBcnJheSh1bnNpZ25l
ZCBpLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkgY29uc3QKIHsKICNpZiBVU0UoTEFSR0Vf
VFlQRURfQVJSQVlTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5o
CmluZGV4IDU0N2MxMDczOWZjYS4uYTc3ZDdjNTEzMjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCkBAIC02MCw3ICs2MCw2IEBAIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlSXNJbW1vcnRhbCA9IDEgPDwgMTc7CiBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIE92ZXJyaWRlc1B1dCA9IDEgPDwgMTg7CiBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIE92ZXJyaWRlc0dldFByb3RvdHlwZSA9IDEgPDwgMTk7CiBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIEdldE93blByb3BlcnR5U2xvdE1heUJlV3JvbmdBYm91dERvbnRFbnVtID0gMSA8
PCAyMDsKLXN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU2xvd1B1dEFycmF5U3RvcmFnZVZlY3Rv
clByb3BlcnRpZXNBcmVSZWFkT25seSA9IDEgPDwgMjE7CiAKIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbnVtYmVyT2ZJbmxpbmVCaXRzID0gODsKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
T3ZlcnJpZGVzR2V0UHJvdG90eXBlT3V0T2ZMaW5lID0gT3ZlcnJpZGVzR2V0UHJvdG90eXBlID4+
IG51bWJlck9mSW5saW5lQml0czsKQEAgLTExMCw3ICsxMDksNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFn
czI8R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmU+KCk7IH0KICAgICBib29sIGdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRP
bkZsYWdzMjxHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZT4oKTsg
fQogICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90TWF5QmVXcm9uZ0Fib3V0RG9udEVudW0oKSBj
b25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyPEdldE93blByb3BlcnR5U2xvdE1heUJlV3JvbmdB
Ym91dERvbnRFbnVtPigpOyB9Ci0gICAgYm9vbCBzbG93UHV0QXJyYXlTdG9yYWdlVmVjdG9yUHJv
cGVydGllc0FyZVJlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxTbG93UHV0
QXJyYXlTdG9yYWdlVmVjdG9yUHJvcGVydGllc0FyZVJlYWRPbmx5PigpOyB9CiAgICAgYm9vbCBu
ZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSBjb25zdCB7IHJldHVybiBpc1NldE9u
RmxhZ3MyPE5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cz4oKTsgfQogICAgIGJvb2wg
aXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QoKSBjb25zdCB7IHJldHVybiBpc1NldE9u
RmxhZ3MyPElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0PigpOyB9CiAgICAgYm9vbCBp
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlT
bG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvPigpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0
Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlD
aGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQuaAppbmRleCBkMWE4M2UxNjM4YzcuLjkwNzE1MTA3ZTM4
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVy
dHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oCkBAIC0zMCw3
ICszMCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgV2F0Y2hwb2lu
dFNldD4KLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRp
dmVXYXRjaHBvaW50IGZpbmFsIDogcHVibGljIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UgeworY2xhc3MgT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNo
cG9pbnQgZmluYWwgOiBwdWJsaWMgQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBv
aW50QmFzZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEFkYXB0aXZlSW5mZXJyZWRQcm9w
ZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2U7CiAgICAgT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2
ZVdhdGNocG9pbnQoSlNDZWxsKiBvd25lciwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24m
IGNvbmRpdGlvbiwgV2F0Y2hwb2ludFNldCYgd2F0Y2hwb2ludFNldCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggNWY3YjhiYWVhMWM4Li4yNjBjNjg4NDUy
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC03NTAs
NyArNzUwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV90cmFuc2l0aW9uV2F0Y2hwb2lu
dFNldDsKICAgICB9CiAgICAgCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgV2F0Y2hwb2ludFNldCog
ZW5zdXJlUHJvcGVydHlSZXBsYWNlbWVudFdhdGNocG9pbnRTZXQoVk0mLCBQcm9wZXJ0eU9mZnNl
dCk7CisgICAgV2F0Y2hwb2ludFNldCogZW5zdXJlUHJvcGVydHlSZXBsYWNlbWVudFdhdGNocG9p
bnRTZXQoVk0mLCBQcm9wZXJ0eU9mZnNldCk7CiAgICAgdm9pZCBzdGFydFdhdGNoaW5nUHJvcGVy
dHlGb3JSZXBsYWNlbWVudHMoVk0mIHZtLCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiAgICAgewog
ICAgICAgICBlbnN1cmVQcm9wZXJ0eVJlcGxhY2VtZW50V2F0Y2hwb2ludFNldCh2bSwgb2Zmc2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRy
YW5zaXRpb25UYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
VHJhbnNpdGlvblRhYmxlLmgKaW5kZXggOTQyMmY5MmM2ZWM4Li44MDYyYzJjNzg3YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5z
aXRpb25UYWJsZS5oCkBAIC05OSw3ICs5OSw3IEBAIGlubGluZSBJbmRleGluZ1R5cGUgbmV3SW5k
ZXhpbmdUeXBlKEluZGV4aW5nVHlwZSBvbGRUeXBlLCBUcmFuc2l0aW9uS2luZCB0cmFuc2l0CiAg
ICAgICAgIEFTU0VSVCghaGFzSW5kZXhlZFByb3BlcnRpZXMob2xkVHlwZSkgfHwgaGFzVW5kZWNp
ZGVkKG9sZFR5cGUpIHx8IGhhc0ludDMyKG9sZFR5cGUpIHx8IGhhc0RvdWJsZShvbGRUeXBlKSB8
fCBoYXNDb250aWd1b3VzKG9sZFR5cGUpKTsKICAgICAgICAgcmV0dXJuIChvbGRUeXBlICYgfklu
ZGV4aW5nU2hhcGVBbmRXcml0YWJpbGl0eU1hc2spIHwgQXJyYXlTdG9yYWdlU2hhcGU7CiAgICAg
Y2FzZSBUcmFuc2l0aW9uS2luZDo6QWxsb2NhdGVTbG93UHV0QXJyYXlTdG9yYWdlOgotICAgICAg
ICBBU1NFUlQoIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG9sZFR5cGUpIHx8IGhhc1VuZGVjaWRlZChv
bGRUeXBlKSB8fCBoYXNJbnQzMihvbGRUeXBlKSB8fCBoYXNEb3VibGUob2xkVHlwZSkgfHwgaGFz
QW55Q29udGlndW91cyhvbGRUeXBlKSk7CisgICAgICAgIEFTU0VSVCghaGFzSW5kZXhlZFByb3Bl
cnRpZXMob2xkVHlwZSkgfHwgaGFzVW5kZWNpZGVkKG9sZFR5cGUpIHx8IGhhc0ludDMyKG9sZFR5
cGUpIHx8IGhhc0RvdWJsZShvbGRUeXBlKSB8fCBoYXNDb250aWd1b3VzKG9sZFR5cGUpKTsKICAg
ICAgICAgcmV0dXJuIChvbGRUeXBlICYgfkluZGV4aW5nU2hhcGVBbmRXcml0YWJpbGl0eU1hc2sp
IHwgU2xvd1B1dEFycmF5U3RvcmFnZVNoYXBlOwogICAgIGNhc2UgVHJhbnNpdGlvbktpbmQ6OlN3
aXRjaFRvU2xvd1B1dEFycmF5U3RvcmFnZToKICAgICAgICAgQVNTRVJUKGhhc0FycmF5U3RvcmFn
ZShvbGRUeXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNE
b2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
aW5kZXggYWQxMTQ3NTM1MzczLi44NmUyOTVlNjU4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTk5NiwxMjYgKzk5Niw2IEBAIHB1YmxpYzoKICAg
ICB9CiB9OwogCi1jbGFzcyBBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdCA6IHB1YmxpYyBK
U0Rlc3RydWN0aWJsZU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTRGVzdHJ1
Y3RpYmxlT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKLQotICAgIEFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
T2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVyZmx5
KQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgYnV0dGVyZmx5KQotICAgIHsKLSAgICAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIENvbXBsZXRl
U3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKLSAgICB7Ci0gICAgICAgIHJldHVybiAmdm0u
Y2VsbFNwYWNlKCk7Ci0gICAgfQotCi0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPm9iamVjdFByb3RvdHlwZSgpLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSwgTm9uQXJyYXlXaXRoQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMpOwotICAg
IH0KLQotICAgIHN0YXRpYyBBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdCogY3JlYXRlKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KQotICAgIHsK
LSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgQWx3YXlz
U2xvd1B1dENvbnRpZ3VvdXNPYmplY3QqIHJlc3VsdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0Pih2bSkpIEFsd2F5c1Nsb3dQdXRDb250
aWd1b3VzT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7Ci0gICAgICAgIHJlc3VsdC0+
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX07Ci0K
LWNsYXNzIEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRlcyA6IHB1Ymxp
YyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1B1dDsKLQotICAgIEFsd2F5
c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRlcyhWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUsIGJ1dHRlcmZseSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNw
YWNlQWNjZXNzPgotICAgIHN0YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYg
dm0pCi0gICAgewotICAgICAgICByZXR1cm4gJnZtLmNlbGxTcGFjZSgpOwotICAgIH0KLQotICAg
IERFQ0xBUkVfSU5GTzsKLQotICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgewotICAgICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIE5vbkFycmF5V2l0
aEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzIHwgTWF5SGF2ZUluZGV4ZWRBY2Nlc3NvcnMpOwotICAg
IH0KLQotICAgIHN0YXRpYyBBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlk
ZXMqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRl
cmZseSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0g
ICAgICAgIEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRlcyogcmVzdWx0
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNPYmpl
Y3RXaXRoT3ZlcnJpZGVzPih2bSkpIEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92
ZXJyaWRlcyh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwotICAgICAgICByZXN1bHQtPmZpbmlz
aENyZWF0aW9uKHZtKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBzdGF0
aWMgYm9vbCBwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCi0gICAgewotICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwot
ICAgICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
T2JqZWN0V2l0aE92ZXJyaWRlcyo+KGNlbGwpOwotICAgICAgICBpZiAoc3RkOjpvcHRpb25hbDx1
aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqZWN0LCBn
bG9iYWxPYmplY3QsIGluZGV4LnZhbHVlKCksIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsK
LQotICAgICAgICByZXR1cm4gQmFzZTo6cHV0KGNlbGwsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7Ci0gICAgfQotCi0gICAgc3RhdGljIGJvb2wgcHV0QnlJbmRleChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKLSAgICB7Ci0gICAgICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKLSAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxBbHdheXNT
bG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlkZXMqPihjZWxsKTsKLSAgICAgICAgdGhp
c09iamVjdC0+aW5jcmVtZW50KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAicHV0QnlJ
bmRleENhbGxzIl9zKSk7Ci0gICAgICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwotICAgIH0KLQot
ICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRGVsZXRlUHJvcGVy
dHlTbG90JiBzbG90KQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKLSAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxBbHdheXNTbG93UHV0Q29u
dGlndW91c09iamVjdFdpdGhPdmVycmlkZXMqPihjZWxsKTsKLSAgICAgICAgaWYgKHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQotICAgICAg
ICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJ
bmRleCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIGluZGV4LnZhbHVlKCkpOwotICAgICAgICBy
ZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwotICAgIH0KLQotICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7Ci0gICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVy
cmlkZXMqPihjZWxsKTsKLSAgICAgICAgdGhpc09iamVjdC0+aW5jcmVtZW50KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiZGVsZXRlQnlJbmRleENhbGxzIl9zKSk7Ci0gICAgICAgIHJl
dHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgZ2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUpOwotICAgIH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mIHZtKQotICAg
IHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBwdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJwdXRCeUluZGV4Q2FsbHMiX3MpLCBqc051bWJlcigwKSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgICAgICBw
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJkZWxldGVCeUluZGV4Q2Fs
bHMiX3MpLCBqc051bWJlcigwKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOwotICAgIH0KLQotICAgIHZvaWQgaW5jcmVtZW50KFZNJiB2bSwgY29u
c3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIHVpbnQzMl90IGNhbGxzID0gZ2V0RGlyZWN0KHZt
LCBpZGVudGlmaWVyKS5hc1VJbnQzMigpOwotICAgICAgICBwdXREaXJlY3Qodm0sIGlkZW50aWZp
ZXIsIGpzTnVtYmVyKGNhbGxzICsgMSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICB9Ci19OwotCiBjbGFzcyBET01KSVROb2RlIDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIERPTUpJVE5vZGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTE5OTEsOCArMTg3MSw2IEBAIGNvbnN0IENsYXNzSW5m
byBTdGF0aWNDdXN0b21BY2Nlc3Nvcjo6c19pbmZvID0geyAiU3RhdGljQ3VzdG9tQWNjZXNzb3Ii
X3MsICZCYXNlCiBjb25zdCBDbGFzc0luZm8gU3RhdGljQ3VzdG9tVmFsdWU6OnNfaW5mbyA9IHsg
IlN0YXRpY0N1c3RvbVZhbHVlIl9zLCAmQmFzZTo6c19pbmZvLCAmc3RhdGljQ3VzdG9tVmFsdWVU
YWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShTdGF0aWNDdXN0b21WYWx1ZSkgfTsK
IGNvbnN0IENsYXNzSW5mbyBTdGF0aWNEb250RGVsZXRlRG9udEVudW06OnNfaW5mbyA9IHsgIlN0
YXRpY0RvbnREZWxldGVEb250RW51bSJfcywgJkJhc2U6OnNfaW5mbywgJnN0YXRpY0RvbnREZWxl
dGVEb250RW51bVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0YXRpY0RvbnRE
ZWxldGVEb250RW51bSkgfTsKIGNvbnN0IENsYXNzSW5mbyBPYmplY3REb2luZ1NpZGVFZmZlY3RQ
dXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXM6OnNfaW5mbyA9IHsgIk9iamVjdERvaW5nU2lkZUVm
ZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1cyJfcywgJkJhc2U6OnNfaW5mbywgJnN0YXRp
Y0N1c3RvbUFjY2Vzc29yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoT2JqZWN0
RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzKSB9OwotY29uc3QgQ2xh
c3NJbmZvIEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0OjpzX2luZm8gPSB7ICJBbHdheXNT
bG93UHV0Q29udGlndW91c09iamVjdCJfcywgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdCkgfTsK
LWNvbnN0IENsYXNzSW5mbyBBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlk
ZXM6OnNfaW5mbyA9IHsgIkFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRl
cyJfcywgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlkZXMpIH07CiAKIEVsZW1l
bnRIYW5kbGVPd25lciogRWxlbWVudDo6aGFuZGxlT3duZXIoKQogewpAQCAtMjI3MCw4ICsyMTQ4
LDYgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTdGF0
aWNDdXN0b21BY2Nlc3Nvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlU3RhdGljRG9udERlbGV0ZURvbnRFbnVtKTsKIHN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRlRWZm
ZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNPYmplY3QpOwot
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVBbHdheXNTbG93
UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlkZXMpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUpOwogc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0
ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUJ1aWx0
aW4pOwpAQCAtMjMzMiw3ICsyMjA4LDYgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25SZXNldEpJVFNpemVTdGF0aXN0aWNzKTsKICNlbmRpZgogCiBzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSk7Ci1zdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhhc1NwYXJzZU1vZGVBcnJheVN0
b3JhZ2UpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25TZXRDcmFzaExvZ01lc3NhZ2UpOzsKICNlbmRpZgpAQCAtMzMwMCw0MyAr
MzE3NSw2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU9iamVjdERv
aW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RhdGljIEpTVmFsdWUg
Y3JlYXRlQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwotICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLQotICAgIHVpbnQzMl90IGxl
bmd0aCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuYXNVSW50MzIoKTsKLQotICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gVDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QpOwotCi0g
ICAgSW5kZXhpbmdIZWFkZXIgaW5kZXhpbmdIZWFkZXI7Ci0gICAgaW5kZXhpbmdIZWFkZXIuc2V0
VmVjdG9yTGVuZ3RoKGxlbmd0aCk7Ci0gICAgaW5kZXhpbmdIZWFkZXIuc2V0UHVibGljTGVuZ3Ro
KGxlbmd0aCk7Ci0gICAgQnV0dGVyZmx5KiBidXR0ZXJmbHkgPSBCdXR0ZXJmbHk6OnRyeUNyZWF0
ZSh2bSwgbnVsbHB0ciwgMCwgc3RydWN0dXJlLT5vdXRPZkxpbmVDYXBhY2l0eSgpLCB0cnVlLCBp
bmRleGluZ0hlYWRlciwgbGVuZ3RoICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSk7Ci0gICAgaWYg
KCFidXR0ZXJmbHkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgZm9yICh1
aW50MzJfdCBpID0gbGVuZ3RoOyBpLS07KQotICAgICAgICBidXR0ZXJmbHktPmNvbnRpZ3VvdXMo
KS5hdFVuc2FmZShpKS5jbGVhcigpOwotCi0gICAgVCogcmVzdWx0ID0gVDo6Y3JlYXRlKHZtLCBz
dHJ1Y3R1cmUsIGJ1dHRlcmZseSk7Ci0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIobGVuZ3RoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250
aWd1b3VzT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQotewotICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVBbHdheXNTbG93UHV0Q29udGlndW91c09iamVj
dDxBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdD4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
KTsKLX0KLQotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQWx3YXlzU2xv
d1B1dENvbnRpZ3VvdXNPYmplY3RXaXRoT3ZlcnJpZGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQotewotICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVBbHdheXNT
bG93UHV0Q29udGlndW91c09iamVjdDxBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhP
dmVycmlkZXM+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7Ci19Ci0KIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtNDA4OCwxNyArMzkyNiw2IEBAIEpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGFzU3BhcnNlTW9k
ZUFycmF5U3RvcmFnZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQot
ewotICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0KLSAgICBpZiAoSlNPYmpl
Y3QqIG9iamVjdCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuZ2V0T2JqZWN0KCkpIHsKLSAgICAg
ICAgaWYgKGhhc0FueUFycmF5U3RvcmFnZShvYmplY3QtPmluZGV4aW5nTW9kZSgpKSkKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+YnV0dGVyZmx5
KCktPmFycmF5U3RvcmFnZSgpLT5pblNwYXJzZU1vZGUoKSkpOwotICAgIH0KLQotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7Ci19CiAKICNpZiBQTEFURk9STShD
T0NPQSkKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldENyYXNoTG9nTWVzc2Fn
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
QEAgLTQyMDcsOCArNDAzNCw2IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtKQogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUiX3MsIGZ1
bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3JlYXRlU3RhdGljRG9udERlbGV0ZURvbnRFbnVtIl9zLCBmdW5jdGlvbkNyZWF0ZVN0YXRpY0Rv
bnREZWxldGVEb250RW51bSwgMCk7CiAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVPYmplY3RE
b2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMiX3MsIGZ1bmN0aW9uQ3Jl
YXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzLCAwKTsK
LSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0
Il9zLCBmdW5jdGlvbkNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0LCAwKTsKLSAg
ICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0
aE92ZXJyaWRlcyJfcywgZnVuY3Rpb25DcmVhdGVBbHdheXNTbG93UHV0Q29udGlndW91c09iamVj
dFdpdGhPdmVycmlkZXMsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRW1wdHlGdW5j
dGlvbldpdGhOYW1lIl9zLCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSwgMSk7
CiAgICAgYWRkRnVuY3Rpb24odm0sICJnZXRQcml2YXRlUHJvcGVydHkiX3MsIGZ1bmN0aW9uR2V0
UHJpdmF0ZVByb3BlcnR5LCAyKTsKICAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRl
ckRlbGVnYXRlIl9zLCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlLCAyKTsKQEAgLTQy
OTIsNyArNDExNyw2IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
I2VuZGlmCiAKICAgICBhZGRGdW5jdGlvbih2bSwgImVuc3VyZUFycmF5U3RvcmFnZSJfcywgZnVu
Y3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIDEpOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGFzU3Bh
cnNlTW9kZUFycmF5U3RvcmFnZSJfcywgZnVuY3Rpb25IYXNTcGFyc2VNb2RlQXJyYXlTdG9yYWdl
LCAxKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0Q3Jh
c2hMb2dNZXNzYWdlIl9zLCBmdW5jdGlvblNldENyYXNoTG9nTWVzc2FnZSwgMSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmRh
YWJlNDk5NGNkLi5jNzE2YjI3YmVjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQzMDYsNyArNDMwNiw3IEBACiAJCUJDNzc5
RTE3MUJCMjI3Q0EwMENBQThCRiAvKiBTdHlsZUN1c3RvbVByb3BlcnR5RGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzlFMTUxQkIyMjZBMjAw
Q0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8q
IEltYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RkE2MjEwRDFG
MENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3RkE2MUYwRDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2Rl
TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUJDN0ZBNjJEMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3RkE2MkIwRDFGMEVGRjAwREIy
MkE5IC8qIFN0YXRpY05vZGVMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQkM3RkE2MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdG
QTYyQjBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKIAkJQkM4MEM5
ODgwQ0QyOTRFRTAwQTBCN0IzIC8qIENTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODBDOTg2MENEMjk0RUUwMEEw
QjdCMyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmggKi87IH07CiAJCUJDODI0MzI5MEQwQ0U4
QTIwMDQ2MEM4RiAvKiBKU1NRTEVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzgyNDMyNTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxFcnJvci5o
ICovOyB9OwogCQlCQzgyNDMyQTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxUcmFuc2FjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjQzMjYw
RDBDRThBMjAwNDYwQzhGIC8qIEpTU1FMVHJhbnNhY3Rpb24uaCAqLzsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDg4ZDE3N2JmYmRm
Yy4uMDBlNTk1NzEyMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9u
c2UuaCIKICNpbmNsdWRlICJKU01pY3JvdGFza0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNOb2Rl
LmgiCi0jaW5jbHVkZSAiSlNOb2RlTGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVqZWN0ZWRQcm9taXNlVHJhY2tlci5oIgpAQCAtMTM2
LDM3ICsxMzUsNiBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKIAogICAgIGlmIChtX3dyYXBwZWQgJiYgbV93cmFwcGVk
LT5mcmFtZSgpICYmIG1fd3JhcHBlZC0+ZnJhbWUoKS0+c2V0dGluZ3MoKS5zaG93TW9kYWxEaWFs
b2dFbmFibGVkKCkpCiAgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBidWlsdGlu
TmFtZXModm0pLnNob3dNb2RhbERpYWxvZ1B1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVy
OjpjcmVhdGUodm0sIHNob3dNb2RhbERpYWxvZ0dldHRlciwgbnVsbHB0ciksIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tVmFsdWUpKTsKLQotICAgIGluc3Rh
bGxBbHdheXNTbG93UHV0Q29udGlndW91c1Byb3RvdHlwZXNBcmVTYW5lV2F0Y2hwb2ludCh2bSk7
Ci19Ci0KLXZvaWQgSlNET01XaW5kb3dCYXNlOjppbnN0YWxsQWx3YXlzU2xvd1B1dENvbnRpZ3Vv
dXNQcm90b3R5cGVzQXJlU2FuZVdhdGNocG9pbnQoVk0mIHZtKQotewotICAgIERlZmVyVGVybWlu
YXRpb25Gb3JBV2hpbGUgZGVmZXJTY29wZSh2bSk7Ci0KLSAgICBhdXRvKiBzdGF0aWNOb2RlTGlz
dFN0cnVjdHVyZSA9IGdldERPTVN0cnVjdHVyZTxKU1N0YXRpY05vZGVMaXN0Pih2bSwgKnRoaXMp
OwotICAgIEFTU0VSVCghc3RhdGljTm9kZUxpc3RTdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgpKTsK
LQotICAgIGF1dG8qIHN0YXRpY05vZGVMaXN0UHJvdG90eXBlID0gc3RhdGljTm9kZUxpc3RTdHJ1
Y3R1cmUtPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpOwotICAgIGF1dG8qIHN0YXRpY05vZGVMaXN0
UHJvdG90eXBlU3RydWN0dXJlID0gc3RhdGljTm9kZUxpc3RQcm90b3R5cGUtPnN0cnVjdHVyZSgp
OwotCi0gICAgaWYgKHN0YXRpY05vZGVMaXN0UHJvdG90eXBlU3RydWN0dXJlLT5pc0RpY3Rpb25h
cnkoKSkKLSAgICAgICAgc3RhdGljTm9kZUxpc3RQcm90b3R5cGVTdHJ1Y3R1cmUgPSBzdGF0aWNO
b2RlTGlzdFByb3RvdHlwZVN0cnVjdHVyZS0+ZmxhdHRlbkRpY3Rpb25hcnlTdHJ1Y3R1cmUodm0s
IHN0YXRpY05vZGVMaXN0UHJvdG90eXBlKTsKLQotICAgIFByb3BlcnR5T2Zmc2V0IGxlbmd0aE9m
ZnNldCA9IHN0YXRpY05vZGVMaXN0UHJvdG90eXBlLT5nZXREaXJlY3RPZmZzZXQodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgSlNWYWx1ZSBsZW5ndGhBY2Nlc3NvciA9IHN0YXRp
Y05vZGVMaXN0UHJvdG90eXBlLT5nZXREaXJlY3QobGVuZ3RoT2Zmc2V0KTsKLSAgICBBU1NFUlQo
bGVuZ3RoQWNjZXNzb3IuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSk7Ci0KLSAgICBzdGF0aWNOb2Rl
TGlzdFByb3RvdHlwZVN0cnVjdHVyZS0+c3RhcnRXYXRjaGluZ1Byb3BlcnR5Rm9yUmVwbGFjZW1l
bnRzKHZtLCBsZW5ndGhPZmZzZXQpOwotCi0gICAgbV9hbHdheXNTbG93UHV0Q29udGlndW91c1By
b3RvdHlwZXNBcmVTYW5lV2F0Y2hwb2ludFNldC5zdGFydFdhdGNoaW5nKCk7Ci0KLSAgICBPYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvbiBwcm90b3R5cGVMZW5ndGhDb25kaXRpb24gPSBPYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvbjo6ZXF1aXZhbGVuY2Uodm0sIHN0YXRpY05vZGVMaXN0UHJvdG90eXBlLCBz
dGF0aWNOb2RlTGlzdFByb3RvdHlwZSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLmltcGwoKSwg
bGVuZ3RoQWNjZXNzb3IpOwotCi0gICAgbV9zdGF0aWNOb2RlTGlzdFByb3RvdHlwZUxlbmd0aFdh
dGNocG9pbnQgPSBtYWtlVW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBv
aW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih0aGlzLCBwcm90b3R5cGVMZW5ndGhDb25kaXRpb24s
IG1fYWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNQcm90b3R5cGVzQXJlU2FuZVdhdGNocG9pbnRTZXQp
OwotICAgIG1fc3RhdGljTm9kZUxpc3RQcm90b3R5cGVMZW5ndGhXYXRjaHBvaW50LT5pbnN0YWxs
KHZtKTsKLQotICAgIHJlY29yZE9yaWdpbmFsQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNTdHJ1Y3R1
cmUoc3RhdGljTm9kZUxpc3RTdHJ1Y3R1cmUpOwogfQogCiB2b2lkIEpTRE9NV2luZG93QmFzZTo6
ZGVzdHJveShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5oCmluZGV4IGEwNWZmM2I0YjA0Ny4uMGQ4ZTI4MTc2NDljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtMzAsMTAgKzMwLDgg
QEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdElubGluZXMuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Mb29rdXAuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdFByb3BlcnR5
Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xv
dFZpc2l0b3JJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5s
aW5lcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dhdGNocG9pbnQuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Xcml0ZUJhcnJpZXIuaD4KICNpbmNsdWRlIDxjc3RkZGVmPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xMDYsMTAgKzEwNCw2IEBAIHByaXZhdGU6CiAKICAg
ICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2N1cnJl
bnRFdmVudDsKLQotICAgIHZvaWQgaW5zdGFsbEFsd2F5c1Nsb3dQdXRDb250aWd1b3VzUHJvdG90
eXBlc0FyZVNhbmVXYXRjaHBvaW50KEpTQzo6Vk0mKTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxK
U0M6Ok9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PEpTQzo6SW5saW5lV2F0
Y2hwb2ludFNldD4+IG1fc3RhdGljTm9kZUxpc3RQcm90b3R5cGVMZW5ndGhXYXRjaHBvaW50Owog
fTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIERPTVdpbmRvdyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVM
aXN0Q3VzdG9tLmNwcAppbmRleCA2YzY5ZjVkMTI1MDEuLjE4NzAzZWNkMTg0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKQEAgLTM3LDg0
ICszNyw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi0v
LyBGSVhNRTogSW5zdGVhZCBvZiBoYW5kcGlja2luZyBtZXRob2RzIGZyb20gSlNOb2RlTGlzdCAv
IEpTT2JqZWN0LCBleHRyYWN0IEpTTm9kZUxpc3RCYXNlIGFuZCBtYWtlCi0vLyBKU1N0YXRpY05v
ZGVMaXN0IC8gSlNMaXZlTm9kZUxpc3QgZXh0ZW5kIGl0ICh3aGljaCB3b3VsZCByZXF1aXJlIG1h
c3NpdmUgY2hhbmdlcyB0byBDb2RlR2VuZXJhdG9ySlMucG0gdGhvdWdoKS4KLWNvbnN0IENsYXNz
SW5mbyBKU1N0YXRpY05vZGVMaXN0OjpzX2luZm8gPSB7Ci0gICAgIk5vZGVMaXN0Il9zLAotICAg
ICZCYXNlOjpzX2luZm8sCi0gICAgbnVsbHB0ciwKLSAgICBudWxscHRyLAotICAgIHN0ZDo6bnVs
bG9wdCwgewotICAgICAgICAmSlNTdGF0aWNOb2RlTGlzdDo6ZGVzdHJveSwKLSAgICAgICAgJkpT
U3RhdGljTm9kZUxpc3Q6OmdldENhbGxEYXRhLAotICAgICAgICAmSlNTdGF0aWNOb2RlTGlzdDo6
Z2V0Q29uc3RydWN0RGF0YSwKLSAgICAgICAgJkpTU3RhdGljTm9kZUxpc3Q6OnB1dCwKLSAgICAg
ICAgJkpTU3RhdGljTm9kZUxpc3Q6OnB1dEJ5SW5kZXgsCi0gICAgICAgICZKU1N0YXRpY05vZGVM
aXN0OjpkZWxldGVQcm9wZXJ0eSwKLSAgICAgICAgJkpTU3RhdGljTm9kZUxpc3Q6OmRlbGV0ZVBy
b3BlcnR5QnlJbmRleCwKLSAgICAgICAgJkJhc2U6OkJhc2U6OmdldE93blByb3BlcnR5U2xvdCwK
LSAgICAgICAgJkJhc2U6OkJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgsCi0gICAgICAg
ICZKU1N0YXRpY05vZGVMaXN0Ojp0b1RoaXMsCi0gICAgICAgICZCYXNlOjpCYXNlOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzLAotICAgICAgICAmQmFzZTo6QmFzZTo6Z2V0T3duU3BlY2lhbFByb3BlcnR5
TmFtZXMsCi0gICAgICAgICZKU1N0YXRpY05vZGVMaXN0OjpjdXN0b21IYXNJbnN0YW5jZSwKLSAg
ICAgICAgJkpTU3RhdGljTm9kZUxpc3Q6OmRlZmluZU93blByb3BlcnR5LAotICAgICAgICAmSlNT
dGF0aWNOb2RlTGlzdDo6cHJldmVudEV4dGVuc2lvbnMsCi0gICAgICAgICZKU1N0YXRpY05vZGVM
aXN0Ojppc0V4dGVuc2libGUsCi0gICAgICAgICZKU1N0YXRpY05vZGVMaXN0OjpzZXRQcm90b3R5
cGUsCi0gICAgICAgICZKU1N0YXRpY05vZGVMaXN0OjpnZXRQcm90b3R5cGUsCi0gICAgICAgICZK
U1N0YXRpY05vZGVMaXN0OjpkdW1wVG9TdHJlYW0sCi0gICAgICAgICZKU1N0YXRpY05vZGVMaXN0
OjphbmFseXplSGVhcCwKLSAgICAgICAgJkpTU3RhdGljTm9kZUxpc3Q6OmVzdGltYXRlZFNpemUs
Ci0gICAgICAgICZKU1N0YXRpY05vZGVMaXN0Ojp2aXNpdENoaWxkcmVuLAotICAgICAgICAmSlNT
dGF0aWNOb2RlTGlzdDo6dmlzaXRDaGlsZHJlbiwKLSAgICAgICAgJkpTU3RhdGljTm9kZUxpc3Q6
OnZpc2l0T3V0cHV0Q29uc3RyYWludHMsCi0gICAgICAgICZKU1N0YXRpY05vZGVMaXN0Ojp2aXNp
dE91dHB1dENvbnN0cmFpbnRzLAotICAgIH0sCi0gICAgc2l6ZW9mKEpTU3RhdGljTm9kZUxpc3Qp
LAotfTsKLQotSlNPYmplY3QqIEpTU3RhdGljTm9kZUxpc3Q6OmNyZWF0ZVByb3RvdHlwZShWTSYg
dm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIEJhc2U6
OnByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKLX0KLQotSlNTdGF0aWNOb2RlTGlzdDo6SlNT
dGF0aWNOb2RlTGlzdChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgUmVmPFN0YXRpY05vZGVMaXN0PiYmIGltcGwpCi0gICAgOiBCYXNlKHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKQotewotfQotCi12b2lkIEpTU3RhdGlj
Tm9kZUxpc3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7Ci0KLSAgICBhdXRvJiBub2RlTGlzdCA9IHdyYXBwZWQoKTsKLSAgICB1bnNpZ25l
ZCBsZW5ndGggPSBub2RlTGlzdC5sZW5ndGgoKTsKLQotICAgIEluZGV4aW5nSGVhZGVyIGluZGV4
aW5nSGVhZGVyOwotICAgIGluZGV4aW5nSGVhZGVyLnNldFZlY3Rvckxlbmd0aChsZW5ndGgpOwot
ICAgIGluZGV4aW5nSGVhZGVyLnNldFB1YmxpY0xlbmd0aChsZW5ndGgpOwotICAgIGF1dG8qIGJ1
dHRlcmZseSA9IEJ1dHRlcmZseTo6dHJ5Q3JlYXRlKHZtLCBudWxscHRyLCAwLCBzdHJ1Y3R1cmUo
KS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSwgdHJ1ZSwgaW5kZXhpbmdIZWFkZXIsIHNpemVvZihFbmNv
ZGVkSlNWYWx1ZSkgKiBsZW5ndGgpOwotICAgIGlmIChVTkxJS0VMWSghYnV0dGVyZmx5KSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdGhpcy0+Z2xvYmFsT2Jq
ZWN0KCk7Ci0gICAgYXV0byBjb250aWd1b3VzVmFsdWVzID0gYnV0dGVyZmx5LT5jb250aWd1b3Vz
KCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAg
IGNvbnRpZ3VvdXNWYWx1ZXMuYXRVbnNhZmUoaSkuY2xlYXIoKTsKLQotICAgIHNldEJ1dHRlcmZs
eSh2bSwgYnV0dGVyZmx5KTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgewotICAgICAgICBhdXRvIGpzTm9kZSA9IHRvSlMoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsICpub2RlTGlzdC5pdGVtKGkpKTsKLSAgICAgICAgY29udGlndW91c1ZhbHVlcy5hdFVu
c2FmZShpKS5zZXQodm0sIHRoaXMsIGpzTm9kZSk7Ci0gICAgfQotCi0gICAgaWYgKFVOTElLRUxZ
KG5lZWRzU2xvd1B1dEluZGV4aW5nKCkpKQotICAgICAgICBlbnN1cmVBcnJheVN0b3JhZ2VFeGlz
dHNBbmRFbnRlckRpY3Rpb25hcnlJbmRleGluZ01vZGUodm0pOwotfQotCiBib29sIEpTTm9kZUxp
c3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBBYnN0cmFjdFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBj
aGFyKiogcmVhc29uKQogewogICAgIEpTTm9kZUxpc3QqIGpzTm9kZUxpc3QgPSBqc0Nhc3Q8SlNO
b2RlTGlzdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKQEAgLTE0Niw4ICs2OCw2IEBAIGJv
b2wgSlNOb2RlTGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+IGhhbmRsCiAKIEpTQzo6SlNWYWx1ZSBjcmVhdGVXcmFwcGVyKEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxOb2RlTGlzdD4mJiBub2RlTGlzdCkKIHsK
LSAgICBpZiAobm9kZUxpc3QtPmlzU3RhdGljTm9kZUxpc3QoKSkKLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXI8U3RhdGljTm9kZUxpc3Q+KCZnbG9iYWxPYmplY3QsIFdURk1vdmUobm9kZUxp
c3QpKTsKICAgICAvLyBGSVhNRTogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkLCBhbmQg
c3dpdGNoIHRvIHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkLgogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1OTUKICAgICBnbG9iYWxPYmplY3Qudm0o
KS5oZWFwLmRlcHJlY2F0ZWRSZXBvcnRFeHRyYU1lbW9yeShub2RlTGlzdC0+bWVtb3J5Q29zdCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0
b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uaAppbmRl
eCBiNzJkOWMwNTM2NDEuLjU5NTRlNWM3NTQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uaApAQCAtMjYsNDAgKzI2LDkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNOb2RlTGlzdC5oIgot
I2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgSlNTdGF0aWNOb2RlTGlzdCBmaW5hbCA6IHB1YmxpYyBKU05vZGVMaXN0IHsKLXB1YmxpYzoK
LSAgICB1c2luZyBCYXNlID0gSlNOb2RlTGlzdDsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OlNs
b3dQdXRBcnJheVN0b3JhZ2VWZWN0b3JQcm9wZXJ0aWVzQXJlUmVhZE9ubHk7Ci0gICAgc3RhdGlj
IEpTU3RhdGljTm9kZUxpc3QqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8U3RhdGljTm9kZUxpc3Q+JiYgaW1wbCkK
LSAgICB7Ci0gICAgICAgIEpTU3RhdGljTm9kZUxpc3QqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlND
OjphbGxvY2F0ZUNlbGw8SlNTdGF0aWNOb2RlTGlzdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSkgSlNT
dGF0aWNOb2RlTGlzdChzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwot
ICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgICAg
IHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3Qm
KTsKLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJyYXlXaXRoQWx3YXlzU2xvd1B1dENvbnRp
Z3VvdXMpOwotICAgIH0KLXByb3RlY3RlZDoKLSAgICBKU1N0YXRpY05vZGVMaXN0KEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8U3RhdGljTm9kZUxpc3Q+JiYpOwotCi0g
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8U3RhdGljTm9kZUxpc3Q+IHsKLSAgICB1c2lu
ZyBXcmFwcGVyQ2xhc3MgPSBKU1N0YXRpY05vZGVMaXN0OwotICAgIHVzaW5nIFRvV3JhcHBlZFJl
dHVyblR5cGUgPSBTdGF0aWNOb2RlTGlzdCo7Ci19OwotCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpT
VmFsdWUgY3JlYXRlV3JhcHBlcihKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxOb2RlTGlzdD4mJik7
CiAKIEFMV0FZU19JTkxJTkUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vZGVMaXN0JiBub2RlTGlzdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVMaXN0LmgKaW5kZXggZGE1YmZhM2Q2OWY3Li40Y2FmZGJiZDRkOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlTGlzdC5oCkBAIC01Niw3ICs1Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
aXNMaXZlTm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0NoaWxkTm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0VtcHR5Tm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc1N0YXRpY05vZGVMaXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY05vZGVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5jcHAKaW5kZXggMmMyZjAyMTA3ZTA3Li5mN2Y1MjNk
YjU0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY05vZGVMaXN0LmNwcApAQCAtMzYsMTEgKzM2
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFN0
YXRpY05vZGVMaXN0KTsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTdGF0aWNFbGVtZW50
TGlzdCk7CiAKLWJvb2wgU3RhdGljTm9kZUxpc3Q6OmlzU3RhdGljTm9kZUxpc3QoKSBjb25zdAot
ewotICAgIHJldHVybiB0cnVlOwotfQotCiB1bnNpZ25lZCBTdGF0aWNOb2RlTGlzdDo6bGVuZ3Ro
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9ub2Rlcy5zaXplKCk7CkBAIC01MywxMSArNDgsNiBA
QCBOb2RlKiBTdGF0aWNOb2RlTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotYm9vbCBTdGF0aWNFbGVtZW50TGlzdDo6aXNTdGF0aWNOb2Rl
TGlzdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVkIFN0YXRpY0Vs
ZW1lbnRMaXN0OjpsZW5ndGgoKSBjb25zdAogewogICAgIHJldHVybiBtX2VsZW1lbnRzLnNpemUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0YXRpY05vZGVMaXN0LmgKaW5kZXggYTRhMjZjZWQwYjdiLi5kOTgz
YWU1MDE0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oCkBAIC00NSw4ICs0NSw2
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBO
b2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZTsKIAotICAgIGJvb2wgaXNT
dGF0aWNOb2RlTGlzdCgpIGNvbnN0IGZpbmFsOwotCiBwcml2YXRlOgogICAgIFN0YXRpY05vZGVM
aXN0KFZlY3RvcjxSZWY8Tm9kZT4+JiYgbm9kZXMpCiAgICAgICAgIDogbV9ub2RlcyhXVEZNb3Zl
KG5vZGVzKSkKQEAgLTY2LDggKzY0LDYgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIEVsZW1lbnQqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgYm9vbCBpc1N0YXRpY05vZGVMaXN0KCkgY29uc3QgZmluYWw7Ci0K
IHByaXZhdGU6CiAgICAgU3RhdGljRWxlbWVudExpc3QoVmVjdG9yPFJlZjxFbGVtZW50Pj4mJiBl
bGVtZW50cykKICAgICAgICAgOiBtX2VsZW1lbnRzKFdURk1vdmUoZWxlbWVudHMpKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxpc3Qtc3RhdGljLWhhdmlu
Zy1hLWJhZC10aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0
L25vZGVsaXN0LXN0YXRpYy1oYXZpbmctYS1iYWQtdGltZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0YTk4MjIxMWI4Ni4uMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVsaXN0LXN0YXRpYy1oYXZpbmctYS1iYWQt
dGltZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHRl
c3RzIHRoYXQgc3RhdGljIE5vZGVMaXN0IGlzIGNyZWF0ZWQgd2l0aCBhcHByb3ByaWF0ZSBpbmRl
eGluZyB0eXBlIHdoZW4gZ2xvYmFsIG9iamVjdCBpcyBoYXZpbmcgYSBiYWQgdGltZS4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2V0dGVyQ2FsbHMgaXMgMQotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVsaXN0LXN0YXRpYy1oYXZpbmctYS1i
YWQtdGltZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxpc3Qtc3Rh
dGljLWhhdmluZy1hLWJhZC10aW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQxZWE1YTE5ZGY2ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05v
ZGVMaXN0L25vZGVsaXN0LXN0YXRpYy1oYXZpbmctYS1iYWQtdGltZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0KLTxib2R5PgotPHNwYW4+
PC9zcGFuPgotPHNwYW4+PC9zcGFuPgotPHNwYW4+PC9zcGFuPgotPHNjcmlwdD4KLWRlc2NyaXB0
aW9uKCdUaGlzIHRlc3RzIHRoYXQgc3RhdGljIE5vZGVMaXN0IGlzIGNyZWF0ZWQgd2l0aCBhcHBy
b3ByaWF0ZSBpbmRleGluZyB0eXBlIHdoZW4gZ2xvYmFsIG9iamVjdCBpcyBoYXZpbmcgYSBiYWQg
dGltZS4nKTsKLQotdmFyIHNldHRlckNhbGxzID0gMDsKLQotT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5wcm90b3R5cGUsIDQyLCB7Ci0gICAgc2V0KCkgeyBzZXR0ZXJDYWxscysrOyB9LAot
fSk7Ci0KLXZhciBub2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNwYW4iKTsK
LW5vZGVMaXN0WzQyXSA9IDEKLQotc2hvdWxkQmUoInNldHRlckNhbGxzIiwgIjEiKTsKLQotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1wZXJl
ZC0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTEt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWYyNGEyNWRiNzAu
LjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1wZXJlZC0x
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIE5vZGVM
aXN0IChzdGF0aWMgY29sbGVjdGlvbikgImxlbmd0aCIgZ2V0dGVyIHRhbXBlcmVkCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTEuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0
LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYTQ3YzQwOTQ1YWFhLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGlj
LWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtMS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAs
MCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+Tm9k
ZUxpc3QgKHN0YXRpYyBjb2xsZWN0aW9uKSAibGVuZ3RoIiBnZXR0ZXIgdGFtcGVyZWQ8L3RpdGxl
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08
Ym9keT4KLQotPHNjcmlwdCBzcmM9InN1cHBvcnQvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC10YW1w
ZXJlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29uc3Qgbm9k
ZUxpc3QgPSBtYWtlU3RhdGljTm9kZUxpc3QoMTAwKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgNTA7IGkrKykgewotICAgICAgICBpZiAoaSA9PT0gMjUpCi0gICAgICAgICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkobm9kZUxpc3QsICJsZW5ndGgiLCB7IGdldCgpIHsgcmV0dXJuIDEwOyB9
IH0pOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXhPZk5vZGVMaXN0KG5vZGVMaXN0KSwg
aSA+PSAyNSA/IC0xIDogNTApOwotICAgIH0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
TGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1wZXJlZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0
LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkOWYyNGEyNWRiNzAuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlz
dC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1wZXJlZC0yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIE5vZGVMaXN0IChzdGF0aWMgY29sbGVjdGlvbikg
Imxlbmd0aCIgZ2V0dGVyIHRhbXBlcmVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5n
dGgtZ2V0dGVyLXRhbXBlcmVkLTIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRh
bXBlcmVkLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE5MzFhMzA0YzM0
Li4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQt
Mi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+Tm9kZUxpc3QgKHN0YXRpYyBjb2xsZWN0aW9u
KSAibGVuZ3RoIiBnZXR0ZXIgdGFtcGVyZWQ8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08Ym9keT4KLQotPHNjcmlwdCBzcmM9InN1
cHBvcnQvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC10YW1wZXJlZC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29uc3Qgbm9kZUxpc3QgPSBtYWtlU3RhdGljTm9kZUxp
c3QoMTAwKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTA7IGkrKykgewotICAgICAgICBp
ZiAoaSA9PT0gMjUpCi0gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2Yobm9kZUxpc3Qs
IHsgZ2V0IGxlbmd0aCgpIHsgcmV0dXJuIDEwOyB9IH0pOwotCi0gICAgICAgIGFzc2VydF9lcXVh
bHMoaW5kZXhPZk5vZGVMaXN0KG5vZGVMaXN0KSwgaSA+PSAyNSA/IC0xIDogNTApOwotICAgIH0K
LX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10
YW1wZXJlZC0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBl
cmVkLTMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWYyNGEy
NWRiNzAuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLWdldHRlci10YW1w
ZXJlZC0zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IE5vZGVMaXN0IChzdGF0aWMgY29sbGVjdGlvbikgImxlbmd0aCIgZ2V0dGVyIHRhbXBlcmVkCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05v
ZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLTMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzg0MDc0MTljN2JmLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qt
c3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtMy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+Tm9kZUxpc3QgKHN0YXRpYyBjb2xsZWN0aW9uKSAibGVuZ3RoIiBnZXR0ZXIgdGFtcGVyZWQ8
L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotCi08Ym9keT4KLQotPHNjcmlwdCBzcmM9InN1cHBvcnQvTm9kZUxpc3Qtc3RhdGljLWxlbmd0
aC10YW1wZXJlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29u
c3Qgbm9kZUxpc3QgPSBtYWtlU3RhdGljTm9kZUxpc3QoMTAwKTsKLQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgNTA7IGkrKykgewotICAgICAgICBpZiAoaSA9PT0gMjUpCi0gICAgICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZUxpc3QucHJvdG90eXBlLCAibGVuZ3RoIiwgeyBnZXQo
KSB7IHJldHVybiAxMDsgfSB9KTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGluZGV4T2ZOb2Rl
TGlzdChub2RlTGlzdCksIGkgPj0gMjUgPyAtMSA6IDUwKTsKLSAgICB9Ci19KTsKLTwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhP
Zi0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWlu
ZGV4T2YtMS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NWFh
Nzk3YjE4MS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRh
bXBlcmVkLWluZGV4T2YtMS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBOb2RlTGlzdCAoc3RhdGljIGNvbGxlY3Rpb24pICJsZW5ndGgiIGdldHRlciB0
YW1wZXJlZCAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0
YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGlj
LWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0xLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZiNTA2N2I3OWQ0Yy4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRp
Yy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+Tm9kZUxpc3QgKHN0YXRpYyBjb2xsZWN0aW9uKSAibGVuZ3RoIiBnZXR0ZXIgdGFtcGVy
ZWQgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxib2R5PgotCi08c2NyaXB0IHNyYz0i
c3VwcG9ydC9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLXRhbXBlcmVkLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci10ZXN0KCgpID0+IHsKLSAgICBjb25zdCBub2RlTGlzdCA9IG1ha2VTdGF0aWNOb2Rl
TGlzdCgxMDApOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgaSsrKSB7Ci0gICAgICAg
IGlmIChpID09PSAyNSkKLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlTGlz
dCwgImxlbmd0aCIsIHsgZ2V0KCkgeyByZXR1cm4gMTA7IH0gfSk7Ci0KLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhhcnJheUluZGV4T2ZOb2RlTGlzdChub2RlTGlzdCksIGkgPj0gMjUgPyAtMSA6IDUw
KTsKLSAgICB9Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0
aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1s
ZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA4NWFhNzk3YjE4MS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0
LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBOb2RlTGlzdCAoc3RhdGljIGNvbGxl
Y3Rpb24pICJsZW5ndGgiIGdldHRlciB0YW1wZXJlZCAoQXJyYXkucHJvdG90eXBlLmluZGV4T2Yp
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4
T2YtMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0y
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4ZjZmOWJlMzBkOS4uMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2Yt
Mi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+Tm9kZUxpc3QgKHN0YXRpYyBjb2xsZWN0aW9u
KSAibGVuZ3RoIiBnZXR0ZXIgdGFtcGVyZWQgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTwvdGl0
bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0K
LTxib2R5PgotCi08c2NyaXB0IHNyYz0ic3VwcG9ydC9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLXRh
bXBlcmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci10ZXN0KCgpID0+IHsKLSAgICBjb25zdCBu
b2RlTGlzdCA9IG1ha2VTdGF0aWNOb2RlTGlzdCgxMDApOwotCi0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCA1MDsgaSsrKSB7Ci0gICAgICAgIGlmIChpID09PSAyNSkKLSAgICAgICAgICAgIE9iamVj
dC5zZXRQcm90b3R5cGVPZihub2RlTGlzdCwgeyBnZXQgbGVuZ3RoKCkgeyByZXR1cm4gMTA7IH0g
fSk7Ci0KLSAgICAgICAgYXNzZXJ0X2VxdWFscyhhcnJheUluZGV4T2ZOb2RlTGlzdChub2RlTGlz
dCksIGkgPj0gMjUgPyAtMSA6IDUwKTsKLSAgICB9Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
Tm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0ZXItdGFtcGVyZWQtaW5kZXhPZi0zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NWFhNzk3YjE4MS4uMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0dGVyLXRhbXBlcmVkLWluZGV4
T2YtMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBO
b2RlTGlzdCAoc3RhdGljIGNvbGxlY3Rpb24pICJsZW5ndGgiIGdldHRlciB0YW1wZXJlZCAoQXJy
YXkucHJvdG90eXBlLmluZGV4T2YpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgt
Z2V0dGVyLXRhbXBlcmVkLWluZGV4T2YtMy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC1nZXR0
ZXItdGFtcGVyZWQtaW5kZXhPZi0zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY0NWQ5MDNhNjY1ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGVMaXN0LXN0YXRpYy1sZW5ndGgtZ2V0
dGVyLXRhbXBlcmVkLWluZGV4T2YtMy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBA
QAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+Tm9kZUxp
c3QgKHN0YXRpYyBjb2xsZWN0aW9uKSAibGVuZ3RoIiBnZXR0ZXIgdGFtcGVyZWQgKEFycmF5LnBy
b3RvdHlwZS5pbmRleE9mKTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxib2R5PgotCi08c2NyaXB0IHNyYz0ic3VwcG9ydC9Ob2Rl
TGlzdC1zdGF0aWMtbGVuZ3RoLXRhbXBlcmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci10ZXN0
KCgpID0+IHsKLSAgICBjb25zdCBub2RlTGlzdCA9IG1ha2VTdGF0aWNOb2RlTGlzdCgxMDApOwot
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgaSsrKSB7Ci0gICAgICAgIGlmIChpID09PSAy
NSkKLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlTGlzdC5wcm90b3R5cGUs
ICJsZW5ndGgiLCB7IGdldCgpIHsgcmV0dXJuIDEwOyB9IH0pOwotCi0gICAgICAgIGFzc2VydF9l
cXVhbHMoYXJyYXlJbmRleE9mTm9kZUxpc3Qobm9kZUxpc3QpLCBpID49IDI1ID8gLTEgOiA1MCk7
Ci0gICAgfQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL3N1cHBvcnQvTm9kZUxpc3Qtc3RhdGlj
LWxlbmd0aC10YW1wZXJlZC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL3N1cHBvcnQvTm9kZUxpc3Qtc3RhdGljLWxlbmd0aC10YW1wZXJl
ZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTExNjdlMmRkY2M5Li4wMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvc3VwcG9ydC9Ob2RlTGlzdC1zdGF0aWMtbGVuZ3RoLXRhbXBlcmVkLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotInVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBtYWtl
U3RhdGljTm9kZUxpc3QobGVuZ3RoKSB7Ci0gICAgY29uc3QgZm9vUm9vdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkr
KykgewotICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
LSAgICAgICAgZWwuY2xhc3NOYW1lID0gImZvbyI7Ci0gICAgICAgIGZvb1Jvb3QuYXBwZW5kKGVs
KTsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChmb29Sb290KTsKLSAgICByZXR1
cm4gZm9vUm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuZm9vIik7Ci19Ci0KLWNvbnN0IGluZGV4T2ZO
b2RlTGlzdCA9IG5ldyBGdW5jdGlvbigibm9kZUxpc3QiLCBgCi0gICAgY29uc3QgX19jYWNoZUJ1
c3QgPSAke01hdGgucmFuZG9tKCl9OwotCi0gICAgY29uc3QgZWwgPSBub2RlTGlzdFs1MF07Ci0K
LSAgICBsZXQgaW5kZXggPSAtMTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU1IC8gMjsg
aSsrKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbm9kZUxpc3QubGVuZ3RoOyBqKysp
IHsKLSAgICAgICAgICAgIGlmIChub2RlTGlzdFtqXSA9PT0gZWwpIHsKLSAgICAgICAgICAgICAg
ICBpbmRleCA9IGo7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gaW5kZXg7Ci1gKTsKLQotY29uc3QgYXJyYXlJbmRl
eE9mTm9kZUxpc3QgPSBuZXcgRnVuY3Rpb24oIm5vZGVMaXN0IiwgYAotICAgIGNvbnN0IF9fY2Fj
aGVCdXN0ID0gJHtNYXRoLnJhbmRvbSgpfTsKLQotICAgIGNvbnN0IGVsID0gbm9kZUxpc3RbNTBd
OwotICAgIGNvbnN0IHtpbmRleE9mfSA9IEFycmF5LnByb3RvdHlwZTsKLQotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMWU1OyBpKyspIHsKLSAgICAgICAgdmFyIGluZGV4ID0gaW5kZXhPZi5jYWxs
KG5vZGVMaXN0LCBlbCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluZGV4OwotYCk7CmRpZmYgLS1n
aXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCA2MzFlODliYzNmZDYuLmQ0YTA2OGI3
NjA2ZCAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC02Niw1ICs2
NiwzIEBAIF9fY21ha2Vfc3lzdGVtaW5mb3JtYXRpb24vCiAKICMgTG9jYWwgb3ZlcnJpZGVzIGNv
bmZpZ3VyYXRpb24gZmlsZXMKIExvY2FsT3ZlcnJpZGVzLnhjY29uZmlnCi0KLS9CZW5jaG1hcmtU
ZW1wCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUt
aW5kZXhPZi1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1dC5qcyBiL0pTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2FycmF5LXByb3RvdHlwZS1pbmRleE9mLWNvbnRpZ3VvdXMtYWx3YXlzLXNsb3ctcHV0
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YmI2ZDA3ODg4MTYuLjAwMDAwMDAw
MDAwMAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtaW5kZXhP
Zi1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1dC5qcworKysgL2Rldi9udWxsCkBAIC0xLDE1ICsw
LDAgQEAKLWNvbnN0IGxlbmd0aCA9IDEwMDsKLQotdmFyIHRhcmdldCA9ICR2bS5jcmVhdGVBbHdh
eXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlkZXMobGVuZ3RoKTsKLWZvciAodmFy
IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCi0gICAgdGFyZ2V0W2ldID0ge2luZGV4OiBpfTsKLQot
KGZ1bmN0aW9uKCkgewotICAgIHZhciB7aW5kZXhPZn0gPSBBcnJheS5wcm90b3R5cGU7Ci0gICAg
dmFyIHNlYXJjaEVsZW1lbnQgPSB0YXJnZXRbNTBdOwotCi0gICAgZm9yICh2YXIgaiA9IDA7IGog
PCAxZTY7IGorKykgewotICAgICAgICBpZiAoaW5kZXhPZi5jYWxsKHRhcmdldCwgc2VhcmNoRWxl
bWVudCkgIT09IDUwKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgYXNzZXJ0OiAk
e2p9IWApOwotICAgIH0KLX0pKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9hcnJheS1wcm90b3R5cGUtaW5kZXhPZi1jb250aWd1b3VzLmpzIGIvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXJyYXktcHJvdG90eXBlLWluZGV4T2YtY29udGlndW91cy5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjFkNjAyZTYyZmUzLi4wMDAwMDAwMDAwMDAKLS0tIGEvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLWluZGV4T2YtY29udGlndW91cy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLWNvbnN0IGxlbmd0aCA9IDEwMDsKLQot
dmFyIHRhcmdldCA9IG5ldyBBcnJheSgxMDApOwotZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7
IGkrKykKLSAgICB0YXJnZXRbaV0gPSB7aW5kZXg6IGl9OwotCi0oZnVuY3Rpb24oKSB7Ci0gICAg
dmFyIHtpbmRleE9mfSA9IEFycmF5LnByb3RvdHlwZTsKLSAgICB2YXIgc2VhcmNoRWxlbWVudCA9
IHRhcmdldFs1MF07Ci0KLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IDFlNjsgaisrKSB7Ci0gICAg
ICAgIGlmIChpbmRleE9mLmNhbGwodGFyZ2V0LCBzZWFyY2hFbGVtZW50KSAhPT0gNTApCi0gICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3NlcnQ6ICR7an0hYCk7Ci0gICAgfQotfSko
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
bGljZS1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1dC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2FycmF5LXByb3RvdHlwZS1zbGljZS1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1dC5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ2NzMxZWRlM2RjLi4wMDAwMDAwMDAwMDAK
LS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNsaWNlLWNvbnRp
Z3VvdXMtYWx3YXlzLXNsb3ctcHV0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAot
Y29uc3QgbGVuZ3RoID0gMTAwOwotCi12YXIgdGFyZ2V0ID0gJHZtLmNyZWF0ZUFsd2F5c1Nsb3dQ
dXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRlcyhsZW5ndGgpOwotZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykKLSAgICB0YXJnZXRbaV0gPSB7aW5kZXg6IGl9OwotCi0oZnVuY3Rp
b24oKSB7Ci0gICAgdmFyIHtzbGljZX0gPSBBcnJheS5wcm90b3R5cGU7Ci0gICAgdmFyIGxhc3RT
bGljZTsKLQotICAgIGZvciAodmFyIGogPSAwOyBqIDwgMWU3OyBqKyspCi0gICAgICAgIGxhc3RT
bGljZSA9IHNsaWNlLmNhbGwodGFyZ2V0KTsKLQotICAgIGlmIChsYXN0U2xpY2UucG9wKCkuaW5k
ZXggIT09IDk5KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3NlcnQhYCk7Ci19KSgp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNs
aWNlLWNvbnRpZ3VvdXMuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc2xpY2UtY29udGlndW91cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIy
MmY0YWVlMTM4Li4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJy
YXktcHJvdG90eXBlLXNsaWNlLWNvbnRpZ3VvdXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiAr
MCwwIEBACi1jb25zdCBsZW5ndGggPSAxMDA7Ci0KLXZhciB0YXJnZXQgPSBuZXcgQXJyYXkobGVu
Z3RoKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCi0gICAgdGFyZ2V0W2ldID0g
e2luZGV4OiBpfTsKLQotKGZ1bmN0aW9uKCkgewotICAgIHZhciB7c2xpY2V9ID0gQXJyYXkucHJv
dG90eXBlOwotICAgIHZhciBsYXN0U2xpY2U7Ci0KLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IDFl
NzsgaisrKQotICAgICAgICBsYXN0U2xpY2UgPSBzbGljZS5jYWxsKHRhcmdldCk7Ci0KLSAgICBp
ZiAobGFzdFNsaWNlLnBvcCgpLmluZGV4ICE9PSA5OSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGBCYWQgYXNzZXJ0IWApOwotfSkoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2dldC1ieS12YWwtY29udGlndW91cy1hbHdheXMtc2xvdy1wdXQuanMgYi9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9nZXQtYnktdmFsLWNvbnRpZ3VvdXMtYWx3YXlzLXNsb3ctcHV0LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2Q4ZmM0MTIwMTMuLjAwMDAwMDAwMDAwMAot
LS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtYnktdmFsLWNvbnRpZ3VvdXMtYWx3YXlz
LXNsb3ctcHV0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotY29uc3QgbGVuZ3Ro
ID0gMTAwOwotCi12YXIgdGFyZ2V0ID0gJHZtLmNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3Vz
T2JqZWN0V2l0aE92ZXJyaWRlcyhsZW5ndGgpOwotZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7
IGkrKykKLSAgICB0YXJnZXRbaV0gPSB7aW5kZXg6IGl9OwotCi0oZnVuY3Rpb24oKSB7Ci0gICAg
dmFyIGVsOwotCi0gICAgZm9yICh2YXIgaiA9IDA7IGogPCAxZTY7IGorKykgewotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aCAvIDI7IGkrKykKLSAgICAgICAgICAgIGVsID0gdGFy
Z2V0W2ldOwotICAgIH0KLQotICAgIGlmIChlbC5pbmRleCArIDEgIT09IGxlbmd0aCAvIDIpCi0g
ICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIGFzc2VydCFgKTsKLX0pKCk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9nZXQtYnktdmFsLWNvbnRpZ3VvdXMuanMgYi9KU1Rl
c3RzL21pY3JvYmVuY2htYXJrcy9nZXQtYnktdmFsLWNvbnRpZ3VvdXMuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU1YmEwYjkyMDhlYi4uMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVz
dHMvbWljcm9iZW5jaG1hcmtzL2dldC1ieS12YWwtY29udGlndW91cy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDE3ICswLDAgQEAKLWNvbnN0IGxlbmd0aCA9IDEwMDsKLQotdmFyIHRhcmdldCA9IG5l
dyBBcnJheSgxMDApOwotZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLSAgICB0YXJn
ZXRbaV0gPSB7aW5kZXg6IGl9OwotCi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGVsOwotCi0gICAg
Zm9yICh2YXIgaiA9IDA7IGogPCAxZTY7IGorKykgewotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxlbmd0aCAvIDI7IGkrKykKLSAgICAgICAgICAgIGVsID0gdGFyZ2V0W2ldOwotICAgIH0K
LQotICAgIGlmIChlbC5pbmRleCArIDEgIT09IGxlbmd0aCAvIDIpCi0gICAgICAgIHRocm93IG5l
dyBFcnJvcihgQmFkIGFzc2VydCFgKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy10by1hcnJheS1zdG9yYWdlLTEuanMgYi9KU1Rl
c3RzL3N0cmVzcy9hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy10by1hcnJheS1zdG9yYWdlLTEu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5NmZiNDc2OGUwNC4uMDAwMDAwMDAw
MDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2Fsd2F5cy1zbG93LXB1dC1jb250aWd1b3VzLXRvLWFy
cmF5LXN0b3JhZ2UtMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWZ1bmN0aW9u
IGFzc2VydCh4KSB7IGlmICgheCkgdGhyb3cgbmV3IEVycm9yKGBCYWQgYXNzZXJ0aW9uOiAke3h9
IWApOyB9Ci0KLWZ1bmN0aW9uIHB1dEJ5VmFsKHRhcmdldCwgaW5kZXgpIHsgInVzZSBzdHJpY3Qi
OyB0YXJnZXRbaW5kZXhdID0ge2luZGV4fTsgfQotbm9JbmxpbmUocHV0QnlWYWwpOwotCi1jb25z
dCBydW5zID0gMWU1OwotY29uc3QgbGVuZ3RoID0gMTAwOwotCi12YXIgdGFyZ2V0ID0gJHZtLmNy
ZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRlcyhsZW5ndGgpOwot
Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLSAgICB0YXJnZXRbaV0gPSB7aW5kZXg6
IGl9OwotCi0oZnVuY3Rpb24oKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydW5zOyBpKysp
IHsKLSAgICAgICAgaWYgKGkgPT09IHJ1bnMgLSAxKQotICAgICAgICAgICAgdGFyZ2V0WzEwMDAw
MDAxXSA9IDE7Ci0KLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW5ndGg7IGorKykKLSAg
ICAgICAgICAgIHB1dEJ5VmFsKHRhcmdldCwgaik7Ci0gICAgfQotCi0gICAgYXNzZXJ0KHRhcmdl
dC5wdXRCeUluZGV4Q2FsbHMgPT09IGxlbmd0aCArIChsZW5ndGggKiBydW5zKSArIDEpOwotICAg
IGFzc2VydCgkdm0uaW5kZXhpbmdNb2RlKHRhcmdldCkgPT09ICJOb25BcnJheVdpdGhTbG93UHV0
QXJyYXlTdG9yYWdlIik7Ci0gICAgYXNzZXJ0KCR2bS5oYXNTcGFyc2VNb2RlQXJyYXlTdG9yYWdl
KHRhcmdldCkpOwotfSkoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Fsd2F5cy1zbG93
LXB1dC1jb250aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2UtMi5qcyBiL0pTVGVzdHMvc3RyZXNzL2Fs
d2F5cy1zbG93LXB1dC1jb250aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2UtMi5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWY2MTI1NzZhYWJkLi4wMDAwMDAwMDAwMDAKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvYWx3YXlzLXNsb3ctcHV0LWNvbnRpZ3VvdXMtdG8tYXJyYXktc3RvcmFnZS0y
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotZnVuY3Rpb24gYXNzZXJ0KHgpIHsg
aWYgKCF4KSB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3NlcnRpb246ICR7eH0hYCk7IH0KLQotZnVu
Y3Rpb24gcHV0QnlWYWwodGFyZ2V0LCBpbmRleCkgeyAidXNlIHN0cmljdCI7IHRhcmdldFtpbmRl
eF0gPSB7aW5kZXh9OyB9Ci1ub0lubGluZShwdXRCeVZhbCk7Ci0KLWNvbnN0IHJ1bnMgPSAxZTU7
Ci1jb25zdCBsZW5ndGggPSAxMDA7Ci0KLXZhciB0YXJnZXQgPSAkdm0uY3JlYXRlQWx3YXlzU2xv
d1B1dENvbnRpZ3VvdXNPYmplY3RXaXRoT3ZlcnJpZGVzKGxlbmd0aCk7Ci1mb3IgKHZhciBpID0g
MDsgaSA8IGxlbmd0aDsgaSsrKQotICAgIHRhcmdldFtpXSA9IHtpbmRleDogaX07Ci0KLShmdW5j
dGlvbigpIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bnM7IGkrKykgewotICAgICAgICBp
ZiAoaSA9PT0gcnVucyAtIDEpCi0gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGFy
Z2V0LCB7IGdldCA0MigpIHt9LCBzZXQgNDIoX3YpIHt9IH0pOwotCi0gICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgbGVuZ3RoOyBqKyspCi0gICAgICAgICAgICBwdXRCeVZhbCh0YXJnZXQsIGop
OwotICAgIH0KLQotICAgIGFzc2VydCh0YXJnZXQucHV0QnlJbmRleENhbGxzID09PSBsZW5ndGgg
KyAobGVuZ3RoICogcnVucykpOwotICAgIGFzc2VydCgkdm0uaW5kZXhpbmdNb2RlKHRhcmdldCkg
PT09ICJOb25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlIik7Ci0gICAgYXNzZXJ0KCR2bS5o
YXNTcGFyc2VNb2RlQXJyYXlTdG9yYWdlKHRhcmdldCkpOwotfSkoKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2Fsd2F5cy1zbG93LXB1dC1jb250aWd1b3VzLXRvLWFycmF5LXN0b3JhZ2Ut
My5qcyBiL0pTVGVzdHMvc3RyZXNzL2Fsd2F5cy1zbG93LXB1dC1jb250aWd1b3VzLXRvLWFycmF5
LXN0b3JhZ2UtMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTliZDk1ZjA0OTFl
Li4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYWx3YXlzLXNsb3ctcHV0LWNvbnRp
Z3VvdXMtdG8tYXJyYXktc3RvcmFnZS0zLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBA
QAotZnVuY3Rpb24gYXNzZXJ0KHgpIHsgaWYgKCF4KSB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3Nl
cnRpb246ICR7eH0hYCk7IH0KLQotZnVuY3Rpb24gcHV0QnlWYWwodGFyZ2V0LCBpbmRleCkgeyAi
dXNlIHN0cmljdCI7IHRhcmdldFtpbmRleF0gPSB7aW5kZXh9OyB9Ci1ub0lubGluZShwdXRCeVZh
bCk7Ci0KLWNvbnN0IHJ1bnMgPSAxZTU7Ci1jb25zdCBsZW5ndGggPSAxMDA7Ci0KLXZhciB0YXJn
ZXQgPSAkdm0uY3JlYXRlQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNPYmplY3RXaXRoT3ZlcnJpZGVz
KGxlbmd0aCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQotICAgIHRhcmdldFtp
XSA9IHtpbmRleDogaX07Ci0KLShmdW5jdGlvbigpIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJ1bnM7IGkrKykgewotICAgICAgICBpZiAoaSA9PT0gcnVucyAtIDEpCi0gICAgICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAxMDAwMDAwMSwgeyBnZXQoKSB7fSwgc2V0KCkg
e30gfSk7Ci0KLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW5ndGg7IGorKykKLSAgICAg
ICAgICAgIHB1dEJ5VmFsKHRhcmdldCwgaik7Ci0gICAgfQotCi0gICAgYXNzZXJ0KHRhcmdldC5w
dXRCeUluZGV4Q2FsbHMgPT09IGxlbmd0aCArIChsZW5ndGggKiBydW5zKSk7Ci0gICAgYXNzZXJ0
KCR2bS5pbmRleGluZ01vZGUodGFyZ2V0KSA9PT0gIk5vbkFycmF5V2l0aFNsb3dQdXRBcnJheVN0
b3JhZ2UiKTsKLSAgICBhc3NlcnQoJHZtLmhhc1NwYXJzZU1vZGVBcnJheVN0b3JhZ2UodGFyZ2V0
KSk7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYWx3YXlzLXNsb3ctcHV0LWNv
bnRpZ3VvdXMtdG8tYXJyYXktc3RvcmFnZS00LmpzIGIvSlNUZXN0cy9zdHJlc3MvYWx3YXlzLXNs
b3ctcHV0LWNvbnRpZ3VvdXMtdG8tYXJyYXktc3RvcmFnZS00LmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5YTYyNmIxYWE2YTYuLjAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy10by1hcnJheS1zdG9yYWdlLTQuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1mdW5jdGlvbiBhc3NlcnQoeCkgeyBpZiAoIXgp
IHRocm93IG5ldyBFcnJvcihgQmFkIGFzc2VydGlvbjogJHt4fSFgKTsgfQotCi1mdW5jdGlvbiBw
dXRCeVZhbCh0YXJnZXQsIGluZGV4KSB7ICJ1c2Ugc3RyaWN0IjsgdGFyZ2V0W2luZGV4XSA9IHtp
bmRleH07IH0KLW5vSW5saW5lKHB1dEJ5VmFsKTsKLQotY29uc3QgcnVucyA9IDFlNTsKLWNvbnN0
IGxlbmd0aCA9IDEwMDsKLQotdmFyIHRhcmdldCA9ICR2bS5jcmVhdGVBbHdheXNTbG93UHV0Q29u
dGlndW91c09iamVjdFdpdGhPdmVycmlkZXMobGVuZ3RoKTsKLWZvciAodmFyIGkgPSAwOyBpIDwg
bGVuZ3RoOyBpKyspCi0gICAgdGFyZ2V0W2ldID0ge2luZGV4OiBpfTsKLQotKGZ1bmN0aW9uKCkg
ewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVuczsgaSsrKSB7Ci0gICAgICAgIGlmIChpID09
PSBydW5zIC0gMSkKLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJv
dG90eXBlLCAxMDAwMDAwMSwgeyBnZXQoKSB7fSwgc2V0KCkge30gfSk7Ci0KLSAgICAgICAgZm9y
ICh2YXIgaiA9IDA7IGogPCBsZW5ndGg7IGorKykKLSAgICAgICAgICAgIHB1dEJ5VmFsKHRhcmdl
dCwgaik7Ci0gICAgfQotCi0gICAgYXNzZXJ0KHRhcmdldC5wdXRCeUluZGV4Q2FsbHMgPT09IGxl
bmd0aCArIChsZW5ndGggKiBydW5zKSk7Ci0gICAgYXNzZXJ0KCR2bS5pbmRleGluZ01vZGUodGFy
Z2V0KSA9PT0gIk5vbkFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UiKTsKLSAgICBhc3NlcnQo
JHZtLmhhc1NwYXJzZU1vZGVBcnJheVN0b3JhZ2UodGFyZ2V0KSk7Ci19KSgpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktcmV2ZXJzZS1jb250aWd1b3VzLWFsd2F5cy1zbG93LXB1
dC5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXJldmVyc2UtY29udGlndW91cy1hbHdheXMtc2xv
dy1wdXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3MTU2YTMzODI5MC4uMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LXJldmVyc2UtY29udGlndW91cy1h
bHdheXMtc2xvdy1wdXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLWNvbnN0IGxl
bmd0aCA9IDEwMDsKLQotdmFyIHRhcmdldCA9ICR2bS5jcmVhdGVBbHdheXNTbG93UHV0Q29udGln
dW91c09iamVjdFdpdGhPdmVycmlkZXMobGVuZ3RoKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspCi0gICAgdGFyZ2V0W2ldID0ge2luZGV4OiBpfTsKLQotdmFyIHJldmVyc2VkID0g
QXJyYXkucHJvdG90eXBlLnJldmVyc2UuY2FsbCh0YXJnZXQpOwotaWYgKHJldmVyc2VkLnB1dEJ5
SW5kZXhDYWxscyAhPT0gbGVuZ3RoICogMikKLSAgICB0aHJvdyBuZXcgRXJyb3IoYEJhZCB2YWx1
ZTogJHtyZXZlcnNlZC5wdXRCeUluZGV4Q2FsbHN9IWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvZGVsZXRlLWJ5LXZhbC1hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy10cmlja3kuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9kZWxldGUtYnktdmFsLWFsd2F5cy1zbG93LXB1dC1jb250aWd1b3Vz
LXRyaWNreS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEzMGY5Y2RlMzdjLi4w
MDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZGVsZXRlLWJ5LXZhbC1hbHdheXMtc2xv
dy1wdXQtY29udGlndW91cy10cmlja3kuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBA
Ci1mdW5jdGlvbiBhc3NlcnQoeCkgeyBpZiAoIXgpIHRocm93IG5ldyBFcnJvcihgQmFkIGFzc2Vy
dGlvbjogJHt4fSFgKTsgfQotCi1mdW5jdGlvbiBkZWxldGVCeVZhbCh0YXJnZXQsIGluZGV4KSB7
ICJ1c2Ugc3RyaWN0IjsgZGVsZXRlIHRhcmdldFtpbmRleF07IH0KLW5vSW5saW5lKGRlbGV0ZUJ5
VmFsKTsKLQotY29uc3QgcnVucyA9IDFlNjsKLWNvbnN0IGxlbmd0aCA9IDEwMDsKLQotdmFyIGpz
QXJyYXlDb250aWd1b3VzID0gbmV3IEFycmF5KGxlbmd0aCk7Ci12YXIgYWx3YXlzU2xvd1B1dENv
bnRpZ3VvdXMgPSAkdm0uY3JlYXRlQWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNPYmplY3RXaXRoT3Zl
cnJpZGVzKGxlbmd0aCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQotICAgIGpz
QXJyYXlDb250aWd1b3VzW2ldID0gYWx3YXlzU2xvd1B1dENvbnRpZ3VvdXNbaV0gPSB7aW5kZXg6
IGl9OwotCi0oZnVuY3Rpb24oKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydW5zOyBpKysp
IHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW5ndGg7IGorKykKLSAgICAgICAgICAg
IGRlbGV0ZUJ5VmFsKGkgPT09IHJ1bnMgLSAxMDAgPyBhbHdheXNTbG93UHV0Q29udGlndW91cyA6
IGpzQXJyYXlDb250aWd1b3VzLCBqKTsKLSAgICB9Ci0KLSAgICBhc3NlcnQoYWx3YXlzU2xvd1B1
dENvbnRpZ3VvdXMuZGVsZXRlQnlJbmRleENhbGxzID09PSBsZW5ndGgpOwotfSkoKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy5q
cyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1pbi1hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc5YjdhZDUzMTI1Li4wMDAwMDAwMDAwMDAK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvZm9yLWluLWFsd2F5cy1zbG93LXB1dC1jb250aWd1b3VzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotZnVuY3Rpb24gYXNzZXJ0KHgpIHsgaWYg
KCF4KSB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3NlcnRpb246ICR7eH0hYCk7IH0KLQotY29uc3Qg
cnVucyA9IDFlNjsKLWNvbnN0IGxlbmd0aCA9IDEwMDsKLQotdmFyIGFsd2F5c1Nsb3dQdXRDb250
aWd1b3VzID0gJHZtLmNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJy
aWRlcyhsZW5ndGgpOwotZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLSAgICBhbHdh
eXNTbG93UHV0Q29udGlndW91c1tpXSA9IHtpbmRleDogaX07Ci0KLShmdW5jdGlvbigpIHsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bnM7IGkrKykgewotICAgICAgICBmb3IgKHZhciBqIGlu
IGFsd2F5c1Nsb3dQdXRDb250aWd1b3VzKQotICAgICAgICAgICAgYXNzZXJ0KGFsd2F5c1Nsb3dQ
dXRDb250aWd1b3VzW2pdLmluZGV4ID09PSAraik7Ci0gICAgfQotfSkoKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2dldC1ieS12YWwtYWx3YXlzLXNsb3ctcHV0LWNvbnRpZ3VvdXMtdHJp
Y2t5LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC1hbHdheXMtc2xvdy1wdXQtY29udGln
dW91cy10cmlja3kuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllNjQ2ZDNlZjVi
ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2dldC1ieS12YWwtYWx3YXlzLXNs
b3ctcHV0LWNvbnRpZ3VvdXMtdHJpY2t5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBA
QAotZnVuY3Rpb24gYXNzZXJ0KHgpIHsgaWYgKCF4KSB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3Nl
cnRpb246ICR7eH0hYCk7IH0KLQotZnVuY3Rpb24gZ2V0QnlWYWwodGFyZ2V0LCBpbmRleCkgeyBy
ZXR1cm4gdGFyZ2V0W2luZGV4XTsgfQotbm9JbmxpbmUoZ2V0QnlWYWwpOwotCi1jb25zdCBydW5z
ID0gMWU2OwotY29uc3QgbGVuZ3RoID0gMTAwOwotCi12YXIganNBcnJheUNvbnRpZ3VvdXMgPSBu
ZXcgQXJyYXkobGVuZ3RoKTsKLXZhciBhbHdheXNTbG93UHV0Q29udGlndW91cyA9ICR2bS5jcmVh
dGVBbHdheXNTbG93UHV0Q29udGlndW91c09iamVjdFdpdGhPdmVycmlkZXMobGVuZ3RoKTsKLWZv
ciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCi0gICAganNBcnJheUNvbnRpZ3VvdXNbaV0g
PSBhbHdheXNTbG93UHV0Q29udGlndW91c1tpXSA9IHtpbmRleDogaX07Ci0KLShmdW5jdGlvbigp
IHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bnM7IGkrKykgewotICAgICAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IGxlbmd0aDsgaisrKQotICAgICAgICAgICAgYXNzZXJ0KGdldEJ5VmFsKGkg
PT09IHJ1bnMgLSAxMDAgPyBhbHdheXNTbG93UHV0Q29udGlndW91cyA6IGpzQXJyYXlDb250aWd1
b3VzLCBqKS5pbmRleCA9PT0gaik7Ci0gICAgfQotfSkoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3B1dC1ieS12YWwtYWx3YXlzLXNsb3ctcHV0LWNvbnRpZ3VvdXMtdHJpY2t5LmpzIGIv
SlNUZXN0cy9zdHJlc3MvcHV0LWJ5LXZhbC1hbHdheXMtc2xvdy1wdXQtY29udGlndW91cy10cmlj
a3kuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1N2Q5Yjk2MjlhNC4uMDAwMDAw
MDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL3B1dC1ieS12YWwtYWx3YXlzLXNsb3ctcHV0LWNv
bnRpZ3VvdXMtdHJpY2t5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotZnVuY3Rp
b24gYXNzZXJ0KHgpIHsgaWYgKCF4KSB0aHJvdyBuZXcgRXJyb3IoYEJhZCBhc3NlcnRpb246ICR7
eH0hYCk7IH0KLQotZnVuY3Rpb24gcHV0QnlWYWwodGFyZ2V0LCBpbmRleCkgeyAidXNlIHN0cmlj
dCI7IHRhcmdldFtpbmRleF0gPSB7aW5kZXh9OyB9Ci1ub0lubGluZShwdXRCeVZhbCk7Ci0KLWNv
bnN0IHJ1bnMgPSAxZTY7Ci1jb25zdCBsZW5ndGggPSAxMDA7Ci0KLXZhciBqc0FycmF5Q29udGln
dW91cyA9IG5ldyBBcnJheShsZW5ndGgpOwotdmFyIGFsd2F5c1Nsb3dQdXRDb250aWd1b3VzID0g
JHZtLmNyZWF0ZUFsd2F5c1Nsb3dQdXRDb250aWd1b3VzT2JqZWN0V2l0aE92ZXJyaWRlcyhsZW5n
dGgpOwotZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLSAgICBqc0FycmF5Q29udGln
dW91c1tpXSA9IGFsd2F5c1Nsb3dQdXRDb250aWd1b3VzW2ldID0ge2luZGV4OiBpfTsKLQotKGZ1
bmN0aW9uKCkgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVuczsgaSsrKSB7Ci0gICAgICAg
IGZvciAodmFyIGogPSAwOyBqIDwgbGVuZ3RoOyBqKyspCi0gICAgICAgICAgICBwdXRCeVZhbChp
ID09PSBydW5zIC0gMTAwID8gYWx3YXlzU2xvd1B1dENvbnRpZ3VvdXMgOiBqc0FycmF5Q29udGln
dW91cywgaik7Ci0gICAgfQotCi0gICAgYXNzZXJ0KGFsd2F5c1Nsb3dQdXRDb250aWd1b3VzLnB1
dEJ5SW5kZXhDYWxscyA9PT0gMiAqIGxlbmd0aCk7Ci19KSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>