<?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>250687</bug_id>
          
          <creation_ts>2023-01-16 13:34:56 -0800</creation_ts>
          <short_desc>REGRESSION(258899@main): 1% regression on Speedometer is probably caused by some other change</short_desc>
          <delta_ts>2023-01-16 13:43:18 -0800</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>197963</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1925861</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-01-16 13:34:56 -0800</bug_when>
    <thetext>https://commits.webkit.org/258899@main introduced a regression:
1% regression on Speedometer is probably caused by some other change

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>1925863</commentid>
    <comment_count>1</comment_count>
      <attachid>464515</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-01-16 13:35:03 -0800</bug_when>
    <thetext>Created attachment 464515
REVERT of 258899@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>1925864</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2023-01-16 13:40:40 -0800</bug_when>
    <thetext>Keep this bug open.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925865</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-01-16 13:42:37 -0800</bug_when>
    <thetext>Committed 258963@main (ac9669ac5ad9): &lt;https://commits.webkit.org/258963@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464515.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925866</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-01-16 13:43:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/104307151&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464515</attachid>
            <date>2023-01-16 13:35:03 -0800</date>
            <delta_ts>2023-01-16 13:42:38 -0800</delta_ts>
            <desc>REVERT of 258899@main</desc>
            <filename>bug-250687-20230116133503.patch</filename>
            <type>text/plain</type>
            <size>330061</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA3MjVjMGU1Y2NiMzMzODMyYzAxMjE1M2ZhZWFlODc3NTQxZDc1MjMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBNb24sIDE2IEphbiAyMDIzIDEzOjM1OjAwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTg4OTlAbWFpbi4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTA2ODcKCjElIHJlZ3Jlc3Npb24gb24gU3BlZWRvbWV0ZXIg
aXMgcHJvYmFibHkgY2F1c2VkIGJ5IHNvbWUgb3RoZXIgY2hhbmdlCgpSZXZlcnRlZCBjaGFuZ2Vz
ZXQ6CgoiVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTg1NjFAbWFpbi4iCmh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTA2MDEKaHR0cHM6Ly9jb21taXRzLndlYmtpdC5v
cmcvMjU4ODk5QG1haW4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAg
ICAgICAgICAgfCAgIDEgKwogLi4uL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCAgIHwgICAxICsKIC4uLi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0ICB8ICAgMiArCiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAg
ICAgfCAgIDEgKwogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSAgICAgICAgICAgICAgICAg
IHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCAgICAgICAgICAgICAgICAgICAg
fCAgIDUgKy0KIC4uLi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiB8
ICA0MCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwg
IDEyICstCiAuLi4vYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcCAgfCAg
NjEgKysrCiAuLi4vYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggICAgfCAg
MTggKy0KIC4uLi9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAgICAgICB8ICAg
MyArLQogLi4uL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggICAgICAgIHwgICA4
ICstCiAuLi4vZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcCAgICAgICAgfCAgOTgg
KysrKwogLi4uL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggIHwgICA4
ICsKIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8ICAgNSAr
LQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwgIDM5ICst
CiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAgMTQgKy0K
IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW50ZXJuYWxzLmNwcCAgICAgICB8ICA3NSArKysK
IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW50ZXJuYWxzLmggICAgICAgICB8ICAyMSArCiBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEludGVybmFscy5pZGwgICAgICAgfCAgMTUgKwogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgICAgICAgIHwgICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggICAgICAgICAgfCAgIDcgKwogU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCAgICAgICAgICAgICB8ICAgMSArCiBTb3VyY2UvV2Vi
Q29yZS9kb20vVmFsaWRpdHlTdGF0ZUZsYWdzLmggICAgICAgfCAgNDggKysKIFNvdXJjZS9XZWJD
b3JlL2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3MuaWRsICAgICB8ICAzNyArKwogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgICAgIHwgIDE1ICstCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0N1c3RvbUVsZW1lbnRGb3JtVmFsdWUuaCAgfCAgMzYgKysKIC4uLi9odG1sL0Zvcm1B
c3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgICAgICB8IDI4NSArKysrKysrKysrCiAuLi4vaHRt
bC9Gb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCAgICAgICAgfCAxMDcgKysrKwogU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCAgIHwgIDEwICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCAgICAgICAgfCAgOTggKystLQogU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5oICAgICAgICAgIHwgICA4ICstCiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1MaXN0ZWRFbGVtZW50LmNwcCAgICAgfCAgMjMgKy0KIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVsZW1lbnQuaCAgICAgICB8ICAyMCArLQogLi4uL2h0bWwv
R2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcCAgICAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCAgICAgICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaCAgICAgICAgICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwICAgfCAgMzAgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwICAgfCA0MjEgKystLS0tLS0tLS0tLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCAgfCAxNDYgKy0tLS0tCiAu
Li4vaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmNwcCAgfCAgODcgLS0tLQog
Li4uL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oICAgIHwgIDY2IC0tLQog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwICAgICAgIHwgIDcwICsrLQog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCAgICAgICAgIHwgIDEwICstCiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oICAgICAgICB8ICAgNCArLQogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwICAgICAgfCAgIDkgKy0KIC4uLi9I
VE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwICB8IDE4NCArKysrKysrCiAu
Li4vSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggICAgfCAgODYgKysrCiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCAgICAgfCAgMTAgKy0KIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCAgICAgICB8ICAgNyArLQogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgICAgIHwgIDI4ICstCiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggICAgICAgfCAgIDcgKy0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oICAgICB8ICAgMiArCiAuLi4vaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgICAgICAgfCAgMTggKy0KIC4uLi9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCB8ICAgNiArLQogU291cmNlL1dl
YkNvcmUvaHRtbC9SYWRpb05vZGVMaXN0LmNwcCAgICAgICAgIHwgIDEwICstCiAuLi4vaHRtbC9W
YWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5jcHAgICAgICAgfCA0OTMgKysrKysrKysrKysrKysr
KysrCiAuLi4vV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmggfCAxNjcg
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCAgICAgfCAg
IDYgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuaCAgICAgICB8ICAg
NyArLQogLi4uL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCAgICAgIHwgICA3
ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgfCAgIDIg
Ky0KIC4uLi9zdHlsZS9TdHlsZUludmFsaWRhdGlvbkZ1bmN0aW9ucy5oICAgICAgICB8ICAgNyAr
LQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIHwgICAyICst
CiAuLi5ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy1leHBlY3RlZC50eHQgfCAgMjkgKysK
IC4uLnN0b3JlLWZvcm0tYXNzb2NpYXRlZC1jdXN0b20tZWxlbWVudHMuaHRtbCB8IDE0NiArKysr
KysKIC4uLm50SW50ZXJuYWxzLU5vdFN1cHBvcnRlZEVycm9yLWV4cGVjdGVkLnR4dCB8ICAgMiAr
LQogLi4uL0VsZW1lbnRJbnRlcm5hbHMtZm9ybS1leHBlY3RlZC50eHQgICAgICAgIHwgICA1ICst
CiAuLi4vRWxlbWVudEludGVybmFscy1sYWJlbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAgIDYgKy0K
IC4uLi9FbGVtZW50SW50ZXJuYWxzLWxhYmVscy5odG1sICAgICAgICAgICAgICB8ICAgNCArCiAu
Li5FbGVtZW50SW50ZXJuYWxzLXNldEZvcm1WYWx1ZS1leHBlY3RlZC50eHQgfCAxMDggKystLQog
Li4uL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQgIHwgIDI4ICstCiAu
Li4vRWxlbWVudEludGVybmFscy12YWxpZGF0aW9uLmh0bWwgICAgICAgICAgfCAgMTQgKwogLi4u
L2ZpZWxkc2V0LWVsZW1lbnRzLWV4cGVjdGVkLnR4dCAgICAgICAgICAgIHwgICAyICstCiAuLi4v
Zm9ybS1hc3NvY2lhdGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCAgICAgfCAgMTAgKy0KIC4uLi9m
b3JtLWRpc2FibGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCAgICAgICB8ICAxNiArLQogLi4uL2Zv
cm0tZWxlbWVudHMtbmFtZWRJdGVtLWV4cGVjdGVkLnR4dCAgICAgIHwgICA2ICstCiAuLi4vZm9y
bS1yZXNldC1jYWxsYmFjay1leHBlY3RlZC50eHQgICAgICAgICAgfCAgIDYgKy0KIC4uLi9sYWJl
bC1kZWxlZ2F0ZXNGb2N1cy1leHBlY3RlZC50eHQgICAgICAgICB8ICAgNCArLQogLi4ub25zdHJ1
Y3Rvci1kaXNhYmxlZC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLi9hdHRyLWNv
bnN0cnVjdG9yLWRpc2FibGVkLnRlbnRhdGl2ZS5odG1sICB8ICA1NiArKwogLi4ub25zdHJ1Y3Rv
ci1yZWFkb25seS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLi9hdHRyLWNvbnN0
cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sICB8ICA1NiArKwogLi4udHRyLXBhcnNlci1k
aXNhYmxlZC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLi9hdHRyLXBhcnNlci1k
aXNhYmxlZC50ZW50YXRpdmUuaHRtbCAgICAgICB8ICA1NCArKwogLi4udHRyLXBhcnNlci1yZWFk
b25seS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLi9hdHRyLXBhcnNlci1yZWFk
b25seS50ZW50YXRpdmUuaHRtbCAgICAgICB8ICA1NCArKwogLi4ubS1maWVsZHNldC1lbGVtZW50
cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IHwgICA0ICsKIC4uLmN0b3ItZm9ybS1maWVsZHNldC1l
bGVtZW50cy50ZW50YXRpdmUuaHRtbCB8ICA0MyArKwogLi4uL2NvbnN0cnVjdG9yLWZvcm0udGVu
dGF0aXZlLWV4cGVjdGVkLnR4dCAgIHwgICAzICsKIC4uLi91cGdyYWRpbmcvY29uc3RydWN0b3It
Zm9ybS50ZW50YXRpdmUuaHRtbCB8ICAzNCArKwogLi4ub3ItbW92ZS1pbnNpZGUtZm9ybS50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLm9uc3RydWN0b3ItbW92ZS1pbnNpZGUtZm9y
bS50ZW50YXRpdmUuaHRtbCB8ICA0MiArKwogLi4udWN0b3Itc2V0LWZvcm0tYXR0ci50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLi9jb25zdHJ1Y3Rvci1zZXQtZm9ybS1hdHRyLnRl
bnRhdGl2ZS5odG1sICB8ICA0MiArKwogLi4udHJ1Y3Rvci1zZXRWYWxpZGl0eS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0IHwgICAzICsKIC4uLi9jb25zdHJ1Y3Rvci1zZXRWYWxpZGl0eS50ZW50YXRp
dmUuaHRtbCAgICB8ICA1MSArKwogLi4uL2luc2lkZS1kYXRhbGlzdC50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0ICAgIHwgICAzICsKIC4uLi91cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0LnRlbnRhdGl2
ZS5odG1sICB8ICA1NiArKwogLi4uZS1kaXNhYmxlZC1maWVsZHNldC50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0IHwgICA0ICsKIC4uLi9pbnNpZGUtZGlzYWJsZWQtZmllbGRzZXQudGVudGF0aXZlLmh0
bWwgICB8ICA1NiArKwogLi4uL2luc2lkZS1sYWJlbC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0ICAg
ICAgIHwgICAzICsKIC4uLi91cGdyYWRpbmcvaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS5odG1sICAg
ICB8ICAzNSArKwogLi4uL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0ICAg
IHwgIDE4ICstCiAuLi5sZXItbGV4aWNhbC1zY29wZXMtZm9ybS1vd25lci1leHBlY3RlZC50eHQg
fCAgIDIgKy0KIC4uLi9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCAgICB8
ICAxOCArLQogLi4uL2xhYmVsLWRlbGVnYXRlc0ZvY3VzLWV4cGVjdGVkLnR4dCAgICAgICAgIHwg
ICA2ICsKIC4uLi9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCAgICB8ICAx
OCArLQogLi4uL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0ICAgIHwgIDE4
ICstCiAuLi4vRWxlbWVudEludGVybmFscy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCAgfCAgMTgg
KwogLi4uL2luc2lkZS1kYXRhbGlzdC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0ICAgIHwgICAzICsK
IC4uLi9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCAgICB8ICAxOCArLQog
Li4uL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0ICAgIHwgIDE4ICstCiAx
MTggZmlsZXMgY2hhbmdlZCwgMzEzMSBpbnNlcnRpb25zKCspLCAxMDY0IGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3Mu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2RvbS9WYWxpZGl0eVN0YXRlRmxh
Z3MuaWRsCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21FbGVt
ZW50Rm9ybVZhbHVlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9odG1sL0Zv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRh
dGVkRm9ybUxpc3RlZEVsZW1lbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvaHRtbC9WYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0tYXNzb2NpYXRlZC1jdXN0
b20tZWxlbWVudHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0tYXNzb2NpYXRlZC1jdXN0b20tZWxlbWVudHMu
aHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0
ci1jb25zdHJ1Y3Rvci1kaXNhYmxlZC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9yLWRp
c2FibGVkLnRlbnRhdGl2ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0
dHItY29uc3RydWN0b3ItcmVhZG9ubHkudGVudGF0aXZlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItcGFyc2VyLWRpc2FibGVkLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
dXBncmFkaW5nL2F0dHItcGFyc2VyLWRpc2FibGVkLnRlbnRhdGl2ZS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNlci1yZWFkb25s
eS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3Nv
Y2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNlci1yZWFkb25seS50ZW50YXRpdmUuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3It
Zm9ybS1maWVsZHNldC1lbGVtZW50cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLWZp
ZWxkc2V0LWVsZW1lbnRzLnRlbnRhdGl2ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9y
bS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2Nv
bnN0cnVjdG9yLWZvcm0udGVudGF0aXZlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3Jt
LWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5zaWRlLWZvcm0udGVudGF0
aXZlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91
cGdyYWRpbmcvY29uc3RydWN0b3ItbW92ZS1pbnNpZGUtZm9ybS50ZW50YXRpdmUuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3It
c2V0LWZvcm0tYXR0ci50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1zZXQtZm9ybS1hdHRyLnRl
bnRhdGl2ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3Jh
ZGluZy9jb25zdHJ1Y3Rvci1zZXRWYWxpZGl0eS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1z
ZXRWYWxpZGl0eS50ZW50YXRpdmUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2luc2lkZS1k
YXRhbGlzdC50ZW50YXRpdmUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2Np
YXRlZC91cGdyYWRpbmcvaW5zaWRlLWRpc2FibGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2lu
c2lkZS1kaXNhYmxlZC1maWVsZHNldC50ZW50YXRpdmUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5n
L2luc2lkZS1sYWJlbC50ZW50YXRpdmUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2xhYmVsLWRlbGVnYXRlc0ZvY3VzLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5z
aWRlLWRhdGFsaXN0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDY1ZjkwNDY2ZTg2Mi4uMTBlMDRhYjBmMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTA1Nyw2ICsxMDU3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20v
VHJlZVdhbGtlci5pZGwKICAgICBkb20vVUlFdmVudC5pZGwKICAgICBkb20vVUlFdmVudEluaXQu
aWRsCisgICAgZG9tL1ZhbGlkaXR5U3RhdGVGbGFncy5pZGwKICAgICBkb20vVmlzaWJpbGl0eVN0
YXRlLmlkbAogICAgIGRvbS9XaGVlbEV2ZW50LmlkbAogICAgIGRvbS9YTUxEb2N1bWVudC5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IDkzNzQyMDM5MGIyYi4uZjdiNjczY2E3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEyMDAsNiArMTIwMCw3IEBAICQoUFJPSkVD
VF9ESVIpL2RvbS9UcmFuc2l0aW9uRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vVHJlZVdh
bGtlci5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9VSUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikv
ZG9tL1VJRXZlbnRJbml0LmlkbAorJChQUk9KRUNUX0RJUikvZG9tL1ZhbGlkaXR5U3RhdGVGbGFn
cy5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9WaXNpYmlsaXR5U3RhdGUuaWRsCiAkKFBST0pFQ1Rf
RElSKS9kb20vV2hlZWxFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9YTUxEb2N1bWVudC5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
aW5kZXggMDRhZmRlNDFhODRkLi44NTJiNWZhYTA3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNzM1LDYgKzI3MzUsOCBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VzZXJNZXNzYWdl
SGFuZGxlcnNOYW1lc3BhY2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1VzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGVGbGFncy5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmFsaWRpdHlTdGF0ZUZsYWdzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVlRUQ3VlLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWVFRDdWUu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWVFRSZWdp
b24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxMjJiODVhODY2NTQuLjc5
YTg4Y2IyNzdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMDQ4LDYgKzEw
NDgsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvZG9tL1RyZWVXYWxr
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9VSUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9kb20vVUlFdmVudEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9WYWxpZGl0eVN0YXRl
RmxhZ3MuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9WaXNpYmlsaXR5U3RhdGUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9XaGVlbEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vWE1M
RG9jdW1lbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDc3OGRiMjdmNWJkMS4uNGIzZjY0
MTg1YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTgyMyw2ICs4MjMsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL1VzZXJBY3Rpb25FbGVtZW50U2V0
LmgKICAgICBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAogICAgIGRvbS9Vc2VyVHlwaW5nR2Vz
dHVyZUluZGljYXRvci5oCisgICAgZG9tL1ZhbGlkaXR5U3RhdGVGbGFncy5oCiAgICAgZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmgKICAgICBkb20vVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oCiAgICAg
ZG9tL1Zpc2liaWxpdHlTdGF0ZS5oCkBAIC05MDYsMTEgKzkwNywxNSBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaHRtbC9DYW52YXNCYXNlLmgKICAgICBodG1s
L0NvbGxlY3Rpb25UcmF2ZXJzYWwuaAogICAgIGh0bWwvQ29sbGVjdGlvblR5cGUuaAorICAgIGh0
bWwvQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oCisgICAgaHRtbC9ET01Gb3JtRGF0YS5oCiAgICAg
aHRtbC9ET01Ub2tlbkxpc3QuaAogICAgIGh0bWwvRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRp
b24uaAogICAgIGh0bWwvRW50ZXJLZXlIaW50LmgKICAgICBodG1sL0ZlYXR1cmVQb2xpY3kuaAor
ICAgIGh0bWwvRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKICAgICBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oCisgICAgaHRtbC9Gb3JtQ29udHJvbGxlci5oCiAgICAgaHRtbC9Gb3Jt
TGlzdGVkRWxlbWVudC5oCiAgICAgaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCiAgICAgaHRtbC9I
VE1MQW5jaG9yRWxlbWVudElubGluZXMuaApAQCAtOTMzLDggKzkzOCw4IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaAog
ICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCiAgICAgaHRtbC9IVE1MRm9udEVsZW1lbnQu
aAorICAgIGh0bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKICAgICBo
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAotICAgIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZS5oCiAgICAgaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAogICAgIGh0bWwvSFRN
TEZyYW1lRWxlbWVudC5oCiAgICAgaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCkBAIC0xMDA4
LDYgKzEwMTMsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
aHRtbC9UeXBlQWhlYWQuaAogICAgIGh0bWwvVVJMRGVjb21wb3NpdGlvbi5oCiAgICAgaHRtbC9V
UkxSZWdpc3RyeS5oCisgICAgaHRtbC9WYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5oCisgICAg
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5oCiAgICAgaHRtbC9WYWxpZGl0eVN0YXRlLmgKICAgICBo
dG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaAogICAgIGh0bWwvVm9pZENhbGxiYWNrLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggMDVmNDJkOWM4OTUwLi5mMzM3MzZjODUyOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0xMjQ4LDYgKzEyNDgsNyBAQCBodG1sL0VudGVyS2V5SGludC5jcHAKIGh0bWwvRlRQ
RGlyZWN0b3J5RG9jdW1lbnQuY3BwCiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwCiBodG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCitodG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKIGh0bWwv
Rm9ybUNvbnRyb2xsZXIuY3BwCiBodG1sL0Zvcm1MaXN0ZWRFbGVtZW50LmNwcAogaHRtbC9HZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCkBAIC0xMjc3LDcgKzEyNzgsNyBAQCBodG1sL0hU
TUxFbWJlZEVsZW1lbnQuY3BwCiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCiBodG1sL0hU
TUxGb250RWxlbWVudC5jcHAKIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKLWh0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5jcHAKK2h0bWwvSFRNTE1heWJlRm9ybUFz
c29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcAogaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5jcHAKIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAogaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNw
cApAQCAtMTM5NCw2ICsxMzk1LDcgQEAgaHRtbC9VUkxJbnB1dFR5cGUuY3BwCiBodG1sL1VSTFJl
Z2lzdHJ5LmNwcAogaHRtbC9VUkxTZWFyY2hQYXJhbXMuY3BwCiBodG1sL1VzZXJBY3RpdmF0aW9u
LmNwcAoraHRtbC9WYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5jcHAKIGh0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwCiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwCiBodG1sL2NhbnZhcy9BTkdMRUlu
c3RhbmNlZEFycmF5cy5jcHAKQEAgLTQxNTAsNiArNDE1Miw3IEBAIEpTVlRUQ3VlLmNwcAogSlNW
VFRSZWdpb24uY3BwCiBKU1ZUVFJlZ2lvbkxpc3QuY3BwCiBKU1ZhbGlkaXR5U3RhdGUuY3BwCitK
U1ZhbGlkaXR5U3RhdGVGbGFncy5jcHAKIEpTVmlkZW9Db2xvclByaW1hcmllcy5jcHAKIEpTVmlk
ZW9Db2xvclNwYWNlLmNwcAogSlNWaWRlb0NvbG9yU3BhY2VJbml0LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE1ZjAwZWJi
N2ZmNi4uNGNjNTVlYWVmYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MjUsNyArOTI1LDcgQEAKIAkJMkVDREJBRDgyMUQ4
OTA2MzAwRjAwRUNEIC8qIFVuZG9JdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRUNEQkFENTIxRDg5MDYzMDBGMDBFQ0QgLyogVW5kb0l0ZW0uaCAq
LzsgfTsKIAkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVDRjdBREIxMDE2MkIz
ODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oICovOyB9OwogCQkyRUNGN0FFMjEwMTYyQjU4MDA0
MjdERTcgLyogRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkVDRjdBREYxMDE2MkI1ODAwNDI3REU3IC8qIEVycm9yRXZlbnQuaCAqLzsg
fTsKLQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUQ2MDlCQjExNDVCMDcxMDBD
ODY4NEUgLyogRE9NRm9ybURhdGEuaCAqLzsgfTsKKwkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRF
IC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRUQ2MDlCQjExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRUREQUY0NDI3OTIw
RUI0MDA1RDE4RTQgLyogSW5zcGVjdG9yT3ZlcmxheUxhYmVsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUREQUY0MzI3OTIwRUI0MDA1RDE4RTQgLyog
SW5zcGVjdG9yT3ZlcmxheUxhYmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkVERUYxRjQxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURFRjFFRTEy
MUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkyRURFRjFGNTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RURFRjFFRjEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTMwMTcsOSArMzAxNywxMyBAQAog
CQk4OTg3ODVGNTEyMkUxRUFDMDAzQUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4Nzg1RjMxMjJFMUVBQzAw
M0FBQkRBIC8qIEpTRmlsZVJlYWRlclN5bmMuaCAqLzsgfTsKIAkJOEEwNTQ1MzMyODNDRjE3RjAw
RjQ5OEU3IC8qIEVYVFRleHR1cmVOb3JtMTYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhBMDU0NTMyMjgzQ0YxM0YwMEY0OThFNyAvKiBFWFRUZXh0dXJl
Tm9ybTE2LmggKi87IH07CiAJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExv
YWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4QTI4QzNDMjI4RTRF
QzA3MDAxMDE4QjkgLyogVmFsaWRpdHlTdGF0ZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTI4QzNDMTI4RTRFQzA3MDAxMDE4QjkgLyogVmFs
aWRpdHlTdGF0ZUZsYWdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3Jl
bWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCAqLzsg
fTsKKwkJOEEzRkNCMTYyOTNDMTJGRjAwRDE3MjhBIC8qIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTNG
Q0IxNDI5M0MxMkZFMDBEMTcyOEEgLyogVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4QTNGQ0IxQjI5
M0MxMzFGMDBEMTcyOEEgLyogSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTNGQ0IxOTI5
M0MxMzFGMDBEMTcyOEEgLyogSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0MTNB
RTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNj
cmlwdFJ1bm5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCThBNDYyREVFMjg2MzNEN0QwMEFCMjA4MCAvKiBXZWJHTE11bHRpRHJhd0luc3RhbmNl
ZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBNDYyREVCMjg2MzNENjIwMEFCMjA4MCAvKiBXZWJHTE11bHRpRHJh
d0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaCAqLzsgfTsKKwkJOEE3NUE5M0IyOTQ4
MjNGOTAwQTgxOUE5IC8qIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3NUE5M0EyOTQ4MjNGODAwQTgx
OUE5IC8qIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBN0NDOTZCMTIwNzZENzMwMDFENDU4OCAv
KiBQZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QTdDQzk2QTEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBODFCRjg1MTFE
Q0ZEOTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBO
ZXR3b3JrTG9hZE1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4QTg0NEQwNTExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODQ0RDAyMTFE
M0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5oICovOyB9OwpAQCAtMzAzMSw2ICszMDM1LDcg
QEAKIAkJOEFBQUM1Q0QyODQwMTQwNTAwRDA4QUU1IC8qIE9FU0RyYXdCdWZmZXJzSW5kZXhlZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFBQUM1Q0Ey
ODQwMTNENjAwRDA4QUU1IC8qIE9FU0RyYXdCdWZmZXJzSW5kZXhlZC5oICovOyB9OwogCQk4QUI0
QkM3NzEyNkZEQjcxMDBERUI3MjcgLyogSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVt
ZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
QjRCQzc2MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlci5oICovOyB9OwogCQk4QUNBRUQzQzI4QjgxNjU3MDBGMjE1QkEgLyogV2ViR0xQcm92
b2tpbmdWZXJ0ZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhBQ0FFRDNCMjhCODE2MDMwMEYyMTVCQSAvKiBXZWJHTFByb3Zva2luZ1ZlcnRleC5oICov
OyB9OworCQk4QUNDQUQzRDI5NUE1QTFDMDA3ODhGNUUgLyogQ3VzdG9tRWxlbWVudEZvcm1WYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFDQ0FE
M0MyOTVBNUExQjAwNzg4RjVFIC8qIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QUNFODhENzI4NUM4RkI4
MDA4MkMwRkMgLyogV2ViR0xEcmF3SW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFDRTg4RDUyODVD
OEY2NjAwODJDMEZDIC8qIFdlYkdMRHJhd0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2Uu
aCAqLzsgfTsKIAkJOEFGNEU1NTYxMURDNUEzNjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFG
NEU1NTMxMURDNUEzNjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdhdGlvbi5oICovOyB9Owog
CQk4QUY0RTU1QzExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBRjRFNTU5MTFEQzVBNjMw
MDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oICovOyB9OwpAQCAtNTM4Myw3ICs1Mzg4LDYg
QEAKIAkJRTEzOTg2NjQxNTQ3ODQ3NDAwMUUzRjY1IC8qIFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzk4NjYyMTU0Nzg0NzQw
MDFFM0Y2NSAvKiBTdHlsZVJlc29sdmVyLmggKi87IH07CiAJCUUxM0VGMzQ0MTY4NEVDRjQwMDM0
QzgzRiAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxM0VGMzQyMTY4NEVDRjQwMDM0QzgzRiAvKiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFMTQyNEM5NDE2NEI1MkM4MDBGMzJENDAgLyogQ29va2llSmFyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTQyNEM5MjE2NEI1MkM4
MDBGMzJENDAgLyogQ29va2llSmFyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJRTE0RjFDNDUxNEI1REFDNjAwRUE5MDA5IC8qIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxNEYxQzQzMTRCNURBQzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTE1MjU1MTUxNkZEMjM1MDAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MjU1MTMxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oICovOyB9OwogCQlFMTU3QThF
MTE4MTczMzFDMDA5RjgyMUQgLyogSlNDcnlwdG9LZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTdBOERGMTgxNzMzMUMwMDlGODIxRCAvKiBKU0Ny
eXB0b0tleS5oICovOyB9OwogCQlFMTU3QThFNTE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTU3QThF
MzE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU4MDAsNyArNTgwNCw3IEBACiAJCUY0RTU3RURD
MjEzRjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFNTdFREEyMTNGM0Y1RjAwNEVBOThF
IC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRFNTdFRTEyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVO
U0ZvbnRNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEU1N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFn
ZXJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlGNEZCMzRGQzIzNTBDODVEMDBGMDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RkIzNEZBMjM1
MEM4NUQwMEYwMDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2
RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmgg
Ki87IH07CisJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdG
NTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZh
bGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3Nh
Z2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgw
MEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElu
cHV0VHlwZS5oICovOyB9OwpAQCAtNTgyOSw3ICs1ODMzLDcgQEAKIAkJRjU1QjNERTAxMjUxRjEy
RDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmggKi87IH07CiAJCUY1OTczREUwMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVDb2NvYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUx
NUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZUNvY29hLmggKi87IH07CiAJCUY1OUM5NjAwMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAv
KiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLzsgfTsKLQkJRjVBMTU0MjgxMjc5NTM0RDAw
RDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlv
bk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRp
b25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNUMwNDFEQjBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhU
TUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUMwNDFFMjBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07
CiAJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjkx
NkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmgg
Ki87IH07CkBAIC0xMzIwNyw3ICsxMzIxMSwxMyBAQAogCQk4QTA1NDUzMTI4M0NGMTNGMDBGNDk4
RTcgLyogRVhUVGV4dHVyZU5vcm0xNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFWFRUZXh0dXJlTm9ybTE2LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOEEwNTQ1MzIyODNDRjEzRjAwRjQ5OEU3IC8qIEVYVFRleHR1cmVOb3JtMTYuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRVhUVGV4dHVyZU5vcm0xNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRM
b2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9h
ZFRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QTI4QzNDMTI4RTRFQzA3
MDAxMDE4QjkgLyogVmFsaWRpdHlTdGF0ZUZsYWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZhbGlkaXR5U3RhdGVGbGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4QTI4QzNDMzI4RTRFQzE4MDAxMDE4QjkgLyogVmFsaWRpdHlTdGF0ZUZsYWdzLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBWYWxpZGl0eVN0YXRlRmxhZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEEzRkNCMTQyOTNDMTJGRTAwRDE3MjhB
IC8qIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCThBM0ZDQjE1MjkzQzEyRkYwMEQxNzI4QSAvKiBWYWxpZGF0ZWRGb3JtTGlz
dGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYWxp
ZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CThBM0ZDQjE4MjkzQzEzMUYwMEQxNzI4QSAvKiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTE1h
eWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOEEzRkNCMTkyOTNDMTMxRjAwRDE3MjhBIC8qIEhUTUxNYXliZUZvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
TWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEEzRkUxMkQyODNCRDY5RDAwMEJENUREIC8qIEVYVFRleHR1cmVDb21wcmVzc2lv
bkJQVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRVhUVGV4dHVyZUNvbXBy
ZXNzaW9uQlBUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTNGRTEyRTI4M0JE
NjlFMDAwQkQ1REQgLyogRVhUVGV4dHVyZUNvbXByZXNzaW9uQlBUQy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFWFRUZXh0dXJlQ29tcHJlc3Npb25CUFRDLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEEzRkUxMkYyODNCRDY5RTAwMEJENUREIC8q
IEVYVFRleHR1cmVDb21wcmVzc2lvbkJQVEMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVY
VFRleHR1cmVDb21wcmVzc2lvbkJQVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTMyMTYsNiArMTMyMjYsOCBAQAogCQk4QTQ2MkRFQjI4NjMzRDYyMDBBQjIwODAgLyogV2Vi
R0xNdWx0aURyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMTXVsdGlEcmF3SW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTQ2MkRFQzI4NjMz
RDYzMDBBQjIwODAgLyogV2ViR0xNdWx0aURyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3Rh
bmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTE11bHRpRHJhd0luc3RhbmNlZEJh
c2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
QTQ2MkRFRDI4NjMzRDY0MDBBQjIwODAgLyogV2ViR0xNdWx0aURyYXdJbnN0YW5jZWRCYXNlVmVy
dGV4QmFzZUluc3RhbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkdMTXVsdGlEcmF3SW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNzVBOTNBMjk0ODIzRjgwMEE4MTlBOSAvKiBGb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCThBNzVBOTNDMjk0ODI0MDMwMEE4MTlBOSAvKiBGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0
NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGVuZGluZ1NjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2RjEy
MDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIE5ldHdvcmtMb2FkTWV0cmljcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrTG9hZE1ldHJpY3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjM3LDYgKzEzMjQ5LDcgQEAKIAkJOEFD
QUVEMzkyOEI4MTYwMzAwRjIxNUJBIC8qIFdlYkdMUHJvdm9raW5nVmVydGV4LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHTFByb3Zva2luZ1ZlcnRleC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThBQ0FFRDNBMjhCODE2MDMwMEYyMTVCQSAvKiBXZWJHTFByb3Zva2lu
Z1ZlcnRleC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTFBy
b3Zva2luZ1ZlcnRleC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBQ0FFRDNC
MjhCODE2MDMwMEYyMTVCQSAvKiBXZWJHTFByb3Zva2luZ1ZlcnRleC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFByb3Zva2luZ1ZlcnRleC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4QUNDQUQzQzI5NUE1QTFCMDA3ODhGNUUgLyogQ3VzdG9tRWxlbWVu
dEZvcm1WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21FbGVt
ZW50Rm9ybVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBQ0U4OEQ0Mjg1
QzhGNjYwMDgyQzBGQyAvKiBXZWJHTERyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMRHJhd0luc3Rh
bmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4QUNFODhENTI4NUM4RjY2MDA4MkMwRkMgLyogV2ViR0xEcmF3SW5zdGFuY2VkQmFzZVZl
cnRleEJhc2VJbnN0YW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
TERyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCThBQ0U4OEQ2Mjg1QzhGNjYwMDgyQzBGQyAvKiBXZWJHTERyYXdJbnN0YW5j
ZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
TERyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE3ODQwLDggKzE3ODUzLDYgQEAKIAkJRTE0MjRDOTExNjRCNTJDODAw
RjMyRDQwIC8qIENvb2tpZUphci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDb29raWVKYXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTQyNEM5
MjE2NEI1MkM4MDBGMzJENDAgLyogQ29va2llSmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvb2tpZUphci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRB
OTRENjE2REZERjk1MDA2OERFODIgLyogQmxvYlJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUUxNEYxQzQyMTRCNURBQzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFMTRGMUM0MzE0QjVEQUM2MDBFQTkwMDkgLyogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxNTEzRDUwMTY3N0YwODgwMDE0OUZDQiAvKiBOb3RJbXBsZW1lbnRlZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb3RJbXBsZW1lbnRlZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTI1NTEzMTZGRDIzNEYwMDNEN0FEQiAvKiBXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTI1NTE0MTZGRDIzNEYw
MDNEN0FEQiAvKiBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNjg2NCw2ICsyNjg3NSw3IEBACiAJCQkJOTNDNDQxRkYwRjgxM0FFMTAwQzFB
NjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8sCiAJCQkJQkMyOTkzNUMxN0ExREQ1ODAwQkNFODgw
IC8qIENvbG9ySW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4MDEyNTFGMTJEMDAzRUYyNjkg
LyogQ29sb3JJbnB1dFR5cGUuaCAqLywKKwkJCQk4QUNDQUQzQzI5NUE1QTFCMDA3ODhGNUUgLyog
Q3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oICovLAogCQkJCTRCMUUxM0U5MjE3OTBEN0UwMDQyQ0Y5
OCAvKiBDdXN0b21QYWludENhbnZhcy5jcHAgKi8sCiAJCQkJNEIxRTEzRTYyMTc5MEQ2NjAwNDJD
Rjk4IC8qIEN1c3RvbVBhaW50Q2FudmFzLmggKi8sCiAJCQkJQkM4NEY0MzkyNjQxQUIxNDAwRjU3
QzFDIC8qIEN1c3RvbVBhaW50SW1hZ2UuY3BwICovLApAQCAtMjY4OTMsNiArMjY5MDUsOCBAQAog
CQkJCTQxQTA4Mjk5MjI5MzJFRjQwMDg0MjZFMCAvKiBGZWF0dXJlUG9saWN5LmggKi8sCiAJCQkJ
RjU1QjNEODkxMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDhBMTI1MUYxMkQwMDNFRjI2OSAvKiBGaWxlSW5wdXRUeXBlLmggKi8sCisJCQkJOEE3NUE5
M0MyOTQ4MjQwMzAwQTgxOUE5IC8qIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgKi8s
CisJCQkJOEE3NUE5M0EyOTQ4MjNGODAwQTgxOUE5IC8qIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudC5oICovLAogCQkJCTlCNTBCMURDMTdDRDRDMEYwMDg3RjYzQyAvKiBGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuaCAqLywKIAkJCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRy
b2xsZXIuY3BwICovLAogCQkJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJv
bGxlci5oICovLApAQCAtMjY5ODMsOCArMjY5OTcsNiBAQAogCQkJCTFBRTJBOUY1MEExQ0RBNTcw
MEI0MkIyNSAvKiBIVE1MRm9udEVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUIzMDk3Mzc0RjUw
MEQ3NDQ2MyAvKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCMjA5
NzM3NEY1MDBENzQ0NjMgLyogSFRNTEZvcm1Db250cm9sRWxlbWVudC5oICovLAotCQkJCUUxNEYx
QzQyMTRCNURBQzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmNw
cCAqLywKLQkJCQlFMTRGMUM0MzE0QjVEQUM2MDBFQTkwMDkgLyogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZS5oICovLAogCQkJCUE4REYzRkM3MDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJQThERjNGQzYwOTdGQTBGQjAwNTI5
ODFCIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggKi8sCiAJCQkJOUIxQUIwNzkxNjQ4
QzY5RDAwNTFGM0YyIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCAqLywKQEAgLTI3
MDQ0LDYgKzI3MDU2LDggQEAKIAkJCQlBOEVBN0M5RTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTE1h
cnF1ZWVFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBN0M5RDBBMTkyQjlDMDBBOEVGNUYgLyogSFRN
TE1hcnF1ZWVFbGVtZW50LmggKi8sCiAJCQkJQkM0OTFCNEUwQzAyM0UyRDAwOUQ2MzE2IC8qIEhU
TUxNYXJxdWVlRWxlbWVudC5pZGwgKi8sCisJCQkJOEEzRkNCMTgyOTNDMTMxRjAwRDE3MjhBIC8q
IEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgKi8sCisJCQkJOEEzRkNC
MTkyOTNDMTMxRjAwRDE3MjhBIC8qIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dC5oICovLAogCQkJCTQxRDZCRDk4MjUxQjNBREEwMDU1QTdCNyAvKiBIVE1MTWVkaWFFbGVtZW50
K0F1ZGlvT3V0cHV0LmlkbCAqLywKIAkJCQlFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyogSFRN
TE1lZGlhRWxlbWVudC5jcHAgKi8sCiAJCQkJRTQ0NjEzOTMwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxNZWRpYUVsZW1lbnQuaCAqLywKQEAgLTI3Mjk5LDYgKzI3MzEzLDggQEAKIAkJCQk1QzUzODFB
RjFEODc5M0UwMDBFMkVCRTYgLyogVVJMU2VhcmNoUGFyYW1zLmlkbCAqLywKIAkJCQkwREE1NUQ5
NTI4RTY3OEY2MDA0QTY3NTggLyogVXNlckFjdGl2YXRpb24uY3BwICovLAogCQkJCTBEQTU1RDk2
MjhFNjc4RjYwMDRBNjc1OCAvKiBVc2VyQWN0aXZhdGlvbi5oICovLAorCQkJCThBM0ZDQjE1Mjkz
QzEyRkYwMEQxNzI4QSAvKiBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5jcHAgKi8sCisJCQkJ
OEEzRkNCMTQyOTNDMTJGRTAwRDE3MjhBIC8qIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Lmgg
Ki8sCiAJCQkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNw
cCAqLywKIAkJCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2Uu
aCAqLywKIAkJCQkxNUM3NzA4QTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5oICov
LApAQCAtMzQzNTMsNiArMzQzNjksOCBAQAogCQkJCTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAv
KiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovLAogCQkJCUJDREYzMTc5MTFGOEQ2ODMwMDNDNUJG
OCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5jcHAgKi8sCiAJCQkJQkNERjMxN0ExMUY4
RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmggKi8sCisJCQkJOEEy
OEMzQzEyOEU0RUMwNzAwMTAxOEI5IC8qIFZhbGlkaXR5U3RhdGVGbGFncy5oICovLAorCQkJCThB
MjhDM0MzMjhFNEVDMTgwMDEwMThCOSAvKiBWYWxpZGl0eVN0YXRlRmxhZ3MuaWRsICovLAogCQkJ
CUNFRjQxOENDMTE3OTY3OEMwMDlEMTEyQyAvKiBWaWV3cG9ydEFyZ3VtZW50cy5jcHAgKi8sCiAJ
CQkJQ0VGNDE4Q0QxMTc5Njc4QzAwOUQxMTJDIC8qIFZpZXdwb3J0QXJndW1lbnRzLmggKi8sCiAJ
CQkJODM0MDdGQzAxRThEOUMxMjAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCAq
LywKQEAgLTM1Nzc2LDYgKzM1Nzk0LDcgQEAKIAkJCQk3MTczNjk0QTI3NUUwQjVFMDAzQURBOUIg
LyogQ3VzdG9tRWZmZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTczNjk0QjI3NUUwQjZBMDAz
QURBOUIgLyogQ3VzdG9tRWZmZWN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTlCMTVG
MEQ1MjhDNDZEMzUwMDZCN0YzMiAvKiBDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCBpbiBIZWFk
ZXJzICovLAorCQkJCThBQ0NBRDNEMjk1QTVBMUMwMDc4OEY1RSAvKiBDdXN0b21FbGVtZW50Rm9y
bVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q0MzdBMDFENTdCMTlBMDBBQjg1RUEgLyog
Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRDRFOTFC
MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21FbGVtZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTYyQ0QzMjVBMTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNjI1OCw2ICszNjI3Nyw3IEBACiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRUYWdnZWRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwMTVDMEEx
QkU2RkVCMjAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0QTUzMzEyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOEE3NUE5M0IyOTQ4MjNGOTAwQTgxOUE5IC8qIEZvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1MEIxREUxN0NENEMw
RjAwODdGNjNDIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcwNzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNjQ1NSw3ICszNjQ3NSw2IEBACiAJCQkJQThDRkY3QTYwQTE1
Njk3ODAwMEE0MjM0IC8qIEhUTUxGb250RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3
QjM4NkYxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTM2OUNFMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTRGMUM0NTE0QjVEQUM2MDBFQTkwMDkg
LyogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThERjNGQ0UwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEMDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEZvcm1F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyQjBBMTUyQUM4MDBCMTJBNjggLyog
SFRNTEZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjQ3OSw2ICszNjQ5OCw3IEBA
CiAJCQkJQTg3MURDMjAwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxMaW5rRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThFQTdEMkMwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxNYXBFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0NBQjBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTE1h
cnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4QTNGQ0IxQjI5M0MxMzFGMDBEMTcy
OEEgLyogSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDQ2MTNBNTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0Q1MjA5RTYxQjBCRDlFMTAwNzcxODRFIC8qIEhUTUxNZWRpYUVs
ZW1lbnRFbnVtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDMzEyRUEyMkZDRDdDNjAwMTIwNEVD
IC8qIEhUTUxNZWRpYUVsZW1lbnRSZW1vdGVQbGF5YmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
OTU5NCwxMCArMzk2MTQsMTIgQEAKIAkJCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFGMTRFNjFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZC
RjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CThBM0ZDQjE2MjkzQzEyRkYwMEQxNzI4QSAvKiBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNDVCOEUxREMyQjY4QTAwODg3MUJBIC8qIFZhbGlkYXRp
b25CdWJibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxM0EzRUExNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNUM3NzA4RDEwMEQzQzZCMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOEEyOEMzQzIyOEU0RUMwNzAwMTAxOEI5IC8qIFZhbGlkaXR5U3RhdGVGbGFncy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQUYxMkIwMjZGNzAwQzFBMzU5IC8qIFZlY3Rvck1h
dGguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMUEwQzM4MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxv
Y2l0eURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTI1NzE1MTI5M0MwMTAwMDdBMjYzRCAv
KiBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNzJi
NDNiZGFlM2Y3Li5mYzlhMGE4YzQwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMzYyMywxNSArMzYyMywxOSBA
QCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzRE9NSGlkZGVuKCkgY29uc3QKIAogYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Nob3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0CiB7
Ci0gICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KG5vZGUoKSkpCi0gICAgICAgIHJl
dHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqbm9kZSgpKS5pc1Nob3dpbmdW
YWxpZGF0aW9uTWVzc2FnZSgpOworICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IHRoaXMtPmVsZW1l
bnQoKSkgeworICAgICAgICBpZiAoYXV0byogbGlzdGVkRWxlbWVudCA9IGVsZW1lbnQtPmFzVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBsaXN0ZWRFbGVt
ZW50LT5pc1Nob3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgpOworICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp2YWxpZGF0aW9uTWVzc2FnZSgp
IGNvbnN0CiB7Ci0gICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KG5vZGUoKSkpCi0g
ICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqbm9kZSgpKS52
YWxpZGF0aW9uTWVzc2FnZSgpOworICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IHRoaXMtPmVsZW1l
bnQoKSkgeworICAgICAgICBpZiAoYXV0byogbGlzdGVkRWxlbWVudCA9IGVsZW1lbnQtPmFzVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBsaXN0ZWRFbGVt
ZW50LT52YWxpZGF0aW9uTWVzc2FnZSgpOworICAgIH0KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwCmluZGV4IDg5NjQ3MjAxOGEyMS4uMWVhZGUwZTgyNTg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5jcHAKQEAgLTMxLDEwICszMSwxMyBAQAogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgogI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgor
I2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXliZUZvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxVbmtub3duRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxl
LmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgorI2luY2x1ZGUgIkpTRE9NRm9y
bURhdGEuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCkBAIC04OSw2ICs5MiwxNyBAQCBSZWY8RWxlbWVu
dD4gSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjpjb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNr
KERvY3VtZW50JiBkbwogICAgIHJldHVybiBlbGVtZW50OwogfQogCitSZWY8SFRNTEVsZW1lbnQ+
IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6Y3JlYXRlRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCit7CisgICAgaWYgKG1faXNGb3JtQXNzb2NpYXRlZCkgeworICAgICAgICBhdXRvIGVsZW1l
bnQgPSBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZShtX25hbWUs
IGRvY3VtZW50KTsKKyAgICAgICAgZWxlbWVudC0+c2V0SW50ZXJmYWNlSXNGb3JtQXNzb2NpYXRl
ZCgpOworICAgICAgICByZXR1cm4gZWxlbWVudDsKKyAgICB9CisKKyAgICByZXR1cm4gSFRNTEVs
ZW1lbnQ6OmNyZWF0ZShtX25hbWUsIGRvY3VtZW50KTsKK30KKwogUmVmUHRyPEVsZW1lbnQ+IEpT
Q3VzdG9tRWxlbWVudEludGVyZmFjZTo6dHJ5VG9Db25zdHJ1Y3RDdXN0b21FbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgQXRvbVN0cmluZyYgbG9jYWxOYW1lLCBQYXJzZXJDb25zdHJ1
Y3RFbGVtZW50V2l0aEVtcHR5U3RhY2sgcGFyc2VyQ29uc3RydWN0RWxlbWVudFdpdGhFbXB0eVN0
YWNrKQogewogICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKQEAgLTIyNCw2ICsyMzgsMTEg
QEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobV9pc0Zvcm1Bc3Nv
Y2lhdGVkKSB7CisgICAgICAgIEFTU0VSVChpczxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQ+KGVsZW1lbnQpKTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTE1heWJlRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50PihlbGVtZW50KS53aWxsVXBncmFkZUZvcm1Bc3NvY2lhdGVkKCk7
CisgICAgfQorCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICBBU1NFUlQoIWFy
Z3MuaGFzT3ZlcmZsb3dlZCgpKTsKICAgICBKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9u
KGNvbnRleHQsIGNvbnN0cnVjdERhdGEpOwpAQCAtMjQ0LDcgKzI2MywxMyBAQCB2b2lkIEpTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAg
ICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25z
dHJ1Y3RvciByZXR1cm5lZCBhIHdyb25nIGVsZW1lbnQiX3MpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKwogICAgIGVsZW1lbnQuc2V0SXNEZWZpbmVkQ3VzdG9tRWxlbWVudCgqdGhpcyk7CisK
KyAgICBpZiAobV9pc0Zvcm1Bc3NvY2lhdGVkKSB7CisgICAgICAgIEN1c3RvbUVsZW1lbnRSZWFj
dGlvblN0YWNrIGN1c3RvbUVsZW1lbnRSZWFjdGlvblN0YWNrKGxleGljYWxHbG9iYWxPYmplY3Qp
OworICAgICAgICBkb3duY2FzdDxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+
KGVsZW1lbnQpLmRpZFVwZ3JhZGVGb3JtQXNzb2NpYXRlZCgpOworICAgIH0KIH0KIAogdm9pZCBK
U0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6Omludm9rZUNhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQs
IEpTT2JqZWN0KiBjYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9pZChKU0dsb2JhbE9iamVjdCos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgTWFya2VkQXJndW1lbnRCdWZmZXImKT4mIGFkZEFyZ3VtZW50
cykKQEAgLTMzNiw2ICszNjEsNDIgQEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6Omlu
dm9rZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhFbGVtZW50JiBlbGVtZW50LAogICAgIH0pOwog
fQogCit2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6aW52b2tlRm9ybUFzc29jaWF0ZWRD
YWxsYmFjayhFbGVtZW50JiBlbGVtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGFzc29jaWF0ZWRGb3Jt
KQoreworICAgIGludm9rZUNhbGxiYWNrKGVsZW1lbnQsIG1fZm9ybUFzc29jaWF0ZWRDYWxsYmFj
ay5nZXQoKSwgWyZdKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncykgewor
ICAgICAgICBhcmdzLmFwcGVuZCh0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dCwgYXNzb2NpYXRlZEZvcm0pKTsKKyAgICB9KTsKK30KKwordm9pZCBKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2U6Omludm9rZUZvcm1SZXNldENhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQpCit7Cisg
ICAgaW52b2tlQ2FsbGJhY2soZWxlbWVudCwgbV9mb3JtUmVzZXRDYWxsYmFjay5nZXQoKSk7Cit9
CisKK3ZvaWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjppbnZva2VGb3JtRGlzYWJsZWRDYWxs
YmFjayhFbGVtZW50JiBlbGVtZW50LCBib29sIGlzRGlzYWJsZWQpCit7CisgICAgaW52b2tlQ2Fs
bGJhY2soZWxlbWVudCwgbV9mb3JtRGlzYWJsZWRDYWxsYmFjay5nZXQoKSwgWyZdKEpTR2xvYmFs
T2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncykg
eworICAgICAgICBhcmdzLmFwcGVuZChqc0Jvb2xlYW4oaXNEaXNhYmxlZCkpOworICAgIH0pOwor
fQorCit2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6aW52b2tlRm9ybVN0YXRlUmVzdG9y
ZUNhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQsIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUgcmVzdG9y
ZWRTdGF0ZSkKK3sKKyAgICBpbnZva2VDYWxsYmFjayhlbGVtZW50LCBtX2Zvcm1TdGF0ZVJlc3Rv
cmVDYWxsYmFjay5nZXQoKSwgWyZdKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYg
YXJncykgeworICAgICAgICBhdXRvJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CisK
KyAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN0b3JlZFN0YXRlLCBbJl0oUmVmUHRyPERPTUZvcm1E
YXRhPiBzdGF0ZSkgeworICAgICAgICAgICAgYXJncy5hcHBlbmQodG9KUyhsZXhpY2FsR2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QsICpzdGF0ZSkpOworICAgICAgICB9LCBbJl0oY29uc3QgU3Ry
aW5nJiBzdGF0ZSkgeworICAgICAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcodm0sIHN0YXRl
KSk7CisgICAgICAgIH0sIFsmXShSZWZQdHI8RmlsZT4pIHsKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICB9KTsKKworICAgICAgICBhcmdzLmFwcGVuZChqc05vbnRy
aXZpYWxTdHJpbmcodm0sICJyZXN0b3JlIl9zKSk7CisgICAgfSk7Cit9CisKIHZvaWQgSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlOjpzZXRGb3JtQXNzb2NpYXRlZENhbGxiYWNrKEpTT2JqZWN0KiBj
YWxsYmFjaykKIHsKICAgICBtX2Zvcm1Bc3NvY2lhdGVkQ2FsbGJhY2sgPSBjYWxsYmFjazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmgKaW5kZXggZTg4MzVkMGMzZjBmLi5iYWI5NmUyZDNkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNr
LmgiCisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIlF1YWxp
ZmllZE5hbWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1dlYWsuaD4KQEAgLTQ3LDkgKzQ4LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBF
bGVtZW50OworY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKLWNs
YXNzIE1hdGhNTEVsZW1lbnQ7Ci1jbGFzcyBTVkdFbGVtZW50OwogCiBlbnVtIGNsYXNzIFBhcnNl
ckNvbnN0cnVjdEVsZW1lbnRXaXRoRW1wdHlTdGFjayB7IE5vLCBZZXMgfTsKIApAQCAtNjIsNiAr
NjIsNyBAQCBwdWJsaWM6CiAKICAgICBSZWY8RWxlbWVudD4gY29uc3RydWN0RWxlbWVudFdpdGhG
YWxsYmFjayhEb2N1bWVudCYsIGNvbnN0IEF0b21TdHJpbmcmLCBQYXJzZXJDb25zdHJ1Y3RFbGVt
ZW50V2l0aEVtcHR5U3RhY2sgPSBQYXJzZXJDb25zdHJ1Y3RFbGVtZW50V2l0aEVtcHR5U3RhY2s6
Ok5vKTsKICAgICBSZWY8RWxlbWVudD4gY29uc3RydWN0RWxlbWVudFdpdGhGYWxsYmFjayhEb2N1
bWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgdXBncmFkZUVsZW1lbnQoRWxlbWVudCYp
OwogCkBAIC04OCwxMCArODksMjMgQEAgcHVibGljOgogICAgIGJvb2wgaXNTaGFkb3dEaXNhYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaGFkb3dEaXNhYmxlZDsgfQogCiAgICAgdm9pZCBzZXRJ
c0Zvcm1Bc3NvY2lhdGVkKCkgeyBtX2lzRm9ybUFzc29jaWF0ZWQgPSB0cnVlOyB9CisgICAgYm9v
bCBpc0Zvcm1Bc3NvY2lhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Zvcm1Bc3NvY2lhdGVkOyB9
CisKICAgICB2b2lkIHNldEZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2soSlNDOjpKU09iamVjdCopOwor
ICAgIGJvb2wgaGFzRm9ybUFzc29jaWF0ZWRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuICEhbV9m
b3JtQXNzb2NpYXRlZENhbGxiYWNrOyB9CisgICAgdm9pZCBpbnZva2VGb3JtQXNzb2NpYXRlZENh
bGxiYWNrKEVsZW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKKwogICAgIHZvaWQgc2V0Rm9ybVJl
c2V0Q2FsbGJhY2soSlNDOjpKU09iamVjdCopOworICAgIGJvb2wgaGFzRm9ybVJlc2V0Q2FsbGJh
Y2soKSBjb25zdCB7IHJldHVybiAhIW1fZm9ybVJlc2V0Q2FsbGJhY2s7IH0KKyAgICB2b2lkIGlu
dm9rZUZvcm1SZXNldENhbGxiYWNrKEVsZW1lbnQmKTsKKwogICAgIHZvaWQgc2V0Rm9ybURpc2Fi
bGVkQ2FsbGJhY2soSlNDOjpKU09iamVjdCopOworICAgIGJvb2wgaGFzRm9ybURpc2FibGVkQ2Fs
bGJhY2soKSBjb25zdCB7IHJldHVybiAhIW1fZm9ybURpc2FibGVkQ2FsbGJhY2s7IH0KKyAgICB2
b2lkIGludm9rZUZvcm1EaXNhYmxlZENhbGxiYWNrKEVsZW1lbnQmLCBib29sIGlzRGlzYWJsZWQp
OworCiAgICAgdm9pZCBzZXRGb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soSlNDOjpKU09iamVjdCop
OworICAgIGJvb2wgaGFzRm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4g
ISFtX2Zvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjazsgfQorICAgIHZvaWQgaW52b2tlRm9ybVN0YXRl
UmVzdG9yZUNhbGxiYWNrKEVsZW1lbnQmLCBDdXN0b21FbGVtZW50Rm9ybVZhbHVlIHN0YXRlKTsK
IAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOyB9CiAgICAgSlNDOjpKU09iamVjdCogY29uc3RydWN0b3IoKSB7IHJldHVybiBt
X2NvbnN0cnVjdG9yLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDMwYTYwMTg4NTY5Ni4uZDc0MGZhMTdhODQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3Vz
dG9tLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpT
RE9NQ29uc3RydWN0b3JCYXNlLmgiCkBAIC04NSw3ICs4Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGNv
bnN0cnVjdEpTSFRNTEVsZW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGCiAgICAgICAgIGF1dG8qIG5ld0VsZW1lbnRTdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBuZXdUYXJn
ZXQsIGJhc2VTdHJ1Y3R1cmUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogCi0gICAgICAgIFJlZjxIVE1MRWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50Ojpj
cmVhdGUoZWxlbWVudEludGVyZmFjZS0+bmFtZSgpLCBkb2N1bWVudCk7CisgICAgICAgIFJlZjxI
VE1MRWxlbWVudD4gZWxlbWVudCA9IGVsZW1lbnRJbnRlcmZhY2UtPmNyZWF0ZUVsZW1lbnQoZG9j
dW1lbnQpOwogICAgICAgICBlbGVtZW50LT5zZXRJc0RlZmluZWRDdXN0b21FbGVtZW50KCplbGVt
ZW50SW50ZXJmYWNlKTsKICAgICAgICAgYXV0byoganNFbGVtZW50ID0gSlNIVE1MRWxlbWVudDo6
Y3JlYXRlKG5ld0VsZW1lbnRTdHJ1Y3R1cmUsIG5ld1RhcmdldEdsb2JhbE9iamVjdCwgZWxlbWVu
dC5nZXQoKSk7CiAgICAgICAgIGNhY2hlV3JhcHBlcihuZXdUYXJnZXRHbG9iYWxPYmplY3QtPndv
cmxkKCksIGVsZW1lbnQucHRyKCksIGpzRWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaAppbmRleCA4NjFmYTVmYWUwN2IuLjRh
Njg1MGJlYjk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
clRlc3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
VGVzdEZ1bmN0aW9ucy5oCkBAIC01NzUsMTYgKzU3NSwxMiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wg
bWF0Y2hlc01vZGFsUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIAogQUxXQVlT
X0lOTElORSBib29sIG1hdGNoZXNVc2VySW52YWxpZFBzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgaWYgKGNvbnN0IGF1dG8qIGZvcm1Db250cm9sRWxlbWVudCA9IGR5
bmFtaWNEb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PihlbGVtZW50KSkKLSAgICAgICAg
cmV0dXJuIGZvcm1Db250cm9sRWxlbWVudC0+bWF0Y2hlc1VzZXJJbnZhbGlkUHNldWRvQ2xhc3Mo
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlc1VzZXJJbnZh
bGlkUHNldWRvQ2xhc3MoKTsKIH0KIAogQUxXQVlTX0lOTElORSBib29sIG1hdGNoZXNVc2VyVmFs
aWRQc2V1ZG9DbGFzcyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlmIChjb25zdCBh
dXRvKiBmb3JtQ29udHJvbEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTEZvcm1Db250cm9s
RWxlbWVudD4oZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBmb3JtQ29udHJvbEVsZW1lbnQtPm1h
dGNoZXNVc2VyVmFsaWRQc2V1ZG9DbGFzcygpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gZWxlbWVudC5tYXRjaGVzVXNlclZhbGlkUHNldWRvQ2xhc3MoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1l
bnRSZWFjdGlvblF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVh
Y3Rpb25RdWV1ZS5jcHAKaW5kZXggZTEwMjRmOWRmZjJhLi5lMTI0OWFlMzllNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCkBAIC00OSw2ICs1
MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERpc2Nvbm5lY3RlZCwKICAgICAgICAgQWRvcHRlZCwK
ICAgICAgICAgQXR0cmlidXRlQ2hhbmdlZCwKKyAgICAgICAgRm9ybUFzc29jaWF0ZWQsCisgICAg
ICAgIEZvcm1SZXNldCwKKyAgICAgICAgRm9ybURpc2FibGVkLAorICAgICAgICBGb3JtU3RhdGVS
ZXN0b3JlLAogICAgIH07CiAKICAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZUl0ZW0oVHlw
ZSB0eXBlKQpAQCAtNjgsNiArNzMsMjEgQEAgcHVibGljOgogICAgICAgICAsIG1fbmV3VmFsdWUo
bmV3VmFsdWUpCiAgICAgeyB9CiAKKyAgICBleHBsaWNpdCBDdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZUl0ZW0oSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgICAgICA6IG1fdHlwZShUeXBlOjpG
b3JtQXNzb2NpYXRlZCkKKyAgICAgICAgLCBtX2Fzc29jaWF0ZWRGb3JtKGZvcm0pCisgICAgeyB9
CisKKyAgICBleHBsaWNpdCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZUl0ZW0oYm9vbCBpc0Rp
c2FibGVkKQorICAgICAgICA6IG1fdHlwZShUeXBlOjpGb3JtRGlzYWJsZWQpCisgICAgICAgICwg
bV9pc0Rpc2FibGVkKGlzRGlzYWJsZWQpCisgICAgeyB9CisKKyAgICBleHBsaWNpdCBDdXN0b21F
bGVtZW50UmVhY3Rpb25RdWV1ZUl0ZW0oQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSYmIHN0YXRlKQor
ICAgICAgICA6IG1fdHlwZShUeXBlOjpGb3JtU3RhdGVSZXN0b3JlKQorICAgICAgICAsIG1fZm9y
bUFzc29jaWF0ZWRTdGF0ZShzdGF0ZSkKKyAgICB7IH0KKwogICAgIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAgICAgdm9pZCBpbnZva2UoRWxlbWVudCYgZWxlbWVudCwg
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJiBlbGVtZW50SW50ZXJmYWNlKQpAQCAtODksNiArMTA5
LDE5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIEFTU0VSVChtX2F0dHJpYnV0ZU5hbWUpOwogICAg
ICAgICAgICAgZWxlbWVudEludGVyZmFjZS5pbnZva2VBdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2so
ZWxlbWVudCwgbV9hdHRyaWJ1dGVOYW1lLnZhbHVlKCksIG1fb2xkVmFsdWUsIG1fbmV3VmFsdWUp
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVHlwZTo6Rm9ybUFzc29jaWF0ZWQ6
CisgICAgICAgICAgICBlbGVtZW50SW50ZXJmYWNlLmludm9rZUZvcm1Bc3NvY2lhdGVkQ2FsbGJh
Y2soZWxlbWVudCwgbV9hc3NvY2lhdGVkRm9ybS5nZXQoKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBUeXBlOjpGb3JtUmVzZXQ6CisgICAgICAgICAgICBlbGVtZW50SW50ZXJm
YWNlLmludm9rZUZvcm1SZXNldENhbGxiYWNrKGVsZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgVHlwZTo6Rm9ybURpc2FibGVkOgorICAgICAgICAgICAgQVNTRVJUKG1f
aXNEaXNhYmxlZCk7CisgICAgICAgICAgICBlbGVtZW50SW50ZXJmYWNlLmludm9rZUZvcm1EaXNh
YmxlZENhbGxiYWNrKGVsZW1lbnQsIG1faXNEaXNhYmxlZC52YWx1ZSgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIFR5cGU6OkZvcm1TdGF0ZVJlc3RvcmU6CisgICAgICAgICAg
ICBlbGVtZW50SW50ZXJmYWNlLmludm9rZUZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhlbGVtZW50
LCBtX2Zvcm1Bc3NvY2lhdGVkU3RhdGUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTk5LDYgKzEzMiwxMiBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8
UXVhbGlmaWVkTmFtZT4gbV9hdHRyaWJ1dGVOYW1lOwogICAgIEF0b21TdHJpbmcgbV9vbGRWYWx1
ZTsKICAgICBBdG9tU3RyaW5nIG1fbmV3VmFsdWU7CisKKyAgICAvLyBGSVhNRTogRG9uJ3QgYWxs
b2NhdGUgYWxsIHRoZXNlIGFyZ3VtZW50cyBmb3IgYWxsIGNhbGxiYWNrIHR5cGVzLgorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDk5NTYKKyAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IG1faXNEaXNhYmxlZDsKKyAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50
PiBtX2Fzc29jaWF0ZWRGb3JtOworICAgIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUgbV9mb3JtQXNz
b2NpYXRlZFN0YXRlOwogfTsKIAogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OkN1c3RvbUVs
ZW1lbnRSZWFjdGlvblF1ZXVlKEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYgZWxlbWVudEludGVy
ZmFjZSkKQEAgLTIwNyw2ICsyNDYsNTUgQEAgdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1
ZTo6ZW5xdWV1ZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQKICAgICBl
bnF1ZXVlRWxlbWVudE9uQXBwcm9wcmlhdGVFbGVtZW50UXVldWUoZWxlbWVudCk7CiB9CiAKK3Zv
aWQgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVGb3JtQXNzb2NpYXRlZENhbGxi
YWNrSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgSFRNTEZvcm1FbGVtZW50KiBhc3NvY2lhdGVk
Rm9ybSkKK3sKKyAgICBBU1NFUlQoQ3VzdG9tRWxlbWVudFJlYWN0aW9uRGlzYWxsb3dlZFNjb3Bl
Ojppc1JlYWN0aW9uQWxsb3dlZCgpKTsKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLnJlZkNv
dW50KCkgPD0gMCkKKyAgICAgICAgcmV0dXJuOyAvLyBEb24ndCBlbnF1ZXVlIGZvcm1Bc3NvY2lh
dGVkQ2FsbGJhY2sgaWYgdGhlIGVudGlyZSBkb2N1bWVudCBpcyBnZXR0aW5nIGRlc3RydWN0ZWQu
CisgICAgYXV0byYgcXVldWUgPSAqZWxlbWVudC5yZWFjdGlvblF1ZXVlKCk7CisgICAgaWYgKCFx
dWV1ZS5tX2ludGVyZmFjZS0+aGFzRm9ybUFzc29jaWF0ZWRDYWxsYmFjaygpKQorICAgICAgICBy
ZXR1cm47CisgICAgQVNTRVJUKHF1ZXVlLmlzRm9ybUFzc29jaWF0ZWQoKSk7CisgICAgcXVldWUu
bV9pdGVtcy5hcHBlbmQoQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWVJdGVtIHsgYXNzb2NpYXRl
ZEZvcm0gfSk7CisgICAgZW5xdWV1ZUVsZW1lbnRPbkFwcHJvcHJpYXRlRWxlbWVudFF1ZXVlKGVs
ZW1lbnQpOworfQorCit2b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRm9y
bVJlc2V0Q2FsbGJhY2tJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50KQoreworICAgIEFTU0VSVChD
dXN0b21FbGVtZW50UmVhY3Rpb25EaXNhbGxvd2VkU2NvcGU6OmlzUmVhY3Rpb25BbGxvd2VkKCkp
OworICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkucmVmQ291bnQoKSA+IDApOworICAgIGF1
dG8mIHF1ZXVlID0gKmVsZW1lbnQucmVhY3Rpb25RdWV1ZSgpOworICAgIGlmICghcXVldWUubV9p
bnRlcmZhY2UtPmhhc0Zvcm1SZXNldENhbGxiYWNrKCkpCisgICAgICAgIHJldHVybjsKKyAgICBB
U1NFUlQocXVldWUuaXNGb3JtQXNzb2NpYXRlZCgpKTsKKyAgICBxdWV1ZS5tX2l0ZW1zLmFwcGVu
ZCh7IEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbTo6VHlwZTo6Rm9ybVJlc2V0IH0pOwor
ICAgIGVucXVldWVFbGVtZW50T25BcHByb3ByaWF0ZUVsZW1lbnRRdWV1ZShlbGVtZW50KTsKK30K
Kwordm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUZvcm1EaXNhYmxlZENh
bGxiYWNrSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgYm9vbCBpc0Rpc2FibGVkKQoreworICAg
IEFTU0VSVChDdXN0b21FbGVtZW50UmVhY3Rpb25EaXNhbGxvd2VkU2NvcGU6OmlzUmVhY3Rpb25B
bGxvd2VkKCkpOworICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkucmVmQ291bnQoKSA+IDAp
OworICAgIGF1dG8mIHF1ZXVlID0gKmVsZW1lbnQucmVhY3Rpb25RdWV1ZSgpOworICAgIGlmICgh
cXVldWUubV9pbnRlcmZhY2UtPmhhc0Zvcm1EaXNhYmxlZENhbGxiYWNrKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBBU1NFUlQocXVldWUuaXNGb3JtQXNzb2NpYXRlZCgpKTsKKyAgICBxdWV1ZS5t
X2l0ZW1zLmFwcGVuZChDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZUl0ZW0geyBpc0Rpc2FibGVk
IH0pOworICAgIGVucXVldWVFbGVtZW50T25BcHByb3ByaWF0ZUVsZW1lbnRRdWV1ZShlbGVtZW50
KTsKK30KKwordm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUZvcm1TdGF0
ZVJlc3RvcmVDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQsIEN1c3RvbUVsZW1lbnRG
b3JtVmFsdWUmJiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQoQ3VzdG9tRWxlbWVudFJlYWN0aW9uRGlz
YWxsb3dlZFNjb3BlOjppc1JlYWN0aW9uQWxsb3dlZCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5k
b2N1bWVudCgpLnJlZkNvdW50KCkgPiAwKTsKKyAgICBhdXRvJiBxdWV1ZSA9ICplbGVtZW50LnJl
YWN0aW9uUXVldWUoKTsKKyAgICBpZiAoIXF1ZXVlLm1faW50ZXJmYWNlLT5oYXNGb3JtU3RhdGVS
ZXN0b3JlQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChxdWV1ZS5pc0Zv
cm1Bc3NvY2lhdGVkKCkpOworICAgIHF1ZXVlLm1faXRlbXMuYXBwZW5kKEN1c3RvbUVsZW1lbnRS
ZWFjdGlvblF1ZXVlSXRlbSB7IFdURk1vdmUoc3RhdGUpIH0pOworICAgIGVucXVldWVFbGVtZW50
T25BcHByb3ByaWF0ZUVsZW1lbnRRdWV1ZShlbGVtZW50KTsKK30KKwogdm9pZCBDdXN0b21FbGVt
ZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZVBvc3RVcGdyYWRlUmVhY3Rpb25zKEVsZW1lbnQmIGVs
ZW1lbnQpCiB7CiAgICAgQVNTRVJUKEN1c3RvbUVsZW1lbnRSZWFjdGlvbkRpc2FsbG93ZWRTY29w
ZTo6aXNSZWFjdGlvbkFsbG93ZWQoKSk7CkBAIC0yMzgsNiArMzI2LDE2IEBAIGJvb2wgQ3VzdG9t
RWxlbWVudFJlYWN0aW9uUXVldWU6OmlzRWxlbWVudEludGVybmFsc0Rpc2FibGVkKCkgY29uc3QK
ICAgICByZXR1cm4gbV9pbnRlcmZhY2UtPmlzRWxlbWVudEludGVybmFsc0Rpc2FibGVkKCk7CiB9
CiAKK2Jvb2wgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmlzRm9ybUFzc29jaWF0ZWQoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ludGVyZmFjZS0+aXNGb3JtQXNzb2NpYXRlZCgpOworfQor
Citib29sIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjpoYXNGb3JtU3RhdGVSZXN0b3JlQ2Fs
bGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2ludGVyZmFjZS0+aGFzRm9ybVN0YXRlUmVz
dG9yZUNhbGxiYWNrKCk7Cit9CisKIGJvb2wgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6Omlz
RWxlbWVudEludGVybmFsc0F0dGFjaGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lbGVtZW50
SW50ZXJuYWxzQXR0YWNoZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9t
RWxlbWVudFJlYWN0aW9uUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5oCmluZGV4IDM3OTlhZDY1MjAxNi4uYWFlOGMwMzgyOTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaApAQCAtMjUs
NiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRGb3Jt
VmFsdWUuaCIKICNpbmNsdWRlICJHQ1JlYWNoYWJsZVJlZi5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00Miw2ICs0Myw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbTsK
IGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEhUTUxGb3JtRWxlbWVudDsK
IGNsYXNzIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiAK
QEAgLTc1LDEyICs3NywxOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZW5xdWV1ZURpc2Nv
bm5lY3RlZENhbGxiYWNrSWZOZWVkZWQoRWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGVucXVl
dWVBZG9wdGVkQ2FsbGJhY2tJZk5lZWRlZChFbGVtZW50JiwgRG9jdW1lbnQmIG9sZERvY3VtZW50
LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpOwogICAgIHN0YXRpYyB2b2lkIGVucXVldWVBdHRyaWJ1
dGVDaGFuZ2VkQ2FsbGJhY2tJZk5lZWRlZChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSk7
CisgICAgc3RhdGljIHZvaWQgZW5xdWV1ZUZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2tJZk5lZWRlZChF
bGVtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgc3RhdGljIHZvaWQgZW5xdWV1ZUZvcm1E
aXNhYmxlZENhbGxiYWNrSWZOZWVkZWQoRWxlbWVudCYsIGJvb2wgaXNEaXNhYmxlZCk7CisgICAg
c3RhdGljIHZvaWQgZW5xdWV1ZUZvcm1SZXNldENhbGxiYWNrSWZOZWVkZWQoRWxlbWVudCYpOwor
ICAgIHN0YXRpYyB2b2lkIGVucXVldWVGb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2tJZk5lZWRlZChF
bGVtZW50JiwgQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSYmKTsKICAgICBzdGF0aWMgdm9pZCBlbnF1
ZXVlUG9zdFVwZ3JhZGVSZWFjdGlvbnMoRWxlbWVudCYpOwogCiAgICAgYm9vbCBvYnNlcnZlc1N0
eWxlQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0VsZW1lbnRJbnRlcm5hbHNEaXNhYmxl
ZCgpIGNvbnN0OwogICAgIGJvb2wgaXNFbGVtZW50SW50ZXJuYWxzQXR0YWNoZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldEVsZW1lbnRJbnRlcm5hbHNBdHRhY2hlZCgpOworICAgIGJvb2wgaXNGb3Jt
QXNzb2NpYXRlZCgpIGNvbnN0OworICAgIGJvb2wgaGFzRm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNr
KCkgY29uc3Q7CiAKICAgICB2b2lkIGludm9rZUFsbChFbGVtZW50Jik7CiAgICAgdm9pZCBjbGVh
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjlmNDI3NGFkMTI1Li40NmQ0YWY0Nzgw
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTEyLDYgKzExMiw3IEBACiAjaW5jbHVk
ZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWF5YmVGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVDb2xsZWN0aW9uLmgi
CkBAIC0xMDA1LDcgKzEwMDYsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBSZWY8SFRNTEVsZW1l
bnQ+IGNyZWF0ZVVwZ3JhZGVDYW5kaWRhdGVFbGVtZW50KERvY3VtZW50JiBkbwogICAgIGlmIChE
b2N1bWVudDo6dmFsaWRhdGVDdXN0b21FbGVtZW50TmFtZShuYW1lLmxvY2FsTmFtZSgpKSAhPSBD
dXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXM6OlZhbGlkKQogICAgICAgICByZXR1cm4g
SFRNTFVua25vd25FbGVtZW50OjpjcmVhdGUobmFtZSwgZG9jdW1lbnQpOwogCi0gICAgYXV0byBl
bGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShuYW1lLCBkb2N1bWVudCk7CisgICAgYXV0byBl
bGVtZW50ID0gSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpjcmVhdGUobmFt
ZSwgZG9jdW1lbnQpOwogICAgIGVsZW1lbnQtPnNldElzQ3VzdG9tRWxlbWVudFVwZ3JhZGVDYW5k
aWRhdGUoKTsKICAgICByZXR1cm4gZWxlbWVudDsKIH0KQEAgLTEyMDYsNyArMTIwNyw3IEBAIHN0
YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUZhbGxiYWNrSFRNTEVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBRdWFsCiAgICAgICAgIGF1dG8qIHJlZ2lzdHJ5ID0gd2luZG93LT5j
dXN0b21FbGVtZW50UmVnaXN0cnkoKTsKICAgICAgICAgaWYgKFVOTElLRUxZKHJlZ2lzdHJ5KSkg
ewogICAgICAgICAgICAgaWYgKFJlZlB0ciBlbGVtZW50SW50ZXJmYWNlID0gcmVnaXN0cnktPmZp
bmRJbnRlcmZhY2UobmFtZSkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGVsZW1lbnQgPSBIVE1M
RWxlbWVudDo6Y3JlYXRlKG5hbWUsIGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgICBhdXRvIGVs
ZW1lbnQgPSBlbGVtZW50SW50ZXJmYWNlLT5jcmVhdGVFbGVtZW50KGRvY3VtZW50KTsKICAgICAg
ICAgICAgICAgICBlbGVtZW50LT5zZXRJc0N1c3RvbUVsZW1lbnRVcGdyYWRlQ2FuZGlkYXRlKCk7
CiAgICAgICAgICAgICAgICAgZWxlbWVudC0+ZW5xdWV1ZVRvVXBncmFkZSgqZWxlbWVudEludGVy
ZmFjZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggMTZhNjJlMzYwOTdkLi43NWY3ZjJlMGI1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
Rm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNFdmVudC5oIgorI2luY2x1ZGUgIkZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTgzOCw2ICs4
MzksMTYgQEAgYm9vbCBFbGVtZW50Ojppc1VzZXJBY3Rpb25FbGVtZW50SGFzRm9jdXNWaXNpYmxl
KCkgY29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVudHMoKS5oYXNG
b2N1c1Zpc2libGUoKnRoaXMpOwogfQogCitGb3JtTGlzdGVkRWxlbWVudCogRWxlbWVudDo6YXNG
b3JtTGlzdGVkRWxlbWVudCgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1ZhbGlkYXRl
ZEZvcm1MaXN0ZWRFbGVtZW50KiBFbGVtZW50Ojphc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBFbGVtZW50Ojppc1VzZXJBY3Rp
b25FbGVtZW50SGFzRm9jdXNXaXRoaW4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1VzZXJBY3Rp
b25FbGVtZW50KCkpOwpAQCAtMjg4OSw3ICsyOTAwLDYgQEAgQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWUqIEVsZW1lbnQ6OnJlYWN0aW9uUXVldWUoKSBjb25zdAogICAgIGlmIChpc0ZhaWxlZE9y
UHJlY3VzdG9taXplZEN1c3RvbUVsZW1lbnQoKSkgewogICAgICAgICBhdXRvKiBxdWV1ZSA9IGVs
ZW1lbnRSYXJlRGF0YSgpLT5jdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZSgpOwogICAgICAgICBB
U1NFUlQocXVldWUpOwotICAgICAgICBBU1NFUlQocXVldWUtPmlzRW1wdHkoKSB8fCBxdWV1ZS0+
aGFzSnVzdFVwZ3JhZGVSZWFjdGlvbigpKTsKICAgICB9CiAjZW5kaWYKICAgICBpZiAoIWhhc1Jh
cmVEYXRhKCkpCkBAIC00MDYxLDYgKzQwNzEsMTYgQEAgYm9vbCBFbGVtZW50OjptYXRjaGVzSW52
YWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRWxl
bWVudDo6bWF0Y2hlc1VzZXJWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgRWxlbWVudDo6bWF0Y2hlc1VzZXJJbnZhbGlkUHNldWRvQ2xhc3Mo
KSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBFbGVtZW50OjptYXRjaGVz
UmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTUx
MzcsNiArNTE1NywyMyBAQCB2b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZVN0eWxlTWFwKFJlZjxT
dHlsZVByb3BlcnR5TWFwPiYmIG1hcCkKICAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRB
dHRyaWJ1dGVTdHlsZU1hcChXVEZNb3ZlKG1hcCkpOwogfQogCit2b2lkIEVsZW1lbnQ6OmVuc3Vy
ZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoaXM8
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50PigqdGhpcykpOworICAgIGF1dG8m
IGRhdGEgPSBlbnN1cmVFbGVtZW50UmFyZURhdGEoKTsKKyAgICBpZiAoIWRhdGEuZm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50KCkpCisgICAgICAgIGRhdGEuc2V0Rm9ybUFzc29jaWF0ZWRDdXN0
b21FbGVtZW50KG1ha2VVbmlxdWU8Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Pihkb3duY2Fz
dDxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KCp0aGlzKSkpOworfQorCitG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQmIEVsZW1lbnQ6OmZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudFVuc2FmZSgpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQoaXM8SFRNTE1heWJl
Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50PigqdGhpcykpOworICAgIEFTU0VSVChoYXNSYXJl
RGF0YSgpKTsKKyAgICBhdXRvKiBjdXN0b21FbGVtZW50ID0gZWxlbWVudFJhcmVEYXRhKCktPmZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpOworICAgIEFTU0VSVChjdXN0b21FbGVtZW50KTsK
KyAgICByZXR1cm4gKmN1c3RvbUVsZW1lbnQ7Cit9CisKIFN0eWxlUHJvcGVydHlNYXBSZWFkT25s
eSogRWxlbWVudDo6Y29tcHV0ZWRTdHlsZU1hcCgpCiB7CiAgICAgYXV0byYgcmFyZURhdGEgPSBl
bnN1cmVFbGVtZW50UmFyZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGQzZDkyYzUyZTI2
Zi4uYjc3MTY3NDJjMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTYwLDYgKzYwLDggQEAgY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50QW5pbWF0aW9uUmFyZURhdGE7CiBjbGFzcyBFbGVt
ZW50RGF0YTsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKK2NsYXNzIEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudDsKK2NsYXNzIEZvcm1MaXN0ZWRFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFz
cyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBJbnRTaXplOwpAQCAtNzksNiArODEsNyBAQCBjbGFzcyBT
dHlsZVByb3BlcnR5TWFwOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1hcFJlYWRPbmx5OwogY2xhc3Mg
VGV4dDsKIGNsYXNzIFVuaXF1ZUVsZW1lbnREYXRhOworY2xhc3MgVmFsaWRhdGVkRm9ybUxpc3Rl
ZEVsZW1lbnQ7CiBjbGFzcyBXZWJBbmltYXRpb247CiAKIGVudW0gY2xhc3MgQW5pbWF0aW9uSW1w
YWN0IDogdWludDhfdDsKQEAgLTMwOSw2ICszMTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJz
ZXJTZXRBdHRyaWJ1dGVzKGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+Jik7CiAKICAgICBib29sIGlz
RXZlbnRIYW5kbGVyQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0OworICAgIHZpcnR1
YWwgRm9ybUxpc3RlZEVsZW1lbnQqIGFzRm9ybUxpc3RlZEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFs
IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KiBhc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
KCk7CiAgICAgdmlydHVhbCBib29sIGF0dHJpYnV0ZUNvbnRhaW5zSmF2YVNjcmlwdFVSTChjb25z
dCBBdHRyaWJ1dGUmKSBjb25zdDsKIAogICAgIC8vIFJlbW92ZSBhdHRyaWJ1dGVzIHRoYXQgbWln
aHQgaW50cm9kdWNlIHNjcmlwdGluZyBmcm9tIHRoZSB2ZWN0b3IgbGVhdmluZyB0aGUgZWxlbWVu
dCB1bmNoYW5nZWQuCkBAIC00OTgsNiArNTAzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIG1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG1h
dGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hl
c1VzZXJWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIG1hdGNoZXNV
c2VySW52YWxpZFBzZXVkb0NsYXNzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNS
ZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzSW5k
ZXRlcm1pbmF0ZVBzZXVkb0NsYXNzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNE
ZWZhdWx0UHNldWRvQ2xhc3MoKSBjb25zdDsKQEAgLTUxNiw4ICs1MjMsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1MaXN0ZWRFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRm9y
bUNvbnRyb2xFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc01heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTcGluQnV0dG9uRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZv
cm1Db250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzVGV4dEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTczMSw2ICs3NDAs
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgU3R5bGVQcm9wZXJ0eU1hcCogYXR0cmlidXRlU3R5bGVNYXAo
KTsKICAgICB2b2lkIHNldEF0dHJpYnV0ZVN0eWxlTWFwKFJlZjxTdHlsZVByb3BlcnR5TWFwPiYm
KTsKIAorICAgIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCYgZm9ybUFzc29jaWF0ZWRDdXN0
b21FbGVtZW50VW5zYWZlKCkgY29uc3Q7CisgICAgdm9pZCBlbnN1cmVGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQoKTsKKwogICAgIHZvaWQgdXBkYXRlTGFiZWwoVHJlZVNjb3BlJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkRm9yQXR0cmlidXRlVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld0Zv
ckF0dHJpYnV0ZVZhbHVlKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW50
ZXJuYWxzLmNwcAppbmRleCA0OTliN2FmMjNiYzcuLjU1NTQyM2M2NjE5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50SW50ZXJuYWxzLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgorI2luY2x1
ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC01MCw2ICs1Miw3OSBAQCBTaGFkb3dSb290KiBFbGVt
ZW50SW50ZXJuYWxzOjpzaGFkb3dSb290KCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93Um9vdDsK
IH0KIAorRXhjZXB0aW9uT3I8UmVmUHRyPEhUTUxGb3JtRWxlbWVudD4+IEVsZW1lbnRJbnRlcm5h
bHM6OmZvcm0oKSBjb25zdAoreworICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zv
cm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCisgICAgICAgIHJldHVybiBlbGVtZW50LT5mb3JtKCk7Cisg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Cit9CisKK0V4Y2VwdGlv
bk9yPHZvaWQ+IEVsZW1lbnRJbnRlcm5hbHM6OnNldEZvcm1WYWx1ZShzdGQ6Om9wdGlvbmFsPEN1
c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYgdmFsdWUsIHN0ZDo6b3B0aW9uYWw8Q3VzdG9tRWxlbWVu
dEZvcm1WYWx1ZT4mJiBzdGF0ZSkKK3sKKyAgICBpZiAoUmVmUHRyIGVsZW1lbnQgPSBlbGVtZW50
QXNGb3JtQXNzb2NpYXRlZEN1c3RvbSgpKSB7CisgICAgICAgIGVsZW1lbnQtPnNldEZvcm1WYWx1
ZShXVEZNb3ZlKHZhbHVlKSwgV1RGTW92ZShzdGF0ZSkpOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0KKworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworfQor
CitFeGNlcHRpb25Pcjx2b2lkPiBFbGVtZW50SW50ZXJuYWxzOjpzZXRWYWxpZGl0eShWYWxpZGl0
eVN0YXRlRmxhZ3MgdmFsaWRpdHlTdGF0ZUZsYWdzLCBTdHJpbmcmJiBtZXNzYWdlLCBIVE1MRWxl
bWVudCogdmFsaWRhdGlvbkFuY2hvcikKK3sKKyAgICBpZiAoUmVmUHRyIGVsZW1lbnQgPSBlbGVt
ZW50QXNGb3JtQXNzb2NpYXRlZEN1c3RvbSgpKQorICAgICAgICByZXR1cm4gZWxlbWVudC0+c2V0
VmFsaWRpdHkodmFsaWRpdHlTdGF0ZUZsYWdzLCBXVEZNb3ZlKG1lc3NhZ2UpLCB2YWxpZGF0aW9u
QW5jaG9yKTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKK30K
KworRXhjZXB0aW9uT3I8Ym9vbD4gRWxlbWVudEludGVybmFsczo6d2lsbFZhbGlkYXRlKCkgY29u
c3QKK3sKKyAgICBpZiAoUmVmUHRyIGVsZW1lbnQgPSBlbGVtZW50QXNGb3JtQXNzb2NpYXRlZEN1
c3RvbSgpKQorICAgICAgICByZXR1cm4gZWxlbWVudC0+d2lsbFZhbGlkYXRlKCk7CisgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Cit9CisKK0V4Y2VwdGlvbk9yPFJl
ZlB0cjxWYWxpZGl0eVN0YXRlPj4gRWxlbWVudEludGVybmFsczo6dmFsaWRpdHkoKQoreworICAg
IGlmIChSZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCisg
ICAgICAgIHJldHVybiBlbGVtZW50LT52YWxpZGl0eSgpOworICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciB9OworfQorCitFeGNlcHRpb25PcjxTdHJpbmc+IEVsZW1lbnRJ
bnRlcm5hbHM6OnZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKK3sKKyAgICBpZiAoUmVmUHRyIGVs
ZW1lbnQgPSBlbGVtZW50QXNGb3JtQXNzb2NpYXRlZEN1c3RvbSgpKQorICAgICAgICByZXR1cm4g
ZWxlbWVudC0+dmFsaWRhdGlvbk1lc3NhZ2UoKTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IgfTsKK30KKworRXhjZXB0aW9uT3I8Ym9vbD4gRWxlbWVudEludGVybmFs
czo6cmVwb3J0VmFsaWRpdHkoKQoreworICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRB
c0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCisgICAgICAgIHJldHVybiBlbGVtZW50LT5yZXBvcnRW
YWxpZGl0eSgpOworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9Owor
fQorCitFeGNlcHRpb25Pcjxib29sPiBFbGVtZW50SW50ZXJuYWxzOjpjaGVja1ZhbGlkaXR5KCkK
K3sKKyAgICBpZiAoUmVmUHRyIGVsZW1lbnQgPSBlbGVtZW50QXNGb3JtQXNzb2NpYXRlZEN1c3Rv
bSgpKQorICAgICAgICByZXR1cm4gZWxlbWVudC0+Y2hlY2tWYWxpZGl0eSgpOworICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworfQorCitFeGNlcHRpb25PcjxSZWZQ
dHI8Tm9kZUxpc3Q+PiBFbGVtZW50SW50ZXJuYWxzOjpsYWJlbHMoKQoreworICAgIGlmIChSZWZQ
dHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCisgICAgICAgIHJl
dHVybiBkb3duY2FzdDxMYWJlbGFibGVFbGVtZW50PihlbGVtZW50LT5hc0hUTUxFbGVtZW50KCkp
LmxhYmVscygpOworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9Owor
fQorCitGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQqIEVsZW1lbnRJbnRlcm5hbHM6OmVsZW1l
bnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkgY29uc3QKK3sKKyAgICBpZiAoUmVmUHRyIGVsZW1l
bnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
PihtX2VsZW1lbnQuZ2V0KCkpKQorICAgICAgICByZXR1cm4gZWxlbWVudC0+Zm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50Rm9yRWxlbWVudEludGVybmFscygpOworICAgIHJldHVybiBudWxscHRy
OworfQorCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgY29tcHV0ZVZhbHVlRm9yQXR0cmlidXRl
KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCiB7CiAgICAgYXV0
byYgdmFsdWUgPSBlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24obmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuaAppbmRleCA1YWIxNzAyMDA2NTAuLmY3
MTE1NWY3MWQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEludGVybmFscy5oCkBAIC0yNSwx
MyArMjUsMTkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDdXN0b21FbGVtZW50Rm9y
bVZhbHVlLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFw
cGFibGUuaCIKKyNpbmNsdWRlICJWYWxpZGl0eVN0YXRlLmgiCisjaW5jbHVkZSAiVmFsaWRpdHlT
dGF0ZUZsYWdzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSFRNTEZvcm1FbGVtZW50Owor
Y2xhc3MgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OworCiBjbGFzcyBFbGVtZW50SW50ZXJu
YWxzIGZpbmFsIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RWxl
bWVudEludGVybmFscz4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRWxlbWVudEludGVy
bmFscyk7CiBwdWJsaWM6CkBAIC00Myw2ICs0OSwxOSBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCog
ZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQogICAgIFNoYWRvd1Jv
b3QqIHNoYWRvd1Jvb3QoKSBjb25zdDsKIAorICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+PiBmb3JtKCkgY29uc3Q7CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGb3Jt
VmFsdWUoc3RkOjpvcHRpb25hbDxDdXN0b21FbGVtZW50Rm9ybVZhbHVlPiYmLCBzdGQ6Om9wdGlv
bmFsPEN1c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYgPSBzdGQ6Om51bGxvcHQpOworCisgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0VmFsaWRpdHkoVmFsaWRpdHlTdGF0ZUZsYWdzLCBTdHJpbmcmJiBt
ZXNzYWdlLCBIVE1MRWxlbWVudCogdmFsaWRhdGlvbkFuY2hvcik7CisgICAgRXhjZXB0aW9uT3I8
Ym9vbD4gd2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFZhbGlk
aXR5U3RhdGU+PiB2YWxpZGl0eSgpOworICAgIEV4Y2VwdGlvbk9yPFN0cmluZz4gdmFsaWRhdGlv
bk1lc3NhZ2UoKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjxib29sPiByZXBvcnRWYWxpZGl0eSgp
OworICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGNoZWNrVmFsaWRpdHkoKTsKKworICAgIEV4Y2VwdGlv
bk9yPFJlZlB0cjxOb2RlTGlzdD4+IGxhYmVscygpOworCiAgICAgLy8gRm9yIEFSSUFNaXhpbgog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIHZvaWQgc2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpOwpAQCAtNTgsNiArNzcsOCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKKyAgICBGb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQqIGVsZW1lbnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkg
Y29uc3Q7CisKICAgICBXZWFrUHRyPEhUTUxFbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRh
cmdldERhdGE+IG1fZWxlbWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50SW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW50ZXJu
YWxzLmlkbAppbmRleCAwNDI5OWE5ODdmNmUuLmViZWU1NTMwODhhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50SW50ZXJuYWxzLmlkbApAQCAtMjMsNiArMjMsOCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK3R5cGVkZWYgKEZpbGUgb3IgVVNWU3RyaW5n
IG9yIERPTUZvcm1EYXRhKSBGb3JtVmFsdWU7CisKIFsKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PUltcGxFbGVtZW50Um9vdCwKICAgICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Q9ZWxlbWVudCwKQEAg
LTMxLDYgKzMzLDE5IEBACiBdIGludGVyZmFjZSBFbGVtZW50SW50ZXJuYWxzIHsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU2hhZG93Um9vdD8gc2hhZG93Um9vdDsKIAorICAgIHVuZGVmaW5lZCBz
ZXRGb3JtVmFsdWUoRm9ybVZhbHVlPyB2YWx1ZSwgb3B0aW9uYWwgRm9ybVZhbHVlPyBzdGF0ZSk7
CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50PyBmb3JtOworCisgICAg
dW5kZWZpbmVkIHNldFZhbGlkaXR5KG9wdGlvbmFsIFZhbGlkaXR5U3RhdGVGbGFncyBmbGFncyA9
IHt9LCBvcHRpb25hbCBET01TdHJpbmcgbWVzc2FnZSwgb3B0aW9uYWwgSFRNTEVsZW1lbnQgdmFs
aWRhdGlvbkFuY2hvcik7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlk
YXRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5OworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CisgICAgYm9v
bGVhbiBjaGVja1ZhbGlkaXR5KCk7CisgICAgYm9vbGVhbiByZXBvcnRWYWxpZGl0eSgpOworCisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKKwogICAgIFtDRVJlYWN0aW9u
cywgUmVmbGVjdCwgRW5hYmxlZEJ5U2V0dGluZz1EZWZhdWx0QVJJQUZvckN1c3RvbUVsZW1lbnRz
RW5hYmxlZF0gYXR0cmlidXRlIERPTVN0cmluZz8gcm9sZTsKICAgICBbQ0VSZWFjdGlvbnMsIFJl
ZmxlY3Q9YXJpYV9hY3RpdmVkZXNjZW5kYW50LCBFbmFibGVkQnlTZXR0aW5nPURlZmF1bHRBUklB
Rm9yQ3VzdG9tRWxlbWVudHNFbmFibGVkXSBhdHRyaWJ1dGUgRWxlbWVudD8gYXJpYUFjdGl2ZURl
c2NlbmRhbnRFbGVtZW50OwogICAgIFtDRVJlYWN0aW9ucywgUmVmbGVjdD1hcmlhX2F0b21pYywg
RW5hYmxlZEJ5U2V0dGluZz1EZWZhdWx0QVJJQUZvckN1c3RvbUVsZW1lbnRzRW5hYmxlZF0gYXR0
cmlidXRlIERPTVN0cmluZz8gYXJpYUF0b21pYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5jcHAKaW5kZXggODYxYzM1NTRkNGJiLi4zMzA1ZDY5ZmVjYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudFJhcmVEYXRhIDogTm9kZVJhcmVEYXRhIHsK
ICAgICBJbnRQb2ludCBzYXZlZExheWVyU2Nyb2xsUG9zaXRpb247CiAgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxFbGVtZW50QW5pbWF0aW9uUmFyZURhdGE+PiBhbmltYXRpb25SYXJlRGF0YTsK
LSAgICB2b2lkKiBwb2ludGVyc1sxM107CisgICAgdm9pZCogcG9pbnRlcnNbMTRdOwogICAgIHZv
aWQqIGludGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKICAgICB2b2lkKiB0eXBlZE9NRGF0YVsyXTsK
ICAgICB2b2lkKiByZXNpemVPYnNlcnZlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmgKaW5kZXggNTVhMmZlZTIxMjk0Li41MzM3MDJjNmRkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJET01Ub2tlbkxp
c3QuaCIKICNpbmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dEFuaW1hdGlvblJhcmVEYXRhLmgiCisjaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJLZXlm
cmFtZUVmZmVjdFN0YWNrLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCkBAIC03MSw2ICs3
Miw5IEBAIHB1YmxpYzoKICAgICBDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEqIGN1c3RvbUVsZW1l
bnREZWZhdWx0QVJJQSgpIHsgcmV0dXJuIG1fY3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmdldCgp
OyB9CiAgICAgdm9pZCBzZXRDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoc3RkOjp1bmlxdWVfcHRy
PEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQT4mJiBkZWZhdWx0QVJJQSkgeyBtX2N1c3RvbUVsZW1l
bnREZWZhdWx0QVJJQSA9IFdURk1vdmUoZGVmYXVsdEFSSUEpOyB9CiAKKyAgICBGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQqIGZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpIHsgcmV0dXJu
IG1fZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmdldCgpOyB9CisgICAgdm9pZCBzZXRGb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoc3RkOjp1bmlxdWVfcHRyPEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudD4mJiBlbGVtZW50KSB7IG1fZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50ID0g
V1RGTW92ZShlbGVtZW50KTsgfQorCiAgICAgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVNYXAoKSBj
b25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZU1hcC5nZXQoKTsgfQogICAgIHZvaWQgc2V0QXR0cmli
dXRlTWFwKHN0ZDo6dW5pcXVlX3B0cjxOYW1lZE5vZGVNYXA+IGF0dHJpYnV0ZU1hcCkgeyBtX2F0
dHJpYnV0ZU1hcCA9IFdURk1vdmUoYXR0cmlidXRlTWFwKTsgfQogCkBAIC0xNDEsNiArMTQ1LDgg
QEAgcHVibGljOgogICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpDdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZSk7CiAgICAgICAgIGlmIChtX2N1c3RvbUVsZW1lbnREZWZhdWx0QVJJQSkK
ICAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6Q3VzdG9tRWxlbWVudERlZmF1bHRBUklB
KTsKKyAgICAgICAgaWYgKG1fZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KQorICAgICAgICAg
ICAgcmVzdWx0LmFkZChVc2VUeXBlOjpGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQpOwogICAg
ICAgICBpZiAobV9hdHRyaWJ1dGVNYXApCiAgICAgICAgICAgICByZXN1bHQuYWRkKFVzZVR5cGU6
OkF0dHJpYnV0ZU1hcCk7CiAgICAgICAgIGlmIChtX2ludGVyc2VjdGlvbk9ic2VydmVyRGF0YSkK
QEAgLTE3Nyw2ICsxODMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTaGFkb3dSb290PiBtX3No
YWRvd1Jvb3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
PiBtX2N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0
b21FbGVtZW50RGVmYXVsdEFSSUE+IG1fY3VzdG9tRWxlbWVudERlZmF1bHRBUklBOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+IG1fZm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOYW1lZE5vZGVNYXA+IG1fYXR0
cmlidXRlTWFwOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0
YT4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA3NGVlNzRhNTJh
YTQuLmU0NGZiZmUxMDg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01ODgsNiArNTg4LDcgQEAgcHJvdGVj
dGVkOgogICAgICAgICBJc0Z1bGxzY3JlZW4gPSAxIDw8IDI5LAogICAgICAgICBJc0lGcmFtZUZ1
bGxzY3JlZW4gPSAxIDw8IDMwLAogI2VuZGlmCisgICAgICAgIEhhc0Zvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudEludGVyZmFjZSA9IDFVIDw8IDMxLAogICAgIH07CiAKICAgICBlbnVtIGNsYXNz
IFRhYkluZGV4U3RhdGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRl
eCBjZGIyMzdmNWY3MDQuLmQ0NTlkMDk3MzlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aApAQCAtMjcyLDYgKzI3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcHV0ZWRTdHlsZU1hcCA9
IDEgPDwgMjAsCiAgICAgICAgIEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAgPSAxIDw8IDIx
LAogICAgICAgICBFZmZlY3RpdmVMYW5nID0gMSA8PCAyMiwKKyAgICAgICAgRm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50ID0gMSA8PCAyMywKICAgICB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjViZDFlOWMyOGIwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3MuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZhbGlkaXR5U3Rh
dGVGbGFncyB7CisgICAgYm9vbCB2YWx1ZU1pc3NpbmcgOiAxIHsgZmFsc2UgfTsKKyAgICBib29s
IHR5cGVNaXNtYXRjaCA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgcGF0dGVybk1pc21hdGNoIDog
MSB7IGZhbHNlIH07CisgICAgYm9vbCB0b29Mb25nIDogMSB7IGZhbHNlIH07CisgICAgYm9vbCB0
b29TaG9ydCA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3cgOiAxIHsgZmFs
c2UgfTsKKyAgICBib29sIHJhbmdlT3ZlcmZsb3cgOiAxIHsgZmFsc2UgfTsKKyAgICBib29sIHN0
ZXBNaXNtYXRjaCA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgYmFkSW5wdXQgOiAxIHsgZmFsc2Ug
fTsKKyAgICBib29sIGN1c3RvbUVycm9yIDogMSB7IGZhbHNlIH07CisKKyAgICBib29sIGlzVmFs
aWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICF2YWx1ZU1pc3NpbmcgJiYgIXR5cGVN
aXNtYXRjaCAmJiAhcGF0dGVybk1pc21hdGNoICYmICF0b29Mb25nICYmICF0b29TaG9ydCAmJiAh
cmFuZ2VVbmRlcmZsb3cgJiYgIXJhbmdlT3ZlcmZsb3cgJiYgIXN0ZXBNaXNtYXRjaCAmJiAhYmFk
SW5wdXQgJiYgIWN1c3RvbUVycm9yOworICAgIH0KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L1ZhbGlkaXR5U3RhdGVGbGFncy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi45MGYwZjE1ZWZkZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVmFsaWRpdHlTdGF0ZUZsYWdzLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
ZGljdGlvbmFyeSBWYWxpZGl0eVN0YXRlRmxhZ3MgeworICAgIGJvb2xlYW4gdmFsdWVNaXNzaW5n
ID0gZmFsc2U7CisgICAgYm9vbGVhbiB0eXBlTWlzbWF0Y2ggPSBmYWxzZTsKKyAgICBib29sZWFu
IHBhdHRlcm5NaXNtYXRjaCA9IGZhbHNlOworICAgIGJvb2xlYW4gdG9vTG9uZyA9IGZhbHNlOwor
ICAgIGJvb2xlYW4gdG9vU2hvcnQgPSBmYWxzZTsKKyAgICBib29sZWFuIHJhbmdlVW5kZXJmbG93
ID0gZmFsc2U7CisgICAgYm9vbGVhbiByYW5nZU92ZXJmbG93ID0gZmFsc2U7CisgICAgYm9vbGVh
biBzdGVwTWlzbWF0Y2ggPSBmYWxzZTsKKyAgICBib29sZWFuIGJhZElucHV0ID0gZmFsc2U7Cisg
ICAgYm9vbGVhbiBjdXN0b21FcnJvciA9IGZhbHNlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggN2RlYzI1ZGVmZDgyLi4yYmFjZGJiMjc1ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yNDkwLDggKzI0
OTAsOCBAQCBzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiBzY2FuRm9yRm9ybShFbGVtZW50KiBzdGFy
dCkKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxIVE1MRWxlbWVu
dD4oc3RhcnQtPmRvY3VtZW50KCkpKSB7CiAgICAgICAgIGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+
KGVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuICZkb3duY2FzdDxIVE1MRm9ybUVsZW1lbnQ+
KGVsZW1lbnQpOwotICAgICAgICBpZiAoaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVu
dCkpCi0gICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4o
ZWxlbWVudCkuZm9ybSgpOworICAgICAgICBpZiAoZWxlbWVudC5pc0Zvcm1MaXN0ZWRFbGVtZW50
KCkpCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5hc0Zvcm1MaXN0ZWRFbGVtZW50KCktPmZv
cm0oKTsKICAgICAgICAgaWYgKGlzPEhUTUxGcmFtZUVsZW1lbnRCYXNlPihlbGVtZW50KSkgewog
ICAgICAgICAgICAgaWYgKGF1dG8qIGNvbnRlbnREb2N1bWVudCA9IGRvd25jYXN0PEhUTUxGcmFt
ZUVsZW1lbnRCYXNlPihlbGVtZW50KS5jb250ZW50RG9jdW1lbnQoKSkgewogICAgICAgICAgICAg
ICAgIGlmIChhdXRvKiBmcmFtZVJlc3VsdCA9IHNjYW5Gb3JGb3JtKGNvbnRlbnREb2N1bWVudC0+
ZG9jdW1lbnRFbGVtZW50KCkpKQpAQCAtMjUwMiw2ICsyNTAyLDE1IEBAIHN0YXRpYyBIVE1MRm9y
bUVsZW1lbnQqIHNjYW5Gb3JGb3JtKEVsZW1lbnQqIHN0YXJ0KQogICAgIHJldHVybiBudWxscHRy
OwogfQogCitzdGF0aWMgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQqIGZpbmRGb3JtQ29udHJv
bEVsZW1lbnRBbmNlc3RvcihFbGVtZW50JiBlbGVtZW50KQoreworICAgIGZvciAoYXV0byYgYW5j
ZXN0b3IgOiBsaW5lYWdlT2ZUeXBlPEVsZW1lbnQ+KGVsZW1lbnQpKSB7CisgICAgICAgIGlmIChh
dXRvKiBmb3JtQ29udHJvbEFuY2VzdG9yID0gYW5jZXN0b3IuYXNWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sQW5jZXN0b3I7CisgICAg
fQorICAgIHJldHVybiBudWxscHRyOworfQorCiAvLyBXZSBsb29rIGZvciBlaXRoZXIgdGhlIGZv
cm0gY29udGFpbmluZyB0aGUgY3VycmVudCBmb2N1cywgb3IgZm9yIG9uZSBpbW1lZGlhdGVseSBh
ZnRlciBpdAogSFRNTEZvcm1FbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6Y3VycmVudEZvcm0oKSBj
b25zdAogewpAQCAtMjUxNCw3ICsyNTIzLDcgQEAgSFRNTEZvcm1FbGVtZW50KiBGcmFtZVNlbGVj
dGlvbjo6Y3VycmVudEZvcm0oKSBjb25zdAogCiAgICAgaWYgKGF1dG8gZm9ybSA9IGxpbmVhZ2VP
ZlR5cGU8SFRNTEZvcm1FbGVtZW50Pigqc3RhcnQpLmZpcnN0KCkpCiAgICAgICAgIHJldHVybiBm
b3JtOwotICAgIGlmIChhdXRvIGZvcm1Db250cm9sID0gbGluZWFnZU9mVHlwZTxIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Pigqc3RhcnQpLmZpcnN0KCkpCisgICAgaWYgKGF1dG8qIGZvcm1Db250cm9s
ID0gZmluZEZvcm1Db250cm9sRWxlbWVudEFuY2VzdG9yKCpzdGFydCkpCiAgICAgICAgIHJldHVy
biBmb3JtQ29udHJvbC0+Zm9ybSgpOwogCiAgICAgLy8gVHJ5IHdhbGtpbmcgZm9yd2FyZCBpbiB0
aGUgbm9kZSB0cmVlIHRvIGZpbmQgYSBmb3JtIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0N1c3RvbUVsZW1lbnRGb3JtVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uZTlhODUzZDljNWIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DdXN0b21FbGVtZW50Rm9ybVZhbHVlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKKyNpbmNsdWRl
ICJGaWxlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEZp
bGU+LCBTdHJpbmcsIFJlZlB0cjxET01Gb3JtRGF0YT4+OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mN2E0NDg2
OTEzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudC5jcHAKQEAgLTAsMCArMSwyODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Lmgi
CisKKyNpbmNsdWRlICJDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIgorI2luY2x1ZGUgIkVs
ZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5o
IgorI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50OjpGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50JiBlbGVtZW50KQorICAgIDogVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQg
eyBudWxscHRyIH0KKyAgICAsIG1fZWxlbWVudCB7IGVsZW1lbnQgfQoreworfQorCitGb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQ6On5Gb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKQorewor
ICAgIGNsZWFyRm9ybSgpOworfQorCitSZWY8Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50PiBG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZShIVE1MTWF5YmVGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KGVsZW1lbnQpKTsKK30KKworRXhjZXB0aW9uT3I8dm9p
ZD4gRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpzZXRWYWxpZGl0eShWYWxpZGl0eVN0YXRl
RmxhZ3MgdmFsaWRpdHlTdGF0ZUZsYWdzLCBTdHJpbmcmJiBtZXNzYWdlLCBIVE1MRWxlbWVudCog
dmFsaWRhdGlvbkFuY2hvcikKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LT5pc1ByZWN1c3RvbWl6
ZWRPckRlZmluZWRDdXN0b21FbGVtZW50KCkpOworCisgICAgaWYgKCF2YWxpZGl0eVN0YXRlRmxh
Z3MuaXNWYWxpZCgpICYmIG1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yIH07CisKKyAgICBtX3ZhbGlkaXR5U3RhdGVGbGFncyA9IHZhbGlkaXR5
U3RhdGVGbGFnczsKKyAgICBzZXRDdXN0b21WYWxpZGl0eSh2YWxpZGl0eVN0YXRlRmxhZ3MuaXNW
YWxpZCgpID8gZW1wdHlTdHJpbmcoKSA6IFdURk1vdmUobWVzc2FnZSkpOworCisgICAgaWYgKHZh
bGlkYXRpb25BbmNob3IgJiYgIXZhbGlkYXRpb25BbmNob3ItPmlzRGVzY2VuZGFudE9yU2hhZG93
RGVzY2VuZGFudE9mKCptX2VsZW1lbnQpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
Rm91bmRFcnJvciB9OworCisgICAgbV92YWxpZGF0aW9uQW5jaG9yID0gdmFsaWRhdGlvbkFuY2hv
cjsKKworICAgIHJldHVybiB7IH07Cit9CisKK1N0cmluZyBGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50
LT5pc1ByZWN1c3RvbWl6ZWRPckRlZmluZWRDdXN0b21FbGVtZW50KCkpOworICAgIHJldHVybiBj
dXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpOworfQorCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBDdXN0
b21FbGVtZW50Rm9ybVZhbHVlIGNsb25lSWZJc0Zvcm1EYXRhKEN1c3RvbUVsZW1lbnRGb3JtVmFs
dWUmJiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihXVEZNb3ZlKHZhbHVlKSwg
W10oUmVmUHRyPERPTUZvcm1EYXRhPiB2YWx1ZSkgLT4gQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSB7
CisgICAgICAgIHJldHVybiB2YWx1ZS0+Y2xvbmUoKS5wdHIoKTsKKyAgICB9LCBbXShjb25zdCBh
dXRvJiB2YWx1ZSkgLT4gQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSB7CisgICAgICAgIHJldHVybiB2
YWx1ZTsKKyAgICB9KTsKK30KKwordm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnNl
dEZvcm1WYWx1ZShzdGQ6Om9wdGlvbmFsPEN1c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYgc3VibWlz
c2lvblZhbHVlLCBzdGQ6Om9wdGlvbmFsPEN1c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYgc3RhdGUp
Cit7CisgICAgQVNTRVJUKG1fZWxlbWVudC0+aXNQcmVjdXN0b21pemVkT3JEZWZpbmVkQ3VzdG9t
RWxlbWVudCgpKTsKKworICAgIGlmIChzdWJtaXNzaW9uVmFsdWUuaGFzX3ZhbHVlKCkpCisgICAg
ICAgIG1fc3VibWlzc2lvblZhbHVlID0gY2xvbmVJZklzRm9ybURhdGEoV1RGTW92ZShzdWJtaXNz
aW9uVmFsdWUudmFsdWUoKSkpOworCisgICAgbV9zdGF0ZSA9IHN0YXRlLmhhc192YWx1ZSgpID8g
Y2xvbmVJZklzRm9ybURhdGEoV1RGTW92ZShzdGF0ZS52YWx1ZSgpKSkgOiBtX3N1Ym1pc3Npb25W
YWx1ZTsKK30KKworSFRNTEVsZW1lbnQqIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6dmFs
aWRhdGlvbkFuY2hvckVsZW1lbnQoKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVmaW5l
ZEN1c3RvbUVsZW1lbnQoKSk7CisgICAgcmV0dXJuIG1fdmFsaWRhdGlvbkFuY2hvci5nZXQoKTsK
K30KKworYm9vbCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNvbXB1dGVWYWxpZGl0eSgp
IGNvbnN0Cit7CisgICAgQVNTRVJUKG1fZWxlbWVudC0+aXNQcmVjdXN0b21pemVkT3JEZWZpbmVk
Q3VzdG9tRWxlbWVudCgpKTsKKyAgICByZXR1cm4gbV92YWxpZGl0eVN0YXRlRmxhZ3MuaXNWYWxp
ZCgpOworfQorCitib29sIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6YXBwZW5kRm9ybURh
dGEoRE9NRm9ybURhdGEmIGZvcm1EYXRhKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVm
aW5lZEN1c3RvbUVsZW1lbnQoKSk7CisKKyAgICBpZiAoIW1fc3VibWlzc2lvblZhbHVlLmhhc192
YWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBXVEY6OnN3aXRjaE9uKG1fc3Vi
bWlzc2lvblZhbHVlLnZhbHVlKCksIFsmXShSZWZQdHI8RE9NRm9ybURhdGE+IHZhbHVlKSB7Cisg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IHZhbHVlLT5pdGVtcygpKSB7CisgICAgICAg
ICAgICBXVEY6OnN3aXRjaE9uKGl0ZW0uZGF0YSwgWyZdKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsK
KyAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoaXRlbS5uYW1lLCB2YWx1ZSk7CisgICAg
ICAgICAgICB9LCBbJl0oUmVmUHRyPEZpbGU+IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgZm9y
bURhdGEuYXBwZW5kKGl0ZW0ubmFtZSwgKnZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisgICAgfSwgWyZdKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgaWYgKCFuYW1l
KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUoKSwgdmFsdWUp
OworICAgIH0sIFsmXShSZWZQdHI8RmlsZT4gdmFsdWUpIHsKKyAgICAgICAgaWYgKCFuYW1lKCku
aXNFbXB0eSgpKQorICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUoKSwgKnZhbHVlKTsK
KyAgICB9KTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCgpCit7CisgICAgbV9mb3JtV2lsbEJlRGVz
dHJveWVkID0gdHJ1ZTsKKyAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6Zm9ybVdpbGxC
ZURlc3Ryb3llZCgpOworICAgIG1fZm9ybVdpbGxCZURlc3Ryb3llZCA9IGZhbHNlOworfQorCiti
b29sIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aXNFbnVtZXJhdGFibGUoKSBjb25zdAor
eworICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKSk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpyZXNl
dCgpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC0+aXNEZWZpbmVkQ3VzdG9tRWxlbWVudCgpKTsK
KyAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUZvcm1SZXNldENhbGxiYWNr
SWZOZWVkZWQoKm1fZWxlbWVudCk7Cit9CisKK3ZvaWQgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC0+aXNE
ZWZpbmVkQ3VzdG9tRWxlbWVudCgpKTsKKyAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6
ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKKyAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6
ZW5xdWV1ZUZvcm1EaXNhYmxlZENhbGxiYWNrSWZOZWVkZWQoKm1fZWxlbWVudCwgaXNEaXNhYmxl
ZCgpKTsKK30KKwordm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmRpZENoYW5nZUZv
cm0oKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKSk7
CisgICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZENoYW5nZUZvcm0oKTsKKyAgICBp
ZiAoIW1fZm9ybVdpbGxCZURlc3Ryb3llZCkKKyAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWU6OmVucXVldWVGb3JtQXNzb2NpYXRlZENhbGxiYWNrSWZOZWVkZWQoKm1fZWxlbWVudCwg
Zm9ybSgpKTsKK30KKwordm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OndpbGxVcGdy
YWRlKCkKK3sKKyAgICBzZXREYXRhTGlzdEFuY2VzdG9yU3RhdGUoVHJpU3RhdGU6OkZhbHNlKTsK
K30KKwordm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmRpZFVwZ3JhZGUoKQorewor
ICAgIEFTU0VSVCghZm9ybSgpKTsKKworICAgIEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1M
RWxlbWVudCgpOworCisgICAgcGFyc2VGb3JtQXR0cmlidXRlKGVsZW1lbnQuYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihmb3JtQXR0cikpOworICAgIHBhcnNlRGlzYWJsZWRBdHRyaWJ1
dGUoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRpc2FibGVkQXR0cikp
OworICAgIHBhcnNlUmVhZG9ubHlBdHRyaWJ1dGUoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHJlYWRvbmx5QXR0cikpOworCisgICAgc2V0RGF0YUxpc3RBbmNlc3RvclN0
YXRlKFRyaVN0YXRlOjpJbmRldGVybWluYXRlKTsKKyAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRW
YWxpZGl0eSgpOworICAgIHN5bmNXaXRoRmllbGRzZXRBbmNlc3RvcnMoZWxlbWVudC5wYXJlbnRO
b2RlKCkpOworICAgIGludmFsaWRhdGVFbGVtZW50c0NvbGxlY3Rpb25DYWNoZXNJbkFuY2VzdG9y
cygpOworICAgIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlSWZOZWNlc3NhcnkoKTsKK30KKwordm9p
ZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCit7
CisgICAgaWYgKCFGb3JtQ29udHJvbGxlcjo6b3duZXJGb3JtKCp0aGlzKSkKKyAgICAgICAgcmVz
dG9yZUZvcm1Db250cm9sU3RhdGVJZk5lY2Vzc2FyeSgpOworfQorCit2b2lkIEZvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudDo6aW52YWxpZGF0ZUVsZW1lbnRzQ29sbGVjdGlvbkNhY2hlc0luQW5j
ZXN0b3JzKCkKK3sKKyAgICBhdXRvIGludmFsaWRhdGVFbGVtZW50c0NhY2hlID0gW10oSFRNTEVs
ZW1lbnQmIGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIG5vZGVMaXN0cyA9IGVsZW1lbnQu
bm9kZUxpc3RzKCkpIHsKKyAgICAgICAgICAgIC8vIFdlIGtpY2sgdGhlICJmb3JtIiBhdHRyaWJ1
dGUgdG8gaW52YWxpZGF0ZSBvbmx5IHRoZSBGb3JtQ29udHJvbHMsIEZpZWxkU2V0RWxlbWVudHMs
CisgICAgICAgICAgICAvLyBhbmQgUmFkaW9Ob2RlTGlzdCBjb2xsZWN0aW9ucywgYW5kIGRvIHNv
IHdpdGhvdXQgZHVwbGljYXRpbmcgaW52YWxpZGF0aW9uIGxvZ2ljIG9mIE5vZGUuY3BwLgorICAg
ICAgICAgICAgbm9kZUxpc3RzLT5pbnZhbGlkYXRlQ2FjaGVzRm9yQXR0cmlidXRlKEhUTUxOYW1l
czo6Zm9ybUF0dHIpOworICAgICAgICB9CisgICAgfTsKKworICAgIGlmIChSZWZQdHIgZm9ybSA9
IHRoaXMtPmZvcm0oKSkKKyAgICAgICAgaW52YWxpZGF0ZUVsZW1lbnRzQ2FjaGUoKmZvcm0pOwor
CisgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8SFRNTEZpZWxkU2V0RWxl
bWVudD4oKm1fZWxlbWVudCkpCisgICAgICAgIGludmFsaWRhdGVFbGVtZW50c0NhY2hlKGFuY2Vz
dG9yKTsKK30KKworY29uc3QgQXRvbVN0cmluZyYgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBhc0hUTUxFbGVtZW50KCku
bG9jYWxOYW1lKCk7Cit9CisKK2Jvb2wgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpzaG91
bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAoreworICAgIGNvbnN0IGF1
dG8mIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7CisgICAgQVNTRVJUKGVsZW1lbnQucmVhY3Rp
b25RdWV1ZSgpKTsKKyAgICByZXR1cm4gZWxlbWVudC5pc0RlZmluZWRDdXN0b21FbGVtZW50KCkg
JiYgZWxlbWVudC5yZWFjdGlvblF1ZXVlKCktPmhhc0Zvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjaygp
OworfQorCitGb3JtQ29udHJvbFN0YXRlIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6c2F2
ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAoreworICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVm
aW5lZEN1c3RvbUVsZW1lbnQoKSk7CisKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVkU3RhdGU7
CisKKyAgICBpZiAobV9zdGF0ZS5oYXNfdmFsdWUoKSkgeworICAgICAgICAvLyBGSVhNRTogU3Vw
cG9ydCBGaWxlIHdoZW4gc2F2aW5nIC8gcmVzdG9yaW5nIHN0YXRlLgorICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5ODk1CisgICAgICAgIGJvb2wg
ZGlkTG9nTWVzc2FnZSA9IGZhbHNlOworICAgICAgICBhdXRvIGxvZ1Vuc3VwcG9ydGVkRmlsZVdh
cm5pbmcgPSBbJl0oUmVmUHRyPEZpbGU+KSB7CisgICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9
IGFzSFRNTEVsZW1lbnQoKS5kb2N1bWVudCgpOworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmZy
YW1lKCkgJiYgIWRpZExvZ01lc3NhZ2UpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAi
RmlsZSBpc24ndCBjdXJyZW50bHkgc3VwcG9ydGVkIHdoZW4gc2F2aW5nIC8gcmVzdG9yaW5nIHN0
YXRlLiJfcyk7CisgICAgICAgICAgICAgICAgZGlkTG9nTWVzc2FnZSA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgV1RGOjpzd2l0Y2hPbihtX3N0YXRlLnZhbHVl
KCksIFsmXShSZWZQdHI8RE9NRm9ybURhdGE+IHN0YXRlKSB7CisgICAgICAgICAgICBzYXZlZFN0
YXRlLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RhdGUtPml0ZW1zKCkuc2l6ZSgpICogMik7CisK
KyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IHN0YXRlLT5pdGVtcygpKSB7Cisg
ICAgICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihpdGVtLmRhdGEsIFsmXShjb25zdCBTdHJpbmcm
IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIHNhdmVkU3RhdGUuYXBwZW5kKGl0ZW0ubmFt
ZSk7CisgICAgICAgICAgICAgICAgICAgIHNhdmVkU3RhdGUuYXBwZW5kKHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICB9LCBsb2dVbnN1cHBvcnRlZEZpbGVXYXJuaW5nKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgc2F2ZWRTdGF0ZS5zaHJpbmtUb0ZpdCgpOworICAgICAgICB9LCBbJl0o
Y29uc3QgU3RyaW5nJiBzdGF0ZSkgeworICAgICAgICAgICAgc2F2ZWRTdGF0ZS5hcHBlbmQoc3Rh
dGUpOworICAgICAgICB9LCBsb2dVbnN1cHBvcnRlZEZpbGVXYXJuaW5nKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gc2F2ZWRTdGF0ZTsKK30KKwordm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHNhdmVk
U3RhdGUpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC0+aXNEZWZpbmVkQ3VzdG9tRWxlbWVudCgp
KTsKKworICAgIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUgcmVzdG9yZWRTdGF0ZTsKKworICAgIGlm
IChzYXZlZFN0YXRlLnNpemUoKSA9PSAxKQorICAgICAgICByZXN0b3JlZFN0YXRlLmVtcGxhY2U8
U3RyaW5nPihzYXZlZFN0YXRlWzBdKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYXV0byBmb3JtRGF0
YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoUEFMOjpVVEY4RW5jb2RpbmcoKSk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2F2ZWRTdGF0ZS5zaXplKCk7IGkgKz0gMikKKyAgICAgICAg
ICAgIGZvcm1EYXRhLT5hcHBlbmQoc2F2ZWRTdGF0ZVtpXSwgc2F2ZWRTdGF0ZVtpICsgMV0pOwor
ICAgICAgICByZXN0b3JlZFN0YXRlLmVtcGxhY2U8UmVmUHRyPERPTUZvcm1EYXRhPj4oZm9ybURh
dGEucHRyKCkpOworICAgIH0KKworICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1
ZXVlRm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrSWZOZWVkZWQoKm1fZWxlbWVudCwgV1RGTW92ZShy
ZXN0b3JlZFN0YXRlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYmNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjJhZjA1ZWNmN2ZiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaApA
QCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oIgorI2luY2x1ZGUgIkhUTUxNYXliZUZvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIlZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiVmFsaWRpdHlTdGF0ZUZsYWdzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNHbG9iYWxPYmplY3QuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudCk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+IGNyZWF0ZShIVE1MTWF5YmVG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQmKTsKKworICAgIEZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudChIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQmKTsKKyAgICB2aXJ0
dWFsIH5Gb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKTsKKworICAgIGJvb2wgaXNGb3JtTGlz
dGVkRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CisKKyAgICBGb3JtQXNzb2NpYXRlZEVsZW1lbnQqIGFzRm9ybUFzc29jaWF0ZWRFbGVtZW50
KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQorICAgIEZvcm1MaXN0ZWRFbGVtZW50KiBhc0Zvcm1M
aXN0ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQorICAgIFZhbGlkYXRlZEZvcm1M
aXN0ZWRFbGVtZW50KiBhc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1
cm4gdGhpczsgfQorCisgICAgSFRNTEVsZW1lbnQmIGFzSFRNTEVsZW1lbnQoKSBmaW5hbCB7IHJl
dHVybiAqbV9lbGVtZW50LmdldCgpOyB9CisgICAgY29uc3QgSFRNTEVsZW1lbnQmIGFzSFRNTEVs
ZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9lbGVtZW50LmdldCgpOyB9CisKKyAgICB2
b2lkIHJlc2V0KCkgZmluYWw7CisgICAgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IGZpbmFs
OworCisgICAgdm9pZCBzZXRGb3JtVmFsdWUoc3RkOjpvcHRpb25hbDxDdXN0b21FbGVtZW50Rm9y
bVZhbHVlPiYmIHN1Ym1pc3Npb25WYWx1ZSwgc3RkOjpvcHRpb25hbDxDdXN0b21FbGVtZW50Rm9y
bVZhbHVlPiYmIHN0YXRlKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWxpZGl0eShWYWxp
ZGl0eVN0YXRlRmxhZ3MsIFN0cmluZyYmIG1lc3NhZ2UsIEhUTUxFbGVtZW50KiB2YWxpZGF0aW9u
QW5jaG9yKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdCBmaW5hbDsKKwor
ICAgIHZvaWQgZm9ybVdpbGxCZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQgZmluaXNoUGFy
c2luZ0NoaWxkcmVuKCk7CisKKyAgICBib29sIGNvbXB1dGVWYWxpZGl0eSgpIGNvbnN0IGZpbmFs
OworICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmKSBmaW5hbDsKKworICAgIHZv
aWQgd2lsbFVwZ3JhZGUoKTsKKyAgICB2b2lkIGRpZFVwZ3JhZGUoKTsKKworICAgIGNvbnN0IEF0
b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxk
U2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgRm9ybUNv
bnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIGZpbmFsOwor
Citwcm90ZWN0ZWQ6CisgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpIGZpbmFsOworICAg
IGJvb2wgcmVhZE9ubHlCYXJzRnJvbUNvbnN0cmFpbnRWYWxpZGF0aW9uKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRF
bGVtZW50KCkgY29uc3QgZmluYWwgeyBtX2VsZW1lbnQtPnJlZigpOyB9CisgICAgdm9pZCBkZXJl
ZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgbV9lbGVtZW50LT5kZXJlZigp
OyB9CisKKyAgICBIVE1MRWxlbWVudCogdmFsaWRhdGlvbkFuY2hvckVsZW1lbnQoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZENoYW5nZUZvcm0oKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVFbGVt
ZW50c0NvbGxlY3Rpb25DYWNoZXNJbkFuY2VzdG9ycygpOworCisgICAgYm9vbCBoYXNCYWRJbnB1
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmFsaWRpdHlTdGF0ZUZsYWdzLmJhZElucHV0OyB9
CisgICAgYm9vbCBwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZhbGlk
aXR5U3RhdGVGbGFncy5wYXR0ZXJuTWlzbWF0Y2g7IH0KKyAgICBib29sIHJhbmdlT3ZlcmZsb3co
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZhbGlkaXR5U3RhdGVGbGFncy5yYW5nZU92ZXJmbG93
OyB9CisgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmFs
aWRpdHlTdGF0ZUZsYWdzLnJhbmdlVW5kZXJmbG93OyB9CisgICAgYm9vbCBzdGVwTWlzbWF0Y2go
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZhbGlkaXR5U3RhdGVGbGFncy5zdGVwTWlzbWF0Y2g7
IH0KKyAgICBib29sIHRvb1Nob3J0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWxpZGl0eVN0
YXRlRmxhZ3MudG9vU2hvcnQ7IH0KKyAgICBib29sIHRvb0xvbmcoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3ZhbGlkaXR5U3RhdGVGbGFncy50b29Mb25nOyB9CisgICAgYm9vbCB0eXBlTWlzbWF0
Y2goKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZhbGlkaXR5U3RhdGVGbGFncy50eXBlTWlzbWF0
Y2g7IH0KKyAgICBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmFs
aWRpdHlTdGF0ZUZsYWdzLnZhbHVlTWlzc2luZzsgfQorCisgICAgV2Vha1B0cjxIVE1MTWF5YmVG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0
YT4gbV9lbGVtZW50OworICAgIFZhbGlkaXR5U3RhdGVGbGFncyBtX3ZhbGlkaXR5U3RhdGVGbGFn
czsKKyAgICBib29sIG1fZm9ybVdpbGxCZURlc3Ryb3llZCA6IDEgeyBmYWxzZSB9OworICAgIFdl
YWtQdHI8SFRNTEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV92YWxp
ZGF0aW9uQW5jaG9yIHsgbnVsbHB0ciB9OworICAgIHN0ZDo6b3B0aW9uYWw8Q3VzdG9tRWxlbWVu
dEZvcm1WYWx1ZT4gbV9zdWJtaXNzaW9uVmFsdWU7CisgICAgc3RkOjpvcHRpb25hbDxDdXN0b21F
bGVtZW50Rm9ybVZhbHVlPiBtX3N0YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKaW5kZXggMmVlMGU4
OGNhM2M2Li4yNzk3NzE5YTA1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9y
bUFzc29jaWF0ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaApAQCAtMjgsOCArMjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI2Zvcm0tYXNz
b2NpYXRlZC1lbGVtZW50CiBjbGFzcyBGb3JtQXNzb2NpYXRlZEVsZW1lbnQgewogcHVibGljOgot
ICAgIHZvaWQgcmVmKCkgeyByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKTsgfQotICAgIHZvaWQg
ZGVyZWYoKSB7IGRlcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCk7IH0KKyAgICB2b2lkIHJlZigp
IGNvbnN0IHsgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCk7IH0KKyAgICB2b2lkIGRlcmVmKCkg
Y29uc3QgeyBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpOyB9CiAKICAgICB2aXJ0dWFsIH5G
b3JtQXNzb2NpYXRlZEVsZW1lbnQoKSB7IFJFTEVBU0VfQVNTRVJUKCFtX2Zvcm0pOyB9CiAgICAg
dmlydHVhbCBIVE1MRWxlbWVudCYgYXNIVE1MRWxlbWVudCgpID0gMDsKQEAgLTQ0LDYgKzQ0LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50SW5zZXJ0ZWRJbnRvQW5jZXN0b3Io
RWxlbWVudCYsIE5vZGU6Okluc2VydGlvblR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50
UmVtb3ZlZEZyb21BbmNlc3RvcihFbGVtZW50JiwgTm9kZTo6UmVtb3ZhbFR5cGUpOwogCisgICAg
dmlydHVhbCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQqIGFzRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkg
PSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRm9ybUFzc29jaWF0ZWRFbGVtZW50KEhU
TUxGb3JtRWxlbWVudCopOwogCkBAIC01MSw4ICs1Myw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Rm9ybUludGVybmFsKEhUTUxGb3JtRWxlbWVudCopOwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29uc3QgPSAwOwogCiAgICAgV2Vha1B0
cjxIVE1MRm9ybUVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9mb3Jt
OwogICAgIFdlYWtQdHI8SFRNTEZvcm1FbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdl
dERhdGE+IG1fZm9ybVNldEJ5UGFyc2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmNwcAppbmRleCA4YzU1YjQxYmZiZjUuLjI1ZjZmNjUwZjM4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJGaWxlQ2hv
b3Nlci5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQuaCIKICNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKICNpbmNsdWRlICJUeXBl
ZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KQEAgLTM0LDEyICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBIVE1MRm9ybUVsZW1lbnQqIG93bmVyRm9ybShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
V2l0aFN0YXRlJiBjb250cm9sKQorSFRNTEZvcm1FbGVtZW50KiBGb3JtQ29udHJvbGxlcjo6b3du
ZXJGb3JtKGNvbnN0IEZvcm1MaXN0ZWRFbGVtZW50JiBjb250cm9sKQogewogICAgIC8vIEFzc3Vt
ZSBjb250cm9scyB3aXRoIGZvcm0gYXR0cmlidXRlIGhhdmUgbm8gb3duZXJzIGJlY2F1c2Ugd2Ug
cmVzdG9yZQogICAgIC8vIHN0YXRlIGR1cmluZyBwYXJzaW5nIGFuZCBmb3JtIG93bmVycyBvZiBz
dWNoIGNvbnRyb2xzIG1pZ2h0IGJlCiAgICAgLy8gaW5kZXRlcm1pbmF0ZS4KLSAgICByZXR1cm4g
Y29udHJvbC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Zm9y
bUF0dHIpID8gbnVsbHB0ciA6IGNvbnRyb2wuZm9ybSgpOworICAgIHJldHVybiBjb250cm9sLmFz
SFRNTEVsZW1lbnQoKS5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1l
czo6Zm9ybUF0dHIpID8gbnVsbHB0ciA6IGNvbnRyb2wuZm9ybSgpOwogfQogCiBzdHJ1Y3QgQXRv
bVN0cmluZ1ZlY3RvclJlYWRlciB7CkBAIC0xNjMsNyArMTY0LDcgQEAgY2xhc3MgRm9ybUNvbnRy
b2xsZXI6OkZvcm1LZXlHZW5lcmF0b3IgewogCiBwdWJsaWM6CiAgICAgRm9ybUtleUdlbmVyYXRv
cigpID0gZGVmYXVsdDsKLSAgICBTdHJpbmcgZm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlJik7CisgICAgU3RyaW5nIGZvcm1LZXkoY29uc3QgVmFsaWRhdGVkRm9y
bUxpc3RlZEVsZW1lbnQmKTsKICAgICB2b2lkIHdpbGxEZWxldGVGb3JtKEhUTUxGb3JtRWxlbWVu
dCYpOwogCiBwcml2YXRlOgpAQCAtMTcxLDYgKzE3MiwxNSBAQCBwcml2YXRlOgogICAgIEhhc2hN
YXA8U3RyaW5nLCB1bnNpZ25lZD4gbV9mb3JtU2lnbmF0dXJlVG9OZXh0SW5kZXhNYXA7CiB9Owog
CitzdGF0aWMgYm9vbCBzaG91bGRCZVVzZWRGb3JGb3JtU2lnbmF0dXJlKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCit7CisgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGVsZW1lbnQp
KQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVu
dCkuc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCk7CisgICAgaWYgKGlzPEhU
TUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJl
dHVybiBkb3duY2FzdDxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KGVsZW1l
bnQpLmhhc0Zvcm1Bc3NvY2lhdGVkSW50ZXJmYWNlKCkgfHwgZWxlbWVudC5pc0N1c3RvbUVsZW1l
bnRVcGdyYWRlQ2FuZGlkYXRlKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgU3Ry
aW5nIGZvcm1TaWduYXR1cmUoY29uc3QgSFRNTEZvcm1FbGVtZW50JiBmb3JtKQogewogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTE4OCwxNSArMTk4LDExIEBAIHN0YXRpYyBTdHJpbmcg
Zm9ybVNpZ25hdHVyZShjb25zdCBIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCiAgICAgU2NyaXB0RGlz
YWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNjb3BlOwogICAgIHVu
c2lnbmVkIGNvdW50ID0gMDsKICAgICBidWlsZGVyLmFwcGVuZCgiIFsiKTsKLSAgICBmb3IgKGF1
dG8mIGNvbnRyb2wgOiBmb3JtLnVuc2FmZUxpc3RlZEVsZW1lbnRzKCkpIHsKLSAgICAgICAgYXV0
byBlbGVtZW50ID0gY29udHJvbC0+YXNGb3JtTGlzdGVkRWxlbWVudCgpOwotICAgICAgICBpZiAo
IWlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU+KGVsZW1lbnQpKQorICAgIGZvciAo
Y29uc3QgYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KGZvcm0pKSB7
CisgICAgICAgIGlmICghc2hvdWxkQmVVc2VkRm9yRm9ybVNpZ25hdHVyZShlbGVtZW50KSB8fCBl
bGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpmb3Jt
QXR0cikpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgUmVmIGNvbnRyb2xXaXRoU3Rh
dGUgPSBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlPigqZWxlbWVudCk7
Ci0gICAgICAgIGlmICghb3duZXJGb3JtKGNvbnRyb2xXaXRoU3RhdGUpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIGF1dG8mIG5hbWUgPSBjb250cm9sV2l0aFN0YXRlLT5uYW1lKCk7
Ci0gICAgICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgYXV0byYgbmFtZSA9IGVsZW1l
bnQuZ2V0TmFtZUF0dHJpYnV0ZSgpOworICAgICAgICBpZiAobmFtZS5pc051bGwoKSB8fCBuYW1l
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChuYW1lLCAnICcpOwogICAgICAgICBpZiAoKytjb3VudCA+PSBtYXhOYW1lZENvbnRyb2xzVG9C
ZVJlY29yZGVkKQpAQCAtMjA3LDcgKzIxMyw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybVNpZ25hdHVy
ZShjb25zdCBIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKIH0KIAotU3RyaW5nIEZvcm1Db250cm9sbGVyOjpGb3JtS2V5R2VuZXJhdG9yOjpmb3Jt
S2V5KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvbnRyb2wpCitTdHJp
bmcgRm9ybUNvbnRyb2xsZXI6OkZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgVmFsaWRh
dGVkRm9ybUxpc3RlZEVsZW1lbnQmIGNvbnRyb2wpCiB7CiAgICAgUmVmUHRyIGZvcm0gPSBvd25l
ckZvcm0oY29udHJvbCk7CiAgICAgaWYgKCFmb3JtKSB7CkBAIC0yNDMsNDQgKzI0OSw0MSBAQCBz
dGF0aWMgU3RyaW5nIGZvcm1TdGF0ZVNpZ25hdHVyZSgpCiAKIFZlY3RvcjxBdG9tU3RyaW5nPiBG
b3JtQ29udHJvbGxlcjo6Zm9ybUVsZW1lbnRzU3RhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KSBjb25zdAogewotICAgIHN0cnVjdCBDb250cm9sIHsKLSAgICAgICAgUmVmPGNvbnN0IEhUTUxG
b3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU+IGNvbnRyb2w7Ci0gICAgICAgIFN0cmluZyBmb3Jt
S2V5OwotICAgIH07CisgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBWZWN0b3I8UmVmPGNvbnN0IFZh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4+IGZvcm1LZXlUb0NvbnRyb2xzTWFwOwogCi0gICAg
VmVjdG9yPENvbnRyb2w+IGNvbnRyb2xzOwogICAgIHsKICAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBiZSBzYXZpbmcgdGhlIHN0YXRlIG9mIGZvcm0gY29udHJvbHMgaW4gc2hhZG93IHRyZWVz
LCB0b28uCiAgICAgICAgIEZvcm1LZXlHZW5lcmF0b3Iga2V5R2VuZXJhdG9yOwotICAgICAgICBm
b3IgKGF1dG8mIGNvbnRyb2wgOiBkZXNjZW5kYW50c09mVHlwZTxIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlPihkb2N1bWVudCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChjb250cm9sLmlu
c2VydGlvbkluZGV4KCkpOwotICAgICAgICAgICAgaWYgKGNvbnRyb2wuc2hvdWxkU2F2ZUFuZFJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKCkpCi0gICAgICAgICAgICAgICAgY29udHJvbHMuYXBwZW5k
KHsgY29udHJvbCwga2V5R2VuZXJhdG9yLmZvcm1LZXkoY29udHJvbCkgfSk7CisgICAgICAgIGZv
ciAoYXV0byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KGRvY3VtZW50KSkg
eworICAgICAgICAgICAgYXV0byogY29udHJvbCA9IGNvbnN0X2Nhc3Q8RWxlbWVudCY+KGVsZW1l
bnQpLmFzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGlmICghY29u
dHJvbCB8fCAhY29udHJvbC0+aXNDYW5kaWRhdGVGb3JTYXZpbmdBbmRSZXN0b3JpbmdTdGF0ZSgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBBdG9tU3RyaW5nIGZv
cm1LZXkgeyBrZXlHZW5lcmF0b3IuZm9ybUtleSgqY29udHJvbCkgfTsKKyAgICAgICAgICAgIGF1
dG8mIHZlY3RvciA9IGZvcm1LZXlUb0NvbnRyb2xzTWFwLmVuc3VyZShmb3JtS2V5LCBbXSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxSZWY8Y29uc3QgVmFsaWRhdGVkRm9ybUxpc3Rl
ZEVsZW1lbnQ+PiB7IH07CisgICAgICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAg
ICAgICB2ZWN0b3IuYXBwZW5kKCpjb250cm9sKTsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAo
Y29udHJvbHMuaXNFbXB0eSgpKQorCisgICAgaWYgKGZvcm1LZXlUb0NvbnRyb2xzTWFwLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBzdGQ6OnNvcnQoY29udHJvbHMuYmVnaW4o
KSwgY29udHJvbHMuZW5kKCksIFtdKGF1dG8mIGEsIGF1dG8mIGIpIHsKLSAgICAgICAgaWYgKGEu
Zm9ybUtleSAhPSBiLmZvcm1LZXkpCi0gICAgICAgICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFy
ZUxlc3NUaGFuKGEuZm9ybUtleSwgYi5mb3JtS2V5KTsKLSAgICAgICAgcmV0dXJuIGEuY29udHJv
bC0+aW5zZXJ0aW9uSW5kZXgoKSA8IGIuY29udHJvbC0+aW5zZXJ0aW9uSW5kZXgoKTsKLSAgICB9
KTsKIAogICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBzdGF0ZVZlY3RvcjsKICAgICBzdGF0ZVZlY3Rv
ci5hcHBlbmQoZm9ybVN0YXRlU2lnbmF0dXJlKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwLCBz
aXplID0gY29udHJvbHMuc2l6ZSgpOyBpIDwgc2l6ZTsgKSB7Ci0gICAgICAgIGF1dG8gZm9ybVN0
YXJ0ID0gaTsKLSAgICAgICAgYXV0byBmb3JtS2V5ID0gY29udHJvbHNbZm9ybVN0YXJ0XS5mb3Jt
S2V5OwotICAgICAgICB3aGlsZSAoKytpIDwgc2l6ZSAmJiBjb250cm9sc1tpXS5mb3JtS2V5ID09
IGZvcm1LZXkpIHsgfQotICAgICAgICBzdGF0ZVZlY3Rvci5hcHBlbmQoQXRvbVN0cmluZyB7IGZv
cm1LZXkgfSk7Ci0gICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZChBdG9tU3RyaW5nOjpudW1iZXIo
aSAtIGZvcm1TdGFydCkpOwotICAgICAgICBmb3IgKHNpemVfdCBqID0gZm9ybVN0YXJ0OyBqIDwg
aTsgKytqKSB7Ci0gICAgICAgICAgICBhdXRvJiBjb250cm9sID0gY29udHJvbHNbal0uY29udHJv
bC5nZXQoKTsKLSAgICAgICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZChjb250cm9sLm5hbWUoKSk7
Ci0gICAgICAgICAgICBzdGF0ZVZlY3Rvci5hcHBlbmQoY29udHJvbC50eXBlKCkpOwotICAgICAg
ICAgICAgYXBwZW5kU2VyaWFsaXplZEZvcm1Db250cm9sU3RhdGUoc3RhdGVWZWN0b3IsIGNvbnRy
b2wuc2F2ZUZvcm1Db250cm9sU3RhdGUoKSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5
IDogZm9ybUtleVRvQ29udHJvbHNNYXApIHsKKyAgICAgICAgc3RhdGVWZWN0b3IuYXBwZW5kKGVu
dHJ5LmtleSk7CisgICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZChBdG9tU3RyaW5nOjpudW1iZXIo
ZW50cnkudmFsdWUuc2l6ZSgpKSk7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjb250cm9s
IDogZW50cnkudmFsdWUpIHsKKyAgICAgICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZChjb250cm9s
LT5uYW1lKCkpOworICAgICAgICAgICAgc3RhdGVWZWN0b3IuYXBwZW5kKGNvbnRyb2wtPmZvcm1D
b250cm9sVHlwZSgpKTsKKyAgICAgICAgICAgIGFwcGVuZFNlcmlhbGl6ZWRGb3JtQ29udHJvbFN0
YXRlKHN0YXRlVmVjdG9yLCBjb250cm9sLT5zYXZlRm9ybUNvbnRyb2xTdGF0ZSgpKTsKICAgICAg
ICAgfQogICAgIH0KKwogICAgIHN0YXRlVmVjdG9yLnNocmlua1RvRml0KCk7CiAgICAgcmV0dXJu
IHN0YXRlVmVjdG9yOwogfQpAQCAtMjkwLDcgKzI5Myw3IEBAIHZvaWQgRm9ybUNvbnRyb2xsZXI6
OnNldFN0YXRlRm9yTmV3Rm9ybUVsZW1lbnRzKGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5nPiYgc3Rh
dGVWCiAgICAgbV9zYXZlZEZvcm1TdGF0ZU1hcCA9IHBhcnNlU3RhdGVWZWN0b3Ioc3RhdGVWZWN0
b3IpOwogfQogCi1Gb3JtQ29udHJvbFN0YXRlIEZvcm1Db250cm9sbGVyOjp0YWtlU3RhdGVGb3JG
b3JtRWxlbWVudChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250cm9s
KQorRm9ybUNvbnRyb2xTdGF0ZSBGb3JtQ29udHJvbGxlcjo6dGFrZVN0YXRlRm9yRm9ybUVsZW1l
bnQoY29uc3QgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQmIGNvbnRyb2wpCiB7CiAgICAgaWYg
KG1fc2F2ZWRGb3JtU3RhdGVNYXAuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAt
Mjk5LDcgKzMwMiw3IEBAIEZvcm1Db250cm9sU3RhdGUgRm9ybUNvbnRyb2xsZXI6OnRha2VTdGF0
ZUZvckZvcm1FbGVtZW50KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsCiAgICAgYXV0byBpdGVyYXRv
ciA9IG1fc2F2ZWRGb3JtU3RhdGVNYXAuZmluZChtX2Zvcm1LZXlHZW5lcmF0b3ItPmZvcm1LZXko
Y29udHJvbCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3NhdmVkRm9ybVN0YXRlTWFwLmVuZCgp
KQogICAgICAgICByZXR1cm4geyB9OwotICAgIGF1dG8gc3RhdGUgPSBpdGVyYXRvci0+dmFsdWUu
dGFrZUNvbnRyb2xTdGF0ZSh7IGNvbnRyb2wubmFtZSgpLCBjb250cm9sLnR5cGUoKSB9KTsKKyAg
ICBhdXRvIHN0YXRlID0gaXRlcmF0b3ItPnZhbHVlLnRha2VDb250cm9sU3RhdGUoeyBjb250cm9s
Lm5hbWUoKSwgY29udHJvbC5mb3JtQ29udHJvbFR5cGUoKSB9KTsKICAgICBpZiAoaXRlcmF0b3It
PnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgbV9zYXZlZEZvcm1TdGF0ZU1hcC5yZW1vdmUoaXRl
cmF0b3IpOwogICAgIHJldHVybiBzdGF0ZTsKQEAgLTMzMCwxMiArMzMzLDEyIEBAIHZvaWQgRm9y
bUNvbnRyb2xsZXI6OndpbGxEZWxldGVGb3JtKEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKICAgICAg
ICAgbV9mb3JtS2V5R2VuZXJhdG9yLT53aWxsRGVsZXRlRm9ybShmb3JtKTsKIH0KIAotdm9pZCBG
b3JtQ29udHJvbGxlcjo6cmVzdG9yZUNvbnRyb2xTdGF0ZUZvcihIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlJiBjb250cm9sKQordm9pZCBGb3JtQ29udHJvbGxlcjo6cmVzdG9yZUNvbnRy
b2xTdGF0ZUZvcihWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCYgY29udHJvbCkKIHsKICAgICAv
LyBXZSBkb24ndCBzYXZlIHN0YXRlIG9mIGEgY29udHJvbCB3aGVuIHNob3VsZFNhdmVBbmRSZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZSgpCiAgICAgLy8gaXMgZmFsc2UuIEJ1dCB3ZSBuZWVkIHRvIHNr
aXAgcmVzdG9yaW5nIHByb2Nlc3MgdG9vIGJlY2F1c2UgYSBjb250cm9sIGluCiAgICAgLy8gYW5v
dGhlciBmb3JtIG1pZ2h0IGhhdmUgdGhlIHNhbWUgcGFpciBvZiBuYW1lIGFuZCB0eXBlIGFuZCBz
YXZlZCBpdHMgc3RhdGUuCi0gICAgaWYgKCFjb250cm9sLnNob3VsZFNhdmVBbmRSZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZSgpIHx8IG93bmVyRm9ybShjb250cm9sKSkKKyAgICBpZiAoIWNvbnRyb2wu
aXNDYW5kaWRhdGVGb3JTYXZpbmdBbmRSZXN0b3JpbmdTdGF0ZSgpKQogICAgICAgICByZXR1cm47
CiAgICAgYXV0byBzdGF0ZSA9IHRha2VTdGF0ZUZvckZvcm1FbGVtZW50KGNvbnRyb2wpOwogICAg
IGlmICghc3RhdGUuaXNFbXB0eSgpKQpAQCAtMzQ0LDE1ICszNDcsMTIgQEAgdm9pZCBGb3JtQ29u
dHJvbGxlcjo6cmVzdG9yZUNvbnRyb2xTdGF0ZUZvcihIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0
aFN0YXRlJiBjb24KIAogdm9pZCBGb3JtQ29udHJvbGxlcjo6cmVzdG9yZUNvbnRyb2xTdGF0ZUlu
KEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKIHsKLSAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBmb3Jt
LmNvcHlMaXN0ZWRFbGVtZW50c1ZlY3RvcigpKSB7Ci0gICAgICAgIGlmICghaXM8SFRNTEZvcm1D
b250cm9sRWxlbWVudFdpdGhTdGF0ZT4oZWxlbWVudCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgYXV0byYgY29udHJvbCA9IGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU+KGVsZW1lbnQuZ2V0KCkpOwotICAgICAgICBpZiAoIWNvbnRyb2wuc2hvdWxkU2F2
ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgfHwgb3duZXJGb3JtKGNvbnRyb2wpICE9ICZm
b3JtKQorICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGZvcm0uY29weVZhbGlkYXRlZExpc3RlZEVs
ZW1lbnRzVmVjdG9yKCkpIHsKKyAgICAgICAgaWYgKCFlbGVtZW50LT5pc0NhbmRpZGF0ZUZvclNh
dmluZ0FuZFJlc3RvcmluZ1N0YXRlKCkgfHwgb3duZXJGb3JtKGVsZW1lbnQpICE9ICZmb3JtKQog
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGF1dG8gc3RhdGUgPSB0YWtlU3RhdGVGb3JG
b3JtRWxlbWVudChjb250cm9sKTsKKyAgICAgICAgYXV0byBzdGF0ZSA9IHRha2VTdGF0ZUZvckZv
cm1FbGVtZW50KGVsZW1lbnQpOwogICAgICAgICBpZiAoIXN0YXRlLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIGNvbnRyb2wucmVzdG9yZUZvcm1Db250cm9sU3RhdGUoc3RhdGUpOworICAgICAgICAg
ICAgZWxlbWVudC0+cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoc3RhdGUpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5oCmluZGV4IDY2OWFjOTg4ZjI5Yi4uYjYwZGM2
ZDhlMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5oCkBAIC0yNyw4ICsyNyw5
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTsKK2NsYXNzIEZvcm1MaXN0ZWRFbGVtZW50OwogY2xh
c3MgSFRNTEZvcm1FbGVtZW50OworY2xhc3MgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ7CiAK
IHVzaW5nIEZvcm1Db250cm9sU3RhdGUgPSBWZWN0b3I8QXRvbVN0cmluZz47CiAKQEAgLTQzLDE4
ICs0NCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdGF0ZUZvck5ld0Zvcm1FbGVtZW50cyhj
b25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIHN0YXRlVmVjdG9yKTsKIAogICAgIHZvaWQgd2lsbERl
bGV0ZUZvcm0oSFRNTEZvcm1FbGVtZW50Jik7Ci0gICAgdm9pZCByZXN0b3JlQ29udHJvbFN0YXRl
Rm9yKEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmKTsKKyAgICB2b2lkIHJlc3RvcmVD
b250cm9sU3RhdGVGb3IoVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQmKTsKICAgICB2b2lkIHJl
c3RvcmVDb250cm9sU3RhdGVJbihIVE1MRm9ybUVsZW1lbnQmKTsKICAgICBib29sIGhhc0Zvcm1T
dGF0ZVRvUmVzdG9yZSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZlY3Rv
cjxTdHJpbmc+IHJlZmVyZW5jZWRGaWxlUGF0aHMoY29uc3QgVmVjdG9yPEF0b21TdHJpbmc+JiBz
dGF0ZVZlY3Rvcik7CisgICAgc3RhdGljIEhUTUxGb3JtRWxlbWVudCogb3duZXJGb3JtKGNvbnN0
IEZvcm1MaXN0ZWRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgRm9ybUtleUdlbmVy
YXRvcjsKICAgICBjbGFzcyBTYXZlZEZvcm1TdGF0ZTsKICAgICB1c2luZyBTYXZlZEZvcm1TdGF0
ZU1hcCA9IEhhc2hNYXA8U3RyaW5nLCBTYXZlZEZvcm1TdGF0ZT47CiAKLSAgICBGb3JtQ29udHJv
bFN0YXRlIHRha2VTdGF0ZUZvckZvcm1FbGVtZW50KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUmKTsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHRha2VTdGF0ZUZvckZvcm1FbGVt
ZW50KGNvbnN0IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Jik7CiAgICAgc3RhdGljIFNhdmVk
Rm9ybVN0YXRlTWFwIHBhcnNlU3RhdGVWZWN0b3IoY29uc3QgVmVjdG9yPEF0b21TdHJpbmc+Jik7
CiAKICAgICBTYXZlZEZvcm1TdGF0ZU1hcCBtX3NhdmVkRm9ybVN0YXRlTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1MaXN0ZWRFbGVtZW50LmNwcAppbmRleCA0NTIyYjA5Zjc2YTguLmU5MjE5
MTNkODFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVudC5jcHAKQEAg
LTU4LDcgKzU4LDcgQEAgRm9ybUxpc3RlZEVsZW1lbnQ6OkZvcm1MaXN0ZWRFbGVtZW50KEhUTUxG
b3JtRWxlbWVudCogZm9ybSkKIAogRm9ybUxpc3RlZEVsZW1lbnQ6On5Gb3JtTGlzdGVkRWxlbWVu
dCgpID0gZGVmYXVsdDsKIAotdm9pZCBGb3JtTGlzdGVkRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQoRG9jdW1lbnQmKQordm9pZCBGb3JtTGlzdGVkRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQoKQogewogICAgIEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1MRWxlbWVudCgpOwog
ICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9ybUF0
dHIpICYmIGVsZW1lbnQuaXNDb25uZWN0ZWQoKSkKQEAgLTE2NSwyMCArMTY1LDI4IEBAIHZvaWQg
Rm9ybUxpc3RlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogdm9pZCBGb3JtTGlzdGVk
RWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogewogICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IG9yaWdpbmFsRm9ybSA9IGZvcm0oKTsKLSAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSgm
YXNIVE1MRWxlbWVudCgpLCBvcmlnaW5hbEZvcm0uZ2V0KCkpKTsKICAgICBIVE1MRWxlbWVudCYg
ZWxlbWVudCA9IGFzSFRNTEVsZW1lbnQoKTsKKyAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9y
bSgmZWxlbWVudCwgb3JpZ2luYWxGb3JtLmdldCgpKSk7CiAgICAgYXV0byogbmV3Rm9ybSA9IGZv
cm0oKTsKICAgICBpZiAobmV3Rm9ybSAmJiBuZXdGb3JtICE9IG9yaWdpbmFsRm9ybSAmJiBuZXdG
b3JtLT5pc0Nvbm5lY3RlZCgpKQogICAgICAgICBlbGVtZW50LmRvY3VtZW50KCkuZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKLXZvaWQgRm9ybUxpc3RlZEVsZW1lbnQ6OmZv
cm1BdHRyaWJ1dGVDaGFuZ2VkKCkKK3ZvaWQgRm9ybUxpc3RlZEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQor
eworICAgIGlmIChuYW1lID09IGZvcm1BdHRyKQorICAgICAgICBwYXJzZUZvcm1BdHRyaWJ1dGUo
dmFsdWUpOworfQorCit2b2lkIEZvcm1MaXN0ZWRFbGVtZW50OjpwYXJzZUZvcm1BdHRyaWJ1dGUo
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiB7CiAgICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBh
c0hUTUxFbGVtZW50KCk7Ci0gICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oZm9ybUF0dHIpKSB7CisgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7CiAgICAg
ICAgIC8vIFRoZSBmb3JtIGF0dHJpYnV0ZSByZW1vdmVkLiBXZSBuZWVkIHRvIHJlc2V0IGZvcm0g
b3duZXIgaGVyZS4KICAgICAgICAgUmVmUHRyIG9yaWdpbmFsRm9ybSA9IGZvcm0oKTsKLSAgICAg
ICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbm90IHBhc3Mgb3JpZ2luYWxGb3JtIHRvIGZpbmRD
bG9zZXN0Rm9ybUFuY2VzdG9yPworICAgICAgICAvLyBJbnN0ZWFkIG9mIGNhbGxpbmcgc2V0Rm9y
bShmaW5kQXNzb2NpYXRlZEZvcm0oJmVsZW1lbnQsIG9yaWdpbmFsRm9ybS5nZXQoKSkpIGhlcmUs
CisgICAgICAgIC8vIHdlIGVmZmVjdGl2ZWx5IHBlcmZvcm0gc2V0Rm9ybShmaW5kQXNzb2NpYXRl
ZEZvcm0oJmVsZW1lbnQsIG51bGxwdHIpKSBiZWNhdXNlCisgICAgICAgIC8vIGl0J3Mga25vd24g
dGhhdCBvcmlnaW5hbEZvcm0gaXMgb2Jzb2xldGUgYW5kIGNhbid0IGJlIHVzZWQgYXMgYSBmYWxs
YmFjay4KICAgICAgICAgc2V0Rm9ybShIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFu
Y2VzdG9yKGVsZW1lbnQpKTsKICAgICAgICAgYXV0byogbmV3Rm9ybSA9IGZvcm0oKTsKICAgICAg
ICAgaWYgKG5ld0Zvcm0gJiYgbmV3Rm9ybSAhPSBvcmlnaW5hbEZvcm0gJiYgbmV3Rm9ybS0+aXND
b25uZWN0ZWQoKSkKQEAgLTI4MCwxMSArMjg4LDYgQEAgY29uc3QgQXRvbVN0cmluZyYgRm9ybUxp
c3RlZEVsZW1lbnQ6Om5hbWUoKSBjb25zdAogICAgIHJldHVybiBuYW1lLmlzTnVsbCgpID8gZW1w
dHlBdG9tKCkgOiBuYW1lOwogfQogCi1ib29sIEZvcm1MaXN0ZWRFbGVtZW50Ojppc0Zvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBG
b3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXI6OkZvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcihj
b25zdCBBdG9tU3RyaW5nJiBpZCwgRm9ybUxpc3RlZEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBJ
ZFRhcmdldE9ic2VydmVyKGVsZW1lbnQuYXNIVE1MRWxlbWVudCgpLnRyZWVTY29wZSgpLmlkVGFy
Z2V0T2JzZXJ2ZXJSZWdpc3RyeSgpLCBpZCkKICAgICAsIG1fZWxlbWVudChlbGVtZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVudC5oCmluZGV4IGMyOWQ1NWI2ZTMwZC4uNzQ5
ZmMxNmNiMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1MaXN0ZWRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVudC5oCkBAIC00
OCw4ICs0OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiBmaW5kQXNz
b2NpYXRlZEZvcm0oY29uc3QgSFRNTEVsZW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKICAgICBW
YWxpZGl0eVN0YXRlKiB2YWxpZGl0eSgpOwogCisgICAgdmlydHVhbCBib29sIGlzVmFsaWRhdGVk
Rm9ybUxpc3RlZEVsZW1lbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzRm9ybUNv
bnRyb2xFbGVtZW50KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJs
ZSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJldHVybnMgdGhlICduYW1lJyBhdHRyaWJ1dGUgdmFs
dWUuIElmIHRoaXMgZWxlbWVudCBoYXMgbm8gbmFtZQpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6
CiAgICAgLy8gUmV0dXJuIHRydWUgZm9yIGEgc3VjY2Vzc2Z1bCBjb250cm9sIChzZWUgSFRNTDQt
MTcuMTMuMikuCiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJikg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgZm9ybVdpbGxCZURlc3Ryb3llZCgpIGZpbmFs
OworICAgIHZvaWQgZm9ybVdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBy
ZXNldEZvcm1Pd25lcigpIGZpbmFsOwogCkBAIC04NywxNSArODcsMTkgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBmb3JtQXR0cmlidXRlVGFyZ2V0Q2hhbmdlZCgpOwogCisgICAgdmlydHVhbCBGb3Jt
TGlzdGVkRWxlbWVudCogYXNGb3JtTGlzdGVkRWxlbWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIFZh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KiBhc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkg
PSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgRm9ybUxpc3RlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50
Kik7CiAKLSAgICB2b2lkIGVsZW1lbnRJbnNlcnRlZEludG9BbmNlc3RvcihFbGVtZW50JiwgTm9k
ZTo6SW5zZXJ0aW9uVHlwZSkgZmluYWw7Ci0gICAgdm9pZCBlbGVtZW50UmVtb3ZlZEZyb21BbmNl
c3RvcihFbGVtZW50JiwgTm9kZTo6UmVtb3ZhbFR5cGUpOwotICAgIHZvaWQgZGlkTW92ZVRvTmV3
RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50KTsKLQogICAgIHZvaWQgY2xlYXJGb3JtKCkg
eyBzZXRGb3JtKG51bGxwdHIpOyB9Ci0gICAgdm9pZCBmb3JtQXR0cmlidXRlQ2hhbmdlZCgpOwor
CisgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudCgpOworICAgIHZvaWQgZWxlbWVudEluc2Vy
dGVkSW50b0FuY2VzdG9yKEVsZW1lbnQmLCBOb2RlOjpJbnNlcnRpb25UeXBlKSBvdmVycmlkZTsK
KyAgICB2b2lkIGVsZW1lbnRSZW1vdmVkRnJvbUFuY2VzdG9yKEVsZW1lbnQmLCBOb2RlOjpSZW1v
dmFsVHlwZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpOworICAgIHZvaWQgcGFyc2VGb3JtQXR0cmlidXRl
KGNvbnN0IEF0b21TdHJpbmcmKTsKIAogICAgIC8vIElmIHlvdSBhZGQgYW4gb3ZlcnJpZGUgb2Yg
d2lsbENoYW5nZUZvcm0oKSBvciBkaWRDaGFuZ2VGb3JtKCkgdG8gYSBjbGFzcwogICAgIC8vIGRl
cml2ZWQgZnJvbSB0aGlzIG9uZSwgeW91IHdpbGwgbmVlZCB0byBhZGQgYSBjYWxsIHRvIHNldEZv
cm0oMCkgdG8gdGhlCkBAIC0xMTIsOCArMTE2LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVz
ZXRGb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIoKTsKIAotICAgIGJvb2wgaXNGb3JtTGlzdGVk
RWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLQogICAgIHN0ZDo6dW5pcXVl
X3B0cjxGb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXI+IG1fZm9ybUF0dHJpYnV0ZVRhcmdldE9i
c2VydmVyOwogICAgIFN0cmluZyBtX2N1c3RvbVZhbGlkYXRpb25NZXNzYWdlOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcApp
bmRleCBlYmU3YzYxZjA1Y2MuLjNiNGQ3YTE1MDA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcApAQCAtNzUsNyArNzUsNyBA
QCBib29sIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbjx0cmF2ZXJzYWxUeXBlPjo6ZWxlbWVu
dE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudAogICAgIGNhc2UgRG9jQW5jaG9yczoKICAgICAgICAg
cmV0dXJuIGVsZW1lbnQuaGFzVGFnTmFtZShhVGFnKSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24obmFtZUF0dHIpOwogICAgIGNhc2UgRmllbGRTZXRFbGVtZW50
czoKLSAgICAgICAgcmV0dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50PihlbGVtZW50KSB8fCBpczxI
VE1MRm9ybUNvbnRyb2xFbGVtZW50PihlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQu
aXNGb3JtTGlzdGVkRWxlbWVudCgpOwogICAgIGNhc2UgQnlDbGFzczoKICAgICBjYXNlIEJ5VGFn
OgogICAgIGNhc2UgQnlIVE1MVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRl
eCAyZjljNDBiMjljY2IuLjQ4MjVmZGMzNWNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCkBAIC03NjIsMTEgKzc2Myw2IEBAIEZvcm1B
c3NvY2lhdGVkRWxlbWVudCogSFRNTEVsZW1lbnQ6OmFzRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRm9ybUxpc3RlZEVsZW1lbnQqIEhUTUxFbGVtZW50
Ojphc0Zvcm1MaXN0ZWRFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogc3Rh
dGljIHZvaWQgc2V0SGFzRGlyQXV0b0ZsYWdSZWN1cnNpdmVseShOb2RlKiBmaXJzdE5vZGUsIGJv
b2wgZmxhZywgTm9kZSogbGFzdE5vZGUgPSBudWxscHRyKQogewogICAgIGZpcnN0Tm9kZS0+c2V0
U2VsZk9yUHJlY2VkaW5nTm9kZXNBZmZlY3REaXJBdXRvKGZsYWcpOwpAQCAtMTA5Nyw3ICsxMDkz
LDggQEAgYm9vbCBIVE1MRWxlbWVudDo6Y2FuQmVBY3R1YWxseURpc2FibGVkKCkgY29uc3QKICAg
ICAgICAgfHwgaXM8SFRNTFRleHRBcmVhRWxlbWVudD4oKnRoaXMpCiAgICAgICAgIHx8IGlzPEhU
TUxPcHRHcm91cEVsZW1lbnQ+KCp0aGlzKQogICAgICAgICB8fCBpczxIVE1MT3B0aW9uRWxlbWVu
dD4oKnRoaXMpCi0gICAgICAgIHx8IGlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KCp0aGlzKTsKKyAg
ICAgICAgfHwgaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oKnRoaXMpCisgICAgICAgIHx8IChpczxI
VE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KCp0aGlzKSAmJiBkb3duY2FzdDxI
VE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KCp0aGlzKS5pc0Zvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudCgpKTsKIH0KIAogYm9vbCBIVE1MRWxlbWVudDo6aXNBY3R1YWxseURp
c2FibGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCBhZGY3MDM3Y2Qx
MWQuLjE0YzYzYzYzZjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtOTgsNyAr
OTgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc0Zv
cm1Bc3NvY2lhdGVkRWxlbWVudCgpOwotICAgIHZpcnR1YWwgRm9ybUxpc3RlZEVsZW1lbnQqIGFz
Rm9ybUxpc3RlZEVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0ludGVyYWN0aXZlQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGaWVsZFNldEVsZW1lbnQuY3BwCmluZGV4IDhmZWE0M2ZiMzU0Zi4uZjBiNWJjZWFjMjFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTYzLDE4
ICs2MywyMiBAQCBSZWY8SFRNTEZpZWxkU2V0RWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogCiBzdGF0aWMgdm9pZCB1cGRhdGVG
cm9tQ29udHJvbEVsZW1lbnRzQW5jZXN0b3JEaXNhYmxlZFN0YXRlVW5kZXIoSFRNTEVsZW1lbnQm
IHN0YXJ0Tm9kZSwgYm9vbCBpc0Rpc2FibGVkKQogewotICAgIFJlZlB0cjxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50PiBjb250cm9sOwotICAgIGlmIChpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pihz
dGFydE5vZGUpKQotICAgICAgICBjb250cm9sID0gJmRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ+KHN0YXJ0Tm9kZSk7Ci0gICAgZWxzZQotICAgICAgICBjb250cm9sID0gVHJhdmVyc2Fs
PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+OjpmaXJzdFdpdGhpbihzdGFydE5vZGUpOwotICAgIHdo
aWxlIChjb250cm9sKSB7Ci0gICAgICAgIGNvbnRyb2wtPnNldEFuY2VzdG9yRGlzYWJsZWQoaXNE
aXNhYmxlZCk7Ci0gICAgICAgIC8vIERvbid0IGNhbGwgc2V0QW5jZXN0b3JEaXNhYmxlZChmYWxz
ZSkgb24gZm9ybSBjb250cm9scyBpbnNpZGUgZGlzYWJsZWQgZmllbGRzZXRzLgotICAgICAgICBp
ZiAoaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oKmNvbnRyb2wpICYmIGNvbnRyb2wtPmhhc0F0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZGlzYWJsZWRBdHRyKSkKLSAgICAgICAgICAgIGNv
bnRyb2wgPSBUcmF2ZXJzYWw8SFRNTEZvcm1Db250cm9sRWxlbWVudD46Om5leHRTa2lwcGluZ0No
aWxkcmVuKCpjb250cm9sLCAmc3RhcnROb2RlKTsKKyAgICBhdXRvIHJhbmdlID0gaW5jbHVzaXZl
RGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oc3RhcnROb2RlKTsKKyAgICBhdXRvIGl0ID0gcmFu
Z2UuYmVnaW4oKTsKKworICAgIC8vIFRoaXMgcHJlc2VydmVzIHN0YXR1cy1xdW8gZXN0YWJsaXNo
ZWQgYmVmb3JlIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJLaXQvV2ViS2l0L3B1bGwvNDk4ODoKKyAg
ICAvLyBzZXREaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldCgpIG1heSBtb2RpZnkgc2hhZG93IERP
TSBvZiA8aW5wdXQ+IC8gPHRleHRhcmVhPiBlbGVtZW50cywgYnV0IHdlIGRvbid0IGNhcmUuCisg
ICAgaXQuZHJvcEFzc2VydGlvbnMoKTsKKworICAgIHdoaWxlIChpdCAhPSByYW5nZS5lbmQoKSkg
eworICAgICAgICBpZiAoYXV0byogbGlzdGVkRWxlbWVudCA9IGl0LT5hc1ZhbGlkYXRlZEZvcm1M
aXN0ZWRFbGVtZW50KCkpCisgICAgICAgICAgICBsaXN0ZWRFbGVtZW50LT5zZXREaXNhYmxlZEJ5
QW5jZXN0b3JGaWVsZHNldChpc0Rpc2FibGVkKTsKKworICAgICAgICAvLyBEb24ndCBjYWxsIHNl
dERpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0KCkgb24gZm9ybSBjb250cm9scyBpbnNpZGUgZGlz
YWJsZWQgZmllbGRzZXRzLgorICAgICAgICBpZiAoaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oKml0
KSAmJiBpdC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkaXNhYmxlZEF0dHIp
KQorICAgICAgICAgICAgaXQudHJhdmVyc2VOZXh0U2tpcHBpbmdDaGlsZHJlbigpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjb250cm9sID0gVHJhdmVyc2FsPEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ+OjpuZXh0KCpjb250cm9sLCAmc3RhcnROb2RlKTsKKyAgICAgICAgICAgIGl0LnRyYXZl
cnNlTmV4dCgpOwogICAgIH0KIH0KIApAQCAtMTc1LDcgKzE3OSw3IEBAIFJlZjxIVE1MQ29sbGVj
dGlvbj4gSFRNTEZpZWxkU2V0RWxlbWVudDo6ZWxlbWVudHMoKQogICAgIHJldHVybiBlbnN1cmVS
YXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248R2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uPENvbGxlY3Rpb25UeXBlVHJhaXRzPEZpZWxkU2V0RWxlbWVudHM+
Ojp0cmF2ZXJzYWxUeXBlPj4oKnRoaXMsIEZpZWxkU2V0RWxlbWVudHMpOwogfQogCi12b2lkIEhU
TUxGaWVsZFNldEVsZW1lbnQ6OmFkZEludmFsaWREZXNjZW5kYW50KGNvbnN0IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQmIGludmFsaWRGb3JtQ29udHJvbEVsZW1lbnQpCit2b2lkIEhUTUxGaWVsZFNl
dEVsZW1lbnQ6OmFkZEludmFsaWREZXNjZW5kYW50KGNvbnN0IEhUTUxFbGVtZW50JiBpbnZhbGlk
Rm9ybUNvbnRyb2xFbGVtZW50KQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWlzPEhUTUxG
aWVsZFNldEVsZW1lbnQ+KGludmFsaWRGb3JtQ29udHJvbEVsZW1lbnQpLCAiRmllbGRTZXQgYXJl
IG5ldmVyIGNhbmRpZGF0ZXMgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbi4iKTsKICAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCY+KGludmFsaWRGb3JtQ29udHJvbEVsZW1lbnQp
Lm1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSk7CkBAIC0xODgsNyArMTkyLDcgQEAgdm9pZCBI
VE1MRmllbGRTZXRFbGVtZW50OjphZGRJbnZhbGlkRGVzY2VuZGFudChjb25zdCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50JiBpbnYKICAgICBtX2ludmFsaWREZXNjZW5kYW50cy5hZGQoaW52YWxpZEZv
cm1Db250cm9sRWxlbWVudCk7CiB9CiAKLXZvaWQgSFRNTEZpZWxkU2V0RWxlbWVudDo6cmVtb3Zl
SW52YWxpZERlc2NlbmRhbnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZm9ybUNvbnRy
b2xFbGVtZW50KQordm9pZCBIVE1MRmllbGRTZXRFbGVtZW50OjpyZW1vdmVJbnZhbGlkRGVzY2Vu
ZGFudChjb25zdCBIVE1MRWxlbWVudCYgZm9ybUNvbnRyb2xFbGVtZW50KQogewogICAgIEFTU0VS
VF9XSVRIX01FU1NBR0UoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGZvcm1Db250cm9sRWxlbWVu
dCksICJGaWVsZFNldCBhcmUgbmV2ZXIgY2FuZGlkYXRlcyBmb3IgY29uc3RyYWludCB2YWxpZGF0
aW9uLiIpOwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9pbnZhbGlkRGVzY2VuZGFudHMuY29u
dGFpbnMoZm9ybUNvbnRyb2xFbGVtZW50KSwgIlVwZGF0aW5nIHRoZSBmaWVsZHNldCBvbiB2YWxp
ZGl0eSBjaGFuZ2UgaXMgbm90IGFuIGVmZmljaWVudCBvcGVyYXRpb24sIGl0IHNob3VsZCBvbmx5
IGJlIGRvbmUgd2hlbiBuZWNlc3NhcnkuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oCmluZGV4IDI5OWQxMzk5MWRhOC4uNDlkNjY3ZDE0MDIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaApAQCAtMjgsOSArMjgsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEZvcm1MaXN0ZWRFbGVtZW50OwotY2xhc3MgSFRN
TEZvcm1Db250cm9sc0NvbGxlY3Rpb247Ci0KIGNsYXNzIEhUTUxGaWVsZFNldEVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChIVE1MRmllbGRTZXRFbGVtZW50KTsKIHB1YmxpYzoKQEAgLTQwLDggKzM3LDggQEAg
cHVibGljOgogCiAgICAgUmVmPEhUTUxDb2xsZWN0aW9uPiBlbGVtZW50cygpOwogCi0gICAgdm9p
ZCBhZGRJbnZhbGlkRGVzY2VuZGFudChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Jik7Ci0g
ICAgdm9pZCByZW1vdmVJbnZhbGlkRGVzY2VuZGFudChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50Jik7CisgICAgdm9pZCBhZGRJbnZhbGlkRGVzY2VuZGFudChjb25zdCBIVE1MRWxlbWVudCYp
OworICAgIHZvaWQgcmVtb3ZlSW52YWxpZERlc2NlbmRhbnQoY29uc3QgSFRNTEVsZW1lbnQmKTsK
IAogcHJpdmF0ZToKICAgICBIVE1MRmllbGRTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwpAQCAtNjAsNyArNTcsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIG1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5hbDsKIAotICAgIFdlYWtI
YXNoU2V0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0
RGF0YT4gbV9pbnZhbGlkRGVzY2VuZGFudHM7CisgICAgV2Vha0hhc2hTZXQ8SFRNTEVsZW1lbnQs
IFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9pbnZhbGlkRGVzY2VuZGFudHM7CiAg
ICAgYm9vbCBtX2hhc0Rpc2FibGVkQXR0cmlidXRlIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCmluZGV4IDUyYmM1NGU1NjYwZC4u
NjkyZmZmNTNmNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5pZGwKQEAgLTIwLDcgKzIwLDcgQEAKIFsKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZh
Y2UgSFRNTEZpZWxkU2V0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICBbQ0VSZWFjdGlvbnM9
Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKKyAgICBbQ0VS
ZWFjdGlvbnMsIFJlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKICAgICBbQ0VSZWFjdGlvbnM9Tm90
TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDBiN2JiMDZjMzRl
OS4uNjdjMDUxZWQ3YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHAKQEAgLTI3LDI0ICsyNywxOSBAQAogCiAjaW5jbHVkZSAiQXV0b2ZpbGwu
aCIKICNpbmNsdWRlICJDb250cm9sU3RhdGVzLmgiCi0jaW5jbHVkZSAiRWxlbWVudEFuY2VzdG9y
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1l
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgotI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBh
cnNlcklkaW9tcy5oIgotI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlF1aXJrcy5oIgog
I2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uUmVzdG9yYXRp
b25Nb2RlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVRyZWVSZXNv
bHZlci5oIgpAQCAtNjIsMTggKzU3LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQq
IGZvcm0pCiAgICAgOiBMYWJlbGFibGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwg
Rm9ybUxpc3RlZEVsZW1lbnQoZm9ybSkKLSAgICAsIG1fZGlzYWJsZWQoZmFsc2UpCi0gICAgLCBt
X2hhc1JlYWRPbmx5QXR0cmlidXRlKGZhbHNlKQorICAgICwgVmFsaWRhdGVkRm9ybUxpc3RlZEVs
ZW1lbnQoZm9ybSkKICAgICAsIG1faXNSZXF1aXJlZChmYWxzZSkKICAgICAsIG1fdmFsdWVNYXRj
aGVzUmVuZGVyZXIoZmFsc2UpCi0gICAgLCBtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0KGZh
bHNlKQotICAgICwgbV9kYXRhTGlzdEFuY2VzdG9yU3RhdGUoVW5rbm93bikKLSAgICAsIG1fd2ls
bFZhbGlkYXRlSW5pdGlhbGl6ZWQoZmFsc2UpCi0gICAgLCBtX3dpbGxWYWxpZGF0ZSh0cnVlKQot
ICAgICwgbV9pc1ZhbGlkKHRydWUpCiAgICAgLCBtX3dhc0NoYW5nZWRTaW5jZUxhc3RGb3JtQ29u
dHJvbENoYW5nZUV2ZW50KGZhbHNlKQotICAgICwgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFz
dEZvcm1TdWJtaXRFdmVudChmYWxzZSkKIHsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVD
YWxsYmFja3MoKTsKIH0KQEAgLTEyOCw3OSArMTE1LDY0IEBAIHZvaWQgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6c2V0Rm9ybUFjdGlvbihjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKICAgICBzZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvcm1hY3Rpb25BdHRyLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZUlzRGlzYWJsZWRCeUZpZWxk
c2V0QW5jZXN0b3IoKSBjb25zdAorTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSBp
bnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSkKIHsKLSAg
ICBSZWZQdHI8RWxlbWVudD4gcHJldmlvdXNBbmNlc3RvcjsKLSAgICBmb3IgKFJlZlB0cjxFbGVt
ZW50PiBhbmNlc3RvciA9IHBhcmVudEVsZW1lbnQoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5j
ZXN0b3ItPnBhcmVudEVsZW1lbnQoKSkgewotICAgICAgICBpZiAoaXM8SFRNTEZpZWxkU2V0RWxl
bWVudD4oKmFuY2VzdG9yKSAmJiBhbmNlc3Rvci0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihkaXNhYmxlZEF0dHIpKSB7Ci0gICAgICAgICAgICBIVE1MRmllbGRTZXRFbGVtZW50
JiBmaWVsZFNldEFuY2VzdG9yID0gZG93bmNhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudD4oKmFuY2Vz
dG9yKTsKLSAgICAgICAgICAgIGJvb2wgaXNJbkZpcnN0TGVnZW5kID0gaXM8SFRNTExlZ2VuZEVs
ZW1lbnQ+KHByZXZpb3VzQW5jZXN0b3IpICYmIHByZXZpb3VzQW5jZXN0b3IgPT0gZmllbGRTZXRB
bmNlc3Rvci5sZWdlbmQoKTsKLSAgICAgICAgICAgIHJldHVybiAhaXNJbkZpcnN0TGVnZW5kOwot
ICAgICAgICB9Ci0gICAgICAgIHByZXZpb3VzQW5jZXN0b3IgPSBhbmNlc3RvcjsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3Rvcihp
bnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJlZSk7CisgICAgVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9m
SW5zZXJ0ZWRUcmVlKTsKKworICAgIHJldHVybiBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdDo6
TmVlZHNQb3N0SW5zZXJ0aW9uQ2FsbGJhY2s7CiB9CiAKLXZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6c2V0QW5jZXN0b3JEaXNhYmxlZChib29sIGlzRGlzYWJsZWQpCit2b2lkIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmRpZEZpbmlzaEluc2VydGluZ05vZGUoKQogewotICAgIEFTU0VSVChj
b21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpID09IGlzRGlzYWJsZWQpOwotICAg
IGlmIChtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0ID09IGlzRGlzYWJsZWQpCi0gICAgICAg
IHJldHVybjsKKyAgICBIVE1MRWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpOworICAg
IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCk7Cit9
CiAKLSAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gZGlzYWJsZWRJbnZh
bGlkYXRpb24oKnRoaXMsIHsgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NEaXNhYmxlZCwgaXNE
aXNhYmxlZCB9LCB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0VuYWJsZWQsICFpc0Rpc2FibGVk
IH0gfSk7Cit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50
KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KQoreworICAgIEhU
TUxFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQp
OworICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCgp
OworfQogCi0gICAgbV9kaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldCA9IGlzRGlzYWJsZWQ7Ci0g
ICAgZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKK3ZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9k
ZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKK3sKKyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZy
b21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CisgICAgVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IocmVtb3ZhbFR5cGUs
IG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpOwogfQogCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQogewotICAgIGlmIChuYW1lID09IGZvcm1BdHRyKQotICAgICAgICBmb3Jt
QXR0cmlidXRlQ2hhbmdlZCgpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7
Ci0gICAgICAgIGlmIChjYW5CZUFjdHVhbGx5RGlzYWJsZWQoKSkgewotICAgICAgICAgICAgYm9v
bCBuZXdEaXNhYmxlZCA9ICF2YWx1ZS5pc051bGwoKTsKLSAgICAgICAgICAgIGlmIChtX2Rpc2Fi
bGVkICE9IG5ld0Rpc2FibGVkKSB7Ci0gICAgICAgICAgICAgICAgU3R5bGU6OlBzZXVkb0NsYXNz
Q2hhbmdlSW52YWxpZGF0aW9uIGRpc2FibGVkSW52YWxpZGF0aW9uKCp0aGlzLCB7IHsgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzRGlzYWJsZWQsIG5ld0Rpc2FibGVkIH0sIHsgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzRW5hYmxlZCwgIW5ld0Rpc2FibGVkIH0gfSk7Ci0gICAgICAgICAgICAgICAg
bV9kaXNhYmxlZCA9IG5ld0Rpc2FibGVkOwotICAgICAgICAgICAgICAgIGRpc2FibGVkQXR0cmli
dXRlQ2hhbmdlZCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChu
YW1lID09IHJlYWRvbmx5QXR0cikgewotICAgICAgICBib29sIG5ld0hhc1JlYWRPbmx5QXR0cmli
dXRlID0gIXZhbHVlLmlzTnVsbCgpOwotICAgICAgICBpZiAobV9oYXNSZWFkT25seUF0dHJpYnV0
ZSAhPSBuZXdIYXNSZWFkT25seUF0dHJpYnV0ZSkgewotICAgICAgICAgICAgYm9vbCBuZXdNYXRj
aGVzUmVhZFdyaXRlID0gc3VwcG9ydHNSZWFkT25seSgpICYmICFuZXdIYXNSZWFkT25seUF0dHJp
YnV0ZTsKLSAgICAgICAgICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBy
ZWFkV3JpdGVJbnZhbGlkYXRpb24oKnRoaXMsIHsgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NS
ZWFkV3JpdGUsIG5ld01hdGNoZXNSZWFkV3JpdGUgfSwgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NSZWFkT25seSwgIW5ld01hdGNoZXNSZWFkV3JpdGUgfSB9KTsKLSAgICAgICAgICAgIG1faGFz
UmVhZE9ubHlBdHRyaWJ1dGUgPSBuZXdIYXNSZWFkT25seUF0dHJpYnV0ZTsKLSAgICAgICAgICAg
IHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG5hbWUg
PT0gcmVxdWlyZWRBdHRyKSB7CisgICAgaWYgKG5hbWUgPT0gcmVxdWlyZWRBdHRyKSB7CiAgICAg
ICAgIGJvb2wgbmV3UmVxdWlyZWQgPSAhdmFsdWUuaXNOdWxsKCk7CiAgICAgICAgIGlmIChtX2lz
UmVxdWlyZWQgIT0gbmV3UmVxdWlyZWQpIHsKICAgICAgICAgICAgIFN0eWxlOjpQc2V1ZG9DbGFz
c0NoYW5nZUludmFsaWRhdGlvbiByZXF1aXJlZEludmFsaWRhdGlvbigqdGhpcywgeyB7IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1JlcXVpcmVkLCBuZXdSZXF1aXJlZCB9LCB7IENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc09wdGlvbmFsLCAhbmV3UmVxdWlyZWQgfSB9KTsKICAgICAgICAgICAgIG1f
aXNSZXF1aXJlZCA9IG5ld1JlcXVpcmVkOwogICAgICAgICAgICAgcmVxdWlyZWRTdGF0ZUNoYW5n
ZWQoKTsKICAgICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIExhYmVsYWJsZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgVmFsaWRhdGVkRm9y
bUxpc3RlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAK
LXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkK
K3ZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsK
LSAgICBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJz
aW5nQ2hpbGRyZW4oKTsKKyAgICBpZiAoIUZvcm1Db250cm9sbGVyOjpvd25lckZvcm0oKnRoaXMp
KQorICAgICAgICByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZUlmTmVjZXNzYXJ5KCk7CiB9CiAKIHZv
aWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQogewotICAg
IHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7CisgICAgVmFsaWRhdGVkRm9ybUxpc3Rl
ZEVsZW1lbnQ6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7CiAgICAgaWYgKHJlbmRlcmVyKCkgJiYg
cmVuZGVyZXIoKS0+c3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJl
bmRlcmVyKCktPnRoZW1lKCkuc3RhdGVDaGFuZ2VkKCpyZW5kZXJlcigpLCBDb250cm9sU3RhdGVz
OjpTdGF0ZXM6OkVuYWJsZWQpOwogfQogCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJl
YWRPbmx5U3RhdGVDaGFuZ2VkKCkKIHsKLSAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0
eSgpOworICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpyZWFkT25seVN0YXRlQ2hhbmdl
ZCgpOwogCiAgICAgLy8gU29tZSBpbnB1dCBwc2V1ZG8gY2xhc3NlcyBsaWtlIDppbi1yYW5nZS9v
dXQtb2YtcmFuZ2UgY2hhbmdlIGJhc2VkIG9uIHRoZSByZWFkb25seSBzdGF0ZS4KICAgICAvLyBG
SVhNRTogVXNlIFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uIGluc3RlYWQgZm9yIDpoYXMo
KSBzdXBwb3J0IGFuZCBtb3JlIGVmZmljaWVuY3kuCkBAIC0yMjEsOTYgKzE5MywxMSBAQCB2b2lk
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCiAgICAgICAgIHJl
bmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKLXZvaWQgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1
bWVudCYgbmV3RG9jdW1lbnQpCi17Ci0gICAgRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZE1vdmVUb05l
d0RvY3VtZW50KG9sZERvY3VtZW50KTsKLSAgICBIVE1MRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKLX0KLQotc3RhdGljIHZvaWQgYWRkSW52
YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KGNvbnN0IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQmIGVsZW1lbnQsIENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQotewot
ICAgIGlmICghaXM8RWxlbWVudD4oaW5zZXJ0aW9uUG9pbnQpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogbGluZWFnZU9mVHlwZTxIVE1MRmllbGRTZXRFbGVt
ZW50Pihkb3duY2FzdDxFbGVtZW50PigqaW5zZXJ0aW9uUG9pbnQpKSkKLSAgICAgICAgYW5jZXN0
b3IuYWRkSW52YWxpZERlc2NlbmRhbnQoZWxlbWVudCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlbW92
ZUludmFsaWRFbGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2ludChjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50JiBlbGVtZW50LCBDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkK
LXsKLSAgICBpZiAoIWlzPEVsZW1lbnQ+KGluc2VydGlvblBvaW50KSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8SFRNTEZpZWxkU2V0
RWxlbWVudD4oZG93bmNhc3Q8RWxlbWVudD4oKmluc2VydGlvblBvaW50KSkpCi0gICAgICAgIGFu
Y2VzdG9yLnJlbW92ZUludmFsaWREZXNjZW5kYW50KGVsZW1lbnQpOwotfQotCi1Ob2RlOjpJbnNl
cnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZElu
dG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmIHBh
cmVudE9mSW5zZXJ0ZWRUcmVlKQotewotICAgIGlmIChtX2RhdGFMaXN0QW5jZXN0b3JTdGF0ZSA9
PSBOb3RJbnNpZGVEYXRhTGlzdCkKLSAgICAgICAgbV9kYXRhTGlzdEFuY2VzdG9yU3RhdGUgPSBV
bmtub3duOwotCi0gICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKLSAgICBpZiAo
d2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSkKLSAgICAgICAg
YWRkSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KCp0aGlzLCAmcGFy
ZW50T2ZJbnNlcnRlZFRyZWUpOwotICAgIGlmIChkb2N1bWVudCgpLmhhc0Rpc2FibGVkRmllbGRz
ZXRFbGVtZW50KCkpCi0gICAgICAgIHNldEFuY2VzdG9yRGlzYWJsZWQoY29tcHV0ZUlzRGlzYWJs
ZWRCeUZpZWxkc2V0QW5jZXN0b3IoKSk7Ci0gICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50b0Fu
Y2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKTsKLSAgICBGb3JtTGlz
dGVkRWxlbWVudDo6ZWxlbWVudEluc2VydGVkSW50b0FuY2VzdG9yKCp0aGlzLCBpbnNlcnRpb25U
eXBlKTsKLQotICAgIHJldHVybiBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdDo6TmVlZHNQb3N0
SW5zZXJ0aW9uQ2FsbGJhY2s7Ci19Ci0KLXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlk
RmluaXNoSW5zZXJ0aW5nTm9kZSgpCi17Ci0gICAgcmVzZXRGb3JtT3duZXIoKTsKLX0KLQotdm9p
ZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBl
IHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKQotewot
ICAgIGJvb2wgd2FzTWF0Y2hpbmdJbnZhbGlkUHNldWRvQ2xhc3MgPSB3aWxsVmFsaWRhdGUoKSAm
JiAhaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOwotCi0gICAgbV92YWxpZGF0aW9uTWVzc2Fn
ZSA9IG51bGxwdHI7Ci0gICAgaWYgKG1fZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQpCi0gICAg
ICAgIHNldEFuY2VzdG9yRGlzYWJsZWQoY29tcHV0ZUlzRGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0
b3IoKSk7Ci0KLSAgICBib29sIHdhc0luc2lkZURhdGFMaXN0ID0gZmFsc2U7Ci0gICAgaWYgKG1f
ZGF0YUxpc3RBbmNlc3RvclN0YXRlID09IEluc2lkZURhdGFMaXN0KSB7Ci0gICAgICAgIG1fZGF0
YUxpc3RBbmNlc3RvclN0YXRlID0gVW5rbm93bjsKLSAgICAgICAgd2FzSW5zaWRlRGF0YUxpc3Qg
PSB0cnVlOwotICAgIH0KLQotICAgIEhUTUxFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKHJl
bW92YWxUeXBlLCBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKTsKLSAgICBGb3JtTGlzdGVkRWxlbWVu
dDo6ZWxlbWVudFJlbW92ZWRGcm9tQW5jZXN0b3IoKnRoaXMsIHJlbW92YWxUeXBlKTsKLQotICAg
IGlmICh3YXNNYXRjaGluZ0ludmFsaWRQc2V1ZG9DbGFzcykKLSAgICAgICAgcmVtb3ZlSW52YWxp
ZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KCp0aGlzLCAmb2xkUGFyZW50T2ZS
ZW1vdmVkVHJlZSk7Ci0KLSAgICBpZiAod2FzSW5zaWRlRGF0YUxpc3QpCi0gICAgICAgIHVwZGF0
ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7Ci19Ci0KIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6c2V0Q2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoYm9vbCBjaGFu
Z2VkKQogewogICAgIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQg
PSBjaGFuZ2VkOwogfQogCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEludGVyYWN0
ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50KGJvb2wgaW50ZXJhY3RlZFdpdGgpCi17Ci0g
ICAgaWYgKG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQgPT0gaW50
ZXJhY3RlZFdpdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gaXNJbnZhbGlkID0gbWF0
Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpOwotICAgIGF1dG8gaXNWYWxpZCA9IG1hdGNoZXNWYWxp
ZFBzZXVkb0NsYXNzKCk7Ci0KLSAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRp
b24gc3R5bGVJbnZhbGlkYXRpb24oKnRoaXMsIHsKLSAgICAgICAgeyBDU1NTZWxlY3Rvcjo6UHNl
dWRvQ2xhc3NVc2VySW52YWxpZCwgaXNJbnZhbGlkICYmIGludGVyYWN0ZWRXaXRoIH0sCi0gICAg
ICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVXNlclZhbGlkLCBpc1ZhbGlkICYmIGludGVy
YWN0ZWRXaXRoIH0sCi0gICAgfSk7Ci0KLSAgICBtX3dhc0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0
Rm9ybVN1Ym1pdEV2ZW50ID0gaW50ZXJhY3RlZFdpdGg7Ci19Ci0KIHZvaWQgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6ZGlzcGF0Y2hDaGFuZ2VFdmVudCgpCiB7CiAgICAgZGlzcGF0Y2hTY29wZWRF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwpAQCAtMzQ3LDExICsyMzQsNiBA
QCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFu
Z2UpCiAgICAgfQogfQogCi1ib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnN1cHBvcnRzRm9j
dXMoKSBjb25zdAotewotICAgIHJldHVybiAhaXNEaXNhYmxlZEZvcm1Db250cm9sKCk7Ci19Ci0K
IGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2Fy
ZEV2ZW50KiBldmVudCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNGb2N1c2FibGUoKQpAQCAtMzc1
LDI0NyArMjU3LDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpydW5Gb2N1c2luZ1N0
ZXBzRm9yQXV0b2ZvY3VzKCkKICAgICBmb2N1cyh7IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6
UGxhY2VDYXJldEF0U3RhcnQgfSk7CiB9CiAKLWJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
bWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdAotewotICAgIHJldHVybiB3aWxsVmFsaWRh
dGUoKSAmJiBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7Ci19Ci0KLWJvb2wgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6bWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHdpbGxWYWxpZGF0ZSgpICYmICFpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7Ci19
Ci0KLXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZW5kRGVsYXlpbmdVcGRhdGVWYWxpZGl0
eSgpCi17Ci0gICAgQVNTRVJUKG1fZGVsYXllZFVwZGF0ZVZhbGlkaXR5Q291bnQpOwotICAgIGlm
ICghLS1tX2RlbGF5ZWRVcGRhdGVWYWxpZGl0eUNvdW50KQotICAgICAgICB1cGRhdGVWYWxpZGl0
eSgpOwotfQotCi1ib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbXB1dGVXaWxsVmFsaWRh
dGUoKSBjb25zdAotewotICAgIGlmIChtX2RhdGFMaXN0QW5jZXN0b3JTdGF0ZSA9PSBVbmtub3du
KSB7Ci0jaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCi0gICAgICAgIG1fZGF0YUxpc3RBbmNl
c3RvclN0YXRlID0gKGRvY3VtZW50KCkuaGFzRGF0YUxpc3RFbGVtZW50cygpICYmIGFuY2VzdG9y
c09mVHlwZTxIVE1MRGF0YUxpc3RFbGVtZW50PigqdGhpcykuZmlyc3QoKSkgPyBJbnNpZGVEYXRh
TGlzdCA6IE5vdEluc2lkZURhdGFMaXN0OwotI2Vsc2UKLSAgICAgICAgbV9kYXRhTGlzdEFuY2Vz
dG9yU3RhdGUgPSBOb3RJbnNpZGVEYXRhTGlzdDsKLSNlbmRpZgotICAgIH0KLSAgICAvLyByZWFk
b25seSBhdHRyaWJ1dGUgYmFycyAqYWxsKiA8aW5wdXQ+IGVsZW1lbnRzIGZyb20gY29uc3RyYWlu
dCB2YWxpZGF0aW9uLCByZWdhcmRsZXNzIG9mIHRoZSA8aW5wdXQ+IHR5cGUsIGZvciBjb21wYXQg
cmVhc29uczoKLSAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9p
bnB1dC5odG1sI3RoZS1yZWFkb25seS1hdHRyaWJ1dGU6YmFycmVkLWZyb20tY29uc3RyYWludC12
YWxpZGF0aW9uCi0gICAgcmV0dXJuIG1fZGF0YUxpc3RBbmNlc3RvclN0YXRlID09IE5vdEluc2lk
ZURhdGFMaXN0ICYmICFpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSAmJiAhKG1faGFzUmVhZE9ubHlB
dHRyaWJ1dGUgJiYgcmVhZE9ubHlCYXJzRnJvbUNvbnN0cmFpbnRWYWxpZGF0aW9uKCkpOwotfQot
Ci1ib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX3dpbGxWYWxpZGF0ZUluaXRpYWxpemVkIHx8IG1fZGF0YUxpc3RBbmNlc3RvclN0
YXRlID09IFVua25vd24pIHsKLSAgICAgICAgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZCA9IHRy
dWU7Ci0gICAgICAgIGJvb2wgbmV3V2lsbFZhbGlkYXRlID0gY29tcHV0ZVdpbGxWYWxpZGF0ZSgp
OwotICAgICAgICBpZiAobV93aWxsVmFsaWRhdGUgIT0gbmV3V2lsbFZhbGlkYXRlKQotICAgICAg
ICAgICAgbV93aWxsVmFsaWRhdGUgPSBuZXdXaWxsVmFsaWRhdGU7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgLy8gSWYgdGhlIGZvbGxvd2luZyBhc3NlcnRpb24gZmFpbHMsIHVwZGF0ZVdpbGxWYWxp
ZGF0ZUFuZFZhbGlkaXR5KCkgaXMgbm90Ci0gICAgICAgIC8vIGNhbGxlZCBjb3JyZWN0bHkgd2hl
biBzb21ldGhpbmcgd2hpY2ggY2hhbmdlcyBjb21wdXRlV2lsbFZhbGlkYXRlKCkgcmVzdWx0Ci0g
ICAgICAgIC8vIGlzIHVwZGF0ZWQuCi0gICAgICAgIEFTU0VSVChtX3dpbGxWYWxpZGF0ZSA9PSBj
b21wdXRlV2lsbFZhbGlkYXRlKCkpOwotICAgIH0KLSAgICByZXR1cm4gbV93aWxsVmFsaWRhdGU7
Ci19Ci0KLXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dXBkYXRlV2lsbFZhbGlkYXRlQW5k
VmFsaWRpdHkoKQotewotICAgIC8vIFdlIG5lZWQgdG8gcmVjYWxjdWxhdGUgd2lsbFZhbGlkYXRl
IGltbWVkaWF0ZWx5IGJlY2F1c2Ugd2lsbFZhbGlkYXRlIGNoYW5nZSBjYW4gY2F1c2VzIHN0eWxl
IGNoYW5nZS4KLSAgICBib29sIG5ld1dpbGxWYWxpZGF0ZSA9IGNvbXB1dGVXaWxsVmFsaWRhdGUo
KTsKLSAgICBpZiAobV93aWxsVmFsaWRhdGVJbml0aWFsaXplZCAmJiBtX3dpbGxWYWxpZGF0ZSA9
PSBuZXdXaWxsVmFsaWRhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGJvb2wgd2FzVmFsaWQg
PSBtX2lzVmFsaWQ7Ci0KLSAgICBtX3dpbGxWYWxpZGF0ZUluaXRpYWxpemVkID0gdHJ1ZTsKLSAg
ICBtX3dpbGxWYWxpZGF0ZSA9IG5ld1dpbGxWYWxpZGF0ZTsKLQotICAgIHVwZGF0ZVZhbGlkaXR5
KCk7Ci0KLSAgICBpZiAoIW1fd2lsbFZhbGlkYXRlICYmICF3YXNWYWxpZCkgewotICAgICAgICBy
ZW1vdmVJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMsIHBh
cmVudE5vZGUoKSk7Ci0gICAgICAgIGlmIChSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtID0g
dGhpcy0+Zm9ybSgpKQotICAgICAgICAgICAgZm9ybS0+cmVtb3ZlSW52YWxpZEZvcm1Db250cm9s
SWZOZWVkZWQoKnRoaXMpOwotICAgIH0KLQotICAgIGlmICghbV93aWxsVmFsaWRhdGUpCi0gICAg
ICAgIGhpZGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoKTsKLX0KLQotdm9pZCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoKQotewotICAgIFBh
Z2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJl
dHVybjsKLSAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICBpZiAocmVuZGVyZXIoKSAmJiB3aWxsVmFs
aWRhdGUoKSkKLSAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRpb25NZXNzYWdlKCkuc3RyaXBXaGl0
ZVNwYWNlKCk7Ci0gICAgaWYgKCFtX3ZhbGlkYXRpb25NZXNzYWdlKQotICAgICAgICBtX3ZhbGlk
YXRpb25NZXNzYWdlID0gbWFrZVVuaXF1ZTxWYWxpZGF0aW9uTWVzc2FnZT4oKnRoaXMpOwotICAg
IG1fdmFsaWRhdGlvbk1lc3NhZ2UtPnVwZGF0ZVZhbGlkYXRpb25NZXNzYWdlKG1lc3NhZ2UpOwot
fQotCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmhpZGVWaXNpYmxlVmFsaWRhdGlvbk1l
c3NhZ2UoKQotewotICAgIGlmIChtX3ZhbGlkYXRpb25NZXNzYWdlKQotICAgICAgICBtX3ZhbGlk
YXRpb25NZXNzYWdlLT5yZXF1ZXN0VG9IaWRlTWVzc2FnZSgpOwotfQotCi1ib29sIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmNoZWNrVmFsaWRpdHkoVmVjdG9yPFJlZlB0cjxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Pj4qIHVuaGFuZGxlZEludmFsaWRDb250cm9scykKLXsKLSAgICBpZiAoIXdpbGxW
YWxpZGF0ZSgpIHx8IGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgLy8gQW4gZXZlbnQgaGFuZGxlciBjYW4gZGVyZWYgdGhpcyBvYmplY3QuCi0g
ICAgUmVmPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotICAg
IFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudChkb2N1bWVudCgpKTsKLSAgICBhdXRvIGV2
ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW52YWxpZEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKTsKLSAgICBkaXNwYXRjaEV2ZW50
KGV2ZW50KTsKLSAgICBpZiAoIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkgJiYgdW5oYW5kbGVk
SW52YWxpZENvbnRyb2xzICYmIGlzQ29ubmVjdGVkKCkgJiYgb3JpZ2luYWxEb2N1bWVudC5wdHIo
KSA9PSAmZG9jdW1lbnQoKSkKLSAgICAgICAgdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzLT5hcHBl
bmQodGhpcyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmlzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2lzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2U7Ci19Ci0KLWJvb2wgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6aXNTaG93aW5nVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3ZhbGlkYXRpb25NZXNzYWdlICYmIG1fdmFsaWRhdGlvbk1lc3NhZ2UtPmlz
VmlzaWJsZSgpOwotfQotICAgIAotYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZXBvcnRW
YWxpZGl0eSgpCi17Ci0gICAgVmVjdG9yPFJlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pj4g
ZWxlbWVudHM7Ci0gICAgaWYgKGNoZWNrVmFsaWRpdHkoJmVsZW1lbnRzKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICBpZiAoZWxlbWVudHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICAvLyBOZWVkcyB0byB1cGRhdGUgbGF5b3V0IG5vdyBiZWNhdXNlIHdlJ2Qg
bGlrZSB0byBjYWxsIGlzRm9jdXNhYmxlKCksIHdoaWNoCi0gICAgLy8gaGFzICFyZW5kZXJlcigp
LT5uZWVkc0xheW91dCgpIGFzc2VydGlvbi4KLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotCi0gICAgaWYgKGlzQ29ubmVjdGVkKCkgJiYgaXNG
b2N1c2FibGUoKSkgewotICAgICAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07Ci0gICAg
ICAgIGZvY3VzQW5kU2hvd1ZhbGlkYXRpb25NZXNzYWdlKCk7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0KLSAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpKSB7Ci0gICAgICAgIGF1dG8g
bWVzc2FnZSA9IG1ha2VTdHJpbmcoIkFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGggbmFtZT0n
IiwgbmFtZSgpLCAiJyBpcyBub3QgZm9jdXNhYmxlLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpF
cnJvciwgbWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlkYXRpb25NZXNzYWdlKCkKLXsK
LSAgICBTZXRGb3JTY29wZSBpc0ZvY3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlU2NvcGUobV9p
c0ZvY3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlLCB0cnVlKTsKLQotICAgIC8vIENhbGxpbmcg
Zm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcuCi0gICAgZm9jdXMoKTsK
LQotICAgIC8vIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVsZW1lbnQgaW50byB2aWV3IGFuZCB0
aGlzIHNjcm9sbCBtYXkgaGFwcGVuIGFzeW5jaHJvbm91c2x5LgotICAgIC8vIEJlY2F1c2Ugc2Ny
b2xsaW5nIHRoZSB2aWV3IGhpZGVzIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UsIHdlIG5lZWQgdG8g
c2hvdyB0aGUgdmFsaWRhdGlvbgotICAgIC8vIG1lc3NhZ2UgYXN5bmNocm9ub3VzbHkgYXMgd2Vs
bC4KLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0gewotICAgICAgICB1cGRhdGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoKTsKLSAgICB9
KTsKLX0KLQotaW5saW5lIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNWYWxpZEZvcm1D
b250cm9sRWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faXNWYWxpZDsKLX0KLQotdm9p
ZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsQ2hhbmdlRm9ybSgpCi17Ci0gICAgaWYgKEhU
TUxGb3JtRWxlbWVudCogZm9ybSA9IHRoaXMtPmZvcm0oKSkKLSAgICAgICAgZm9ybS0+cmVtb3Zl
SW52YWxpZEZvcm1Db250cm9sSWZOZWVkZWQoKnRoaXMpOwotICAgIEZvcm1MaXN0ZWRFbGVtZW50
Ojp3aWxsQ2hhbmdlRm9ybSgpOwotfQotCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRp
ZENoYW5nZUZvcm0oKQotewotICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFk
IHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLQotICAgIEZvcm1MaXN0ZWRFbGVtZW50OjpkaWRDaGFu
Z2VGb3JtKCk7Ci0gICAgaWYgKGF1dG8qIGZvcm0gPSB0aGlzLT5mb3JtKCkpIHsKLSAgICAgICAg
aWYgKG1fd2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgJiYgbV93aWxsVmFsaWRhdGUgJiYgIWlzVmFs
aWRGb3JtQ29udHJvbEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGZvcm0tPmFkZEludmFsaWRGb3Jt
Q29udHJvbCgqdGhpcyk7Ci0gICAgfQotfQotCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnVwZGF0ZVZhbGlkaXR5KCkKLXsKLSAgICBpZiAobV9kZWxheWVkVXBkYXRlVmFsaWRpdHlDb3Vu
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYm9vbCB3aWxsVmFsaWRhdGUgPSB0aGlzLT53aWxs
VmFsaWRhdGUoKTsKLSAgICBib29sIG5ld0lzVmFsaWQgPSB0aGlzLT5jb21wdXRlVmFsaWRpdHko
KTsKLQotICAgIGlmIChuZXdJc1ZhbGlkICE9IG1faXNWYWxpZCkgewotICAgICAgICBTdHlsZTo6
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gc3R5bGVJbnZhbGlkYXRpb24oKnRoaXMsIHsK
LSAgICAgICAgICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmFsaWQsIG5ld0lzVmFsaWQg
fSwKLSAgICAgICAgICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzSW52YWxpZCwgIW5ld0lz
VmFsaWQgfSwKLSAgICAgICAgICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVXNlclZhbGlk
LCBuZXdJc1ZhbGlkICYmIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZl
bnQgfSwKLSAgICAgICAgICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVXNlckludmFsaWQs
ICFuZXdJc1ZhbGlkICYmIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZl
bnQgfSwKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgbV9pc1ZhbGlkID0gbmV3SXNWYWxpZDsKLQot
ICAgICAgICBpZiAod2lsbFZhbGlkYXRlKSB7Ci0gICAgICAgICAgICBpZiAoIW1faXNWYWxpZCkg
ewotICAgICAgICAgICAgICAgIGlmIChpc0Nvbm5lY3RlZCgpKQotICAgICAgICAgICAgICAgICAg
ICBhZGRJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMsIHBh
cmVudE5vZGUoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8qIGZvcm0gPSB0aGlzLT5mb3Jt
KCkpCi0gICAgICAgICAgICAgICAgICAgIGZvcm0tPmFkZEludmFsaWRGb3JtQ29udHJvbCgqdGhp
cyk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc0Nvbm5lY3Rl
ZCgpKQotICAgICAgICAgICAgICAgICAgICByZW1vdmVJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JG
cm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMsIHBhcmVudE5vZGUoKSk7Ci0gICAgICAgICAgICAgICAg
aWYgKGF1dG8qIGZvcm0gPSB0aGlzLT5mb3JtKCkpCi0gICAgICAgICAgICAgICAgICAgIGZvcm0t
PnJlbW92ZUludmFsaWRGb3JtQ29udHJvbElmTmVlZGVkKCp0aGlzKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFVwZGF0ZXMgb25seSBpZiB0aGlzIGNvbnRyb2wg
YWxyZWFkeSBoYXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UuCi0gICAgaWYgKG1fdmFsaWRhdGlvbk1l
c3NhZ2UgJiYgbV92YWxpZGF0aW9uTWVzc2FnZS0+aXNWaXNpYmxlKCkpIHsKLSAgICAgICAgLy8g
Q2FsbHMgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCkgZXZlbiBpZiBtX2lzVmFsaWQg
aXMgbm90Ci0gICAgICAgIC8vIGNoYW5nZWQgYmVjYXVzZSBhIHZhbGlkYXRpb24gbWVzc2FnZSBj
YW4gYmUgY2hhZ25lZC4KLSAgICAgICAgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7
Ci0gICAgfQotfQotCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCi17Ci0gICAgRm9ybUxpc3RlZEVsZW1lbnQ6OnNldEN1
c3RvbVZhbGlkaXR5KGVycm9yKTsKLSAgICB1cGRhdGVWYWxpZGl0eSgpOwotfQotCi1ib29sIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlU2hhZG93VHJlZUNvbnRhaW5z
KGNvbnN0IE5vZGUmIG5vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmFsaWRhdGlvbk1lc3Nh
Z2UgJiYgbV92YWxpZGF0aW9uTWVzc2FnZS0+c2hhZG93VHJlZUNvbnRhaW5zKG5vZGUpOwotfQot
Ci1ib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Om1hdGNoZXNVc2VySW52YWxpZFBzZXVkb0Ns
YXNzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZv
cm1TdWJtaXRFdmVudCAmJiBtYXRjaGVzSW52YWxpZFBzZXVkb0NsYXNzKCk7Ci19Ci0KLWJvb2wg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6bWF0Y2hlc1VzZXJWYWxpZFBzZXVkb0NsYXNzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRF
dmVudCAmJiBtYXRjaGVzVmFsaWRQc2V1ZG9DbGFzcygpOwotfQotCiB2b2lkIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3Vz
ZWRFbGVtZW50KQogewogICAgIEhUTUxFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChXVEZNb3Zl
KG5ld0ZvY3VzZWRFbGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oCmluZGV4IDVjZGNlODMxNTNlMS4uZjIwOTM4Yjc3Yjk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMjQsOCArMjQsOCBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdXRvZmlsbC5oIgotI2luY2x1ZGUgIkZvcm1M
aXN0ZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUg
IlZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmgiCiAKICNpZiBFTkFCTEUoQVVUT0NBUElUQUxJ
WkUpCiAjaW5jbHVkZSAiQXV0b2NhcGl0YWxpemUuaCIKQEAgLTMzLDIxICszMywyMCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERPTUZvcm1EYXRhOwotY2xhc3MgSFRNTEZpZWxk
U2V0RWxlbWVudDsKLWNsYXNzIEhUTUxGb3JtRWxlbWVudDsKLWNsYXNzIEhUTUxMZWdlbmRFbGVt
ZW50OwotY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2U7Ci0KLS8vIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQgaXMgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgRm9ybUxpc3RlZEVsZW1lbnQsCi0v
LyBhbmQgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQgaW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2Ug
SFRNTEZvcm1Db250cm9sRWxlbWVudAotLy8gdW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lhbCByZWFz
b24uCi1jbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1l
bnQsIHB1YmxpYyBGb3JtTGlzdGVkRWxlbWVudCB7CitjbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1lbnQsIHB1YmxpYyBWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50KTsKLSAgICBmcmllbmQgY2xhc3MgRGVsYXllZFVwZGF0ZVZhbGlkaXR5U2NvcGU7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sRWxlbWVudCgpOwogCisgICAgYm9vbCBp
c1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIGJvb2wgaXNGb3JtTGlzdGVkRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKworICAgIGJvb2wgbWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB3aWxsVmFsaWRhdGUoKSAmJiBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVt
ZW50KCk7IH0KKyAgICBib29sIG1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB3aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250cm9sRWxlbWVu
dCgpOyB9CisKKyAgICBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGlzRGlzYWJsZWQoKTsgfQorICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICFpc0Rpc2FibGVkKCk7IH0KKwogICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBmb3JtRW5jdHlwZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Rm9ybUVuY3R5cGUoY29uc3QgQXRvbVN0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBmb3JtTWV0aG9kKCkgY29uc3Q7CkBAIC01Niw0MCArNTUsMjMgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBmb3JtQWN0aW9uKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRGb3JtQWN0aW9uKGNvbnN0IEF0b21TdHJpbmcmKTsKIAotICAgIHZvaWQgc2V0
QW5jZXN0b3JEaXNhYmxlZChib29sIGlzRGlzYWJsZWQpOwotCi0gICAgdmlydHVhbCB2b2lkIHJl
c2V0KCkgeyB9Ci0KICAgICBib29sIGZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVyOyB9CiAgICAgdm9pZCBzZXRGb3Jt
Q29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGJvb2wgYikgeyBtX3ZhbHVlTWF0Y2hlc1JlbmRl
cmVyID0gYjsgfQogCiAgICAgYm9vbCB3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9s
Q2hhbmdlRXZlbnQ7IH0KICAgICB2b2lkIHNldENoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENo
YW5nZUV2ZW50KGJvb2wpOwogCi0gICAgYm9vbCB3YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZv
cm1TdWJtaXRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxh
c3RGb3JtU3VibWl0RXZlbnQ7IH0KLSAgICB2b2lkIHNldEludGVyYWN0ZWRXaXRoU2luY2VMYXN0
Rm9ybVN1Ym1pdEV2ZW50KGJvb2wpOwotCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCgpOwogICAgIHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwogICAg
IHZvaWQgZGlzcGF0Y2hDYW5jZWxFdmVudCgpOwogICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJv
bElucHV0RXZlbnQoKTsKIAotICAgIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9kaXNhYmxlZCB8fCBtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0
OyB9Ci0KLSAgICBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KLQogICAgIGJvb2wgaXNSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXF1
aXJlZDsgfQogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIGZv
cm1Db250cm9sVHlwZSgpOyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0ID0gMDsKLQogICAgIHZpcnR1YWwgYm9vbCBjYW5UcmlnZ2VySW1w
bGljaXRTdWJtaXNzaW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIC8vIE92ZXJy
aWRlIGluIGRlcml2ZWQgY2xhc3NlcyB0byBnZXQgdGhlIGVuY29kZWQgbmFtZT12YWx1ZSBwYWly
IGZvciBzdWJtaXR0aW5nLgotICAgIC8vIFJldHVybiB0cnVlIGZvciBhIHN1Y2Nlc3NmdWwgY29u
dHJvbCAoc2VlIEhUTUw0LTE3LjEzLjIpLgotICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRE9NRm9y
bURhdGEmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotCiAgICAgdmlydHVhbCBib29sIGlz
U3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzQWN0aXZhdGVkU3VibWl0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZhdGVkU3VibWl0KGJvb2wpIHsgfQpAQCAtMTAyLDI2ICs4
NCw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBBdXRvY2FwaXRhbGl6ZVR5cGUgYXV0
b2NhcGl0YWxpemVUeXBlKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIC8vICJ3aWxsVmFs
aWRhdGUiIG1lYW5zICJpcyBhIGNhbmRpZGF0ZSBmb3IgY29uc3RyYWludCB2YWxpZGF0aW9uIi4K
LSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsOwotICAg
IHZvaWQgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7Ci0gICAgdm9pZCBoaWRlVmlz
aWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjaGVja1Zh
bGlkaXR5KFZlY3RvcjxSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4+KiB1bmhhbmRsZWRJ
bnZhbGlkQ29udHJvbHMgPSBudWxscHRyKTsKLSAgICBib29sIHJlcG9ydFZhbGlkaXR5KCk7Ci0g
ICAgdm9pZCBmb2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZSgpOwotICAgIGJvb2wgaXNTaG93
aW5nVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlz
Rm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdDsKLSAgICAvLyBUaGlzIG11c3Qg
YmUgY2FsbGVkIHdoZW4gYSB2YWxpZGF0aW9uIGNvbnN0cmFpbnQgb3IgY29udHJvbCB2YWx1ZSBp
cyBjaGFuZ2VkLgotICAgIHZvaWQgdXBkYXRlVmFsaWRpdHkoKTsKLSAgICB2b2lkIHNldEN1c3Rv
bVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwotCi0gICAgYm9vbCBtYXRjaGVzVXNl
ckludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0OwotICAgIGJvb2wgbWF0Y2hlc1VzZXJWYWxpZFBz
ZXVkb0NsYXNzKCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNSZWFkT25seSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyBy
ZXR1cm4gc3VwcG9ydHNSZWFkT25seSgpICYmIG1faGFzUmVhZE9ubHlBdHRyaWJ1dGU7IH0KLSAg
ICBib29sIGlzTXV0YWJsZSgpIGNvbnN0IHsgcmV0dXJuICFpc0Rpc2FibGVkRm9ybUNvbnRyb2wo
KSAmJiAhaXNSZWFkT25seSgpOyB9Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgYXV0b2Nv
bXBsZXRlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXRvY29tcGxldGUo
Y29uc3QgQXRvbVN0cmluZyYpOwogCkBAIC0xMzksMjAgKzEwMSwxOCBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwogCi0gICAgYm9vbCBkaXNhYmxl
ZEJ5QW5jZXN0b3JGaWVsZHNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWRCeUFuY2VzdG9y
RmllbGRzZXQ7IH0KLQotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJs
ZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVkU3RhdGVDaGFu
Z2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVpcmVkU3RhdGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCBkaWRBdHRhY2hSZW5k
ZXJlcnMoKSBvdmVycmlkZTsKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRl
ZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1v
dmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZE1vdmVU
b05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENv
bnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5p
c2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlzYWJsZWRTdGF0ZUNo
YW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVpcmVkU3RhdGVDaGFuZ2VkKCk7CiAKLSAgICBib29s
IHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1
c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0xNjAsOTAgKzEyMCwzMCBAQCBwcm90ZWN0
ZWQ6CiAKICAgICB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG5ld0Zv
Y3VzZWRFbGVtZW50KSBvdmVycmlkZTsKIAotICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgYW55
IHRpbWUgdGhlIHJlc3VsdCBvZiB3aWxsVmFsaWRhdGUoKSBoYXMgY2hhbmdlZC4KLSAgICB2b2lk
IHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7Ci0gICAgdmlydHVhbCBib29sIGNvbXB1
dGVXaWxsVmFsaWRhdGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgcmVhZE9ubHlCYXJzRnJv
bUNvbnN0cmFpbnRWYWxpZGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIGJv
b2wgdmFsaWRhdGlvbk1lc3NhZ2VTaGFkb3dUcmVlQ29udGFpbnMoY29uc3QgTm9kZSYpIGNvbnN0
OwotCi0gICAgdm9pZCB3aWxsQ2hhbmdlRm9ybSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ2hh
bmdlRm9ybSgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgotICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0
ZWRFbGVtZW50KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZvaWQgZGVyZWZGb3JtQXNzb2Np
YXRlZEVsZW1lbnQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKyAgICB2b2lkIHJlZkZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVm
Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKICAg
ICB2b2lkIHJ1bkZvY3VzaW5nU3RlcHNGb3JBdXRvZm9jdXMoKSBmaW5hbDsKLQotICAgIGJvb2wg
bWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIG1hdGNo
ZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICBIVE1MRWxlbWVudCog
dmFsaWRhdGlvbkFuY2hvckVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBi
b29sIGlzRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
Ci0gICAgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Q7Ci0KLSAgICBib29s
IGNvbXB1dGVJc0Rpc2FibGVkQnlGaWVsZHNldEFuY2VzdG9yKCkgY29uc3Q7Ci0gICAgCi0gICAg
dm9pZCBzdGFydERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKSB7ICsrbV9kZWxheWVkVXBkYXRlVmFs
aWRpdHlDb3VudDsgfQotICAgIHZvaWQgZW5kRGVsYXlpbmdVcGRhdGVWYWxpZGl0eSgpOwotCiAg
ICAgLy8gVGhlc2UgZnVuY3Rpb25zIGNhbiBiZSBjYWxsZWQgY29uY3VycmVudGx5IGZvciBWYWxp
ZGl0eVN0YXRlLgogICAgIEhUTUxFbGVtZW50JiBhc0hUTUxFbGVtZW50KCkgZmluYWwgeyByZXR1
cm4gKnRoaXM7IH0KICAgICBjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBhc0hUTUxFbGVt
ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gKnRoaXM7IH0KIAogICAgIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudCogYXNGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9
CiAgICAgRm9ybUxpc3RlZEVsZW1lbnQqIGFzRm9ybUxpc3RlZEVsZW1lbnQoKSBmaW5hbCB7IHJl
dHVybiB0aGlzOyB9CisgICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQqIGFzVmFsaWRhdGVk
Rm9ybUxpc3RlZEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAKICAgICBib29sIG5l
ZWRzTW91c2VGb2N1c2FibGVRdWlyaygpIGNvbnN0OwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFZh
bGlkYXRpb25NZXNzYWdlPiBtX3ZhbGlkYXRpb25NZXNzYWdlOwotICAgIAotICAgIHVuc2lnbmVk
IG1fZGVsYXllZFVwZGF0ZVZhbGlkaXR5Q291bnQgeyAwIH07Ci0KLSAgICBib29sIG1faXNGb2N1
c2luZ1dpdGhWYWxpZGF0aW9uTWVzc2FnZSB7IGZhbHNlIH07Ci0KLSAgICB1bnNpZ25lZCBtX2Rp
c2FibGVkIDogMTsKLSAgICB1bnNpZ25lZCBtX2hhc1JlYWRPbmx5QXR0cmlidXRlIDogMTsKICAg
ICB1bnNpZ25lZCBtX2lzUmVxdWlyZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fdmFsdWVNYXRjaGVz
UmVuZGVyZXIgOiAxOwotICAgIHVuc2lnbmVkIG1fZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQg
OiAxOwotCi0gICAgZW51bSBEYXRhTGlzdEFuY2VzdG9yU3RhdGUgeyBVbmtub3duLCBJbnNpZGVE
YXRhTGlzdCwgTm90SW5zaWRlRGF0YUxpc3QgfTsKLSAgICBtdXRhYmxlIHVuc2lnbmVkIG1fZGF0
YUxpc3RBbmNlc3RvclN0YXRlIDogMjsKLQotICAgIC8vIFRoZSBpbml0aWFsIHZhbHVlIG9mIG1f
d2lsbFZhbGlkYXRlIGRlcGVuZHMgb24gdGhlIGRlcml2ZWQgY2xhc3MuIFdlIGNhbid0Ci0gICAg
Ly8gaW5pdGlhbGl6ZSBpdCB3aXRoIGEgdmlydHVhbCBmdW5jdGlvbiBpbiB0aGUgY29uc3RydWN0
b3IuIG1fd2lsbFZhbGlkYXRlCi0gICAgLy8gaXMgbm90IGRldGVybWluaXN0aWMgYXMgbG9uZyBh
cyBtX3dpbGxWYWxpZGF0ZUluaXRpYWxpemVkIGlzIGZhbHNlLgotICAgIG11dGFibGUgYm9vbCBt
X3dpbGxWYWxpZGF0ZUluaXRpYWxpemVkOiAxOwotICAgIG11dGFibGUgYm9vbCBtX3dpbGxWYWxp
ZGF0ZSA6IDE7Ci0KLSAgICAvLyBDYWNoZSBvZiB2YWxpZGl0eSgpLT52YWxpZCgpLgotICAgIC8v
IEJ1dCAiY2FuZGlkYXRlIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24iIGRvZXNuJ3QgYWZmZWN0
IG1faXNWYWxpZC4KLSAgICB1bnNpZ25lZCBtX2lzVmFsaWQgOiAxOwotCiAgICAgdW5zaWduZWQg
bV93YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCA6IDE7Ci0gICAgdW5z
aWduZWQgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRFdmVudCA6IDE7Ci19
OwotCi1jbGFzcyBEZWxheWVkVXBkYXRlVmFsaWRpdHlTY29wZSB7Ci1wdWJsaWM6Ci0gICAgRGVs
YXllZFVwZGF0ZVZhbGlkaXR5U2NvcGUoSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZWxlbWVudCkK
LSAgICAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIG1fZWxlbWVudC5z
dGFydERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKTsKLSAgICB9Ci0gICAgCi0gICAgfkRlbGF5ZWRV
cGRhdGVWYWxpZGl0eVNjb3BlKCkKLSAgICB7Ci0gICAgICAgIG1fZWxlbWVudC5lbmREZWxheWlu
Z1VwZGF0ZVZhbGlkaXR5KCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQmIG1fZWxlbWVudDsKIH07CiAKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1l
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBlZDgzZjY2
OGM1Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50V2l0aFN0YXRlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqICAg
ICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlw
b3AuY29tKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGUuaCIKLQotI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKLSNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKTsKLQot
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQs
IEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQsIGZvcm0pCi17Ci19Ci0KLUhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRo
U3RhdGU6On5IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCkgPSBkZWZhdWx0OwotCi1O
b2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0
aFN0YXRlOjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUs
IENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQotewotICAgIG1faW5zZXJ0aW9u
SW5kZXggPSArK2xhc3RJbnNlcnRpb25JbmRleDsKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9uVHlwZSwgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpOwotfQotCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OnJl
bW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUm
IG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpCi17Ci0gICAgbV9pbnNlcnRpb25JbmRleCA9IDA7Ci0g
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlw
ZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7Ci19Ci0KLWJvb2wgSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZTo6c2hvdWxkQXV0b2NvbXBsZXRlKCkgY29uc3QKLXsKLSAgICBpZiAoIWZv
cm0oKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZvcm0oKS0+c2hvdWxkQXV0
b2NvbXBsZXRlKCk7Ci19Ci0KLWJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6
c2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKLXsKLSAgICAvLyBX
ZSBkb24ndCBzYXZlL3Jlc3RvcmUgY29udHJvbCBzdGF0ZSBpbiBhIGZvcm0gd2l0aCBhdXRvY29t
cGxldGU9b2ZmLgotICAgIHJldHVybiBpc0Nvbm5lY3RlZCgpICYmIHNob3VsZEF1dG9jb21wbGV0
ZSgpOwotfQotCi1Gb3JtQ29udHJvbFN0YXRlIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3Rh
dGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRm9ybUNvbnRy
b2xTdGF0ZSgpOwotfQotCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmZp
bmlzaFBhcnNpbmdDaGlsZHJlbigpCi17Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zmlu
aXNoUGFyc2luZ0NoaWxkcmVuKCk7Ci0gICAgZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigpLnJl
c3RvcmVDb250cm9sU3RhdGVGb3IoKnRoaXMpOwotfQotCi1ib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGU6OmlzRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdWludDY0X3QgSFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZTo6bGFzdEluc2VydGlvbkluZGV4IHsgMCB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJj
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzlmY2FlMDE2Yzgu
LjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAgICAgICAg
ICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqICAgICAgICAg
ICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBGb3JtQ29u
dHJvbFN0YXRlID0gVmVjdG9yPEF0b21TdHJpbmc+OwotCi1jbGFzcyBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlIDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewotICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSk7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSgpOwot
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0
ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25z
dCBGb3JtQ29udHJvbFN0YXRlJikgeyB9IC8vIENhbGxlZCBvbmx5IGlmIHN0YXRlIGlzIG5vdCBl
bXB0eS4KLQotICAgIHVpbnQ2NF90IGluc2VydGlvbkluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9p
bnNlcnRpb25JbmRleDsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYsIEhUTUxG
b3JtRWxlbWVudCopOwotCi0gICAgdmlydHVhbCBib29sIHNob3VsZEF1dG9jb21wbGV0ZSgpIGNv
bnN0OwotCi0gICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVy
cmlkZTsKLSAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3Rv
cihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1v
dmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0K
LXByaXZhdGU6Ci0gICAgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSgpIGNvbnN0
IGZpbmFsOwotCi0gICAgdWludDY0X3QgbV9pbnNlcnRpb25JbmRleCB7IDAgfTsKLSAgICBzdGF0
aWMgdWludDY0X3QgbGFzdEluc2VydGlvbkluZGV4OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUpCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnQmIGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQuaXNGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUoKTsgfQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpO
b2RlJiBub2RlKSB7IHJldHVybiBpczxXZWJDb3JlOjpFbGVtZW50Pihub2RlKSAmJiBpc1R5cGUo
ZG93bmNhc3Q8V2ViQ29yZTo6RWxlbWVudD4obm9kZSkpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNU
eXBlKGNvbnN0IFdlYkNvcmU6OkZvcm1MaXN0ZWRFbGVtZW50JiBlbGVtZW50KSB7IHJldHVybiBl
bGVtZW50LmlzRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCk7IH0KLVNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCBhODJhZGY0YzVlNzYuLjNiZmExZGIwZjFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtMjQ1LDExICsyNDUsMTEgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6
OnN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmIGV2ZW50LCBib29sIGZyb21JbXBsaWNpdFN1Ym1pc3Np
b24KIGJvb2wgSFRNTEZvcm1FbGVtZW50Ojp2YWxpZGF0ZUludGVyYWN0aXZlbHkoKQogewogICAg
IGZvciAoYXV0byYgbGlzdGVkRWxlbWVudCA6IG1fbGlzdGVkRWxlbWVudHMpIHsKLSAgICAgICAg
aWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpsaXN0ZWRFbGVtZW50KSkKLSAgICAgICAg
ICAgIGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpsaXN0ZWRFbGVtZW50KS5oaWRl
VmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7CisgICAgICAgIGlmIChhdXRvKiBjb250cm9sID0g
bGlzdGVkRWxlbWVudC0+YXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgpKQorICAgICAgICAg
ICAgY29udHJvbC0+aGlkZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIH0KIAotICAg
IFZlY3RvcjxSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4+IHVuaGFuZGxlZEludmFsaWRD
b250cm9sczsKKyAgICBWZWN0b3I8UmVmUHRyPFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4g
dW5oYW5kbGVkSW52YWxpZENvbnRyb2xzOwogICAgIGlmICghY2hlY2tJbnZhbGlkQ29udHJvbHNB
bmRDb2xsZWN0VW5oYW5kbGVkKHVuaGFuZGxlZEludmFsaWRDb250cm9scykpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIC8vIEJlY2F1c2UgdGhlIGZvcm0gaGFzIGludmFsaWQgY29udHJvbHMs
IHdlIGFib3J0IHRoZSBmb3JtIHN1Ym1pc3Npb24gYW5kCkBAIC0yNjIsMjEgKzI2MiwxNSBAQCBi
b29sIEhUTUxGb3JtRWxlbWVudDo6dmFsaWRhdGVJbnRlcmFjdGl2ZWx5KCkKICAgICBSZWY8SFRN
TEZvcm1FbGVtZW50PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIC8vIEZvY3VzIG9uIHRo
ZSBmaXJzdCBmb2N1c2FibGUgY29udHJvbCBhbmQgc2hvdyBhIHZhbGlkYXRpb24gbWVzc2FnZS4K
KyAgICBib29sIHNob3VsZEZvY3VzID0gdHJ1ZTsKICAgICBmb3IgKGF1dG8mIGNvbnRyb2wgOiB1
bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpIHsKLSAgICAgICAgaWYgKGNvbnRyb2wtPmlzQ29ubmVj
dGVkKCkgJiYgY29udHJvbC0+aXNGb2N1c2FibGUoKSkgewotICAgICAgICAgICAgY29udHJvbC0+
Zm9jdXNBbmRTaG93VmFsaWRhdGlvbk1lc3NhZ2UoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgLy8gV2FybiBhYm91dCBhbGwgb2YgdW5mb2N1c2FibGUgY29u
dHJvbHMuCi0gICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSkgewotICAgICAgICBmb3IgKGF1dG8m
IGNvbnRyb2wgOiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpIHsKLSAgICAgICAgICAgIGlmIChj
b250cm9sLT5pc0Nvbm5lY3RlZCgpICYmIGNvbnRyb2wtPmlzRm9jdXNhYmxlKCkpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhdXRvIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJBbiBpbnZhbGlkIGZvcm0gY29udHJvbCB3aXRoIG5hbWU9JyIsIGNvbnRyb2wtPm5hbWUoKSwg
IicgaXMgbm90IGZvY3VzYWJsZS4iKTsKLSAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBt
ZXNzYWdlKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoYXV0byB2YWxpZGF0aW9uQW5jaG9yID0g
Y29udHJvbC0+Zm9jdXNhYmxlVmFsaWRhdGlvbkFuY2hvckVsZW1lbnQoKSkgeworICAgICAgICAg
ICAgaWYgKHNob3VsZEZvY3VzKSB7CisgICAgICAgICAgICAgICAgc2hvdWxkRm9jdXMgPSBmYWxz
ZTsKKyAgICAgICAgICAgICAgICBjb250cm9sLT5mb2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2Fn
ZSh2YWxpZGF0aW9uQW5jaG9yLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvbnRyb2wtPnJlcG9ydE5vbkZvY3VzYWJsZUNvbnRy
b2xFcnJvcigpOwogICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTUwNSwxNyArNDk5LDgg
QEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlc2V0TGlzdGVkRm9ybUNvbnRyb2xFbGVtZW50cygp
CiAgICAgLy8gRXZlbnQgaGFuZGxpbmcgY2FuIGNhdXNlIGxpc3RlZCBlbGVtZW50cyB0byBiZSBh
ZGRlZCBvciBkZWxldGVkIHdoaWxlIGl0ZXJhdGluZwogICAgIC8vIG92ZXIgdGhpcyBjb2xsZWN0
aW9uLiBQcm90ZWN0IHRoZXNlIGVsZW1lbnRzIHVudGlsIHdlIGFyZSBkb25lIG5vdGlmeWluZyB0
aGVtIG9mCiAgICAgLy8gdGhlIHJlc2V0IG9wZXJhdGlvbi4KLSAgICBWZWN0b3I8UmVmPEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ+PiBsaXN0ZWRGb3JtQ29udHJvbEVsZW1lbnRzOwotICAgIGxpc3Rl
ZEZvcm1Db250cm9sRWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX2xpc3RlZEVsZW1l
bnRzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiB3ZWFrRWxlbWVudCA6IG1fbGlzdGVkRWxlbWVu
dHMpIHsKLSAgICAgICAgYXV0byogZWxlbWVudCA9IHdlYWtFbGVtZW50LmdldCgpOwotICAgICAg
ICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgICAgIGlmIChpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50
PihlbGVtZW50KSkKLSAgICAgICAgICAgIGxpc3RlZEZvcm1Db250cm9sRWxlbWVudHMudW5jaGVj
a2VkQXBwZW5kKGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCplbGVtZW50KSk7Ci0g
ICAgfQotCi0gICAgZm9yIChhdXRvJiBsaXN0ZWRFbGVtZW50IDogbGlzdGVkRm9ybUNvbnRyb2xF
bGVtZW50cykKLSAgICAgICAgbGlzdGVkRWxlbWVudC0+cmVzZXQoKTsKKyAgICBmb3IgKGF1dG8m
IGNvbnRyb2wgOiBjb3B5VmFsaWRhdGVkTGlzdGVkRWxlbWVudHNWZWN0b3IoKSkKKyAgICAgICAg
Y29udHJvbC0+cmVzZXQoKTsKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpA
QCAtNjE4LDcgKzYwMyw3IEBAIHVuc2lnbmVkIEhUTUxGb3JtRWxlbWVudDo6Zm9ybUVsZW1lbnRJ
bmRleChGb3JtTGlzdGVkRWxlbWVudCYgbGlzdGVkRWxlbWVudCkKICAgICBmb3IgKGF1dG8mIGVs
ZW1lbnQgOiBkZXNjZW5kYW50cykgewogICAgICAgICBpZiAoJmVsZW1lbnQgPT0gJmxpc3RlZEhU
TUxFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIGlmICghaXM8SFRNTEZv
cm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkgJiYgIWlzPEhUTUxPYmplY3RFbGVtZW50PihlbGVt
ZW50KSkKKyAgICAgICAgaWYgKCFlbGVtZW50LmlzRm9ybUxpc3RlZEVsZW1lbnQoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoZWxlbWVudC5hc0Zvcm1MaXN0ZWRFbGVtZW50
KCktPmZvcm0oKSAhPSB0aGlzKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02NjIsNyArNjQ3
LDcgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnVucmVnaXN0ZXJGb3JtTGlzdGVkRWxlbWVudChG
b3JtTGlzdGVkRWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgcmVzZXREZWZhdWx0QnV0dG9uKCk7
CiB9CiAKLXZvaWQgSFRNTEZvcm1FbGVtZW50OjphZGRJbnZhbGlkRm9ybUNvbnRyb2woY29uc3Qg
SFRNTEZvcm1Db250cm9sRWxlbWVudCYgZm9ybUNvbnRyb2xFbGVtZW50KQordm9pZCBIVE1MRm9y
bUVsZW1lbnQ6OmFkZEludmFsaWRGb3JtQ29udHJvbChjb25zdCBIVE1MRWxlbWVudCYgZm9ybUNv
bnRyb2xFbGVtZW50KQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWlzPEhUTUxGaWVsZFNl
dEVsZW1lbnQ+KGZvcm1Db250cm9sRWxlbWVudCksICJGaWVsZFNldCBhcmUgbmV2ZXIgY2FuZGlk
YXRlcyBmb3IgY29uc3RyYWludCB2YWxpZGF0aW9uLiIpOwogICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxjb25zdCBFbGVtZW50Jj4oZm9ybUNvbnRyb2xFbGVtZW50KS5tYXRjaGVzSW52YWxpZFBzZXVk
b0NsYXNzKCkpOwpAQCAtNjcxLDEwICs2NTYsMTAgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmFk
ZEludmFsaWRGb3JtQ29udHJvbChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBmb3JtQ28K
ICAgICBpZiAobV9pbnZhbGlkRm9ybUNvbnRyb2xzLmNvbXB1dGVzRW1wdHkoKSkKICAgICAgICAg
ZW1wbGFjZShzdHlsZUludmFsaWRhdGlvbiwgKnRoaXMsIHsgeyBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NWYWxpZCwgZmFsc2UgfSwgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NJbnZhbGlkLCB0
cnVlIH0gfSk7CiAKLSAgICBtX2ludmFsaWRGb3JtQ29udHJvbHMuYWRkKGNvbnN0X2Nhc3Q8SFRN
TEZvcm1Db250cm9sRWxlbWVudCY+KGZvcm1Db250cm9sRWxlbWVudCkpOworICAgIG1faW52YWxp
ZEZvcm1Db250cm9scy5hZGQoZm9ybUNvbnRyb2xFbGVtZW50KTsKIH0KIAotdm9pZCBIVE1MRm9y
bUVsZW1lbnQ6OnJlbW92ZUludmFsaWRGb3JtQ29udHJvbElmTmVlZGVkKGNvbnN0IEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQmIGZvcm1Db250cm9sRWxlbWVudCkKK3ZvaWQgSFRNTEZvcm1FbGVtZW50
OjpyZW1vdmVJbnZhbGlkRm9ybUNvbnRyb2xJZk5lZWRlZChjb25zdCBIVE1MRWxlbWVudCYgZm9y
bUNvbnRyb2xFbGVtZW50KQogewogICAgIGlmICghbV9pbnZhbGlkRm9ybUNvbnRyb2xzLmNvbnRh
aW5zKGZvcm1Db250cm9sRWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTgzNSwyMiArODIw
LDE4IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpyZXNldERlZmF1bHRCdXR0b24oKQogCiBib29s
IEhUTUxGb3JtRWxlbWVudDo6Y2hlY2tWYWxpZGl0eSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Pj4gY29udHJvbHM7CisgICAgVmVjdG9yPFJlZlB0cjxWYWxp
ZGF0ZWRGb3JtTGlzdGVkRWxlbWVudD4+IGNvbnRyb2xzOwogICAgIHJldHVybiAhY2hlY2tJbnZh
bGlkQ29udHJvbHNBbmRDb2xsZWN0VW5oYW5kbGVkKGNvbnRyb2xzKTsKIH0KIAotYm9vbCBIVE1M
Rm9ybUVsZW1lbnQ6OmNoZWNrSW52YWxpZENvbnRyb2xzQW5kQ29sbGVjdFVuaGFuZGxlZChWZWN0
b3I8UmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+PiYgdW5oYW5kbGVkSW52YWxpZENvbnRy
b2xzKQorYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OmNoZWNrSW52YWxpZENvbnRyb2xzQW5kQ29sbGVj
dFVuaGFuZGxlZChWZWN0b3I8UmVmUHRyPFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4mIHVu
aGFuZGxlZEludmFsaWRDb250cm9scykKIHsKICAgICBSZWY8SFRNTEZvcm1FbGVtZW50PiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICAvLyBDb3B5IG1fbGlzdGVkRWxlbWVudHMgYmVjYXVzZSBl
dmVudCBoYW5kbGVycyBjYWxsZWQgZnJvbSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGVja1Zh
bGlkaXR5KCkgbWlnaHQgY2hhbmdlIG1fbGlzdGVkRWxlbWVudHMuCi0gICAgYXV0byBlbGVtZW50
cyA9IGNvcHlMaXN0ZWRFbGVtZW50c1ZlY3RvcigpOwogICAgIGJvb2wgaGFzSW52YWxpZENvbnRy
b2xzID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudHMpIHsKLSAgICAg
ICAgaWYgKGVsZW1lbnQtPmZvcm0oKSA9PSB0aGlzICYmIGlzPEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBjb250
cm9sID0gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudC5nZXQoKSk7Ci0g
ICAgICAgICAgICBpZiAoIWNvbnRyb2wuY2hlY2tWYWxpZGl0eSgmdW5oYW5kbGVkSW52YWxpZENv
bnRyb2xzKSAmJiBjb250cm9sLmZvcm0oKSA9PSB0aGlzKQotICAgICAgICAgICAgICAgIGhhc0lu
dmFsaWRDb250cm9scyA9IHRydWU7Ci0gICAgICAgIH0KKyAgICBmb3IgKGF1dG8mIGNvbnRyb2wg
OiBjb3B5VmFsaWRhdGVkTGlzdGVkRWxlbWVudHNWZWN0b3IoKSkgeworICAgICAgICBpZiAoY29u
dHJvbC0+Zm9ybSgpID09IHRoaXMgJiYgIWNvbnRyb2wtPmNoZWNrVmFsaWRpdHkoJnVuaGFuZGxl
ZEludmFsaWRDb250cm9scykgJiYgY29udHJvbC0+Zm9ybSgpID09IHRoaXMpCisgICAgICAgICAg
ICBoYXNJbnZhbGlkQ29udHJvbHMgPSB0cnVlOwogICAgIH0KICAgICByZXR1cm4gaGFzSW52YWxp
ZENvbnRyb2xzOwogfQpAQCAtOTkxLDYgKzk3MiwxMyBAQCBWZWN0b3I8UmVmPEZvcm1MaXN0ZWRF
bGVtZW50Pj4gSFRNTEZvcm1FbGVtZW50Ojpjb3B5TGlzdGVkRWxlbWVudHNWZWN0b3IoKSBjb25z
dAogICAgIH0pOwogfQogCitWZWN0b3I8UmVmPFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4g
SFRNTEZvcm1FbGVtZW50Ojpjb3B5VmFsaWRhdGVkTGlzdGVkRWxlbWVudHNWZWN0b3IoKSBjb25z
dAoreworICAgIHJldHVybiBXVEY6OmNvbXBhY3RNYXAobV9saXN0ZWRFbGVtZW50cywgW10oYXV0
byYgd2Vha0VsZW1lbnQpIHsKKyAgICAgICAgcmV0dXJuIFJlZlB0ciB7IHdlYWtFbGVtZW50LT5h
c1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgfTsKKyAgICB9KTsKK30KKwogdm9pZCBIVE1M
Rm9ybUVsZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJvbUVsZW1lbnQoY29uc3Qg
RWxlbWVudCYgc291cmNlKQogewogICAgIG1fd2FzRGVtb3RlZCA9IHN0YXRpY19jYXN0PGNvbnN0
IEhUTUxGb3JtRWxlbWVudCY+KHNvdXJjZSkubV93YXNEZW1vdGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmgKaW5kZXggMTgwNTI4YmUwOGFlLi40ZDgxMGY0NjM2NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBG
b3JtTGlzdGVkRWxlbWVudDsKIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ7CiBjbGFzcyBI
VE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjsKIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CitjbGFz
cyBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDsKIAogY2xhc3MgSFRNTEZvcm1FbGVtZW50IGZp
bmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEhU
TUxGb3JtRWxlbWVudCk7CkBAIC02Nyw4ICs2OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lz
dGVyRm9ybUxpc3RlZEVsZW1lbnQoRm9ybUxpc3RlZEVsZW1lbnQmKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJGb3JtTGlzdGVkRWxlbWVudChGb3JtTGlzdGVkRWxlbWVudCYpOwogCi0gICAgdm9pZCBh
ZGRJbnZhbGlkRm9ybUNvbnRyb2woY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYpOwotICAg
IHZvaWQgcmVtb3ZlSW52YWxpZEZvcm1Db250cm9sSWZOZWVkZWQoY29uc3QgSFRNTEZvcm1Db250
cm9sRWxlbWVudCYpOworICAgIHZvaWQgYWRkSW52YWxpZEZvcm1Db250cm9sKGNvbnN0IEhUTUxF
bGVtZW50Jik7CisgICAgdm9pZCByZW1vdmVJbnZhbGlkRm9ybUNvbnRyb2xJZk5lZWRlZChjb25z
dCBIVE1MRWxlbWVudCYpOwogCiAgICAgdm9pZCByZWdpc3RlckltZ0VsZW1lbnQoSFRNTEltYWdl
RWxlbWVudCYpOwogICAgIHZvaWQgdW5yZWdpc3RlckltZ0VsZW1lbnQoSFRNTEltYWdlRWxlbWVu
dCYpOwpAQCAtMTE2LDYgKzExNyw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IFZlY3RvcjxXZWFrUHRyPEhUTUxFbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdl
dERhdGE+PiYgdW5zYWZlTGlzdGVkRWxlbWVudHMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBWZWN0b3I8UmVmPEZvcm1MaXN0ZWRFbGVtZW50Pj4gY29weUxpc3RlZEVsZW1lbnRzVmVjdG9y
KCkgY29uc3Q7CisgICAgVmVjdG9yPFJlZjxWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudD4+IGNv
cHlWYWxpZGF0ZWRMaXN0ZWRFbGVtZW50c1ZlY3RvcigpIGNvbnN0OwogICAgIGNvbnN0IFZlY3Rv
cjxXZWFrUHRyPEhUTUxJbWFnZUVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0
YT4+JiBpbWFnZUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUVsZW1lbnRzOyB9CiAK
ICAgICBTdHJpbmdQYWlyVmVjdG9yIHRleHRGaWVsZFZhbHVlcygpIGNvbnN0OwpAQCAtMTUzLDcg
KzE1NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gVmFsaWRhdGVzIGVhY2ggb2YgdGhlIGNvbnRyb2xz
LCBhbmQgc3RvcmVzIGNvbnRyb2xzIG9mIHdoaWNoICdpbnZhbGlkJwogICAgIC8vIGV2ZW50IHdh
cyBub3QgY2FuY2VsZWQgdG8gdGhlIHNwZWNpZmllZCB2ZWN0b3IuIFJldHVybnMgdHJ1ZSBpZiB0
aGVyZQogICAgIC8vIGFyZSBhbnkgaW52YWxpZCBjb250cm9scyBpbiB0aGlzIGZvcm0uCi0gICAg
Ym9vbCBjaGVja0ludmFsaWRDb250cm9sc0FuZENvbGxlY3RVbmhhbmRsZWQoVmVjdG9yPFJlZlB0
cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pj4mKTsKKyAgICBib29sIGNoZWNrSW52YWxpZENvbnRy
b2xzQW5kQ29sbGVjdFVuaGFuZGxlZChWZWN0b3I8UmVmUHRyPFZhbGlkYXRlZEZvcm1MaXN0ZWRF
bGVtZW50Pj4mKTsKIAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudEZyb21QYXN0TmFt
ZXNNYXAoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgYWRkVG9QYXN0TmFtZXNN
YXAoRm9ybUFzc29jaWF0ZWRFbGVtZW50JiwgY29uc3QgQXRvbVN0cmluZyYgcGFzdE5hbWUpOwpA
QCAtMTc3LDcgKzE3OSw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MRWxl
bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPj4gbV9saXN0ZWRFbGVtZW50czsK
ICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MSW1hZ2VFbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVu
dFRhcmdldERhdGE+PiBtX2ltYWdlRWxlbWVudHM7Ci0gICAgV2Vha0hhc2hTZXQ8SFRNTEZvcm1D
b250cm9sRWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2ludmFsaWRG
b3JtQ29udHJvbHM7CisgICAgV2Vha0hhc2hTZXQ8SFRNTEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0
aEV2ZW50VGFyZ2V0RGF0YT4gbV9pbnZhbGlkRm9ybUNvbnRyb2xzOwogICAgIFdlYWtQdHI8Rm9y
bVN1Ym1pc3Npb24+IG1fcGxhbm5lZEZvcm1TdWJtaXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxET01Ub2tlbkxpc3Q+IG1fcmVsTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaWRsCmluZGV4IGJmNjUwOThlYTdjZi4uZGU4ZTI3NWIzNDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCkBAIC00Myw3ICs0Myw3IEBACiAKICAgICBbSW1w
bGVtZW50ZWRBcz1zdWJtaXRGcm9tSmF2YVNjcmlwdF0gdW5kZWZpbmVkIHN1Ym1pdCgpOwogICAg
IFtFbmFibGVkQnlTZXR0aW5nPVJlcXVlc3RTdWJtaXRFbmFibGVkXSB1bmRlZmluZWQgcmVxdWVz
dFN1Ym1pdChvcHRpb25hbCBIVE1MRWxlbWVudD8gc3VibWl0dGVyKTsKLSAgICBbQ0VSZWFjdGlv
bnM9Tm90TmVlZGVkXSB1bmRlZmluZWQgcmVzZXQoKTsKKyAgICBbQ0VSZWFjdGlvbnNdIHVuZGVm
aW5lZCByZXNldCgpOwogICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0eSgpOwogICAgIFtFbmFibGVk
QnlTZXR0aW5nPUludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkXSBib29sZWFuIHJlcG9y
dFZhbGlkaXR5KCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRl
eCA5N2RjMzMyMjVlODMuLjRjYTVlNmU5OWU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgKQEAgLTE3NCw4ICsxNzQsOCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCByZXNldEZvcm1Pd25lcigpIGZpbmFsOwotICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0
ZWRFbGVtZW50KCkgZmluYWwgeyBIVE1MRWxlbWVudDo6cmVmKCk7IH0KLSAgICB2b2lkIGRlcmVm
Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgZmluYWwgeyBIVE1MRWxlbWVudDo6ZGVyZWYoKTsgfQor
ICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29uc3QgZmluYWwgeyBIVE1MRWxl
bWVudDo6cmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29u
c3QgZmluYWwgeyBIVE1MRWxlbWVudDo6ZGVyZWYoKTsgfQogICAgIHZvaWQgc2V0Rm9ybUludGVy
bmFsKEhUTUxGb3JtRWxlbWVudCopIGZpbmFsOwogCiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBmMWExYTkwNjNh
NGQuLmM4ZmI0ZDI3YmNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC02MzQsOSArNjM0LDcgQEAgY29uc3QgQXRvbVN0cmluZyYgSFRNTElucHV0RWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91
bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAogewotICAgIGlmICghbV9p
bnB1dFR5cGUtPnNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
aG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKTsKKyAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPnNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpOwogfQogCiBGb3Jt
Q29udHJvbFN0YXRlIEhUTUxJbnB1dEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IDVjYTYzOGE3
MTAzNi4uZTgwOWRhMmFmMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5jcHAKQEAgLTgyLDEwICs4MiwxMSBAQCBSZWZQdHI8TGFiZWxhYmxlRWxlbWVudD4gSFRNTExh
YmVsRWxlbWVudDo6Y29udHJvbCgpIGNvbnN0CiAKIEhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7Ci0gICAgYXV0byBjb250cm9sID0gdGhpcy0+Y29udHJv
bCgpOwotICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY29udHJvbCkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Pihjb250cm9sLmdldCgpKS0+Zm9ybSgpOworICAgIGlmIChhdXRvIGVsZW1lbnQgPSBj
b250cm9sKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGxpc3RlZEVsZW1lbnQgPSBlbGVtZW50LT5h
c1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkpCisgICAgICAgICAgICByZXR1cm4gbGlzdGVk
RWxlbWVudC0+Zm9ybSgpOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBI
VE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBTdHlsZTo6SW52YWxpZGF0aW9u
U2NvcGUgaW52YWxpZGF0aW9uU2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41YjQ3MjhiZDgxMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudC5jcHAKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Lmgi
CisKKyNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQp
OworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitIVE1MTWF5YmVGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQ6OkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBMYWJl
bGFibGVFbGVtZW50IHsgdGFnTmFtZSwgZG9jdW1lbnQgfQoreworICAgIEFTU0VSVChEb2N1bWVu
dDo6dmFsaWRhdGVDdXN0b21FbGVtZW50TmFtZSh0YWdOYW1lLmxvY2FsTmFtZSgpKSA9PSBDdXN0
b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXM6OlZhbGlkKTsKK30KKworSFRNTE1heWJlRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Ojp+SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50KCkgPSBkZWZhdWx0OworCitSZWY8SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50PiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7Cit9CisKK2Jvb2wgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0
b21FbGVtZW50Ojppc0Zvcm1MaXN0ZWRFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKTsKK30KKworYm9vbCBIVE1MTWF5YmVGb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmlzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSBjb25z
dAoreworICAgIHJldHVybiBpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpOworfQorCiti
b29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aXNGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBoYXNGb3JtQXNzb2NpYXRlZElu
dGVyZmFjZSgpICYmIGlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKTsKK30KKworRm9ybUFzc29jaWF0
ZWRFbGVtZW50KiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmFzRm9ybUFz
c29jaWF0ZWRFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSA/ICZmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKSA6IG51bGxwdHI7
Cit9CisKK0Zvcm1MaXN0ZWRFbGVtZW50KiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQ6OmFzRm9ybUxpc3RlZEVsZW1lbnQoKQoreworICAgIHJldHVybiBpc0Zvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudCgpID8gJmZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudFVuc2FmZSgp
IDogbnVsbHB0cjsKK30KKworVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQqIEhUTUxNYXliZUZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6YXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgp
Cit7CisgICAgcmV0dXJuIGlzRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkgPyAmZm9ybUFz
c29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkgOiBudWxscHRyOworfQorCitGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQqIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6
Zm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Rm9yRWxlbWVudEludGVybmFscygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGhhc0Zvcm1Bc3NvY2lhdGVkSW50ZXJmYWNlKCkgJiYgaXNQcmVjdXN0b21p
emVkT3JEZWZpbmVkQ3VzdG9tRWxlbWVudCgpID8gJmZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dFVuc2FmZSgpIDogbnVsbHB0cjsKK30KKworYm9vbCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQ6Om1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnRVbnNhZmUoKS5tYXRjaGVzVmFsaWRQc2V1ZG9DbGFzcygpOworfQorCitib29sIEhU
TUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6bWF0Y2hlc0ludmFsaWRQc2V1ZG9D
bGFzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
KCkgJiYgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkubWF0Y2hlc0ludmFsaWRQ
c2V1ZG9DbGFzcygpOworfQorCitib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudDo6bWF0Y2hlc1VzZXJWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnRVbnNhZmUoKS5tYXRjaGVzVXNlclZhbGlkUHNldWRvQ2xhc3MoKTsKK30KKworYm9vbCBI
VE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6Om1hdGNoZXNVc2VySW52YWxpZFBz
ZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5tYXRjaGVzVXNl
ckludmFsaWRQc2V1ZG9DbGFzcygpOworfQorCitib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkgPyAhZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
VW5zYWZlKCkuaXNEaXNhYmxlZCgpIDogSFRNTEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKTsKK30K
KworYm9vbCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnN1cHBvcnRMYWJl
bHMoKSBjb25zdAoreworICAgIHJldHVybiBpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgp
OworfQorCitib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aXNEaXNh
YmxlZEZvcm1Db250cm9sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5pc0Rp
c2FibGVkKCk7Cit9CisKK05vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEhUTUxNYXli
ZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0
aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJl
ZSkKK3sKKyAgICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9uVHlw
ZSwgcGFyZW50T2ZJbnNlcnRlZFRyZWUpOworICAgIGlmIChpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudCgpKQorICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5p
bnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJlZSk7
CisKKyAgICByZXR1cm4gSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQ6Ok5lZWRzUG9zdEluc2Vy
dGlvbkNhbGxiYWNrOworfQorCit2b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpCit7CisgICAgSFRNTEVsZW1lbnQ6OmRpZEZp
bmlzaEluc2VydGluZ05vZGUoKTsKKyAgICBpZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQoKSkKKyAgICAgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkuZGlkRmlu
aXNoSW5zZXJ0aW5nTm9kZSgpOworfQorCit2b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBE
b2N1bWVudCYgbmV3RG9jdW1lbnQpCit7CisgICAgSFRNTEVsZW1lbnQ6OmRpZE1vdmVUb05ld0Rv
Y3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CisgICAgaWYgKGlzRm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50KCkpCisgICAgICAgIGZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudFVu
c2FmZSgpLmRpZE1vdmVUb05ld0RvY3VtZW50KCk7Cit9CisKK3ZvaWQgSFRNTE1heWJlRm9ybUFz
c29jaWF0ZWRDdXN0b21FbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlIHJl
bW92YWxUeXBlLCBDb250YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKQoreworICAg
IEhUTUxFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKHJlbW92YWxUeXBlLCBvbGRQYXJlbnRP
ZlJlbW92ZWRUcmVlKTsKKyAgICBpZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSkK
KyAgICAgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkucmVtb3ZlZEZyb21B
bmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7Cit9CisKK3ZvaWQg
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIGlmIChpc0Zvcm1B
c3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpKQorICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnRVbnNhZmUoKS5wYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cit9CisKK3ZvaWQgSFRN
TE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4o
KQoreworICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKKyAgICBpZiAo
aXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSkKKyAgICAgICAgZm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50VW5zYWZlKCkuZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7Cit9CisKK3ZvaWQg
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpzZXRJbnRlcmZhY2VJc0Zvcm1B
c3NvY2lhdGVkKCkKK3sKKyAgICBzZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50SW50ZXJmYWNlKTsKKyAgICBlbnN1cmVGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQoKTsKK30KKwordm9pZCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQ6OndpbGxVcGdyYWRlRm9ybUFzc29jaWF0ZWQoKQoreworICAgIEFTU0VSVChpc1ByZWN1c3Rv
bWl6ZWRDdXN0b21FbGVtZW50KCkpOworICAgIHNldEludGVyZmFjZUlzRm9ybUFzc29jaWF0ZWQo
KTsKKyAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS53aWxsVXBncmFkZSgp
OworfQorCit2b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6ZGlkVXBn
cmFkZUZvcm1Bc3NvY2lhdGVkKCkKK3sKKyAgICBBU1NFUlQoaXNGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQoKSk7CisgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkuZGlk
VXBncmFkZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJjb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc0ZDRlYzFlMGRlZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1heWJlRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50LmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiTGFiZWxhYmxlRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDsKKworY2xhc3MgSFRN
TE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50IGZpbmFsIDogcHVibGljIExhYmVsYWJs
ZUVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTE1heWJlRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhUTUxNYXliZUZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Jik7CisKKyAgICB1c2luZyBOb2RlOjpyZWY7CisgICAgdXNpbmcgTm9k
ZTo6ZGVyZWY7CisKKyAgICBib29sIGlzTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBpc0Zvcm1MaXN0ZWRFbGVt
ZW50KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgp
IGNvbnN0OworCisgICAgRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudCgpIGZpbmFsOworICAgIEZvcm1MaXN0ZWRFbGVtZW50KiBhc0Zvcm1MaXN0ZWRFbGVtZW50
KCkgZmluYWw7CisgICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQqIGFzVmFsaWRhdGVkRm9y
bUxpc3RlZEVsZW1lbnQoKSBmaW5hbDsKKyAgICBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQq
IGZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudEZvckVsZW1lbnRJbnRlcm5hbHMoKSBjb25zdDsK
KworICAgIGJvb2wgbWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIG1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIG1h
dGNoZXNVc2VyVmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgbWF0Y2hl
c1VzZXJJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgc3VwcG9y
dHNGb2N1cygpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IGZp
bmFsOworICAgIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QgZmluYWw7CisKKyAg
ICB2b2lkIHNldEludGVyZmFjZUlzRm9ybUFzc29jaWF0ZWQoKTsKKyAgICBib29sIGhhc0Zvcm1B
c3NvY2lhdGVkSW50ZXJmYWNlKCkgY29uc3QgeyByZXR1cm4gaGFzTm9kZUZsYWcoTm9kZUZsYWc6
Okhhc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudEludGVyZmFjZSk7IH0KKworICAgIHZvaWQg
d2lsbFVwZ3JhZGVGb3JtQXNzb2NpYXRlZCgpOworICAgIHZvaWQgZGlkVXBncmFkZUZvcm1Bc3Nv
Y2lhdGVkKCk7CisKK3ByaXZhdGU6CisgICAgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgdmly
dHVhbCB+SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCk7CisKKyAgICBJbnNl
cnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBl
LCBDb250YWluZXJOb2RlJikgZmluYWw7CisgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2Rl
KCkgZmluYWw7CisgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYsIERvY3Vt
ZW50JikgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBD
b250YWluZXJOb2RlJikgZmluYWw7CisgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZmluaXNoUGFy
c2luZ0NoaWxkcmVuKCkgZmluYWw7Cit9OworCitzdGF0aWNfYXNzZXJ0KHNpemVvZihIVE1MTWF5
YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQpID09IHNpemVvZihMYWJlbGFibGVFbGVtZW50
KSk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19C
RUdJTihXZWJDb3JlOjpIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQpCisgICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpIHsgcmV0
dXJuIGVsZW1lbnQuaXNNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpOyB9CisgICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok5vZGUmIG5vZGUpIHsgcmV0dXJuIGlz
PFdlYkNvcmU6OkVsZW1lbnQ+KG5vZGUpICYmIGlzVHlwZShkb3duY2FzdDxXZWJDb3JlOjpFbGVt
ZW50Pihub2RlKSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNzhkNjZiNTBhY2FiLi4wNWM2Yjg1
YjRkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC0x
MDUsOSArMTA1LDcgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICBib29sIGludmFsaWRh
dGVSZW5kZXJlciA9IGZhbHNlOwogICAgIGJvb2wgbmVlZHNXaWRnZXRVcGRhdGUgPSBmYWxzZTsK
IAotICAgIGlmIChuYW1lID09IGZvcm1BdHRyKQotICAgICAgICBmb3JtQXR0cmlidXRlQ2hhbmdl
ZCgpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKKyAgICBpZiAobmFtZSA9PSB0
eXBlQXR0cikgewogICAgICAgICBtX3NlcnZpY2VUeXBlID0gdmFsdWUuc3RyaW5nKCkubGVmdCh2
YWx1ZS5maW5kKCc7JykpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGludmFs
aWRhdGVSZW5kZXJlciA9ICFoYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNsYXNz
aWRBdHRyKTsKICAgICAgICAgbmVlZHNXaWRnZXRVcGRhdGUgPSB0cnVlOwpAQCAtMTE5LDggKzEx
NywxMCBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBj
bGFzc2lkQXR0cikgewogICAgICAgICBpbnZhbGlkYXRlUmVuZGVyZXIgPSB0cnVlOwogICAgICAg
ICBuZWVkc1dpZGdldFVwZGF0ZSA9IHRydWU7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAg
ICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgICAgICBGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIH0KIAogICAgIGlmIChuZWVkc1dpZGdldFVwZGF0ZSkgewogICAgICAgICBzZXROZWVk
c1dpZGdldFVwZGF0ZSh0cnVlKTsKQEAgLTQ2MSw3ICs0NjEsNyBAQCB2b2lkIEhUTUxPYmplY3RF
bGVtZW50OjphZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYgdXJs
cykgY29ucwogCiB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChE
b2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkKIHsKLSAgICBGb3Jt
TGlzdGVkRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQpOworICAgIEZv
cm1MaXN0ZWRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCgpOwogICAgIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVu
dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBlYWYz
ZmRmYjMyMjkuLjg4YzdiYzA4ZDNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaApAQCAtODMsMTYgKzgzLDE5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc1ZhbGlk
Q2xhc3NJZCgpOwogCi0gICAgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7
IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGZpbmFsIHsg
ZGVyZWYoKTsgfQorICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29uc3QgZmlu
YWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBjb25z
dCBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogYXNGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAgRm9ybUxpc3Rl
ZEVsZW1lbnQqIGFzRm9ybUxpc3RlZEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9Cisg
ICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQqIGFzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1l
bnQoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMg
Y2FuIGJlIGNhbGxlZCBjb25jdXJyZW50bHkgZm9yIFZhbGlkaXR5U3RhdGUuCiAgICAgSFRNTE9i
amVjdEVsZW1lbnQmIGFzSFRNTEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQogICAg
IGNvbnN0IEhUTUxPYmplY3RFbGVtZW50JiBhc0hUTUxFbGVtZW50KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gKnRoaXM7IH0KIAorICAgIGJvb2wgaXNGb3JtTGlzdGVkRWxlbWVudCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1l
bnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNGb3JtQ29udHJv
bEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBpc0Vu
dW1lcmF0YWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggM2I5YWU3NDQ5M2YwLi44ZmRjMDc5ZWZj
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC02OSw3
ICs2OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbWF4U2VsZWN0SXRlbXMgPSAxMDAwMDsKIAogSFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxTZWxl
Y3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQotICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKKyAgICA6IEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQog
ICAgICwgbV9zaXplKDApCiAgICAgLCBtX2xhc3RPbkNoYW5nZUluZGV4KC0xKQpAQCAtMjc3LDcg
KzI3Nyw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUp
OwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTMwMCw3ICszMDAs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtdWx0
aXBsZUF0dHIpCiAgICAgICAgIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUodmFsdWUpOwogICAgIGVs
c2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIGludCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVmYXVs
dFRhYkluZGV4KCkgY29uc3QKQEAgLTMxMiwxNCArMzEyLDE0IEBAIGJvb2wgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0CiB7
CiAgICAgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpOwotICAg
IHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjppc0tleWJvYXJkRm9jdXNh
YmxlKGV2ZW50KTsKKyAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2Fy
ZEZvY3VzYWJsZShldmVudCk7CiB9CiAKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmlzTW91c2VG
b2N1c2FibGUoKSBjb25zdAogewogICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICByZXR1cm4g
aXNGb2N1c2FibGUoKTsKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6aXNNb3VzZUZvY3VzYWJsZSgpOworICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
Ojppc01vdXNlRm9jdXNhYmxlKCk7CiB9CiAKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNl
bGVjdEFsbCgpIGNvbnN0CkBAIC0zNDAsNyArMzQwLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUm
JgogCiBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmIGNoaWxkKSBjb25zdAogewotICAgIGlmICghSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZTo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZCkpCisgICAgaWYgKCFI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlm
ICghdXNlc01lbnVMaXN0KCkpCkBAIC00MDIsNyArNDAyLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxl
bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgQVNT
RVJUKGNoYW5nZS5hZmZlY3RzRWxlbWVudHMgIT0gQ2hpbGRDaGFuZ2U6OkFmZmVjdHNFbGVtZW50
czo6VW5rbm93bik7CiAKICAgICBpZiAoY2hhbmdlLmFmZmVjdHNFbGVtZW50cyA9PSBDaGlsZENo
YW5nZTo6QWZmZWN0c0VsZW1lbnRzOjpObykgewotICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKKyAgICAgICAgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTQxMiw3ICs0MTIsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICB1cGRhdGVWYWxpZGl0
eSgpOwogICAgIG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uLmNsZWFyKCk7CiAKLSAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKKyAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIH0KIAogdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uRWxlbWVudENoaWxkcmVuQ2hhbmdlZCgpCkBAIC01
MzUsNyArNTM1LDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHNXaXRoRWRpdGFiaWxpdHkoRWRpdGFiaWxpdHkKICAgICBVTlVTRURfUEFSQU0o
ZWRpdGFiaWxpdHkpOwogICAgIHJldHVybiAhaXNEaXNhYmxlZEZvcm1Db250cm9sKCk7CiAjZWxz
ZQotICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjp3aWxsUmVzcG9u
ZFRvTW91c2VDbGlja0V2ZW50c1dpdGhFZGl0YWJpbGl0eShlZGl0YWJpbGl0eSk7CisgICAgcmV0
dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
V2l0aEVkaXRhYmlsaXR5KGVkaXRhYmlsaXR5KTsKICNlbmRpZgogfQogCkBAIC05NTQsNyArOTU0
LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxF
bGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LAogICAgIC8vIGRpc3BhdGNoaW5nIGNoYW5nZSBl
dmVudHMgZHVyaW5nIGJsdXIgZXZlbnQgZGlzcGF0Y2guCiAgICAgaWYgKHVzZXNNZW51TGlzdCgp
KQogICAgICAgICBzYXZlTGFzdFNlbGVjdGlvbigpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50
KSwgb3B0aW9ucyk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2
ZW50KFdURk1vdmUob2xkRm9jdXNlZEVsZW1lbnQpLCBvcHRpb25zKTsKIH0KIAogdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9j
dXNlZEVsZW1lbnQpCkBAIC05NjQsNyArOTY0LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiAg
ICAgLy8gVGhpcyBtYXRjaGVzIG90aGVyIGJyb3dzZXJzJyBiZWhhdmlvci4KICAgICBpZiAodXNl
c01lbnVMaXN0KCkpCiAgICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnRGb3JNZW51TGlzdCgpOwot
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoQmx1ckV2ZW50KFdU
Rk1vdmUobmV3Rm9jdXNlZEVsZW1lbnQpKTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpk
aXNwYXRjaEJsdXJFdmVudChXVEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSk7CiB9CiAKIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXNXaXRob3V0VmFsaWRhdGlvbihIVE1MRWxl
bWVudCogZXhjbHVkZUVsZW1lbnQpCkBAIC0xNTI4LDcgKzE1MjgsNyBAQCB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKIAogI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGlmIChpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSkgewotICAg
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkZWZhdWx0RXZlbnRIYW5kbGVy
KGV2ZW50KTsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihldmVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE1NTAsNyArMTU1MCw3
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2
ZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQog
CiBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxlY3RlZExpc3RJbmRleCgpIGNvbnN0CkBA
IC0xNTk4LDcgKzE1OTgsNyBAQCBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1M
U2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aQogICAgIC8vIGl0ZW1z
IHlldCAtIGJ1dCBmb3IgaW5uZXJIVE1MIGFuZCByZWxhdGVkIG1ldGhvZHMsIHRoaXMgbWV0aG9k
IGlzIGNhbGxlZAogICAgIC8vIGFmdGVyIHRoZSB3aG9sZSBzdWJ0cmVlIGlzIGNvbnN0cnVjdGVk
LgogICAgIHJlY2FsY0xpc3RJdGVtcygpOwotICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlOjppbnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRP
Zkluc2VydGVkVHJlZSk7CisgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omluc2Vy
dGVkSW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKTsKIH0K
IAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5U2V0U2VsZWN0ZWRJbmRleChpbnQg
aW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggMDk3YmE5
ZTNiZWE3Li5jYmNjMjMwNGQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmgiCisjaW5jbHVkZSAiSFRNTEZvcm1Db250cm9s
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiVHlw
ZUFoZWFkLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC0zNCw3ICsz
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE9wdGlvbnNDb2xsZWN0aW9u
OwogCi1jbGFzcyBIVE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlLCBwcml2YXRlIFR5cGVBaGVhZERhdGFTb3VyY2UgeworY2xhc3MgSFRNTFNl
bGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCwgcHJpdmF0ZSBUeXBl
QWhlYWREYXRhU291cmNlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEhUTUxTZWxlY3RF
bGVtZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhUTUxTZWxlY3RFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CkBA
IC0xMDksNiArMTA5LDkgQEAgcHVibGljOgogCiAgICAgQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5n
U2NvcGUgb3B0aW9uVG9TZWxlY3RGcm9tQ2hpbGRDaGFuZ2VTY29wZShjb25zdCBDaGlsZENoYW5n
ZSYsIEhUTUxPcHRHcm91cEVsZW1lbnQqIHBhcmVudE9wdEdyb3VwID0gbnVsbHB0cik7CiAKKyAg
ICBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIEhUTUxTZWxl
Y3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVu
dCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IGY3
NzM1MzJiMjlkYi4uOWI5NDYzNzMzZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBpbm5lclRleHRFbGVtZW50
KCkgY29uc3QgZmluYWw7CiAKKyAgICBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKwogcHJpdmF0ZToKICAgICBI
VE1MVGV4dEFyZWFFbGVtZW50KERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5k
ZXggZGJlYTMxN2ZkNThkLi45MzQwODQyZjMzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBzdGF0aWMgUG9zaXRpb24gcG9zaXRpb25Gb3JJbmRl
eChUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQqLCB1bnNpZ25lZCk7CiAKIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKLSAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwgZG9jdW1l
bnQsIGZvcm0pCisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
LCBmb3JtKQogICAgICwgbV9jYWNoZWRTZWxlY3Rpb25EaXJlY3Rpb24oZG9jdW1lbnQuZnJhbWUo
KSAmJiBkb2N1bWVudC5mcmFtZSgpLT5lZGl0b3IoKS5iZWhhdmlvcigpLnNob3VsZENvbnNpZGVy
U2VsZWN0aW9uQXNEaXJlY3Rpb25hbCgpID8gU2VsZWN0aW9uSGFzRm9yd2FyZERpcmVjdGlvbiA6
IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uKQogICAgICwgbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQo
ZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQpAQCAtODcsMTMgKzg3
LDEzIEBAIGJvb2wgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4n
dCBmb3JjZSB0aGUgcHNldWRvIGVsZW1lbnRzIGRvd24gaW50byB0aGUgc2hhZG93LCBidXQKICAg
ICAvLyB0aGlzIHBlcnNlcnZlcyB0aGUgY3VycmVudCBiZWhhdmlvciBvZiBXZWJLaXQuCiAgICAg
aWYgKGNoaWxkLmlzUHNldWRvRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZTo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZCk7Ci0g
ICAgcmV0dXJuIGhhc1NoYWRvd1Jvb3RQYXJlbnQoY2hpbGQpICYmIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGU6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOworICAgICAg
ICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjaGlsZCk7CisgICAgcmV0dXJuIGhhc1NoYWRvd1Jvb3RQYXJlbnQoY2hpbGQpICYmIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOwogfQog
CiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBD
b250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSkKIHsKLSAgICBJbnNlcnRlZEludG9B
bmNlc3RvclJlc3VsdCBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCA9IEhUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGU6Omluc2VydGVkSW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBh
cmVudE9mSW5zZXJ0ZWRUcmVlKTsKKyAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBJbnNl
cnRlZEludG9BbmNlc3RvclJlc3VsdCA9IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omluc2VydGVk
SW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKTsKICAgICBp
ZiAoaW5zZXJ0aW9uVHlwZS5jb25uZWN0ZWRUb0RvY3VtZW50KSB7CiAgICAgICAgIFN0cmluZyBp
bml0aWFsVmFsdWUgPSB2YWx1ZSgpOwogICAgICAgICBzZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJv
bENoYW5nZUV2ZW50KGluaXRpYWxWYWx1ZS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiBpbml0
aWFsVmFsdWUpOwpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkCiAg
ICAgaWYgKHN1cHBvcnRzUGxhY2Vob2xkZXIoKSkKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJW
aXNpYmlsaXR5KCk7CiAgICAgaGFuZGxlRm9jdXNFdmVudChvbGRGb2N1c2VkRWxlbWVudC5nZXQo
KSwgb3B0aW9ucy5kaXJlY3Rpb24pOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3Rh
dGU6OmRpc3BhdGNoRm9jdXNFdmVudChXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSwgb3B0aW9u
cyk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFdURk1v
dmUob2xkRm9jdXNlZEVsZW1lbnQpLCBvcHRpb25zKTsKIH0KIAogdm9pZCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9j
dXNlZEVsZW1lbnQpCkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEUK
ICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KCk7CiAgICAgLy8gTWF0Y2ggdGhl
IG9yZGVyIGluIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudC4KICAgICBoYW5kbGVCbHVyRXZl
bnQoKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkaXNwYXRjaEJsdXJF
dmVudChXVEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOwogfQog
CiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaWRFZGl0SW5uZXJUZXh0VmFsdWUo
KQpAQCAtNTUzLDE4ICs1NTMsMTggQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAg
dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJp
bGl0eSgpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0
YXRlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQogewotICAgIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7CisgICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKICAgICB1cGRh
dGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKIH0KIAogdm9pZCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6cmVhZE9ubHlTdGF0ZUNoYW5nZWQoKQogewotICAgIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGU6OnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7CisgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6cmVhZE9ubHlTdGF0ZUNoYW5nZWQoKTsKICAgICB1cGRhdGVJbm5l
clRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDM4MjRhYzhmMGFmOC4uODUxMDZh
ZDQ0OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oCkBAIC0yNCw3ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIgorI2luY2x1ZGUgIkhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJQb2ludGVyRXZlbnRUeXBlTmFtZXMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsNyArNDEsNyBAQCBlbnVtIFRleHRGaWVsZFNlbGVjdGlv
bkRpcmVjdGlvbiB7IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25IYXNGb3J3YXJk
RAogZW51bSBUZXh0RmllbGRFdmVudEJlaGF2aW9yIHsgRGlzcGF0Y2hOb0V2ZW50LCBEaXNwYXRj
aENoYW5nZUV2ZW50LCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQgfTsKIGVudW0gVGV4dENv
bnRyb2xTZXRWYWx1ZVNlbGVjdGlvbiB7IFNldFNlbGVjdGlvblRvRW5kLCBDbGFtcCwgRG9Ob3RT
ZXQgfTsKIAotY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CitjbGFzcyBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KTsKIHB1YmxpYzoKICAgICAvLyBD
b21tb24gZmxhZyBmb3IgSFRNTElucHV0RWxlbWVudDo6dG9vTG9uZygpIC8gdG9vU2hvcnQoKSBh
bmQgSFRNTFRleHRBcmVhRWxlbWVudDo6dG9vTG9uZygpIC8gdG9vU2hvcnQoKS4KQEAgLTEwOCw2
ICsxMDgsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNJ
bm5lclRleHRFbGVtZW50RWRpdGFibGUoKSBjb25zdDsKIAorICAgIGJvb2wgY2FuQ29udGFpblJh
bmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyRW1w
dHkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9Ob2RlTGlz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3QuY3BwCmluZGV4IDNkNDk0
MjBiNjAwNS4uYzhiYjk4MTA1Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvTm9kZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9Ob2RlTGlzdC5j
cHAKQEAgLTk0LDE5ICs5NCwxNSBAQCB2b2lkIFJhZGlvTm9kZUxpc3Q6OnNldFZhbHVlKGNvbnN0
IFN0cmluZyYgdmFsdWUpCiAKIGJvb2wgUmFkaW9Ob2RlTGlzdDo6ZWxlbWVudE1hdGNoZXMoRWxl
bWVudCYgZWxlbWVudCkgY29uc3QKIHsKLSAgICBpZiAoIWlzPEhUTUxPYmplY3RFbGVtZW50Pihl
bGVtZW50KSAmJiAhaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkpCisgICAgaWYg
KCFlbGVtZW50LmlzRm9ybUxpc3RlZEVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQ+KGVsZW1lbnQpLmlzSW1hZ2VCdXR0b24oKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKGlzPEhUTUxGb3JtRWxlbWVudD4ob3duZXJOb2RlKCkpKSB7Ci0gICAg
ICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGZvcm07Ci0gICAgICAgIGlmIChpczxIVE1MT2Jq
ZWN0RWxlbWVudD4oZWxlbWVudCkpCi0gICAgICAgICAgICBmb3JtID0gZG93bmNhc3Q8SFRNTE9i
amVjdEVsZW1lbnQ+KGVsZW1lbnQpLmZvcm0oKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Zm9ybSA9IGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGVsZW1lbnQpLmZvcm0oKTsK
LSAgICAgICAgaWYgKCFmb3JtIHx8IGZvcm0gIT0gJm93bmVyTm9kZSgpKQorICAgICAgICBSZWZQ
dHIgZm9ybSA9IGVsZW1lbnQuYXNGb3JtTGlzdGVkRWxlbWVudCgpLT5mb3JtKCk7CisgICAgICAg
IGlmIChmb3JtICE9ICZvd25lck5vZGUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGVkRm9ybUxpc3Rl
ZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0ZWRGb3JtTGlzdGVkRWxl
bWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDNkNDQw
YzY0YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZv
cm1MaXN0ZWRFbGVtZW50LmNwcApAQCAtMCwwICsxLDQ5MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAx
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAgICAgIChDKSAyMDA2
IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmgiCisKKyNp
bmNsdWRlICJDb250cm9sU3RhdGVzLmgiCisjaW5jbHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0
b3IuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKKyNpbmNsdWRlICJQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgorI2luY2x1
ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdl
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOworCitWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6VmFsaWRh
dGVkRm9ybUxpc3RlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgIDogRm9ybUxp
c3RlZEVsZW1lbnQgeyBmb3JtIH0KK3sKK30KKworVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6
On5WYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgpID0gZGVmYXVsdDsKKworYm9vbCBWYWxpZGF0
ZWRGb3JtTGlzdGVkRWxlbWVudDo6d2lsbFZhbGlkYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
d2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgfHwgbV9pc0luc2lkZURhdGFMaXN0ID09IFRyaVN0YXRl
OjpJbmRldGVybWluYXRlKSB7CisgICAgICAgIG1fd2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgPSB0
cnVlOworICAgICAgICBib29sIG5ld1dpbGxWYWxpZGF0ZSA9IGNvbXB1dGVXaWxsVmFsaWRhdGUo
KTsKKyAgICAgICAgaWYgKG1fd2lsbFZhbGlkYXRlICE9IG5ld1dpbGxWYWxpZGF0ZSkKKyAgICAg
ICAgICAgIG1fd2lsbFZhbGlkYXRlID0gbmV3V2lsbFZhbGlkYXRlOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIElmIHRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9uIGZhaWxzLCB1cGRhdGVXaWxsVmFs
aWRhdGVBbmRWYWxpZGl0eSgpIGlzIG5vdAorICAgICAgICAvLyBjYWxsZWQgY29ycmVjdGx5IHdo
ZW4gc29tZXRoaW5nIHdoaWNoIGNoYW5nZXMgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIHJlc3VsdAor
ICAgICAgICAvLyBpcyB1cGRhdGVkLgorICAgICAgICBBU1NFUlQobV93aWxsVmFsaWRhdGUgPT0g
Y29tcHV0ZVdpbGxWYWxpZGF0ZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIG1fd2lsbFZhbGlkYXRl
OworfQorCitib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojpjb21wdXRlV2lsbFZhbGlk
YXRlKCkgY29uc3QKK3sKKyAgICBpZiAobV9pc0luc2lkZURhdGFMaXN0ID09IFRyaVN0YXRlOjpJ
bmRldGVybWluYXRlKSB7CisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgICAgIGNv
bnN0IEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1MRWxlbWVudCgpOworICAgICAgICBtX2lz
SW5zaWRlRGF0YUxpc3QgPSB0cmlTdGF0ZShlbGVtZW50LmRvY3VtZW50KCkuaGFzRGF0YUxpc3RF
bGVtZW50cygpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MRGF0YUxpc3RFbGVtZW50PihlbGVtZW50
KS5maXJzdCgpKTsKKyNlbHNlCisgICAgICAgIG1faXNJbnNpZGVEYXRhTGlzdCA9IFRyaVN0YXRl
OjpGYWxzZTsKKyNlbmRpZgorICAgIH0KKyAgICAvLyByZWFkb25seSBiYXJzIGNvbnN0cmFpbnQg
dmFsaWRhdGlvbiBmb3IgKmFsbCogPGlucHV0PiBlbGVtZW50cywgcmVnYXJkbGVzcyBvZiB0aGUg
PGlucHV0PiB0eXBlLCBmb3IgY29tcGF0IHJlYXNvbnMuCisgICAgcmV0dXJuIG1faXNJbnNpZGVE
YXRhTGlzdCA9PSBUcmlTdGF0ZTo6RmFsc2UgJiYgIWlzRGlzYWJsZWQoKSAmJiAhKG1faGFzUmVh
ZE9ubHlBdHRyaWJ1dGUgJiYgcmVhZE9ubHlCYXJzRnJvbUNvbnN0cmFpbnRWYWxpZGF0aW9uKCkp
OworfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFs
aWRhdGlvbk1lc3NhZ2UoUmVmPEhUTUxFbGVtZW50PiB2YWxpZGF0aW9uQW5jaG9yKQoreworICAg
IEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1MRWxlbWVudCgpOworICAgIGlmICghZWxlbWVu
dC5kb2N1bWVudCgpLnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFN0cmluZyBtZXNzYWdl
OworICAgIGlmIChlbGVtZW50LnJlbmRlcmVyKCkgJiYgd2lsbFZhbGlkYXRlKCkpCisgICAgICAg
IG1lc3NhZ2UgPSB2YWxpZGF0aW9uTWVzc2FnZSgpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgIGlm
ICghbV92YWxpZGF0aW9uTWVzc2FnZSkKKyAgICAgICAgbV92YWxpZGF0aW9uTWVzc2FnZSA9IG1h
a2VVbmlxdWU8VmFsaWRhdGlvbk1lc3NhZ2U+KHZhbGlkYXRpb25BbmNob3IpOworICAgIG1fdmFs
aWRhdGlvbk1lc3NhZ2UtPnVwZGF0ZVZhbGlkYXRpb25NZXNzYWdlKHZhbGlkYXRpb25BbmNob3Is
IG1lc3NhZ2UpOworfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpoaWRlVmlz
aWJsZVZhbGlkYXRpb25NZXNzYWdlKCkKK3sKKyAgICBpZiAobV92YWxpZGF0aW9uTWVzc2FnZSkK
KyAgICAgICAgbV92YWxpZGF0aW9uTWVzc2FnZS0+cmVxdWVzdFRvSGlkZU1lc3NhZ2UoKTsKK30K
KworYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6Y2hlY2tWYWxpZGl0eShWZWN0b3I8
UmVmUHRyPFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4qIHVuaGFuZGxlZEludmFsaWRDb250
cm9scykKK3sKKyAgICBpZiAoIXdpbGxWYWxpZGF0ZSgpIHx8IGlzVmFsaWRGb3JtQ29udHJvbEVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gQW4gZXZlbnQgaGFuZGxlciBj
YW4gZGVyZWYgdGhpcyBvYmplY3QuCisgICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxF
bGVtZW50KCk7CisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyBlbGVtZW50IH07CisgICAgUmVmIG9y
aWdpbmFsRG9jdW1lbnQgeyBlbGVtZW50LmRvY3VtZW50KCkgfTsKKyAgICBhdXRvIGV2ZW50ID0g
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW52YWxpZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKTsKKyAgICBlbGVtZW50LmRpc3BhdGNoRXZl
bnQoZXZlbnQpOworICAgIGlmICghZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSAmJiB1bmhhbmRs
ZWRJbnZhbGlkQ29udHJvbHMgJiYgZWxlbWVudC5pc0Nvbm5lY3RlZCgpICYmIG9yaWdpbmFsRG9j
dW1lbnQucHRyKCkgPT0gJmVsZW1lbnQuZG9jdW1lbnQoKSkKKyAgICAgICAgdW5oYW5kbGVkSW52
YWxpZENvbnRyb2xzLT5hcHBlbmQodGhpcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpyZXBvcnRWYWxpZGl0eSgpCit7CisgICAgVmVj
dG9yPFJlZlB0cjxWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudD4+IGVsZW1lbnRzOworICAgIGlm
IChjaGVja1ZhbGlkaXR5KCZlbGVtZW50cykpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
aWYgKGVsZW1lbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8g
TmVlZHMgdG8gdXBkYXRlIGxheW91dCBub3cgYmVjYXVzZSB3ZSdkIGxpa2UgdG8gY2FsbCBpc0Zv
Y3VzYWJsZSgpLAorICAgIC8vIHdoaWNoIGhhcyAhcmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSBh
c3NlcnRpb24uCisgICAgYXNIVE1MRWxlbWVudCgpLmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgaWYgKGF1dG8gdmFsaWRhdGlvbkFuY2hvciA9
IGZvY3VzYWJsZVZhbGlkYXRpb25BbmNob3JFbGVtZW50KCkpCisgICAgICAgIGZvY3VzQW5kU2hv
d1ZhbGlkYXRpb25NZXNzYWdlKHZhbGlkYXRpb25BbmNob3IucmVsZWFzZU5vbk51bGwoKSk7Cisg
ICAgZWxzZQorICAgICAgICByZXBvcnROb25Gb2N1c2FibGVDb250cm9sRXJyb3IoKTsKKworICAg
IHJldHVybiBmYWxzZTsKK30KKworUmVmUHRyPEhUTUxFbGVtZW50PiBWYWxpZGF0ZWRGb3JtTGlz
dGVkRWxlbWVudDo6Zm9jdXNhYmxlVmFsaWRhdGlvbkFuY2hvckVsZW1lbnQoKQoreworICAgIGlm
IChSZWZQdHIgdmFsaWRhdGlvbkFuY2hvciA9IHZhbGlkYXRpb25BbmNob3JFbGVtZW50KCkpIHsK
KyAgICAgICAgaWYgKHZhbGlkYXRpb25BbmNob3ItPmlzQ29ubmVjdGVkKCkgJiYgdmFsaWRhdGlv
bkFuY2hvci0+aXNGb2N1c2FibGUoKSkKKyAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uQW5j
aG9yOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBWYWxpZGF0ZWRGb3Jt
TGlzdGVkRWxlbWVudDo6Zm9jdXNBbmRTaG93VmFsaWRhdGlvbk1lc3NhZ2UoUmVmPEhUTUxFbGVt
ZW50PiB2YWxpZGF0aW9uQW5jaG9yKQoreworICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMg
fTsKKyAgICBTZXRGb3JTY29wZSBpc0ZvY3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlU2NvcGUo
bV9pc0ZvY3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlLCB0cnVlKTsKKworICAgIC8vIENhbGxp
bmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcuCisgICAgdmFsaWRh
dGlvbkFuY2hvci0+Zm9jdXMoKTsKKworICAgIC8vIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVs
ZW1lbnQgaW50byB2aWV3IGFuZCB0aGlzIHNjcm9sbCBtYXkgaGFwcGVuIGFzeW5jaHJvbm91c2x5
LgorICAgIC8vIEJlY2F1c2Ugc2Nyb2xsaW5nIHRoZSB2aWV3IGhpZGVzIHRoZSB2YWxpZGF0aW9u
IG1lc3NhZ2UsIHdlIG5lZWQgdG8gc2hvdyB0aGUgdmFsaWRhdGlvbgorICAgIC8vIG1lc3NhZ2Ug
YXN5bmNocm9ub3VzbHkgYXMgd2VsbC4KKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzLCB2YWxpZGF0aW9uQW5jaG9yXSB7CisgICAgICAgIHVwZGF0ZVZpc2libGVWYWxp
ZGF0aW9uTWVzc2FnZSh2YWxpZGF0aW9uQW5jaG9yKTsKKyAgICB9KTsKK30KKwordm9pZCBWYWxp
ZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cmVwb3J0Tm9uRm9jdXNhYmxlQ29udHJvbEVycm9yKCkK
K3sKKyAgICBhdXRvJiBkb2N1bWVudCA9IGFzSFRNTEVsZW1lbnQoKS5kb2N1bWVudCgpOworICAg
IGlmIChkb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIGF1dG8gbWVzc2FnZSA9IG1ha2VTdHJp
bmcoIkFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGggbmFtZT0nIiwgbmFtZSgpLCAiJyBpcyBu
b3QgZm9jdXNhYmxlLiIpOworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOworICAg
IH0KK30KKworYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6aXNTaG93aW5nVmFsaWRh
dGlvbk1lc3NhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZhbGlkYXRpb25NZXNzYWdlICYm
IG1fdmFsaWRhdGlvbk1lc3NhZ2UtPmlzVmlzaWJsZSgpOworfQorCitib29sIFZhbGlkYXRlZEZv
cm1MaXN0ZWRFbGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZVNoYWRvd1RyZWVDb250YWlucyhjb25z
dCBOb2RlJiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBtX3ZhbGlkYXRpb25NZXNzYWdlICYm
IG1fdmFsaWRhdGlvbk1lc3NhZ2UtPnNoYWRvd1RyZWVDb250YWlucyhub2RlKTsKK30KKworYm9v
bCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6aXNGb2N1c2luZ1dpdGhWYWxpZGF0aW9uTWVz
c2FnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNGb2N1c2luZ1dpdGhWYWxpZGF0aW9uTWVz
c2FnZTsKK30KKwordm9pZCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6c2V0RGlzYWJsZWRC
eUFuY2VzdG9yRmllbGRzZXQoYm9vbCBpc0Rpc2FibGVkKQoreworICAgIEFTU0VSVChjb21wdXRl
SXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpID09IGlzRGlzYWJsZWQpOworICAgIGlmICht
X2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0ID09IGlzRGlzYWJsZWQpCisgICAgICAgIHJldHVy
bjsKKworICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBkaXNhYmxlZElu
dmFsaWRhdGlvbihhc0hUTUxFbGVtZW50KCksIHsgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NE
aXNhYmxlZCwgaXNEaXNhYmxlZCB9LCB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0VuYWJsZWQs
ICFpc0Rpc2FibGVkIH0gfSk7CisKKyAgICBtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0ID0g
aXNEaXNhYmxlZDsKKyAgICBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworfQorCitzdGF0aWMgdm9p
ZCBhZGRJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoY29uc3QgSFRN
TEVsZW1lbnQmIGVsZW1lbnQsIENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQoreworICAg
IGlmICghaXM8RWxlbWVudD4oaW5zZXJ0aW9uUG9pbnQpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogbGluZWFnZU9mVHlwZTxIVE1MRmllbGRTZXRFbGVtZW50
Pihkb3duY2FzdDxFbGVtZW50PigqaW5zZXJ0aW9uUG9pbnQpKSkKKyAgICAgICAgYW5jZXN0b3Iu
YWRkSW52YWxpZERlc2NlbmRhbnQoZWxlbWVudCk7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZUlu
dmFsaWRFbGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2ludChjb25zdCBIVE1MRWxlbWVu
dCYgZWxlbWVudCwgQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCit7CisgICAgaWYgKCFp
czxFbGVtZW50PihpbnNlcnRpb25Qb2ludCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAo
YXV0byYgYW5jZXN0b3IgOiBsaW5lYWdlT2ZUeXBlPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGRvd25j
YXN0PEVsZW1lbnQ+KCppbnNlcnRpb25Qb2ludCkpKQorICAgICAgICBhbmNlc3Rvci5yZW1vdmVJ
bnZhbGlkRGVzY2VuZGFudChlbGVtZW50KTsKK30KKwordm9pZCBWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudDo6dXBkYXRlVmFsaWRpdHkoKQoreworICAgIGlmIChtX2RlbGF5ZWRVcGRhdGVWYWxp
ZGl0eUNvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHdpbGxWYWxpZGF0ZSA9IHRo
aXMtPndpbGxWYWxpZGF0ZSgpOworICAgIGJvb2wgbmV3SXNWYWxpZCA9IHRoaXMtPmNvbXB1dGVW
YWxpZGl0eSgpOworCisgICAgaWYgKG5ld0lzVmFsaWQgIT0gbV9pc1ZhbGlkKSB7CisgICAgICAg
IEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1MRWxlbWVudCgpOworICAgICAgICBTdHlsZTo6
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gc3R5bGVJbnZhbGlkYXRpb24oZWxlbWVudCwg
eworICAgICAgICAgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWYWxpZCwgbmV3SXNWYWxp
ZCB9LAorICAgICAgICAgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NJbnZhbGlkLCAhbmV3
SXNWYWxpZCB9LAorICAgICAgICAgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NVc2VyVmFs
aWQsIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQgJiYgbmV3SXNW
YWxpZCB9LAorICAgICAgICAgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NVc2VySW52YWxp
ZCwgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRFdmVudCAmJiAhbmV3SXNW
YWxpZCB9LAorICAgICAgICB9KTsKKworICAgICAgICBtX2lzVmFsaWQgPSBuZXdJc1ZhbGlkOwor
CisgICAgICAgIGlmICh3aWxsVmFsaWRhdGUpIHsKKyAgICAgICAgICAgIGlmICghbmV3SXNWYWxp
ZCkgeworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmlzQ29ubmVjdGVkKCkpCisgICAgICAg
ICAgICAgICAgICAgIGFkZEludmFsaWRFbGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2lu
dChlbGVtZW50LCBlbGVtZW50LnBhcmVudE5vZGUoKSk7CisgICAgICAgICAgICAgICAgaWYgKGF1
dG8qIGZvcm0gPSB0aGlzLT5mb3JtKCkpCisgICAgICAgICAgICAgICAgICAgIGZvcm0tPmFkZElu
dmFsaWRGb3JtQ29udHJvbChlbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgICAgICAgICAgICAg
cmVtb3ZlSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KGVsZW1lbnQs
IGVsZW1lbnQucGFyZW50Tm9kZSgpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogZm9ybSA9
IHRoaXMtPmZvcm0oKSkKKyAgICAgICAgICAgICAgICAgICAgZm9ybS0+cmVtb3ZlSW52YWxpZEZv
cm1Db250cm9sSWZOZWVkZWQoZWxlbWVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBVcGRhdGVzIG9ubHkgaWYgdGhpcyBjb250cm9sIGFscmVhZHkgaGFzIGEg
dmFsaWRhdGlvbiBtZXNzYWdlLgorICAgIGlmIChpc1Nob3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgp
KSB7CisgICAgICAgIC8vIENhbGxzIHVwZGF0ZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpIGV2
ZW4gaWYgbV9pc1ZhbGlkIGlzIG5vdAorICAgICAgICAvLyBjaGFuZ2VkIGJlY2F1c2UgYSB2YWxp
ZGF0aW9uIG1lc3NhZ2UgY2FuIGJlIGNoYW5nZWQuCisgICAgICAgIGlmIChhdXRvIHZhbGlkYXRp
b25BbmNob3IgPSBmb2N1c2FibGVWYWxpZGF0aW9uQW5jaG9yRWxlbWVudCgpKQorICAgICAgICAg
ICAgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKHZhbGlkYXRpb25BbmNob3IucmVsZWFz
ZU5vbk51bGwoKSk7CisgICAgfQorfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIgJiYgYXNIVE1MRWxl
bWVudCgpLmNhbkJlQWN0dWFsbHlEaXNhYmxlZCgpKQorICAgICAgICBwYXJzZURpc2FibGVkQXR0
cmlidXRlKHZhbHVlKTsKKyAgICBlbHNlIGlmIChuYW1lID09IHJlYWRvbmx5QXR0cikKKyAgICAg
ICAgcGFyc2VSZWFkb25seUF0dHJpYnV0ZSh2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBGb3Jt
TGlzdGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworfQorCit2b2lkIFZh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpwYXJzZURpc2FibGVkQXR0cmlidXRlKGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQoreworICAgIEFTU0VSVChhc0hUTUxFbGVtZW50KCkuY2FuQmVBY3R1
YWxseURpc2FibGVkKCkpOworCisgICAgYm9vbCBuZXdEaXNhYmxlZCA9ICF2YWx1ZS5pc051bGwo
KTsKKyAgICBpZiAobV9kaXNhYmxlZCAhPSBuZXdEaXNhYmxlZCkgeworICAgICAgICBTdHlsZTo6
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gZGlzYWJsZWRJbnZhbGlkYXRpb24oYXNIVE1M
RWxlbWVudCgpLCB7IHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlzYWJsZWQsIG5ld0Rpc2Fi
bGVkIH0sIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRW5hYmxlZCwgIW5ld0Rpc2FibGVkIH0g
fSk7CisgICAgICAgIG1fZGlzYWJsZWQgPSBuZXdEaXNhYmxlZDsKKyAgICAgICAgZGlzYWJsZWRB
dHRyaWJ1dGVDaGFuZ2VkKCk7CisgICAgfQorfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRF
bGVtZW50OjpwYXJzZVJlYWRvbmx5QXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQor
eworICAgIGJvb2wgbmV3SGFzUmVhZE9ubHlBdHRyaWJ1dGUgPSAhdmFsdWUuaXNOdWxsKCk7Cisg
ICAgaWYgKG1faGFzUmVhZE9ubHlBdHRyaWJ1dGUgIT0gbmV3SGFzUmVhZE9ubHlBdHRyaWJ1dGUp
IHsKKyAgICAgICAgYm9vbCBuZXdNYXRjaGVzUmVhZFdyaXRlID0gc3VwcG9ydHNSZWFkT25seSgp
ICYmICFuZXdIYXNSZWFkT25seUF0dHJpYnV0ZTsKKyAgICAgICAgU3R5bGU6OlBzZXVkb0NsYXNz
Q2hhbmdlSW52YWxpZGF0aW9uIHJlYWRXcml0ZUludmFsaWRhdGlvbihhc0hUTUxFbGVtZW50KCks
IHsgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NSZWFkV3JpdGUsIG5ld01hdGNoZXNSZWFkV3Jp
dGUgfSwgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NSZWFkT25seSwgIW5ld01hdGNoZXNSZWFk
V3JpdGUgfSB9KTsKKyAgICAgICAgbV9oYXNSZWFkT25seUF0dHJpYnV0ZSA9IG5ld0hhc1JlYWRP
bmx5QXR0cmlidXRlOworICAgICAgICByZWFkT25seVN0YXRlQ2hhbmdlZCgpOworICAgIH0KK30K
Kwordm9pZCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6ZGlzYWJsZWRBdHRyaWJ1dGVDaGFu
Z2VkKCkKK3sKKyAgICBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworfQorCit2b2lkIFZhbGlkYXRl
ZEZvcm1MaXN0ZWRFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihOb2RlOjpJbnNlcnRpb25U
eXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQor
eworICAgIG1faXNJbnNpZGVEYXRhTGlzdCA9IFRyaVN0YXRlOjpJbmRldGVybWluYXRlOworICAg
IHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7CisgICAgc3luY1dpdGhGaWVsZHNldEFu
Y2VzdG9ycygmcGFyZW50T2ZJbnNlcnRlZFRyZWUpOworCisgICAgRm9ybUxpc3RlZEVsZW1lbnQ6
OmVsZW1lbnRJbnNlcnRlZEludG9BbmNlc3Rvcihhc0hUTUxFbGVtZW50KCksIGluc2VydGlvblR5
cGUpOworfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpzZXREYXRhTGlzdEFu
Y2VzdG9yU3RhdGUoVHJpU3RhdGUgaXNJbnNpZGVEYXRhTGlzdCkKK3sKKyAgICBtX2lzSW5zaWRl
RGF0YUxpc3QgPSBpc0luc2lkZURhdGFMaXN0OworfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0
ZWRFbGVtZW50OjpzeW5jV2l0aEZpZWxkc2V0QW5jZXN0b3JzKENvbnRhaW5lck5vZGUqIGluc2Vy
dGlvblBvaW50KQoreworICAgIGlmIChtYXRjaGVzSW52YWxpZFBzZXVkb0NsYXNzKCkpCisgICAg
ICAgIGFkZEludmFsaWRFbGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2ludChhc0hUTUxF
bGVtZW50KCksIGluc2VydGlvblBvaW50KTsKKyAgICBpZiAoYXNIVE1MRWxlbWVudCgpLmRvY3Vt
ZW50KCkuaGFzRGlzYWJsZWRGaWVsZHNldEVsZW1lbnQoKSkKKyAgICAgICAgc2V0RGlzYWJsZWRC
eUFuY2VzdG9yRmllbGRzZXQoY29tcHV0ZUlzRGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0b3IoKSk7
Cit9CisKK3ZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0
b3IoTm9kZTo6UmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmIG9sZFBhcmVu
dE9mUmVtb3ZlZFRyZWUpCit7CisgICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVt
ZW50KCk7CisgICAgYm9vbCB3YXNNYXRjaGluZ0ludmFsaWRQc2V1ZG9DbGFzcyA9IG1hdGNoZXNJ
bnZhbGlkUHNldWRvQ2xhc3MoKTsKKworICAgIG1fdmFsaWRhdGlvbk1lc3NhZ2UgPSBudWxscHRy
OworICAgIGlmIChtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0KQorICAgICAgICBzZXREaXNh
YmxlZEJ5QW5jZXN0b3JGaWVsZHNldChjb21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3Rv
cigpKTsKKworICAgIGJvb2wgd2FzSW5zaWRlRGF0YUxpc3QgPSBtX2lzSW5zaWRlRGF0YUxpc3Qg
PT0gVHJpU3RhdGU6OlRydWU7CisgICAgaWYgKHdhc0luc2lkZURhdGFMaXN0KQorICAgICAgICBt
X2lzSW5zaWRlRGF0YUxpc3QgPSBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0ZTsKKworICAgIEZvcm1M
aXN0ZWRFbGVtZW50OjplbGVtZW50UmVtb3ZlZEZyb21BbmNlc3RvcihlbGVtZW50LCByZW1vdmFs
VHlwZSk7CisKKyAgICBpZiAod2FzTWF0Y2hpbmdJbnZhbGlkUHNldWRvQ2xhc3MpCisgICAgICAg
IHJlbW92ZUludmFsaWRFbGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2ludChlbGVtZW50
LCAmb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CisKKyAgICBpZiAod2FzSW5zaWRlRGF0YUxpc3Qp
CisgICAgICAgIHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7Cit9CisKK2Jvb2wgVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OmNvbXB1dGVJc0Rpc2FibGVkQnlGaWVsZHNldEFuY2Vz
dG9yKCkgY29uc3QKK3sKKyAgICBSZWZQdHI8Y29uc3QgRWxlbWVudD4gcHJldmlvdXNBbmNlc3Rv
cjsKKyAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogYW5jZXN0b3JzT2ZUeXBlPEVsZW1lbnQ+KGFz
SFRNTEVsZW1lbnQoKSkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGFu
Y2VzdG9yKSAmJiBhbmNlc3Rvci5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRp
c2FibGVkQXR0cikpIHsKKyAgICAgICAgICAgIGJvb2wgaXNJbkZpcnN0TGVnZW5kID0gaXM8SFRN
TExlZ2VuZEVsZW1lbnQ+KHByZXZpb3VzQW5jZXN0b3IpICYmIHByZXZpb3VzQW5jZXN0b3IgPT0g
ZG93bmNhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudD4oYW5jZXN0b3IpLmxlZ2VuZCgpOworICAgICAg
ICAgICAgcmV0dXJuICFpc0luRmlyc3RMZWdlbmQ7CisgICAgICAgIH0KKyAgICAgICAgcHJldmlv
dXNBbmNlc3RvciA9ICZhbmNlc3RvcjsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojp3aWxsQ2hhbmdlRm9ybSgpCit7CisgICAg
aWYgKGF1dG8qIGZvcm0gPSB0aGlzLT5mb3JtKCkpCisgICAgICAgIGZvcm0tPnJlbW92ZUludmFs
aWRGb3JtQ29udHJvbElmTmVlZGVkKGFzSFRNTEVsZW1lbnQoKSk7CisgICAgRm9ybUxpc3RlZEVs
ZW1lbnQ6OndpbGxDaGFuZ2VGb3JtKCk7Cit9CisKK3ZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVs
ZW1lbnQ6OmRpZENoYW5nZUZvcm0oKQoreworICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5N
YWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKKworICAgIEZvcm1MaXN0ZWRFbGVtZW50
OjpkaWRDaGFuZ2VGb3JtKCk7CisgICAgaWYgKGF1dG8qIGZvcm0gPSB0aGlzLT5mb3JtKCkpIHsK
KyAgICAgICAgaWYgKG1fd2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgJiYgbV93aWxsVmFsaWRhdGUg
JiYgIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGZvcm0tPmFkZElu
dmFsaWRGb3JtQ29udHJvbChhc0hUTUxFbGVtZW50KCkpOworICAgIH0KK30KKwordm9pZCBWYWxp
ZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQoreworICAgIHVw
ZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7Cit9CisKK3ZvaWQgVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQ6OnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVXaWxsVmFs
aWRhdGVBbmRWYWxpZGl0eSgpOworfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
Ojp1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpCit7CisgICAgLy8gV2UgbmVlZCB0byBy
ZWNhbGN1bGF0ZSB3aWxsVmFsaWRhdGUgaW1tZWRpYXRlbHkgYmVjYXVzZSB3aWxsVmFsaWRhdGUg
Y2hhbmdlIGNhbiBjYXVzZXMgc3R5bGUgY2hhbmdlLgorICAgIGJvb2wgbmV3V2lsbFZhbGlkYXRl
ID0gY29tcHV0ZVdpbGxWYWxpZGF0ZSgpOworICAgIGlmIChtX3dpbGxWYWxpZGF0ZUluaXRpYWxp
emVkICYmIG1fd2lsbFZhbGlkYXRlID09IG5ld1dpbGxWYWxpZGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYm9vbCB3YXNWYWxpZCA9IG1faXNWYWxpZDsKKworICAgIG1fd2lsbFZhbGlkYXRl
SW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIG1fd2lsbFZhbGlkYXRlID0gbmV3V2lsbFZhbGlkYXRl
OworCisgICAgdXBkYXRlVmFsaWRpdHkoKTsKKworICAgIGlmICghbV93aWxsVmFsaWRhdGUgJiYg
IXdhc1ZhbGlkKSB7CisgICAgICAgIEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1MRWxlbWVu
dCgpOworICAgICAgICByZW1vdmVJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9u
UG9pbnQoZWxlbWVudCwgZWxlbWVudC5wYXJlbnROb2RlKCkpOworICAgICAgICBpZiAoUmVmUHRy
IGZvcm0gPSB0aGlzLT5mb3JtKCkpCisgICAgICAgICAgICBmb3JtLT5yZW1vdmVJbnZhbGlkRm9y
bUNvbnRyb2xJZk5lZWRlZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBpZiAoIW1fd2lsbFZhbGlk
YXRlKQorICAgICAgICBoaWRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7Cit9CisKK3ZvaWQg
VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZEZpbmlzaEluc2VydGluZ05vZGUoKQorewor
ICAgIHJlc2V0Rm9ybU93bmVyKCk7Cit9CisKK3ZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1l
bnQ6OnNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCit7CisgICAgRm9ybUxp
c3RlZEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5KGVycm9yKTsKKyAgICB1cGRhdGVWYWxpZGl0
eSgpOworfQorCit2b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjplbmREZWxheWluZ1Vw
ZGF0ZVZhbGlkaXR5KCkKK3sKKyAgICBBU1NFUlQobV9kZWxheWVkVXBkYXRlVmFsaWRpdHlDb3Vu
dCk7CisgICAgaWYgKCEtLW1fZGVsYXllZFVwZGF0ZVZhbGlkaXR5Q291bnQpCisgICAgICAgIHVw
ZGF0ZVZhbGlkaXR5KCk7Cit9CisKK2Jvb2wgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6Omlz
Q2FuZGlkYXRlRm9yU2F2aW5nQW5kUmVzdG9yaW5nU3RhdGUoKSBjb25zdAoreworICAgIC8vIFdl
IGRvbid0IHNhdmUvcmVzdG9yZSBjb250cm9sIHN0YXRlIGluIGEgZm9ybSB3aXRoIGF1dG9jb21w
bGV0ZT1vZmYuCisgICAgcmV0dXJuIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZSgpICYmIGFzSFRNTEVsZW1lbnQoKS5pc0Nvbm5lY3RlZCgpICYmIHNob3VsZEF1dG9jb21wbGV0
ZSgpOworfQorCitib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpzaG91bGRBdXRvY29t
cGxldGUoKSBjb25zdAoreworICAgIGlmICghZm9ybSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICByZXR1cm4gZm9ybSgpLT5zaG91bGRBdXRvY29tcGxldGUoKTsKK30KKworRm9ybUNvbnRy
b2xTdGF0ZSBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6c2F2ZUZvcm1Db250cm9sU3RhdGUo
KSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK3ZvaWQgVmFsaWRhdGVkRm9ybUxpc3Rl
ZEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlSWZOZWNlc3NhcnkoKQoreworICAgIGFz
SFRNTEVsZW1lbnQoKS5kb2N1bWVudCgpLmZvcm1Db250cm9sbGVyKCkucmVzdG9yZUNvbnRyb2xT
dGF0ZUZvcigqdGhpcyk7Cit9CisKK2Jvb2wgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6Om1h
dGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2lsbFZhbGlkYXRl
KCkgJiYgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOworfQorCitib29sIFZhbGlkYXRlZEZv
cm1MaXN0ZWRFbGVtZW50OjptYXRjaGVzSW52YWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gd2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsK
K30KKworYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6bWF0Y2hlc1VzZXJJbnZhbGlk
UHNldWRvQ2xhc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3dhc0ludGVyYWN0ZWRXaXRoU2lu
Y2VMYXN0Rm9ybVN1Ym1pdEV2ZW50ICYmIG1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKTsKK30K
KworYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6bWF0Y2hlc1VzZXJWYWxpZFBzZXVk
b0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFz
dEZvcm1TdWJtaXRFdmVudCAmJiBtYXRjaGVzVmFsaWRQc2V1ZG9DbGFzcygpOworfQorCit2b2lk
IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpzZXRJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZv
cm1TdWJtaXRFdmVudChib29sIGludGVyYWN0ZWRXaXRoKQoreworICAgIGlmIChtX3dhc0ludGVy
YWN0ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50ID09IGludGVyYWN0ZWRXaXRoKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24g
c3R5bGVJbnZhbGlkYXRpb24oYXNIVE1MRWxlbWVudCgpLCB7CisgICAgICAgIHsgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzVXNlclZhbGlkLCBpbnRlcmFjdGVkV2l0aCAmJiBtYXRjaGVzVmFsaWRQ
c2V1ZG9DbGFzcygpIH0sCisgICAgICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVXNlcklu
dmFsaWQsIGludGVyYWN0ZWRXaXRoICYmIG1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSB9LAor
ICAgIH0pOworCisgICAgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRFdmVu
dCA9IGludGVyYWN0ZWRXaXRoOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJjb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMDE2OTEwYmIwOWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmgK
QEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxs
ZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDIzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292
IChhcEBueXBvcC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRm9y
bUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGb3JtTGlzdGVkRWxlbWVudC5oIgorI2luY2x1ZGUg
IkxhYmVsYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudDsKKworY2xhc3MgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQgOiBwdWJsaWMgRm9y
bUxpc3RlZEVsZW1lbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZhbGlkYXRlZEZvcm1M
aXN0ZWRFbGVtZW50KTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQg
Y2xhc3MgRGVsYXllZFVwZGF0ZVZhbGlkaXR5U2NvcGU7CisgICAgZnJpZW5kIGNsYXNzIEhUTUxN
YXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDsKK3B1YmxpYzoKKyAgICBWYWxpZGF0ZWRG
b3JtTGlzdGVkRWxlbWVudChIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5WYWxpZGF0
ZWRGb3JtTGlzdGVkRWxlbWVudCgpOworCisgICAgLy8gIndpbGxWYWxpZGF0ZSIgbWVhbnMgImlz
IGEgY2FuZGlkYXRlIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24iLgorICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVW
aXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoUmVmPEhUTUxFbGVtZW50PiB2YWxpZGF0aW9uQW5jaG9y
KTsKKyAgICB2b2lkIGhpZGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGNoZWNrVmFsaWRpdHkoVmVjdG9yPFJlZlB0cjxWYWxpZGF0ZWRGb3JtTGlz
dGVkRWxlbWVudD4+KiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMgPSBudWxscHRyKTsKKyAgICBi
b29sIHJlcG9ydFZhbGlkaXR5KCk7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBmb2N1c2FibGVW
YWxpZGF0aW9uQW5jaG9yRWxlbWVudCgpOworICAgIHZvaWQgcmVwb3J0Tm9uRm9jdXNhYmxlQ29u
dHJvbEVycm9yKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb2N1c0FuZFNob3dWYWxpZGF0
aW9uTWVzc2FnZShSZWY8SFRNTEVsZW1lbnQ+IHZhbGlkYXRpb25BbmNob3IpOworICAgIGJvb2wg
aXNTaG93aW5nVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGlzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdDsKKyAgICAvLyBUaGlz
IG11c3QgYmUgY2FsbGVkIHdoZW4gYSB2YWxpZGF0aW9uIGNvbnN0cmFpbnQgb3IgY29udHJvbCB2
YWx1ZSBpcyBjaGFuZ2VkLgorICAgIHZvaWQgdXBkYXRlVmFsaWRpdHkoKTsKKyAgICB2b2lkIHNl
dEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRE
aXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldChib29sIGlzRGlzYWJsZWQpOworICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpIHsgfQorCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVhZE9ubHkoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNEaXNhYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzYWJsZWQgfHwgbV9kaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldDsgfQorICAgIGJv
b2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIHN1cHBvcnRzUmVhZE9ubHkoKSAmJiBtX2hh
c1JlYWRPbmx5QXR0cmlidXRlOyB9CisgICAgYm9vbCBpc011dGFibGUoKSBjb25zdCB7IHJldHVy
biAhaXNEaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5KCk7IH0KKworICAgIC8vIFRoaXMgbXVzdCBi
ZSBjYWxsZWQgYW55IHRpbWUgdGhlIHJlc3VsdCBvZiB3aWxsVmFsaWRhdGUoKSBoYXMgY2hhbmdl
ZC4KKyAgICBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X2lzVmFsaWQ7IH0KKworICAgIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQorCisgICAgYm9vbCB3YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZv
cm1TdWJtaXRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxh
c3RGb3JtU3VibWl0RXZlbnQ7IH0KKyAgICB2b2lkIHNldEludGVyYWN0ZWRXaXRoU2luY2VMYXN0
Rm9ybVN1Ym1pdEV2ZW50KGJvb2wpOworCisgICAgYm9vbCBtYXRjaGVzVmFsaWRQc2V1ZG9DbGFz
cygpIGNvbnN0OworICAgIGJvb2wgbWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0Owor
ICAgIGJvb2wgbWF0Y2hlc1VzZXJJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdDsKKyAgICBib29s
IG1hdGNoZXNVc2VyVmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0OworCisgICAgYm9vbCBpc0NhbmRp
ZGF0ZUZvclNhdmluZ0FuZFJlc3RvcmluZ1N0YXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHNob3VsZEF1dG9jb21wbGV0ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTYXZl
QW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJv
bFN0YXRlJikgeyB9IC8vIENhbGxlZCBvbmx5IGlmIHN0YXRlIGlzIG5vdCBlbXB0eS4KKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0ID0gMDsKKwor
cHJvdGVjdGVkOgorICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHJlYWRPbmx5QmFyc0Zyb21Db25zdHJhaW50VmFsaWRhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCB1cGRhdGVXaWxsVmFsaWRhdGVBbmRW
YWxpZGl0eSgpOworICAgIGJvb2wgZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQoKSBjb25zdCB7
IHJldHVybiBtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0OyB9CisKKyAgICBib29sIHZhbGlk
YXRpb25NZXNzYWdlU2hhZG93VHJlZUNvbnRhaW5zKGNvbnN0IE5vZGUmKSBjb25zdDsKKworICAg
IHZvaWQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoTm9kZTo6SW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVy
Tm9kZSYpOworICAgIHZvaWQgZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpOworICAgIHZvaWQgcmVt
b3ZlZEZyb21BbmNlc3RvcihOb2RlOjpSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpOworICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKTsKKyAgICB2b2lkIHBhcnNlRGlzYWJsZWRBdHRyaWJ1dGUoY29uc3QgQXRvbVN0cmluZyYp
OworICAgIHZvaWQgcGFyc2VSZWFkb25seUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJik7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7CisgICAgdmlydHVh
bCB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlYWRPbmx5
U3RhdGVDaGFuZ2VkKCk7CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VGb3JtKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRDaGFuZ2VGb3JtKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldERhdGFMaXN0
QW5jZXN0b3JTdGF0ZShUcmlTdGF0ZSk7CisgICAgdm9pZCBzeW5jV2l0aEZpZWxkc2V0QW5jZXN0
b3JzKENvbnRhaW5lck5vZGUqIGluc2VydGlvbk5vZGUpOworICAgIHZvaWQgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGVJZk5lY2Vzc2FyeSgpOworCitwcml2YXRlOgorICAgIGJvb2wgY29tcHV0ZUlz
RGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0b3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEhUTUxFbGVt
ZW50KiB2YWxpZGF0aW9uQW5jaG9yRWxlbWVudCgpID0gMDsKKworICAgIHZvaWQgc3RhcnREZWxh
eWluZ1VwZGF0ZVZhbGlkaXR5KCkgeyArK21fZGVsYXllZFVwZGF0ZVZhbGlkaXR5Q291bnQ7IH0K
KyAgICB2b2lkIGVuZERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKTsKKworICAgIHN0ZDo6dW5pcXVl
X3B0cjxWYWxpZGF0aW9uTWVzc2FnZT4gbV92YWxpZGF0aW9uTWVzc2FnZTsKKworICAgIC8vIENh
Y2hlIG9mIHZhbGlkaXR5KCktPnZhbGlkKCkuCisgICAgLy8gQnV0ICJjYW5kaWRhdGUgZm9yIGNv
bnN0cmFpbnQgdmFsaWRhdGlvbiIgZG9lc24ndCBhZmZlY3QgaXNWYWxpZC4KKyAgICBib29sIG1f
aXNWYWxpZCA6IDEgeyB0cnVlIH07CisKKyAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB3aWxs
VmFsaWRhdGUgZGVwZW5kcyBvbiB0aGUgZGVyaXZlZCBjbGFzcy4KKyAgICAvLyBXZSBjYW4ndCBp
bml0aWFsaXplIGl0IHdpdGggYSB2aXJ0dWFsIGZ1bmN0aW9uIGluIHRoZSBjb25zdHJ1Y3Rvci4K
KyAgICAvLyB3aWxsVmFsaWRhdGUgaXMgbm90IGRldGVybWluaXN0aWMgYXMgbG9uZyBhcyB3aWxs
VmFsaWRhdGVJbml0aWFsaXplZCBpcyBmYWxzZS4KKyAgICBtdXRhYmxlIGJvb2wgbV93aWxsVmFs
aWRhdGUgOiAxIHsgdHJ1ZSB9OworICAgIG11dGFibGUgYm9vbCBtX3dpbGxWYWxpZGF0ZUluaXRp
YWxpemVkIDogMSB7IGZhbHNlIH07CisKKyAgICBib29sIG1fZGlzYWJsZWQgOiAxIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQgOiAxIHsgZmFsc2UgfTsK
KworICAgIGJvb2wgbV9oYXNSZWFkT25seUF0dHJpYnV0ZSA6IDEgeyBmYWxzZSB9OworICAgIGJv
b2wgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRFdmVudCA6IDEgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9pc0ZvY3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlIHsgZmFsc2Ug
fTsKKworICAgIG11dGFibGUgVHJpU3RhdGUgbV9pc0luc2lkZURhdGFMaXN0IDogMiB7IFRyaVN0
YXRlOjpJbmRldGVybWluYXRlIH07CisKKyAgICB1bnNpZ25lZCBtX2RlbGF5ZWRVcGRhdGVWYWxp
ZGl0eUNvdW50IHsgMCB9OworfTsKKworY2xhc3MgRGVsYXllZFVwZGF0ZVZhbGlkaXR5U2NvcGUg
eworcHVibGljOgorICAgIERlbGF5ZWRVcGRhdGVWYWxpZGl0eVNjb3BlKFZhbGlkYXRlZEZvcm1M
aXN0ZWRFbGVtZW50JiBlbGVtZW50KQorICAgICAgICA6IG1fZWxlbWVudCB7IGVsZW1lbnQgfQor
ICAgIHsKKyAgICAgICAgbV9lbGVtZW50LnN0YXJ0RGVsYXlpbmdVcGRhdGVWYWxpZGl0eSgpOwor
ICAgIH0KKyAgICAKKyAgICB+RGVsYXllZFVwZGF0ZVZhbGlkaXR5U2NvcGUoKQorICAgIHsKKyAg
ICAgICAgbV9lbGVtZW50LmVuZERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQmIG1fZWxlbWVudDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVz
c2FnZS5jcHAKaW5kZXggODE1MGEwZTU5ZjIzLi4xMzYxNGI4NDcwZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotVmFsaWRhdGlvbk1l
c3NhZ2U6OlZhbGlkYXRpb25NZXNzYWdlKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVsZW1lbnQp
CitWYWxpZGF0aW9uTWVzc2FnZTo6VmFsaWRhdGlvbk1lc3NhZ2UoSFRNTEVsZW1lbnQmIGVsZW1l
bnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsK
QEAgLTc3LDcgKzc3LDcgQEAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIFZhbGlkYXRpb25NZXNz
YWdlOjp2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OnVwZGF0ZVZhbGlkYXRpb25NZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3ZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OnVwZGF0ZVZhbGlkYXRpb25N
ZXNzYWdlKEhUTUxFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgLy8gV2Ugd2FudCB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UgYXMgc29vbiBhcyB0
aGUgdXNlciBzdGFydHMKICAgICAvLyB0eXBpbmcsIGV2ZW4gaWYgYSBjb25zdHJhaW50IGlzIHN0
aWxsIHZpb2xhdGVkLiBUaGVmb3JlLCB3ZSBoaWRlIHRoZSBtZXNzYWdlIGluc3RlYWQKQEAgLTEw
Myw2ICsxMDMsOCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjp1cGRhdGVWYWxpZGF0aW9uTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHJlcXVlc3RUb0hpZGVNZXNzYWdl
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBtX2VsZW1lbnQgPSBlbGVtZW50Owog
ICAgIHNldE1lc3NhZ2UodXBkYXRlZE1lc3NhZ2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Zh
bGlkYXRpb25NZXNzYWdlLmgKaW5kZXggMTlmZTBiMDRjNzhiLi41MGJkNzFmMTBjMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE7
CiBjbGFzcyBIVE1MRWxlbWVudDsKLWNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ7CiBjbGFz
cyBOb2RlOwogY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiAKQEAgLTUwLDEwICs0OSwx
MCBAQCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZhbGlkYXRpb25NZXNz
YWdlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZhbGlkYXRpb25NZXNzYWdlPiB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoVmFsaWRhdGlvbk1lc3NhZ2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBWYWxpZGF0aW9uTWVzc2FnZShIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVmFsaWRhdGlvbk1lc3NhZ2UoSFRNTEVsZW1l
bnQmKTsKICAgICB+VmFsaWRhdGlvbk1lc3NhZ2UoKTsKIAotICAgIHZvaWQgdXBkYXRlVmFsaWRh
dGlvbk1lc3NhZ2UoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCB1cGRhdGVWYWxpZGF0aW9uTWVz
c2FnZShIVE1MRWxlbWVudCYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVxdWVzdFRvSGlk
ZU1lc3NhZ2UoKTsKICAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0OwogICAgIGJvb2wgc2hhZG93
VHJlZUNvbnRhaW5zKGNvbnN0IE5vZGUmKSBjb25zdDsKQEAgLTY2LDcgKzY1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGJ1aWxkQnViYmxlVHJlZSgpOwogICAgIHZvaWQgZGVsZXRlQnViYmxlVHJl
ZSgpOwogCi0gICAgV2Vha1B0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50LCBXZWFrUHRySW1wbFdp
dGhFdmVudFRhcmdldERhdGE+IG1fZWxlbWVudDsKKyAgICBXZWFrUHRyPEhUTUxFbGVtZW50LCBX
ZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1fZWxlbWVudDsKICAgICBTdHJpbmcgbV9t
ZXNzYWdlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gbV90aW1lcjsKICAgICBSZWZQdHI8
SFRNTEVsZW1lbnQ+IG1fYnViYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IGZjNGNkNDYxYTAzMy4uYTljM2UyNjgy
MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwCkBAIC0zNyw5ICszNywxMSBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZh
Y3RvcnkuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
QEAgLTc4OSwxMyArNzkxLDE0IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50T3JGaW5kQ3VzdG9tRWxlbWVudEluCiAgICAgICAgICAg
ICAgICAgKmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UgPSBlbGVtZW50SW50ZXJmYWNlOwogICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxl
bWVudCA9IEhUTUxFbGVtZW50OjpjcmVhdGUocXVhbGlmaWVkTmFtZUZvckhUTUxUYWcodG9rZW4p
LCBvd25lckRvY3VtZW50KTsKKyAgICAgICAgICAgIEFTU0VSVChxdWFsaWZpZWROYW1lRm9ySFRN
TFRhZyh0b2tlbikgPT0gZWxlbWVudEludGVyZmFjZS0+bmFtZSgpKTsKKyAgICAgICAgICAgIGVs
ZW1lbnQgPSBlbGVtZW50SW50ZXJmYWNlLT5jcmVhdGVFbGVtZW50KG93bmVyRG9jdW1lbnQpOwog
ICAgICAgICAgICAgZWxlbWVudC0+c2V0SXNDdXN0b21FbGVtZW50VXBncmFkZUNhbmRpZGF0ZSgp
OwogICAgICAgICAgICAgZWxlbWVudC0+ZW5xdWV1ZVRvVXBncmFkZSgqZWxlbWVudEludGVyZmFj
ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIHF1YWxpZmllZE5hbWUgPSBx
dWFsaWZpZWROYW1lRm9ySFRNTFRhZyh0b2tlbik7CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnQ6
OnZhbGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUodG9rZW4ubmFtZSgpKSA9PSBDdXN0b21FbGVtZW50
TmFtZVZhbGlkYXRpb25TdGF0dXM6OlZhbGlkKSB7Ci0gICAgICAgICAgICAgICAgZWxlbWVudCA9
IEhUTUxFbGVtZW50OjpjcmVhdGUocXVhbGlmaWVkTmFtZSwgb3duZXJEb2N1bWVudCk7CisgICAg
ICAgICAgICAgICAgZWxlbWVudCA9IEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dDo6Y3JlYXRlKHF1YWxpZmllZE5hbWUsIG93bmVyRG9jdW1lbnQpOwogICAgICAgICAgICAgICAg
IGVsZW1lbnQtPnNldElzQ3VzdG9tRWxlbWVudFVwZ3JhZGVDYW5kaWRhdGUoKTsKICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBIVE1MVW5rbm93bkVsZW1lbnQ6
OmNyZWF0ZShxdWFsaWZpZWROYW1lLCBvd25lckRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
aW5kZXggMGEzYTE0MDk5NzgyLi4zZGU4MTc3M2IxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBA
IC00MzgsNyArNDM4LDcgQEAgU3RyaW5nIEZyYW1lOjpzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbGVt
ZW50KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMsIEVsZW1lbnQKICAgICBOb2RlKiBuOwog
ICAgIGZvciAobiA9IE5vZGVUcmF2ZXJzYWw6OnByZXZpb3VzKCplbGVtZW50KTsgbiAmJiBsZW5n
dGhTZWFyY2hlZCA8IGNoYXJzU2VhcmNoZWRUaHJlc2hvbGQ7IG4gPSBOb2RlVHJhdmVyc2FsOjpw
cmV2aW91cygqbikpIHsKICAgICAgICAgLy8gV2UgaGl0IGFub3RoZXIgZm9ybSBlbGVtZW50IG9y
IHRoZSBzdGFydCBvZiB0aGUgZm9ybSAtIGJhaWwgb3V0Ci0gICAgICAgIGlmIChpczxIVE1MRm9y
bUVsZW1lbnQ+KCpuKSB8fCBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbikpCisgICAgICAg
IGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+KCpuKSB8fCAoaXM8RWxlbWVudD4oKm4pICYmIGRvd25j
YXN0PEVsZW1lbnQ+KCpuKS5pc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkpKQogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKG4tPmhhc1RhZ05hbWUodGRUYWcpICYmICFzdGFy
dGluZ1RhYmxlQ2VsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52
YWxpZGF0aW9uRnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRh
dGlvbkZ1bmN0aW9ucy5oCmluZGV4IGRkNzAxNGM3YjkyZC4uNTI5OTNhMjI4NTVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdGlvbkZ1bmN0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0aW9uRnVuY3Rpb25zLmgKQEAg
LTkwLDggKzkwLDExIEBAIGlubGluZSB2b2lkIHRyYXZlcnNlUnVsZUZlYXR1cmVzKEVsZW1lbnQm
IGVsZW1lbnQsIFRyYXZlcnNlRnVuY3Rpb24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVJ1bGVG
ZWF0dXJlc0ZvclNsb3R0ZWQoZWxlbWVudCwgZnVuY3Rpb24pOwogCiAgICAgLy8gRW5zdXJlIHRo
YXQgdGhlIGNvbnRhaW5pbmcgdHJlZSByZXNvbHZlciBhbHNvIGV4aXN0cyBzbyBpdCBkb2Vzbid0
IGdldCBjcmVhdGVkIGluIHRoZSBtaWRkbGUgb2YgaW52YWxpZGF0aW9uLgotICAgIGlmIChlbGVt
ZW50LmlzSW5TaGFkb3dUcmVlKCkgJiYgZWxlbWVudC5jb250YWluaW5nU2hhZG93Um9vdCgpKQot
ICAgICAgICBTdHlsZTo6U2NvcGU6OmZvck5vZGUoKmVsZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jv
b3QoKS0+aG9zdCgpKS5yZXNvbHZlcigpOworICAgIGlmIChlbGVtZW50LmlzSW5TaGFkb3dUcmVl
KCkgJiYgZWxlbWVudC5jb250YWluaW5nU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGF1dG8mIGhv
c3QgPSAqZWxlbWVudC5jb250YWluaW5nU2hhZG93Um9vdCgpLT5ob3N0KCk7CisgICAgICAgIGlm
IChob3N0LmlzQ29ubmVjdGVkKCkpCisgICAgICAgICAgICBTdHlsZTo6U2NvcGU6OmZvck5vZGUo
aG9zdCkucmVzb2x2ZXIoKTsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCA0M2UxYWU2NmEwZWEuLmZjMTJlZWQ4NGYy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcApA
QCAtMjI5LDcgKzIyOSw3IEBAIGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0
aEVsZW1lbnQoY29uc3QgQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgaWYgKCFjYW5k
aWRhdGVFbGVtZW50SWQuaXNOdWxsKCkgJiYgbV9ydWxlU2V0cy5mZWF0dXJlcygpLmlkc0luUnVs
ZXMuY29udGFpbnMoY2FuZGlkYXRlRWxlbWVudElkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGNhbmRpZGF0ZUVsZW1lbnQpIHx8
IGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgIGlmIChjYW5kaWRhdGVF
bGVtZW50LmlzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSB8fCBlbGVtZW50LmlzVmFsaWRh
dGVkRm9ybUxpc3RlZEVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8g
SFRNTEZvcm1FbGVtZW50IGNhbiBnZXQgdGhlIDp2YWxpZC9pbnZhbGlkIHBzZXVkbyBjbGFzc2Vz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N0YXRlLXJlc3RvcmUtZm9ybS1h
c3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3N0YXRlLXJlc3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYmRjY2Fm
YjVlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N0YXRlLXJl
c3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyOSBAQAorCitVcGdyYWRlZCBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdp
dGhvdXQgYW4gb3duZXI6CitQQVNTICQoIm5vb3duZXItdXBncmFkZTEiKS5yZXN0b3JlZFN0YXRl
IGlzICJmb28iCitQQVNTICQoIm5vb3duZXItdXBncmFkZTIiKS5yZXN0b3JlZFN0YXRlIGlzICJi
YXIiCitQQVNTIGlzRm9ybURhdGFFcXVhbCgkKCJub293bmVyLXVwZ3JhZGUzIikucmVzdG9yZWRT
dGF0ZSwgX19mb3JtRGF0YTIpIGlzIHRydWUKK1BBU1MgaXNGb3JtRGF0YUVxdWFsKCQoIm5vb3du
ZXItdXBncmFkZTQiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSkgaXMgdHJ1ZQorCitVcGdy
YWRlZCBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdpdGggYSBmb3JtIG93bmVyOgor
UEFTUyBpc0Zvcm1EYXRhRXF1YWwoJCgidXBncmFkZTEiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1E
YXRhMikgaXMgdHJ1ZQorUEFTUyAkKCJ1cGdyYWRlMiIpLnJlc3RvcmVkU3RhdGUgaXMgImZvbyIK
K1BBU1MgaXNGb3JtRGF0YUVxdWFsKCQoInVwZ3JhZGUzIikucmVzdG9yZWRTdGF0ZSwgX19mb3Jt
RGF0YTEpIGlzIHRydWUKK1BBU1MgJCgidXBncmFkZTQiKS5yZXN0b3JlZFN0YXRlIGlzICJiYXIi
CisKK1ByZWRlZmluZWQgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyB3aXRob3V0IGFu
IG93bmVyOgorUEFTUyAkKCJub293bmVyLXByZWRlZmluZWQxIikucmVzdG9yZWRTdGF0ZSBpcyAi
Zm9vIgorUEFTUyAkKCJub293bmVyLXByZWRlZmluZWQyIikucmVzdG9yZWRTdGF0ZSBpcyAiYmFy
IgorUEFTUyBpc0Zvcm1EYXRhRXF1YWwoJCgibm9vd25lci1wcmVkZWZpbmVkMyIpLnJlc3RvcmVk
U3RhdGUsIF9fZm9ybURhdGExKSBpcyB0cnVlCitQQVNTIGlzRm9ybURhdGFFcXVhbCgkKCJub293
bmVyLXByZWRlZmluZWQ0IikucmVzdG9yZWRTdGF0ZSwgX19mb3JtRGF0YTIpIGlzIHRydWUKKwor
UHJlZGVmaW5lZCBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdpdGggYSBmb3JtIG93
bmVyOgorUEFTUyAkKCJwcmVkZWZpbmVkMSIpLnJlc3RvcmVkU3RhdGUgaXMgImZvbyIKK1BBU1Mg
aXNGb3JtRGF0YUVxdWFsKCQoInByZWRlZmluZWQyIikucmVzdG9yZWRTdGF0ZSwgX19mb3JtRGF0
YTEpIGlzIHRydWUKK1BBU1MgJCgicHJlZGVmaW5lZDMiKS5yZXN0b3JlZFN0YXRlIGlzICJiYXIi
CitQQVNTICQoInByZWRlZmluZWQ0IikucmVzdG9yZWRTdGF0ZSBpcyAiZm9vIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0tYXNzb2NpYXRlZC1jdXN0
b20tZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc3RhdGUtcmVzdG9yZS1m
b3JtLWFzc29jaWF0ZWQtY3VzdG9tLWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5kMjc4YjY4Yzk0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3N0YXRlLXJlc3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1l
bGVtZW50cy5odG1sCkBAIC0wLDAgKzEsMTQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxpbnB1dCBpZD1lbXB0eU9u
Rmlyc3RWaXNpdD4KKworPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cu
X19mb3JtRGF0YTEgPSBuZXcgRm9ybURhdGE7CitfX2Zvcm1EYXRhMS5hcHBlbmQoImZvbyIsICJi
YXIiKTsKKword2luZG93Ll9fZm9ybURhdGEyID0gbmV3IEZvcm1EYXRhOworX19mb3JtRGF0YTIu
YXBwZW5kKCJhIiwgIjEiKTsKK19fZm9ybURhdGEyLmFwcGVuZCgiYiIsICIyIik7CisKK2Z1bmN0
aW9uIGdldFhGb29Db25zdHJ1Y3RvcigpIHsKKyAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBIVE1M
RWxlbWVudCB7CisgICAgICAgIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7CisKKyAgICAg
ICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgdGhp
cy5faW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbm5lY3RlZENhbGxiYWNrKCkgeworICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxzLnNl
dEZvcm1WYWx1ZSgKKyAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUZvcm1WYWx1ZSh0aGlzLmRh
dGFzZXQuc3VibWlzc2lvblZhbHVlKSwKKyAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUZvcm1W
YWx1ZSh0aGlzLmRhdGFzZXQuc3RhdGUpLAorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZSkgeworICAgICAgICAgICAgdGhp
cy5yZXN0b3JlZFN0YXRlID0gc3RhdGU7CisgICAgICAgIH0KKworICAgICAgICBfcGFyc2VGb3Jt
VmFsdWUoYXR0clZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGF0dHJWYWx1ZSA9
PT0gInN0cmluZyIgJiYgYXR0clZhbHVlLnN0YXJ0c1dpdGgoIkAiKSA/IHdpbmRvd1tgX18ke2F0
dHJWYWx1ZS5zbGljZSgxKX1gXSA6IGF0dHJWYWx1ZTsKKyAgICAgICAgfQorICAgIH07Cit9CisK
K2Z1bmN0aW9uIGlzRm9ybURhdGFFcXVhbChhLCBiKSB7CisgICAgY29uc3QgYkVudHJpZXMgPSBb
Li4uYl07CisKKyAgICByZXR1cm4gWy4uLmFdLmV2ZXJ5KChbYUtleSwgYVZhbHVlXSwgaW5kZXgp
ID0+IHsKKyAgICAgICAgY29uc3QgW2JLZXksIGJWYWx1ZV0gPSBiRW50cmllc1tpbmRleF07Cisg
ICAgICAgIHJldHVybiBhS2V5ID09PSBiS2V5ICYmIGFWYWx1ZSA9PT0gYlZhbHVlOworICAgIH0p
OworfQorCitjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtZm9vLXByZWRlZmluZWQiLCBnZXRYRm9v
Q29uc3RydWN0b3IoKSk7CisKK2Z1bmN0aW9uIG1ha2VGb3JtcyhzdGFnZSkgeworICAgIHZhciBi
ZWZvcmVGb3JtcyA9ICc8ZGl2IGlkPXBhcmVudD4nICsKKyAgICAgICAgJzx4LWZvby11cGdyYWRl
IGlkPSJub293bmVyLXVwZ3JhZGUyIiBuYW1lPSJub293bmVyLXVwZ3JhZGUyIiBkYXRhLXN1Ym1p
c3Npb24tdmFsdWU9IkBmb3JtRGF0YTIiIGRhdGEtc3RhdGU9ImJhciI+PC94LWZvby11cGdyYWRl
PicgKworICAgICAgICAnPHgtZm9vLXVwZ3JhZGUgaWQ9Im5vb3duZXItdXBncmFkZTQiIG5hbWU9
Im5vb3duZXItdXBncmFkZTQiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iZm9vIiBkYXRhLXN0YXRl
PSJAZm9ybURhdGExIj48L3gtZm9vLXVwZ3JhZGU+JyArCisgICAgICAgICc8eC1mb28tcHJlZGVm
aW5lZCBpZD0ibm9vd25lci1wcmVkZWZpbmVkMiIgbmFtZT0ibm9vd25lci1wcmVkZWZpbmVkMiIg
ZGF0YS1zdWJtaXNzaW9uLXZhbHVlPSJmb28iIGRhdGEtc3RhdGU9ImJhciI+PC94LWZvby1wcmVk
ZWZpbmVkPicgKworICAgICAgICAnPHgtZm9vLXByZWRlZmluZWQgaWQ9Im5vb3duZXItcHJlZGVm
aW5lZDQiIG5hbWU9Im5vb3duZXItcHJlZGVmaW5lZDQiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0i
QGZvcm1EYXRhMSIgZGF0YS1zdGF0ZT0iQGZvcm1EYXRhMiI+PC94LWZvby1wcmVkZWZpbmVkPic7
CisKKyAgICB2YXIgYmFja0Zvcm0gPSAnPGZvcm0gYWN0aW9uPSJkYXRhOnRleHQvaHRtbCwmbHQ7
c2NyaXB0Pmhpc3RvcnkuYmFjaygpOyZsdDsvc2NyaXB0PiIgaWQ9Zm9ybTEgbmFtZT1mb3JtMT4n
ICsKKyAgICAgICAgJzwvZm9ybT4nOworCisgICAgdmFyIHF1ZXJ5ID0gc3RhZ2UgPT0gMSA/ICI/
c2Vzc2lvbj0wMTIzNDU2IiA6ICI/c2Vzc2lvbj03NjU0MzIxMTExIjsKKyAgICB2YXIgc2FtZUFj
dGlvbkZvcm0xID0gJzxmb3JtIGFjdGlvbj0iaHR0cDovL2V4YW1wbGUuY29tL2Zvby5jZ2knICsg
cXVlcnkgKyAnI2JhciIgaWQ9Zm9ybTIgbmFtZT1mb3JtMj4nICsKKyAgICAgICAgJzx4LWZvby11
cGdyYWRlIGlkPSJ1cGdyYWRlMiIgbmFtZT0idXBncmFkZTIiIGRhdGEtc3VibWlzc2lvbi12YWx1
ZT0iZm9vIj48L3gtZm9vLXVwZ3JhZGU+JyArCisgICAgICAgICc8eC1mb28tdXBncmFkZSBpZD0i
dXBncmFkZTQiIG5hbWU9InVwZ3JhZGU0IiBkYXRhLXN1Ym1pc3Npb24tdmFsdWU9ImZvbyIgZGF0
YS1zdGF0ZT0iYmFyIj48L3gtZm9vLXVwZ3JhZGU+JyArCisgICAgICAgICc8eC1mb28tcHJlZGVm
aW5lZCBpZD0icHJlZGVmaW5lZDIiIG5hbWU9InByZWRlZmluZWQyIiBkYXRhLXN1Ym1pc3Npb24t
dmFsdWU9ImZvbyIgZGF0YS1zdGF0ZT0iQGZvcm1EYXRhMSI+PC94LWZvby1wcmVkZWZpbmVkPicg
KworICAgICAgICAnPHgtZm9vLXByZWRlZmluZWQgaWQ9InByZWRlZmluZWQ0IiBuYW1lPSJwcmVk
ZWZpbmVkNCIgZGF0YS1zdWJtaXNzaW9uLXZhbHVlPSJAZm9ybURhdGEyIiBkYXRhLXN0YXRlPSJm
b28iPjwveC1mb28tcHJlZGVmaW5lZD4nICsKKyAgICAgICAgJzwvZm9ybT4nOworCisgICAgdmFy
IHNhbWVBY3Rpb25Gb3JtMiA9ICc8Zm9ybSBhY3Rpb249Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28u
Y2dpP2FjdGlvbj1sb2dpbiNiYXIiIGlkPWZvcm0zIG5hbWU9Zm9ybTM+JyArCisgICAgICAgICc8
eC1mb28tdXBncmFkZSBpZD0idXBncmFkZTEiIG5hbWU9InVwZ3JhZGUxIiBkYXRhLXN1Ym1pc3Np
b24tdmFsdWU9IkBmb3JtRGF0YTIiPjwveC1mb28tdXBncmFkZT4nICsKKyAgICAgICAgJzx4LWZv
by11cGdyYWRlIGlkPSJ1cGdyYWRlMyIgbmFtZT0idXBncmFkZTMiIGRhdGEtc3VibWlzc2lvbi12
YWx1ZT0iQGZvcm1EYXRhMiIgZGF0YS1zdGF0ZT0iQGZvcm1EYXRhMSI+PC94LWZvby11cGdyYWRl
PicgKworICAgICAgICAnPHgtZm9vLXByZWRlZmluZWQgaWQ9InByZWRlZmluZWQxIiBuYW1lPSJw
cmVkZWZpbmVkMSIgZGF0YS1zdWJtaXNzaW9uLXZhbHVlPSJmb28iPjwveC1mb28tcHJlZGVmaW5l
ZD4nICsKKyAgICAgICAgJzx4LWZvby1wcmVkZWZpbmVkIGlkPSJwcmVkZWZpbmVkMyIgbmFtZT0i
cHJlZGVmaW5lZDMiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iYmFyIj48L3gtZm9vLXByZWRlZmlu
ZWQ+JyArCisgICAgICAgICc8L2Zvcm0+JzsKKworICAgIHZhciBhZnRlckZvcm1zID0KKyAgICAg
ICAgJzx4LWZvby11cGdyYWRlIGlkPSJub293bmVyLXVwZ3JhZGUxIiBuYW1lPSJub293bmVyLXVw
Z3JhZGUxIiBkYXRhLXN1Ym1pc3Npb24tdmFsdWU9ImZvbyI+PC94LWZvby11cGdyYWRlPicgKwor
ICAgICAgICAnPHgtZm9vLXVwZ3JhZGUgaWQ9Im5vb3duZXItdXBncmFkZTMiIG5hbWU9Im5vb3du
ZXItdXBncmFkZTMiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iQGZvcm1EYXRhMiI+PC94LWZvby11
cGdyYWRlPicgKworICAgICAgICAnPHgtZm9vLXByZWRlZmluZWQgaWQ9Im5vb3duZXItcHJlZGVm
aW5lZDEiIG5hbWU9Im5vb3duZXItcHJlZGVmaW5lZDEiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0i
Zm9vIj48L3gtZm9vLXByZWRlZmluZWQ+JyArCisgICAgICAgICc8eC1mb28tcHJlZGVmaW5lZCBp
ZD0ibm9vd25lci1wcmVkZWZpbmVkMyIgbmFtZT0ibm9vd25lci1wcmVkZWZpbmVkMyIgZGF0YS1z
dWJtaXNzaW9uLXZhbHVlPSJAZm9ybURhdGExIj48L3gtZm9vLXByZWRlZmluZWQ+JyArCisgICAg
ICAgICc8L2Rpdj4nOworCisgICAgZG9jdW1lbnQud3JpdGUoCisgICAgICAgIGJlZm9yZUZvcm1z
ICsKKyAgICAgICAgKHN0YWdlID09PSAxID8gYmFja0Zvcm0gKyBzYW1lQWN0aW9uRm9ybTEgOiBz
YW1lQWN0aW9uRm9ybTEgKyBiYWNrRm9ybSkgKworICAgICAgICBzYW1lQWN0aW9uRm9ybTIgKwor
ICAgICAgICBhZnRlckZvcm1zCisgICAgKTsKKworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgi
eC1mb28tdXBncmFkZSIsIGdldFhGb29Db25zdHJ1Y3RvcigpKTsKK30KKworZnVuY3Rpb24gcnVu
VGVzdCgpCit7CisgICAgdmFyIHN0YXRlID0gJCgnZW1wdHlPbkZpcnN0VmlzaXQnKTsKKyAgICBp
ZiAoIXN0YXRlLnZhbHVlKSB7CisgICAgICAgIHN0YXRlLnZhbHVlID0gJ3Zpc2l0ZWQnOworICAg
ICAgICBtYWtlRm9ybXMoMSk7CisgICAgCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAkKCdmb3JtMScpLnN1Ym1pdCgpOworICAgICAgICB9KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBtYWtlRm9ybXMoMik7CisKKyAgICAgICAgZGVidWcoJ1xuVXBncmFkZWQg
Zm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyB3aXRob3V0IGFuIG93bmVyOicpOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJyQoIm5vb3duZXItdXBncmFkZTEiKS5yZXN0b3Jl
ZFN0YXRlJywgJ2ZvbycpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJyQoIm5vb3du
ZXItdXBncmFkZTIiKS5yZXN0b3JlZFN0YXRlJywgJ2JhcicpOworICAgICAgICBzaG91bGRCZVRy
dWUoJ2lzRm9ybURhdGFFcXVhbCgkKCJub293bmVyLXVwZ3JhZGUzIikucmVzdG9yZWRTdGF0ZSwg
X19mb3JtRGF0YTIpJyk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgnaXNGb3JtRGF0YUVxdWFsKCQo
Im5vb3duZXItdXBncmFkZTQiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSknKTsKKworICAg
ICAgICBkZWJ1ZygnXG5VcGdyYWRlZCBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdp
dGggYSBmb3JtIG93bmVyOicpOworICAgICAgICBzaG91bGRCZVRydWUoJ2lzRm9ybURhdGFFcXVh
bCgkKCJ1cGdyYWRlMSIpLnJlc3RvcmVkU3RhdGUsIF9fZm9ybURhdGEyKScpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJyQoInVwZ3JhZGUyIikucmVzdG9yZWRTdGF0ZScsICdmb28n
KTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCdpc0Zvcm1EYXRhRXF1YWwoJCgidXBncmFkZTMiKS5y
ZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSknKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCckKCJ1cGdyYWRlNCIpLnJlc3RvcmVkU3RhdGUnLCAnYmFyJyk7CisKKyAgICAgICAgZGVi
dWcoJ1xuUHJlZGVmaW5lZCBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdpdGhvdXQg
YW4gb3duZXI6Jyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnJCgibm9vd25lci1w
cmVkZWZpbmVkMSIpLnJlc3RvcmVkU3RhdGUnLCAnZm9vJyk7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnJCgibm9vd25lci1wcmVkZWZpbmVkMiIpLnJlc3RvcmVkU3RhdGUnLCAnYmFy
Jyk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgnaXNGb3JtRGF0YUVxdWFsKCQoIm5vb3duZXItcHJl
ZGVmaW5lZDMiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSknKTsKKyAgICAgICAgc2hvdWxk
QmVUcnVlKCdpc0Zvcm1EYXRhRXF1YWwoJCgibm9vd25lci1wcmVkZWZpbmVkNCIpLnJlc3RvcmVk
U3RhdGUsIF9fZm9ybURhdGEyKScpOworCisgICAgICAgIGRlYnVnKCdcblByZWRlZmluZWQgZm9y
bS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyB3aXRoIGEgZm9ybSBvd25lcjonKTsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCckKCJwcmVkZWZpbmVkMSIpLnJlc3RvcmVkU3RhdGUn
LCAnZm9vJyk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgnaXNGb3JtRGF0YUVxdWFsKCQoInByZWRl
ZmluZWQyIikucmVzdG9yZWRTdGF0ZSwgX19mb3JtRGF0YTEpJyk7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnJCgicHJlZGVmaW5lZDMiKS5yZXN0b3JlZFN0YXRlJywgJ2JhcicpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJyQoInByZWRlZmluZWQ0IikucmVzdG9yZWRT
dGF0ZScsICdmb28nKTsKKworICAgICAgICAkKCdwYXJlbnQnKS5pbm5lckhUTUwgPSAnJzsKKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0pOworICAgIH0K
K30KKworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3Jt
LWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1Ob3RTdXBwb3J0ZWRFcnJvci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1Ob3RTdXBwb3J0ZWRFcnJv
ci1leHBlY3RlZC50eHQKaW5kZXggNTU0NTNhY2JjMWYwLi5iMmQ0NTNhZTQ1NWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLU5vdFN1cHBvcnRlZEVycm9y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1O
b3RTdXBwb3J0ZWRFcnJvci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgRm9y
bS1yZWxhdGVkIG9wZXJhdGlvbnMgYW5kIGF0dHJpYnV0ZXMgc2hvdWxkIHRocm93IE5vdFN1cHBv
cnRlZEVycm9ycyBmb3Igbm9uLWZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMuIGFzc2Vy
dF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gaS5zZXRGb3JtVmFsdWUoJycpIiB0aHJldyBv
YmplY3QgIlR5cGVFcnJvcjogaS5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
aS5zZXRGb3JtVmFsdWUoJycpJywgJ2kuc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIiB0aGF0
IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogcHJvcGVydHkgImNvZGUi
IGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgOQorUEFTUyBGb3JtLXJlbGF0ZWQgb3Bl
cmF0aW9ucyBhbmQgYXR0cmlidXRlcyBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3JzIGZv
ciBub24tZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cy4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1mb3JtLWV4cGVjdGVkLnR4dAppbmRleCA0
ZWQxMDgyZWQ5YjUuLmQ0YzZlMDUxYmViNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L0VsZW1lbnRJbnRlcm5hbHMtZm9ybS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL0VsZW1lbnRJbnRlcm5hbHMtZm9ybS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw0IEBACiAK
LUZBSUwgRWxlbWVudEludGVybmFscy5mb3JtIHNob3VsZCByZXR1cm4gdGhlIHRhcmdldCBlbGVt
ZW50J3MgZm9ybSBvd25lciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBFbGVtZW50
IG5vZGUgPGZvcm0gaWQ9ImN1c3RvbS1mb3JtIj4KLSAgPGN1c3RvbS1pbnB1dC1wYXJzZXIgaWQ9
ImN1c3RvbS4uLiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBFbGVtZW50SW50
ZXJuYWxzLmZvcm0gc2hvdWxkIHRocm93cyBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgdGFyZ2V0
IGVsZW1lbnQgaXMgbm90IGEgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50IGFzc2VydF90
aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gaS5mb3JtIiBkaWQgbm90IHRocm93CitQQVNTIEVs
ZW1lbnRJbnRlcm5hbHMuZm9ybSBzaG91bGQgcmV0dXJuIHRoZSB0YXJnZXQgZWxlbWVudCdzIGZv
cm0gb3duZXIKK1BBU1MgRWxlbWVudEludGVybmFscy5mb3JtIHNob3VsZCB0aHJvd3MgTm90U3Vw
cG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRl
ZCBjdXN0b20gZWxlbWVudAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVu
dEludGVybmFscy1sYWJlbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1l
bnRJbnRlcm5hbHMtbGFiZWxzLWV4cGVjdGVkLnR4dAppbmRleCBkNTJkOGM2ZmYzNjQuLmFkZGFi
MzMzZDQyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMt
bGFiZWxzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVy
bmFscy1sYWJlbHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIExBQkVMIGFz
c29jaWF0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8bXktY29udHJv
bD48L215LWNvbnRyb2w+IGJ1dCBnb3QgbnVsbAotRkFJTCBMQUJFTCBjbGljayBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAxIGJ1dCBnb3QgMAotRkFJTCBFbGVtZW50SW50ZXJuYWxzLmxhYmVscyBz
aG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5v
dCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudCBhc3NlcnRfdGhyb3dzX2RvbTogZnVu
Y3Rpb24gIigpID0+IGkubGFiZWxzIiBkaWQgbm90IHRocm93CitQQVNTIExBQkVMIGFzc29jaWF0
aW9uCitQQVNTIExBQkVMIGNsaWNrCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMubGFiZWxzIHNob3Vs
ZCB0aHJvdyBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgbm90IGEg
Zm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLWxhYmVscy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L0VsZW1lbnRJbnRlcm5hbHMtbGFiZWxzLmh0bWwKaW5kZXggMDJlOGEwZjJlYjVkLi5iMjdiZTVm
MmZjM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLWxh
YmVscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLWxhYmVs
cy5odG1sCkBAIC00MCw2ICs0MCwxMCBAQCB0ZXN0KCgpID0+IHsKICAgY29udGFpbmVyLmlubmVy
SFRNTCA9ICc8bXktY29udHJvbD48L215LWNvbnRyb2w+JzsKICAgY29udHJvbCA9IGNvbnRhaW5l
ci5xdWVyeVNlbGVjdG9yKCdteS1jb250cm9sJyk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoY29u
dHJvbC5pLmxhYmVscywgW10pOworCisgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGxhYmVsPjx4
LWZvbz48L3gtZm9vPjwvbGFiZWw+JzsKKyAgbGFiZWwgPSBjb250YWluZXIucXVlcnlTZWxlY3Rv
cignbGFiZWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhsYWJlbC5jb250cm9sLCBudWxsKTsKIH0sICdM
QUJFTCBhc3NvY2lhdGlvbicpOwogCiB0ZXN0KCgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXNldEZvcm1WYWx1ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1zZXRGb3JtVmFsdWUtZXhwZWN0ZWQu
dHh0CmluZGV4IDg1YTVlNTkzZjYwOS4uN2NkNzAzNGFiZGQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3Jt
LWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1zZXRGb3JtVmFsdWUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXNldEZvcm1WYWx1ZS1leHBl
Y3RlZC50eHQKQEAgLTEsNTggKzEsNTggQEAKIAogCiBQQVNTIFNpbmdsZSB2YWx1ZSAtIG5hbWUg
aXMgbWlzc2luZwotRkFJTCBTaW5nbGUgdmFsdWUgLSBlbXB0eSBuYW1lIGV4aXN0cyB0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMg
dW5kZWZpbmVkKQotRkFJTCBTaW5nbGUgdmFsdWUgLSBOb24tZW1wdHkgbmFtZSBleGlzdHMgdGhp
cy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUn
IGlzIHVuZGVmaW5lZCkKLUZBSUwgTnVsbCB2YWx1ZSBzaG91bGQgc3VibWl0IG5vdGhpbmcgdGhp
cy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUn
IGlzIHVuZGVmaW5lZCkKLUZBSUwgTXVsdGlwbGUgdmFsdWVzIC0gbmFtZSBjb250ZW50IGF0dHJp
YnV0ZSBpcyBpZ25vcmVkIHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpCi1GQUlMIHNldEZvcm1WYWx1ZSB3aXRo
IGFuIGVtcHR5IEZvcm1EYXRhIHNob3VsZCBzdWJtaXQgbm90aGluZyB0aGlzLmludGVybmFsc18u
c2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRG
b3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVk
KQotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBuYW1lICh1cmxlbmNvZGVkKSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBc
biBpbiBuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodikn
LCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3
bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gbmFtZSAo
Zm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxyXG4gaW4gbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFs
c18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5z
ZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZp
bmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiBuYW1lIChmb3JtZGF0
YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9u
IC0gXG5cciBpbiBuYW1lICh1cmxlbmNvZGVkKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRG
b3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1W
YWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgot
RkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGluIG5hbWUgKGZvcm1kYXRhKSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9y
bVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBp
biB2YWx1ZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodikn
LCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3
bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gdmFsdWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMu
aW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRl
cm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBp
cyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBpbiB2YWx1ZSAo
dXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5p
bnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3Jt
YWxpemF0aW9uIC0gXHIgaW4gdmFsdWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmlu
ZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIHZhbHVlICh1cmxlbmNv
ZGVkKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFs
c18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRp
b24gLSBcclxuIGluIHZhbHVlIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIK
LUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiB2YWx1ZSAodXJsZW5jb2RlZCkg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0g
XG5cciBpbiB2YWx1ZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1W
YWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
KHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlM
IE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIGZpbGVuYW1lICh1cmxlbmNvZGVkKSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9y
bVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBp
biBmaWxlbmFtZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYp
JywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5l
d2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIGZpbGVuYW1lICh1cmxlbmNvZGVkKSBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhp
cy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBpbiBm
aWxlbmFtZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywg
J3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xp
bmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gZmlsZW5hbWUgKHVybGVuY29kZWQpIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFs
dWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4g
ZmlsZW5hbWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScs
ICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXds
aW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGluIGZpbGVuYW1lICh1cmxlbmNvZGVkKSBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhp
cy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGlu
IGZpbGVuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodikn
LCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3
bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gRm9ybURhdGEgbmFtZSAodXJsZW5jb2RlZCkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlv
biAtIFxuIGluIEZvcm1EYXRhIG5hbWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMg
dW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gRm9ybURhdGEg
bmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURh
dGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlM
IE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIEZvcm1EYXRhIG5hbWUgKGZvcm1kYXRhKSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5h
bHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0
aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSBuYW1lICh1cmxlbmNvZGVkKSBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5h
bHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiBG
b3JtRGF0YSBuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUo
Zm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCki
Ci1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgbmFtZSAodXJs
ZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3Ro
aXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUg
bm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgbmFtZSAoZm9ybWRhdGEpIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBc
biBpbiBGb3JtRGF0YSB2YWx1ZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18u
c2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRG
b3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVu
ZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIEZvcm1EYXRhIHZh
bHVlIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEp
JywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5l
d2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIEZvcm1EYXRhIHZhbHVlICh1cmxlbmNvZGVkKSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5h
bHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0
aW9uIC0gXHIgaW4gRm9ybURhdGEgdmFsdWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiBGb3Jt
RGF0YSB2YWx1ZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUo
Zm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCki
Ci1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gRm9ybURhdGEgdmFsdWUgKGZv
cm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhp
cy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBu
b3JtYWxpemF0aW9uIC0gXG5cciBpbiBGb3JtRGF0YSB2YWx1ZSAodXJsZW5jb2RlZCkgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Ro
aXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5z
ZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAt
IFxuXHIgaW4gRm9ybURhdGEgdmFsdWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMg
dW5kZWZpbmVkKSIKLUZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gRm9ybURhdGEg
ZmlsZW5hbWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZv
cm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgot
RkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBGb3JtRGF0YSBmaWxlbmFtZSAoZm9y
bWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5v
cm1hbGl6YXRpb24gLSBcciBpbiBGb3JtRGF0YSBmaWxlbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Ro
aXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5z
ZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAt
IFxyIGluIEZvcm1EYXRhIGZpbGVuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFs
c18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5z
ZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlz
IHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gRm9ybURh
dGEgZmlsZW5hbWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1W
YWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
KGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQp
IgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIGZpbGVuYW1l
IChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywg
J3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIE5ld2xp
bmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgZmlsZW5hbWUgKHVybGVuY29kZWQp
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgotRkFJTCBOZXdsaW5lIG5vcm1hbGl6
YXRpb24gLSBcblxyIGluIEZvcm1EYXRhIGZpbGVuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMuc2V0Rm9ybVZhbHVl
KCkgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZEVycm9yIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBp
cyBub3QgYSBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnQgYXNzZXJ0X3Rocm93c19kb206
IGZ1bmN0aW9uICIoKSA9PiBpLnNldEZvcm1WYWx1ZSgidGVzdCIpIiB0aHJldyBvYmplY3QgIlR5
cGVFcnJvcjogaS5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaS5zZXRGb3Jt
VmFsdWUoInRlc3QiKScsICdpLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBu
b3QgYSBET01FeGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDkKK1BBU1MgU2luZ2xlIHZhbHVlIC0gZW1wdHkg
bmFtZSBleGlzdHMKK1BBU1MgU2luZ2xlIHZhbHVlIC0gTm9uLWVtcHR5IG5hbWUgZXhpc3RzCitQ
QVNTIE51bGwgdmFsdWUgc2hvdWxkIHN1Ym1pdCBub3RoaW5nCitQQVNTIE11bHRpcGxlIHZhbHVl
cyAtIG5hbWUgY29udGVudCBhdHRyaWJ1dGUgaXMgaWdub3JlZAorUEFTUyBzZXRGb3JtVmFsdWUg
d2l0aCBhbiBlbXB0eSBGb3JtRGF0YSBzaG91bGQgc3VibWl0IG5vdGhpbmcKK1BBU1MgTmV3bGlu
ZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gbmFtZSAodXJsZW5jb2RlZCkKK1BBU1MgTmV3bGluZSBu
b3JtYWxpemF0aW9uIC0gXG4gaW4gbmFtZSAoZm9ybWRhdGEpCitQQVNTIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxyIGluIG5hbWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXph
dGlvbiAtIFxyIGluIG5hbWUgKGZvcm1kYXRhKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24g
LSBcclxuIGluIG5hbWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAt
IFxyXG4gaW4gbmFtZSAoZm9ybWRhdGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxu
XHIgaW4gbmFtZSAodXJsZW5jb2RlZCkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5c
ciBpbiBuYW1lIChmb3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4g
dmFsdWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIHZh
bHVlIChmb3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gdmFsdWUg
KHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIHZhbHVlIChm
b3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiB2YWx1ZSAodXJs
ZW5jb2RlZCkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiB2YWx1ZSAoZm9y
bWRhdGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gdmFsdWUgKHVybGVu
Y29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gdmFsdWUgKGZvcm1k
YXRhKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBmaWxlbmFtZSAodXJsZW5j
b2RlZCkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gZmlsZW5hbWUgKGZvcm1k
YXRhKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBpbiBmaWxlbmFtZSAodXJsZW5j
b2RlZCkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gZmlsZW5hbWUgKGZvcm1k
YXRhKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIGZpbGVuYW1lICh1cmxl
bmNvZGVkKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIGZpbGVuYW1lIChm
b3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiBmaWxlbmFtZSAo
dXJsZW5jb2RlZCkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiBmaWxlbmFt
ZSAoZm9ybWRhdGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIEZvcm1EYXRh
IG5hbWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIEZv
cm1EYXRhIG5hbWUgKGZvcm1kYXRhKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBp
biBGb3JtRGF0YSBuYW1lICh1cmxlbmNvZGVkKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24g
LSBcciBpbiBGb3JtRGF0YSBuYW1lIChmb3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0
aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSBuYW1lICh1cmxlbmNvZGVkKQorUEFTUyBOZXdsaW5lIG5v
cm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIG5hbWUgKGZvcm1kYXRhKQorUEFTUyBOZXds
aW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGluIEZvcm1EYXRhIG5hbWUgKHVybGVuY29kZWQpCitQ
QVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgbmFtZSAoZm9ybWRh
dGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIEZvcm1EYXRhIHZhbHVlICh1
cmxlbmNvZGVkKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBGb3JtRGF0YSB2
YWx1ZSAoZm9ybWRhdGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIEZvcm1E
YXRhIHZhbHVlICh1cmxlbmNvZGVkKQorUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBp
biBGb3JtRGF0YSB2YWx1ZSAoZm9ybWRhdGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAt
IFxyXG4gaW4gRm9ybURhdGEgdmFsdWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxyXG4gaW4gRm9ybURhdGEgdmFsdWUgKGZvcm1kYXRhKQorUEFTUyBOZXdsaW5l
IG5vcm1hbGl6YXRpb24gLSBcblxyIGluIEZvcm1EYXRhIHZhbHVlICh1cmxlbmNvZGVkKQorUEFT
UyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGluIEZvcm1EYXRhIHZhbHVlIChmb3JtZGF0
YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gRm9ybURhdGEgZmlsZW5hbWUg
KHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIEZvcm1EYXRh
IGZpbGVuYW1lIChmb3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4g
Rm9ybURhdGEgZmlsZW5hbWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlv
biAtIFxyIGluIEZvcm1EYXRhIGZpbGVuYW1lIChmb3JtZGF0YSkKK1BBU1MgTmV3bGluZSBub3Jt
YWxpemF0aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSBmaWxlbmFtZSAodXJsZW5jb2RlZCkKK1BBU1Mg
TmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSBmaWxlbmFtZSAoZm9ybWRh
dGEpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgZmlsZW5h
bWUgKHVybGVuY29kZWQpCitQQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9y
bURhdGEgZmlsZW5hbWUgKGZvcm1kYXRhKQorUEFTUyBFbGVtZW50SW50ZXJuYWxzLnNldEZvcm1W
YWx1ZSgpIHNob3VsZCB0aHJvdyBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgdGFyZ2V0IGVsZW1l
bnQgaXMgbm90IGEgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi1leHBl
Y3RlZC50eHQKaW5kZXggZjY2MmU4ZTM1OTE3Li42YmE0MjQzNjYwYzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0xLDE2ICsxLDE4IEBACitDT05TT0xFIE1FU1NBR0U6IEFuIGludmFsaWQg
Zm9ybSBjb250cm9sIHdpdGggbmFtZT0nJyBpcyBub3QgZm9jdXNhYmxlLgorQ09OU09MRSBNRVNT
QUdFOiBBbiBpbnZhbGlkIGZvcm0gY29udHJvbCB3aXRoIG5hbWU9JycgaXMgbm90IGZvY3VzYWJs
ZS4KK0NPTlNPTEUgTUVTU0FHRTogQW4gaW52YWxpZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lPScn
IGlzIG5vdCBmb2N1c2FibGUuCiAKIAotRkFJTCB3aWxsVmFsaWRhdGUgYXNzZXJ0X3RydWU6IGRl
ZmF1bHQgdmFsdWUgaXMgdHJ1ZSBleHBlY3RlZCB0cnVlIGdvdCB1bmRlZmluZWQKLUZBSUwgd2ls
bFZhbGlkYXRlIGFmdGVyIHVwZ3JhZGUgYXNzZXJ0X3RydWU6IGRlZmF1bHQgdmFsdWUgZXhwZWN0
ZWQgdHJ1ZSBnb3QgdW5kZWZpbmVkCi1GQUlMIHdpbGxWYWxpZGF0ZSBzaG91bGQgdGhyb3cgTm90
U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2Np
YXRlZCBjdXN0b20gZWxlbWVudCBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGVs
ZW1lbnQuaS53aWxsVmFsaWRhdGUiIGRpZCBub3QgdGhyb3cKLUZBSUwgdmFsaWRpdHkgYW5kIHNl
dFZhbGlkaXR5KCkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3ZhbGlk
aXR5LnZhbHVlTWlzc2luZycpCi1GQUlMICJhbmNob3IiIGFyZ3VtZW50IG9mIHNldFZhbGlkaXR5
KCkgYXNzZXJ0X3Rocm93c19kb206IE5vdCBhIGRlc2NlbmRhbnQgZnVuY3Rpb24gIigpID0+IHsK
LSAgICBjb250cm9sLmkuc2V0VmFsaWRpdHkoZmxhZ3MsIG0sIGRvY3VtZW50LmJvZHkpOwotICB9
IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogY29udHJvbC5pLnNldFZhbGlkaXR5IGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ2NvbnRyb2wuaS5zZXRWYWxpZGl0eShmbGFncywgbSwgZG9jdW1lbnQu
Ym9keSknLCAnY29udHJvbC5pLnNldFZhbGlkaXR5JyBpcyB1bmRlZmluZWQpIiB0aGF0IGlzIG5v
dCBhIERPTUV4Y2VwdGlvbiBOb3RGb3VuZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwg
dG8gdW5kZWZpbmVkLCBleHBlY3RlZCA4Ci1GQUlMIGNoZWNrVmFsaWRpdHkoKSBzaG91bGQgdGhy
b3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0t
YXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudCBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigp
ID0+IGVsZW1lbnQuaS5jaGVja1ZhbGlkaXR5KCkiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBl
bGVtZW50LmkuY2hlY2tWYWxpZGl0eSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdlbGVtZW50Lmku
Y2hlY2tWYWxpZGl0eSgpJywgJ2VsZW1lbnQuaS5jaGVja1ZhbGlkaXR5JyBpcyB1bmRlZmluZWQp
IiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogcHJvcGVydHkg
ImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgOQotRkFJTCBjaGVja1ZhbGlk
aXR5KCkgY29udHJvbC5pLmNoZWNrVmFsaWRpdHkgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY29u
dHJvbC5pLmNoZWNrVmFsaWRpdHkoKScsICdjb250cm9sLmkuY2hlY2tWYWxpZGl0eScgaXMgdW5k
ZWZpbmVkKQotRkFJTCByZXBvcnRWYWxpZGl0eSgpIHNob3VsZCB0aHJvdyBOb3RTdXBwb3J0ZWRF
cnJvciBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgbm90IGEgZm9ybS1hc3NvY2lhdGVkIGN1c3Rv
bSBlbGVtZW50IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4gZWxlbWVudC5pLnJl
cG9ydFZhbGlkaXR5KCkiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBlbGVtZW50LmkucmVwb3J0
VmFsaWRpdHkgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZWxlbWVudC5pLnJlcG9ydFZhbGlkaXR5
KCknLCAnZWxlbWVudC5pLnJlcG9ydFZhbGlkaXR5JyBpcyB1bmRlZmluZWQpIiB0aGF0IGlzIG5v
dCBhIERPTUV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgOQotRkFJTCByZXBvcnRWYWxpZGl0eSgpIGNvbnRy
b2wuaS5yZXBvcnRWYWxpZGl0eSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdjb250cm9sLmkucmVw
b3J0VmFsaWRpdHkoKScsICdjb250cm9sLmkucmVwb3J0VmFsaWRpdHknIGlzIHVuZGVmaW5lZCkK
LUZBSUwgQ3VzdG9tIGNvbnRyb2wgYWZmZWN0cyB2YWxpZGF0aW9uIGF0IHRoZSBvd25lciBmb3Jt
IGNvbnRyb2wuaS5jaGVja1ZhbGlkaXR5IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2NvbnRyb2wu
aS5jaGVja1ZhbGlkaXR5KCknLCAnY29udHJvbC5pLmNoZWNrVmFsaWRpdHknIGlzIHVuZGVmaW5l
ZCkKLUZBSUwgQ3VzdG9tIGNvbnRyb2wgYWZmZWN0cyA6dmFsaWQgOmludmFsaWQgZm9yIEZPUk0g
YW5kIEZJRUxEU0VUIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyB3
aWxsVmFsaWRhdGUKK1BBU1Mgd2lsbFZhbGlkYXRlIGFmdGVyIHVwZ3JhZGUKK1BBU1Mgd2lsbFZh
bGlkYXRlIGFmdGVyIHVwZ3JhZGUgKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpCitQQVNTIHdpbGxW
YWxpZGF0ZSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVt
ZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudAorUEFTUyB2YWxpZGl0
eSBhbmQgc2V0VmFsaWRpdHkoKQorUEFTUyAiYW5jaG9yIiBhcmd1bWVudCBvZiBzZXRWYWxpZGl0
eSgpCitQQVNTIGNoZWNrVmFsaWRpdHkoKSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3Ig
aWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxl
bWVudAorUEFTUyBjaGVja1ZhbGlkaXR5KCkKK1BBU1MgcmVwb3J0VmFsaWRpdHkoKSBzaG91bGQg
dGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZv
cm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudAorUEFTUyByZXBvcnRWYWxpZGl0eSgpCitQQVNT
IEN1c3RvbSBjb250cm9sIGFmZmVjdHMgdmFsaWRhdGlvbiBhdCB0aGUgb3duZXIgZm9ybQorUEFT
UyBDdXN0b20gY29udHJvbCBhZmZlY3RzIDp2YWxpZCA6aW52YWxpZCBmb3IgRk9STSBhbmQgRklF
TERTRVQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMt
dmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFs
aWRhdGlvbi5odG1sCmluZGV4IDQ4OTBjZWU3MjEyYy4uMmI4ZmQ2YWZhZGZkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy12YWxpZGF0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi5odG1sCkBA
IC04NSw2ICs4NSwyMCBAQCB0ZXN0KCgpID0+IHsKICAgYXNzZXJ0X2ZhbHNlKGNvbnRyb2xzWzRd
Lmkud2lsbFZhbGlkYXRlLCAnaW4gZGlzYWJsZWQgZmllbGRzZXQnKTsKIH0sICd3aWxsVmFsaWRh
dGUgYWZ0ZXIgdXBncmFkZScpOwogCit0ZXN0KHQgPT4geworICBjb25zdCBjb250cm9sID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnd2lsbC1iZS1kZWZpbmVkLTInKTsKKworICBjdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ3dpbGwtYmUtZGVmaW5lZC0yJywgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVu
dCB7CisgICAgc3RhdGljIGdldCBmb3JtQXNzb2NpYXRlZCgpIHsgcmV0dXJuIHRydWU7IH0KKyAg
fSk7CisKKyAgY29udGFpbmVyLmFwcGVuZChjb250cm9sKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiB7IGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgfSk7CisKKyAgY29uc3QgaSA9IGNvbnRyb2wu
YXR0YWNoSW50ZXJuYWxzKCk7CisgIGFzc2VydF90cnVlKGkud2lsbFZhbGlkYXRlKTsKK30sICd3
aWxsVmFsaWRhdGUgYWZ0ZXIgdXBncmFkZSAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCknKTsKKwog
dGVzdCgoKSA9PiB7CiAgIGNvbnN0IGVsZW1lbnQgPSBuZXcgTm90Rm9ybUFzc29jaWF0ZWRFbGVt
ZW50KCk7CiAgIGFzc2VydF90aHJvd3NfZG9tKCdOb3RTdXBwb3J0ZWRFcnJvcicsICgpID0+IGVs
ZW1lbnQuaS53aWxsVmFsaWRhdGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zp
ZWxkc2V0LWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9maWVsZHNl
dC1lbGVtZW50cy1leHBlY3RlZC50eHQKaW5kZXggMGMzMzc4MjM2ZTkyLi43ZmE1MjkxYjFlNjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9maWVsZHNldC1lbGVtZW50cy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2ZpZWxkc2V0LWVsZW1lbnRzLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAogCi1GQUlMIEZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxl
bWVudHMgc2hvdWxkIHdvcmsgd2l0aCBmaWVsZHNldC5lbGVtZW50cyBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBUaGUgaXRlbXMgaW4gdGhlIGNvbGxlY3Rpb24gbXVzdCBiZSBjaGlsZHJlbiBvZiB0aGUg
aW5uZXIgZmllbGRzZXQgZWxlbWVudC4gbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFt1
bmRlZmluZWRdIGxlbmd0aCAxLCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEhUTUxDb2xsZWN0aW9uXSIg
bGVuZ3RoIDAKK1BBU1MgRm9ybSBhc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyBzaG91bGQgd29y
ayB3aXRoIGZpZWxkc2V0LmVsZW1lbnRzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRl
ZC9mb3JtLWFzc29jaWF0ZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL2Zvcm0tYXNzb2NpYXRlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKaW5kZXggYzgyZmFhM2Yz
NGMzLi44YTFkZGVkYTQwNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWFz
c29jaWF0ZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9m
b3JtLWFzc29jaWF0ZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1G
QUlMIEFzc29jaWF0ZSBieSBwYXJzZXIsIGN1c3RvbWl6ZWQgYXQgZWxlbWVudCBjcmVhdGlvbiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAzIGJ1dCBnb3QgMgotRkFJTCBQYXJzZWQsIGNvbm5lY3Rl
ZCwgdGhlbiB1cGdyYWRlZCBhc3NlcnRfZXF1YWxzOiBmb3JtLmVsZW1lbnRzLmxlbmd0aCBleHBl
Y3RlZCAzIGJ1dCBnb3QgMgotRkFJTCBEaXNhc3NvY2lhdGlvbiBhc3NlcnRfZXF1YWxzOiBmb3Jt
LmVsZW1lbnRzLmxlbmd0aCBiZWZvcmUgcmVtb3ZhbCBleHBlY3RlZCAzIGJ1dCBnb3QgMgotRkFJ
TCBVcGRhdGluZyAiZm9ybSIgY29udGVudCBhdHRyaWJ1dGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBVcGRh
dGluZyAiaWQiIGF0dHJpYnV0ZSBvZiBmb3JtIGVsZW1lbnQgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorUEFTUyBBc3Nv
Y2lhdGUgYnkgcGFyc2VyLCBjdXN0b21pemVkIGF0IGVsZW1lbnQgY3JlYXRpb24KK1BBU1MgUGFy
c2VkLCBjb25uZWN0ZWQsIHRoZW4gdXBncmFkZWQKK1BBU1MgRGlzYXNzb2NpYXRpb24KK1BBU1Mg
VXBkYXRpbmcgImZvcm0iIGNvbnRlbnQgYXR0cmlidXRlCitQQVNTIFVwZGF0aW5nICJpZCIgYXR0
cmlidXRlIG9mIGZvcm0gZWxlbWVudAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
Zm9ybS1kaXNhYmxlZC1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
Zm9ybS1kaXNhYmxlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKaW5kZXggODdkZTM2ZDZjNzNiLi41
ZGIzYmU1NTBhMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWRpc2FibGVk
LWNhbGxiYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvZm9ybS1kaXNh
YmxlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTEsMTcgKzEsMTEgQEAKLUNPTlNPTEUgTUVT
U0FHRTogVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoJ215LWNvbnRyb2wtdmFs
dWUnKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpCi1DT05T
T0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKCdteS1jb250
cm9sLXZhbHVlJyknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVk
KQotQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFs
dWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSgn
bXktY29udHJvbC12YWx1ZScpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVu
ZGVmaW5lZCkKLUNPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUoJ215LWNvbnRyb2wtdmFsdWUnKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
JyBpcyB1bmRlZmluZWQpCi1DT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogdGhpcy5pbnRlcm5h
bHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18u
c2V0Rm9ybVZhbHVlKCdteS1jb250cm9sLXZhbHVlJyknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZv
cm1WYWx1ZScgaXMgdW5kZWZpbmVkKQogCiAKIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3Nh
Z2UgPSBUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSgnbXktY29udHJvbC12YWx1
ZScpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkKIAotRkFJ
TCBBZGRpbmcvcmVtb3ZpbmcgZGlzYWJsZWQgY29udGVudCBhdHRyaWJ1dGUgdGhpcy5pbnRlcm5h
bHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18u
c2V0Rm9ybVZhbHVlKCdteS1jb250cm9sLXZhbHVlJyknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZv
cm1WYWx1ZScgaXMgdW5kZWZpbmVkKQotRkFJTCBSZWxhdGlvbnNoaXAgd2l0aCBGSUVMRFNFVCBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQWRkaW5nL3JlbW92aW5n
IGRpc2FibGVkIGNvbnRlbnQgYXR0cmlidXRlCitQQVNTIFJlbGF0aW9uc2hpcCB3aXRoIEZJRUxE
U0VUCiBQQVNTIEEgZGlzYWJsZWQgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50IHNob3Vs
ZCBub3QgcHJvdmlkZSBhbiBlbnRyeSBmb3IgaXQKLUZBSUwgQSBkaXNhYmxlZCBmb3JtLWFzc29j
aWF0ZWQgY3VzdG9tIGVsZW1lbnQgc2hvdWxkIG5vdCBzdWJtaXQgYW4gZW50cnkgZm9yIGl0IGFz
c2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQotRkFJTCBEaXNhYmxlZCBh
dHRyaWJ1dGUgYWZmZWN0cyBmb2N1cy1jYXBhYmlsaXR5IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZSgnbXktY29udHJvbC12YWx1ZScpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlz
IHVuZGVmaW5lZCkKLUZBSUwgVXBncmFkaW5nIGFuIGVsZW1lbnQgd2l0aCBkaXNhYmxlZCBjb250
ZW50IGF0dHJpYnV0ZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyB1bmRlZmluZWQsIGV4
cGVjdGVkIGFycmF5CitQQVNTIEEgZGlzYWJsZWQgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVt
ZW50IHNob3VsZCBub3Qgc3VibWl0IGFuIGVudHJ5IGZvciBpdAorUEFTUyBEaXNhYmxlZCBhdHRy
aWJ1dGUgYWZmZWN0cyBmb2N1cy1jYXBhYmlsaXR5CitQQVNTIFVwZ3JhZGluZyBhbiBlbGVtZW50
IHdpdGggZGlzYWJsZWQgY29udGVudCBhdHRyaWJ1dGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1h
c3NvY2lhdGVkL2Zvcm0tZWxlbWVudHMtbmFtZWRJdGVtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC9mb3JtLWVsZW1lbnRzLW5hbWVkSXRlbS1leHBlY3RlZC50eHQKaW5kZXggYjgz
ZDY0NzM3OWZiLi4xYTZmNGRhNzQxZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9m
b3JtLWVsZW1lbnRzLW5hbWVkSXRlbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL2Zvcm0tZWxlbWVudHMtbmFtZWRJdGVtLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAK
IAotRkFJTCBGb3JtIGFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHNob3VsZCB3b3JrIHdpdGgg
ZG9jdW1lbnQuZm9ybXMuZWxlbWVudHMubmFtZWRJdGVtKCkgYXNzZXJ0X2VxdWFsczogU2luZ2xl
IGlucHV0IHNob3VsZCBiZSByZXR1cm5lZCBhcy1pcyBleHBlY3RlZCAob2JqZWN0KSBFbGVtZW50
IG5vZGUgPGN1c3RvbS1pbnB1dCBpZD0iY3VzdG9tLTEiIG5hbWU9ImFsb25lIj48L2N1c3RvbS1p
bnB1dD4gYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgRm9ybSBhc3NvY2lhdGVk
IGN1c3RvbSBlbGVtZW50cyBzaG91bGQgd29yayB3aXRoIGRvY3VtZW50LmZvcm1zLmVsZW1lbnRz
Lm5hbWVkSXRlbSgpIGFmdGVyIHVwZ3JhZGluZyBhc3NlcnRfZXF1YWxzOiBTaW5nbGUgYnV0dG9u
IHNob3VsZCBiZSByZXR1cm5lZCBhZnRlciB1cGdyYWRpbmcgZXhwZWN0ZWQgKG9iamVjdCkgRWxl
bWVudCBub2RlIDxjdXN0b20tYnV0dG9uIGlkPSJjdXN0b20tNCIgbmFtZT0idXBncmFkZSI+PC9j
dXN0b20tYnV0dG9uPiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBGb3JtIGFz
c29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHNob3VsZCB3b3JrIHdpdGggZG9jdW1lbnQuZm9ybXMu
ZWxlbWVudHMubmFtZWRJdGVtKCkgYWZ0ZXIgdXBkYXRpbmcgdGhlIG5hbWUgYXR0cmlidXRlIGFz
c2VydF9lcXVhbHM6IFNpbmdsZSBpbnB1dCBzaG91bGQgYmUgcmV0dXJuZWQgYXMtaXMgZXhwZWN0
ZWQgKG9iamVjdCkgRWxlbWVudCBub2RlIDxjdXN0b20taW5wdXQgaWQ9ImN1c3RvbS0xIiBuYW1l
PSJhbG9uZSI+PC9jdXN0b20taW5wdXQ+IGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitQ
QVNTIEZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMgc2hvdWxkIHdvcmsgd2l0aCBkb2N1
bWVudC5mb3Jtcy5lbGVtZW50cy5uYW1lZEl0ZW0oKQorUEFTUyBGb3JtIGFzc29jaWF0ZWQgY3Vz
dG9tIGVsZW1lbnRzIHNob3VsZCB3b3JrIHdpdGggZG9jdW1lbnQuZm9ybXMuZWxlbWVudHMubmFt
ZWRJdGVtKCkgYWZ0ZXIgdXBncmFkaW5nCitQQVNTIEZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxl
bWVudHMgc2hvdWxkIHdvcmsgd2l0aCBkb2N1bWVudC5mb3Jtcy5lbGVtZW50cy5uYW1lZEl0ZW0o
KSBhZnRlciB1cGRhdGluZyB0aGUgbmFtZSBhdHRyaWJ1dGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9y
bS1hc3NvY2lhdGVkL2Zvcm0tcmVzZXQtY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1h
c3NvY2lhdGVkL2Zvcm0tcmVzZXQtY2FsbGJhY2stZXhwZWN0ZWQudHh0CmluZGV4IDBmYzU4NDgx
ZjJmZS4uMDJkM2IwZWE5ZGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvZm9ybS1y
ZXNldC1jYWxsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0t
cmVzZXQtY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogZGVmYXVsdAogCiAK
LUZBSUwgZm9ybS5yZXNldCgpIHNob3VsZCB0cmlnZ2VyIGZvcm1SZXNldENhbGxiYWNrIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBmb3JtLnJlc2V0KCk6IGZvcm1S
ZXNldENhbGxiYWNrIGlzIGNhbGxlZCBhZnRlciByZXNldCBvZiB0aGUgbGFzdCBidWlsdC1pbiBm
b3JtIGNvbnRyb2wgYW5kIGJlZm9yZSB0aGUgbmV4dCBzdGF0ZW1lbnQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBDbGlja2luZyBhIHJlc2V0IGJ1dHRvbiBpbnZv
a2VzIGZvcm1SZXNldENhbGxiYWNrIGluIGEgbWljcm90YXNrIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBmb3JtLnJlc2V0KCkgc2hvdWxkIHRyaWdnZXIgZm9ybVJl
c2V0Q2FsbGJhY2sKK1BBU1MgZm9ybS5yZXNldCgpOiBmb3JtUmVzZXRDYWxsYmFjayBpcyBjYWxs
ZWQgYWZ0ZXIgcmVzZXQgb2YgdGhlIGxhc3QgYnVpbHQtaW4gZm9ybSBjb250cm9sIGFuZCBiZWZv
cmUgdGhlIG5leHQgc3RhdGVtZW50LgorUEFTUyBDbGlja2luZyBhIHJlc2V0IGJ1dHRvbiBpbnZv
a2VzIGZvcm1SZXNldENhbGxiYWNrIGluIGEgbWljcm90YXNrCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zv
cm0tYXNzb2NpYXRlZC9sYWJlbC1kZWxlZ2F0ZXNGb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3Jt
LWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CmluZGV4IDExYjhm
ZmY3ZThlMy4uMTE0OTg2ZGRjY2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvbGFi
ZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9s
YWJlbC1kZWxlZ2F0ZXNGb2N1cy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw0IEBACiBsYWJlbAog
Ci1GQUlMIENsaWNraW5nIG9uIGEgbGFiZWwgZm9yIGEgZm9ybSBhc3NvY2lhdGVkIGN1c3RvbSBl
bGVtZW50IHdpdGggZGVsZWdhdGVzRm9jdXMgc2hvdWxkIGZvY3VzIHRoZSBjdXN0b20gZWxlbWVu
dCdzIGZvY3VzIGRlbGVnYXRlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBFbGVtZW50IG5vZGUg
PG15LWN1c3RvbS1lbGVtZW50IGlkPSJjdXN0b20iPjwvbXktY3VzdG9tLWVsZW1lbnQ+IGJ1dCBn
b3QgRWxlbWVudCBub2RlIDxib2R5Pjxmb3JtPgotICA8bGFiZWwgZm9yPSJjdXN0b20iPmxhYmVs
PC9sYWJlbD4KLSAgPG15LWN1Li4uCitQQVNTIENsaWNraW5nIG9uIGEgbGFiZWwgZm9yIGEgZm9y
bSBhc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50IHdpdGggZGVsZWdhdGVzRm9jdXMgc2hvdWxkIGZv
Y3VzIHRoZSBjdXN0b20gZWxlbWVudCdzIGZvY3VzIGRlbGVnYXRlLgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItY29uc3RydWN0b3ItZGlzYWJsZWQudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1j
b25zdHJ1Y3Rvci1kaXNhYmxlZC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmQxNGMyMzQxZWU1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9yLWRpc2FibGVk
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgImRpc2FibGVk
IiBhdHRyaWJ1dGUgc2V0IGluIGNvbnN0cnVjdG9yIGRvZXNuJ3QgYWZmZWN0IGNvbnN0cmFpbnQg
dmFsaWRhdGlvbiBpbiBwcmVjdXN0b21pemVkIHN0YXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rvci1kaXNhYmxlZC50ZW50YXRpdmUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rvci1kaXNh
YmxlZC50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmEzMjFjMmNlZTVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91
cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rvci1kaXNhYmxlZC50ZW50YXRpdmUuaHRtbApAQCAtMCww
ICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT4iZGlzYWJsZWQiIGF0dHJpYnV0ZSBzZXQgaW4gY29uc3RydWN0b3IgZG9lc24ndCBhZmZlY3Qg
Y29uc3RyYWludCB2YWxpZGF0aW9uIGluIHByZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxlPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8Zm9ybSBp
ZD0idGhlRm9ybSI+CisgICAgPHgtZm9vPjwveC1mb28+Cis8L2Zvcm0+CisKKzxzY3JpcHQ+Cit0
ZXN0KCgpID0+IHsKKyAgICBjb25zdCBjYWxsYmFja0hpc3RvcnkgPSBbXTsKKworICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgieC1mb28iLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAg
ICAgICAgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTsKKworICAgICAgICBjb25zdHJ1Y3Rv
cigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgICAgIHdpbmRvdy5lbCA9IHRo
aXM7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMo
KTsKKworICAgICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgIiIpOworCisg
ICAgICAgICAgICB3aW5kb3cud2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3RvciA9IGludGVybmFscy53
aWxsVmFsaWRhdGU7CisgICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1
Y3RvciA9IHRoaXMubWF0Y2hlcygiOmRpc2FibGVkIik7CisgICAgICAgICAgICB3aW5kb3cubWF0
Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6ZW5hYmxlZCIpOworICAg
ICAgICAgICAgd2luZG93Lm1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMo
Ijp2YWxpZCIpOworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNJbnZhbGlkSW5Db25zdHJ1Y3Rv
ciA9IHRoaXMubWF0Y2hlcygiOmludmFsaWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1B
c3NvY2lhdGVkQ2FsbGJhY2soZm9ybSkgeworICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1
c2goYGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvcm1EaXNhYmxlZENhbGxiYWNrKGlzRGlzYWJsZWQpIHsKKyAgICAgICAgICAgIGNh
bGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtRGlzYWJsZWRDYWxsYmFjazogJHtpc0Rpc2FibGVkfWAp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBhc3NlcnRfdHJ1ZSh3aWxsVmFsaWRhdGVJbkNv
bnN0cnVjdG9yKTsKKyAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1Y3Rv
cik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3Rvcik7CisgICAg
YXNzZXJ0X2ZhbHNlKG1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOworICAgIGFzc2VydF9mYWxz
ZShtYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IpOworCisgICAgYXNzZXJ0X2ZhbHNlKGludGVy
bmFscy53aWxsVmFsaWRhdGUpOworICAgIGFzc2VydF90cnVlKGVsLm1hdGNoZXMoIjpkaXNhYmxl
ZCIpKTsKKyAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygiOmVuYWJsZWQiKSk7CisgICAgYXNz
ZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjp2YWxpZCIpKTsKKyAgICBhc3NlcnRfZmFsc2UoZWwubWF0
Y2hlcygiOmludmFsaWQiKSk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxiYWNrSGlz
dG9yeSwgWyJmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiB0aGVGb3JtIiwgImZvcm1EaXNhYmxlZENh
bGxiYWNrOiB0cnVlIl0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC91cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rvci1yZWFkb25seS50ZW50YXRpdmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9y
LXJlYWRvbmx5LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi4yOGUzODA3MzA4MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3Jt
LWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItY29uc3RydWN0b3ItcmVhZG9ubHkudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyAicmVhZG9ubHkiIGF0dHJpYnV0
ZSBzZXQgaW4gY29uc3RydWN0b3IgZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0aW9u
IGluIHByZWN1c3RvbWl6ZWQgc3RhdGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRh
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2JhYTM1
ZTI3YmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9h
dHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNTYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPiJyZWFkb25s
eSIgYXR0cmlidXRlIHNldCBpbiBjb25zdHJ1Y3RvciBkb2Vzbid0IGFmZmVjdCBjb25zdHJhaW50
IHZhbGlkYXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxmb3JtIGlkPSJ0aGVGb3Jt
Ij4KKyAgICA8eC1mb28+PC94LWZvbz4KKzwvZm9ybT4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4g
eworICAgIGNvbnN0IGNhbGxiYWNrSGlzdG9yeSA9IFtdOworCisgICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICBzdGF0
aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOworCisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAg
ICAgICAgICAgc3VwZXIoKTsKKworICAgICAgICAgICAgd2luZG93LmVsID0gdGhpczsKKyAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpOworCisgICAg
ICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAiIik7CisKKyAgICAgICAgICAg
IHdpbmRvdy53aWxsVmFsaWRhdGVJbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLndpbGxWYWxpZGF0
ZTsKKyAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhp
cy5tYXRjaGVzKCI6ZGlzYWJsZWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRW5hYmxl
ZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjplbmFibGVkIik7CisgICAgICAgICAgICB3
aW5kb3cubWF0Y2hlc1ZhbGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOnZhbGlkIik7
CisgICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0ludmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5t
YXRjaGVzKCI6aW52YWxpZCIpOworICAgICAgICB9CisKKyAgICAgICAgZm9ybUFzc29jaWF0ZWRD
YWxsYmFjayhmb3JtKSB7CisgICAgICAgICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9ybUFz
c29jaWF0ZWRDYWxsYmFjazogJHtmb3JtLmlkfWApOworICAgICAgICB9CisKKyAgICAgICAgZm9y
bURpc2FibGVkQ2FsbGJhY2soaXNEaXNhYmxlZCkgeworICAgICAgICAgICAgY2FsbGJhY2tIaXN0
b3J5LnB1c2goYGZvcm1EaXNhYmxlZENhbGxiYWNrOiAke2lzRGlzYWJsZWR9YCk7CisgICAgICAg
IH0KKyAgICB9KTsKKworICAgIGFzc2VydF90cnVlKHdpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3Ip
OworICAgIGFzc2VydF9mYWxzZShtYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yKTsKKyAgICBh
c3NlcnRfZmFsc2UobWF0Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yKTsKKyAgICBhc3NlcnRfZmFs
c2UobWF0Y2hlc1ZhbGlkSW5Db25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNJ
bnZhbGlkSW5Db25zdHJ1Y3Rvcik7CisKKyAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLndpbGxW
YWxpZGF0ZSk7CisgICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjpkaXNhYmxlZCIpKTsKKyAg
ICBhc3NlcnRfdHJ1ZShlbC5tYXRjaGVzKCI6ZW5hYmxlZCIpKTsKKyAgICBhc3NlcnRfZmFsc2Uo
ZWwubWF0Y2hlcygiOnZhbGlkIikpOworICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6aW52
YWxpZCIpKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0b3J5LCBbImZv
cm1Bc3NvY2lhdGVkQ2FsbGJhY2s6IHRoZUZvcm0iXSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNlci1kaXNhYmxlZC50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRy
LXBhcnNlci1kaXNhYmxlZC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWE5NjAwYmM0MTE5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNlci1kaXNhYmxlZC50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTICJkaXNhYmxlZCIgYXR0cmli
dXRlIGRvZXNuJ3QgYWZmZWN0IGNvbnN0cmFpbnQgdmFsaWRhdGlvbiBpbiBwcmVjdXN0b21pemVk
IHN0YXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1w
YXJzZXItZGlzYWJsZWQudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFk
aW5nL2F0dHItcGFyc2VyLWRpc2FibGVkLnRlbnRhdGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTc5MmJjMjA1MGEzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNlci1kaXNhYmxlZC50ZW50YXRp
dmUuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT4iZGlzYWJsZWQiIGF0dHJpYnV0ZSBkb2Vzbid0IGFmZmVjdCBjb25z
dHJhaW50IHZhbGlkYXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxmb3JtIGlkPSJ0
aGVGb3JtIj4KKyAgICA8eC1mb28gZGlzYWJsZWQ+PC94LWZvbz4KKzwvZm9ybT4KKworPHNjcmlw
dD4KK3Rlc3QoKCkgPT4geworICAgIGNvbnN0IGNhbGxiYWNrSGlzdG9yeSA9IFtdOworCisgICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQg
eworICAgICAgICBzdGF0aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOworCisgICAgICAgIGNvbnN0
cnVjdG9yKCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKworICAgICAgICAgICAgd2luZG93LmVs
ID0gdGhpczsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVy
bmFscygpOworCisgICAgICAgICAgICB3aW5kb3cud2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3RvciA9
IGludGVybmFscy53aWxsVmFsaWRhdGU7CisgICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0Rpc2Fi
bGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmRpc2FibGVkIik7CisgICAgICAgICAg
ICB3aW5kb3cubWF0Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6ZW5h
YmxlZCIpOworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IgPSB0
aGlzLm1hdGNoZXMoIjp2YWxpZCIpOworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNJbnZhbGlk
SW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmludmFsaWQiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2soZm9ybSkgeworICAgICAgICAgICAgY2FsbGJh
Y2tIaXN0b3J5LnB1c2goYGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvcm1EaXNhYmxlZENhbGxiYWNrKGlzRGlzYWJsZWQpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtRGlzYWJsZWRDYWxsYmFjazogJHtp
c0Rpc2FibGVkfWApOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBhc3NlcnRfdHJ1ZSh3aWxs
VmFsaWRhdGVJbkNvbnN0cnVjdG9yKTsKKyAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVk
SW5Db25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1
Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOworICAg
IGFzc2VydF9mYWxzZShtYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IpOworCisgICAgYXNzZXJ0
X2ZhbHNlKGludGVybmFscy53aWxsVmFsaWRhdGUpOworICAgIGFzc2VydF90cnVlKGVsLm1hdGNo
ZXMoIjpkaXNhYmxlZCIpKTsKKyAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygiOmVuYWJsZWQi
KSk7CisgICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjp2YWxpZCIpKTsKKyAgICBhc3NlcnRf
ZmFsc2UoZWwubWF0Y2hlcygiOmludmFsaWQiKSk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiB0aGVGb3JtIiwgImZv
cm1EaXNhYmxlZENhbGxiYWNrOiB0cnVlIl0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItcmVhZG9ubHkudGVudGF0
aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJz
ZXItcmVhZG9ubHkudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjAxZjYwZDc3OGI2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zv
cm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItcmVhZG9ubHkudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyAicmVhZG9ubHkiIGF0dHJpYnV0ZSBk
b2Vzbid0IGFmZmVjdCBjb25zdHJhaW50IHZhbGlkYXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItcGFyc2Vy
LXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9h
dHRyLXBhcnNlci1yZWFkb25seS50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjRkMTVlODM1MDI3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zv
cm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItcmVhZG9ubHkudGVudGF0aXZlLmh0
bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+InJlYWRvbmx5IiBhdHRyaWJ1dGUgZG9lc24ndCBhZmZlY3QgY29uc3RyYWlu
dCB2YWxpZGF0aW9uIGluIHByZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8Zm9ybSBpZD0idGhlRm9y
bSI+CisgICAgPHgtZm9vIHJlYWRvbmx5PjwveC1mb28+Cis8L2Zvcm0+CisKKzxzY3JpcHQ+Cit0
ZXN0KCgpID0+IHsKKyAgICBjb25zdCBjYWxsYmFja0hpc3RvcnkgPSBbXTsKKworICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgieC1mb28iLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAg
ICAgICAgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTsKKworICAgICAgICBjb25zdHJ1Y3Rv
cigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgICAgIHdpbmRvdy5lbCA9IHRo
aXM7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMo
KTsKKworICAgICAgICAgICAgd2luZG93LndpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3IgPSBpbnRl
cm5hbHMud2lsbFZhbGlkYXRlOworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNEaXNhYmxlZElu
Q29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjpkaXNhYmxlZCIpOworICAgICAgICAgICAgd2lu
ZG93Lm1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmVuYWJsZWQi
KTsKKyAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzVmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5t
YXRjaGVzKCI6dmFsaWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzSW52YWxpZEluQ29u
c3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjppbnZhbGlkIik7CisgICAgICAgIH0KKworICAgICAg
ICBmb3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrSGlz
dG9yeS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiAke2Zvcm0uaWR9YCk7CisgICAgICAg
IH0KKworICAgICAgICBmb3JtRGlzYWJsZWRDYWxsYmFjayhpc0Rpc2FibGVkKSB7CisgICAgICAg
ICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9ybURpc2FibGVkQ2FsbGJhY2s6ICR7aXNEaXNh
YmxlZH1gKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgYXNzZXJ0X3RydWUod2lsbFZhbGlk
YXRlSW5Db25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNEaXNhYmxlZEluQ29u
c3RydWN0b3IpOworICAgIGFzc2VydF9mYWxzZShtYXRjaGVzRW5hYmxlZEluQ29uc3RydWN0b3Ip
OworICAgIGFzc2VydF9mYWxzZShtYXRjaGVzVmFsaWRJbkNvbnN0cnVjdG9yKTsKKyAgICBhc3Nl
cnRfZmFsc2UobWF0Y2hlc0ludmFsaWRJbkNvbnN0cnVjdG9yKTsKKworICAgIGFzc2VydF9mYWxz
ZShpbnRlcm5hbHMud2lsbFZhbGlkYXRlKTsKKyAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygi
OmRpc2FibGVkIikpOworICAgIGFzc2VydF90cnVlKGVsLm1hdGNoZXMoIjplbmFibGVkIikpOwor
ICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6dmFsaWQiKSk7CisgICAgYXNzZXJ0X2ZhbHNl
KGVsLm1hdGNoZXMoIjppbnZhbGlkIikpOworCisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxs
YmFja0hpc3RvcnksIFsiZm9ybUFzc29jaWF0ZWRDYWxsYmFjazogdGhlRm9ybSJdKTsKK30pOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0
cnVjdG9yLWZvcm0tZmllbGRzZXQtZWxlbWVudHMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9ybS1maWVsZHNldC1lbGVt
ZW50cy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uMTUwZjE4NTUwYTIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3Nv
Y2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLWZpZWxkc2V0LWVsZW1lbnRzLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBGb3JtLWFzc29jaWF0
ZWQgY3VzdG9tIGVsZW1lbnRzIGRvbid0IGdldCBlbnVtZXJhdGVkIGluIGZvcm0gLyBmaWVsZHNl
dCBjb2xsZWN0aW9ucyBpbiBwcmVjdXN0b21pemVkIHN0YXRlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zv
cm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9ybS1maWVsZHNldC1lbGVtZW50
cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0
b3ItZm9ybS1maWVsZHNldC1lbGVtZW50cy50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJjNWZjOTI2MTQ1ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9ybS1maWVsZHNldC1l
bGVtZW50cy50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5Gb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVs
ZW1lbnRzIGRvbid0IGdldCBlbnVtZXJhdGVkIGluIGZvcm0gLyBmaWVsZHNldCBjb2xsZWN0aW9u
cyBpbiBwcmVjdXN0b21pemVkIHN0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKworPGZvcm0gaWQ9InRoZUZvcm0iPgorICAgIDxm
aWVsZHNldCBpZD0idGhlRmllbGRzZXQiPgorICAgICAgICA8eC1mb28+PC94LWZvbz4KKyAgICA8
L2ZpZWxkc2V0PgorPC9mb3JtPgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgICAgY29uc3Qg
Y2FsbGJhY2tIaXN0b3J5ID0gW107CisKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtZm9v
IiwgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgICAgIHN0YXRpYyBmb3JtQXNzb2Np
YXRlZCA9IHRydWU7CisKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBl
cigpOworCisgICAgICAgICAgICB3aW5kb3cuZm9ybUVsZW1lbnRzTGVuZ3RoSW5Db25zdHJ1Y3Rv
ciA9IHRoZUZvcm0uZWxlbWVudHMubGVuZ3RoOworICAgICAgICAgICAgd2luZG93LmZvcm1MZW5n
dGhJbkNvbnN0cnVjdG9yID0gdGhlRm9ybS5sZW5ndGg7CisgICAgICAgICAgICB3aW5kb3cuZmll
bGRzZXRFbGVtZW50c0xlbmd0aEluQ29uc3RydWN0b3IgPSB0aGVGaWVsZHNldC5lbGVtZW50cy5s
ZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBmb3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0p
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxi
YWNrOiAke2Zvcm0uaWR9YCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGFzc2VydF9lcXVh
bHMoZm9ybUVsZW1lbnRzTGVuZ3RoSW5Db25zdHJ1Y3RvciwgMSk7CisgICAgYXNzZXJ0X2VxdWFs
cyhmb3JtTGVuZ3RoSW5Db25zdHJ1Y3RvciwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhmaWVsZHNl
dEVsZW1lbnRzTGVuZ3RoSW5Db25zdHJ1Y3RvciwgMCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHRo
ZUZvcm0uZWxlbWVudHMubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRoZUZvcm0ubGVu
Z3RoLCAyKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRoZUZpZWxkc2V0LmVsZW1lbnRzLmxlbmd0aCwg
MSk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNz
b2NpYXRlZENhbGxiYWNrOiB0aGVGb3JtIl0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9ybS50ZW50YXRpdmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1m
b3JtLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5jNWVhZjYyMGFiZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29j
aWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLWZvcm0udGVudGF0aXZlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBDdXN0b20gZWxlbWVudHMgZG9uJ3QgZ2V0IGFzc29jaWF0
ZWQgd2l0aCBhIGZvcm0gaW4gcHJlY3VzdG9taXplZCBzdGF0ZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLWZvcm0udGVudGF0aXZlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLWZvcm0udGVudGF0aXZl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jYzczZWVmM2Mw
MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0
cnVjdG9yLWZvcm0udGVudGF0aXZlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Q3VzdG9tIGVsZW1lbnRzIGRvbid0
IGdldCBhc3NvY2lhdGVkIHdpdGggYSBmb3JtIGluIHByZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8
Zm9ybSBpZD0idGhlRm9ybSI+CisgICAgPHgtZm9vPjwveC1mb28+Cis8L2Zvcm0+CisKKzxzY3Jp
cHQ+Cit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBjYWxsYmFja0hpc3RvcnkgPSBbXTsKKworICAg
IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC1mb28iLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50
IHsKKyAgICAgICAgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTsKKworICAgICAgICBjb25z
dHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpOworICAgICAgICAgICAgd2luZG93LmZv
cm1JbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLmZvcm07CisgICAgICAgIH0KKworICAgICAgICBm
b3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0pIHsKKyAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9y
eS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiAke2Zvcm0uaWR9YCk7CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIGFzc2VydF9lcXVhbHMoZm9ybUluQ29uc3RydWN0b3IsIG51bGwpOwor
ICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLmZvcm0sIHRoZUZvcm0pOworICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0b3J5LCBbImZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s6IHRo
ZUZvcm0iXSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1tb3ZlLWluc2lkZS1mb3JtLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5z
aWRlLWZvcm0udGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmYyNjNlMGQzOWQxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItbW92ZS1pbnNpZGUtZm9ybS50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEN1c3RvbSBlbGVtZW50cyBk
b24ndCBnZXQgYXNzb2NpYXRlZCB3aXRoIGEgZm9ybSBpbiBwcmVjdXN0b21pemVkIHN0YXRlIChp
bnNlcnRlZCBpbnRvIGl0IGluIGNvbnN0cnVjdG9yKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFz
c29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5zaWRlLWZvcm0udGVudGF0aXZl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5z
aWRlLWZvcm0udGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4zYzNhZGJkMGQyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0
ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5zaWRlLWZvcm0udGVudGF0aXZlLmh0bWwK
QEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+Q3VzdG9tIGVsZW1lbnRzIGRvbid0IGdldCBhc3NvY2lhdGVkIHdpdGggYSBmb3Jt
IGluIHByZWN1c3RvbWl6ZWQgc3RhdGUgKGluc2VydGVkIGludG8gaXQgaW4gY29uc3RydWN0b3Ip
PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKworPGZvcm0gaWQ9InRoZUZvcm0iPjwvZm9ybT4KKzx4LWZvbz48L3gtZm9vPgorCis8c2Ny
aXB0PgordGVzdCgoKSA9PiB7CisgICAgY29uc3QgY2FsbGJhY2tIaXN0b3J5ID0gW107CisKKyAg
ICBjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtZm9vIiwgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVu
dCB7CisgICAgICAgIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7CisKKyAgICAgICAgY29u
c3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBlcigpOworCisgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMoKTsKKworICAgICAgICAgICAgdGhlRm9y
bS5hcHBlbmQodGhpcyk7CisKKyAgICAgICAgICAgIHdpbmRvdy5mb3JtSW5Db25zdHJ1Y3RvciA9
IGludGVybmFscy5mb3JtOworCisgICAgICAgICAgICB0aGVGb3JtLnJlc2V0KCk7CisgICAgICAg
IH0KKworICAgICAgICBmb3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0pIHsKKyAgICAgICAgICAg
IGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiAke2Zvcm0uaWR9
YCk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtUmVzZXRDYWxsYmFjaygpIHsKKyAgICAgICAg
ICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKCJmb3JtUmVzZXRDYWxsYmFjayIpOworICAgICAgICB9
CisgICAgfSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGZvcm1JbkNvbnN0cnVjdG9yLCBudWxsKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy5mb3JtLCB0aGVGb3JtKTsKKyAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiB0
aGVGb3JtIl0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRl
ZC91cGdyYWRpbmcvY29uc3RydWN0b3Itc2V0LWZvcm0tYXR0ci50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1zZXQtZm9ybS1h
dHRyLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi4zZGVjZmU4N2VkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29j
aWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDdXN0b20gZWxlbWVudHMgZG9uJ3QgZ2V0
IGFzc29jaWF0ZWQgd2l0aCBhIGZvcm0gaW4gcHJlY3VzdG9taXplZCBzdGF0ZSAoYXNzb2NpYXRl
ZCB2aWEgYXR0cmlidXRlIGluIGNvbnN0cnVjdG9yKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFz
c29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0
dHIudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li4wMTc3OGU1NzkyOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBn
cmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLmh0bWwKQEAgLTAsMCAr
MSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
Q3VzdG9tIGVsZW1lbnRzIGRvbid0IGdldCBhc3NvY2lhdGVkIHdpdGggYSBmb3JtIGluIHByZWN1
c3RvbWl6ZWQgc3RhdGUgKGFzc29jaWF0ZWQgdmlhIGF0dHJpYnV0ZSBpbiBjb25zdHJ1Y3Rvcik8
L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorCis8Zm9ybSBpZD0idGhlRm9ybSI+PC9mb3JtPgorPHgtZm9vPjwveC1mb28+CisKKzxzY3Jp
cHQ+Cit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBjYWxsYmFja0hpc3RvcnkgPSBbXTsKKworICAg
IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC1mb28iLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50
IHsKKyAgICAgICAgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTsKKworICAgICAgICBjb25z
dHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpOworCisgICAgICAgICAgICB0aGlzLnNl
dEF0dHJpYnV0ZSgiZm9ybSIsICJ0aGVGb3JtIik7CisKKyAgICAgICAgICAgIHdpbmRvdy5mb3Jt
SW5Db25zdHJ1Y3RvciA9IGludGVybmFscy5mb3JtOworCisgICAgICAgICAgICB0aGVGb3JtLnJl
c2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0p
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxi
YWNrOiAke2Zvcm0uaWR9YCk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtUmVzZXRDYWxsYmFj
aygpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKCJmb3JtUmVzZXRDYWxsYmFj
ayIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGZvcm1JbkNvbnN0
cnVjdG9yLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy5mb3JtLCB0aGVGb3Jt
KTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNzb2Np
YXRlZENhbGxiYWNrOiB0aGVGb3JtIl0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3Itc2V0VmFsaWRpdHkudGVudGF0
aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0
b3Itc2V0VmFsaWRpdHkudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLmIwZjg0Y2NjYWFmYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3Itc2V0VmFsaWRpdHkudGVudGF0
aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBzZXRWYWxpZGl0eSgpIHdv
cmtzIGFzIGV4cGVjdGVkIGluIHByZWN1c3RvbWl6ZWQgc3RhdGUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1zZXRWYWxpZGl0eS50ZW50YXRp
dmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3Itc2V0VmFs
aWRpdHkudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi4wODlhYjk5ZmY3ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
dXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldFZhbGlkaXR5LnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAg
KzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PnNldFZhbGlkaXR5KCkgd29ya3MgYXMgZXhwZWN0ZWQgaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzx4LWZvbz48L3gtZm9vPgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgICAgY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAg
ICAgICBzdGF0aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOworCisgICAgICAgIGNvbnN0cnVjdG9y
KCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKworICAgICAgICAgICAgd2luZG93LmVsID0gdGhp
czsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygp
OworCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0VmFsaWRpdHkoe2N1c3RvbUVycm9yOiB0cnVl
fSwgImZvbyIpOworCisgICAgICAgICAgICB3aW5kb3cudmFsaWRJbkNvbnN0cnVjdG9yID0gaW50
ZXJuYWxzLnZhbGlkaXR5LnZhbGlkOworICAgICAgICAgICAgd2luZG93LnZhbGlkYXRpb25NZXNz
YWdlSW5Db25zdHJ1Y3RvciA9IGludGVybmFscy52YWxpZGF0aW9uTWVzc2FnZTsKKworICAgICAg
ICAgICAgd2luZG93LndpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3IgPSBpbnRlcm5hbHMud2lsbFZh
bGlkYXRlOworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNEaXNhYmxlZEluQ29uc3RydWN0b3Ig
PSB0aGlzLm1hdGNoZXMoIjpkaXNhYmxlZCIpOworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNF
bmFibGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmVuYWJsZWQiKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5tYXRjaGVzVmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6dmFs
aWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IgPSB0
aGlzLm1hdGNoZXMoIjppbnZhbGlkIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGFzc2Vy
dF9mYWxzZSh2YWxpZEluQ29uc3RydWN0b3IpOworICAgIGFzc2VydF9lcXVhbHModmFsaWRhdGlv
bk1lc3NhZ2VJbkNvbnN0cnVjdG9yLCAiZm9vIik7CisKKyAgICBhc3NlcnRfdHJ1ZSh3aWxsVmFs
aWRhdGVJbkNvbnN0cnVjdG9yKTsKKyAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVkSW5D
b25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3Rv
cik7CisgICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOworICAgIGFz
c2VydF9mYWxzZShtYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IpOworCisgICAgYXNzZXJ0X2Zh
bHNlKGludGVybmFscy52YWxpZGl0eS52YWxpZCk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5h
bHMudmFsaWRhdGlvbk1lc3NhZ2UsICJmb28iKTsKKworICAgIGFzc2VydF90cnVlKGludGVybmFs
cy53aWxsVmFsaWRhdGUpOworICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6ZGlzYWJsZWQi
KSk7CisgICAgYXNzZXJ0X3RydWUoZWwubWF0Y2hlcygiOmVuYWJsZWQiKSk7CisgICAgYXNzZXJ0
X2ZhbHNlKGVsLm1hdGNoZXMoIjp2YWxpZCIpKTsKKyAgICBhc3NlcnRfdHJ1ZShlbC5tYXRjaGVz
KCI6aW52YWxpZCIpKTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29j
aWF0ZWQvdXBncmFkaW5nL2luc2lkZS1kYXRhbGlzdC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI1NzUw
NzQ3MWUwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcv
aW5zaWRlLWRhdGFsaXN0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgZGF0YWxpc3QgYW5jZXN0b3IgZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0
aW9uIGluIHByZWN1c3RvbWl6ZWQgc3RhdGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFz
c29jaWF0ZWQvdXBncmFkaW5nL2luc2lkZS1kYXRhbGlzdC50ZW50YXRpdmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI2MWRjMmQ4Y2I4NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0LnRl
bnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPmRhdGFsaXN0IGFuY2VzdG9yIGRvZXNuJ3QgYWZmZWN0IGNv
bnN0cmFpbnQgdmFsaWRhdGlvbiBpbiBwcmVjdXN0b21pemVkIHN0YXRlPC90aXRsZT4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKworPGZvcm0gaWQ9
InRoZUZvcm0iPgorICAgIDxkYXRhbGlzdD4KKyAgICAgICAgPHgtZm9vPjwveC1mb28+CisgICAg
PC9kYXRhbGlzdD4KKzwvZm9ybT4KKworPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICAgIGNvbnN0
IGNhbGxiYWNrSGlzdG9yeSA9IFtdOworCisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ4LWZv
byIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAgICAgICBzdGF0aWMgZm9ybUFzc29j
aWF0ZWQgPSB0cnVlOworCisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgc3Vw
ZXIoKTsKKworICAgICAgICAgICAgd2luZG93LmVsID0gdGhpczsKKyAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpOworCisgICAgICAgICAgICB3aW5k
b3cud2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3RvciA9IGludGVybmFscy53aWxsVmFsaWRhdGU7Cisg
ICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0
Y2hlcygiOmRpc2FibGVkIik7CisgICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0VuYWJsZWRJbkNv
bnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6ZW5hYmxlZCIpOworICAgICAgICAgICAgd2luZG93
Lm1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjp2YWxpZCIpOworICAg
ICAgICAgICAgd2luZG93Lm1hdGNoZXNJbnZhbGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hl
cygiOmludmFsaWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1Bc3NvY2lhdGVkQ2FsbGJh
Y2soZm9ybSkgeworICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1c2goYGZvcm1Bc3NvY2lh
dGVkQ2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1EaXNh
YmxlZENhbGxiYWNrKGlzRGlzYWJsZWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5w
dXNoKGBmb3JtRGlzYWJsZWRDYWxsYmFjazogJHtpc0Rpc2FibGVkfWApOworICAgICAgICB9Cisg
ICAgfSk7CisKKyAgICBhc3NlcnRfdHJ1ZSh3aWxsVmFsaWRhdGVJbkNvbnN0cnVjdG9yKTsKKyAg
ICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0
X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1h
dGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOworICAgIGFzc2VydF9mYWxzZShtYXRjaGVzSW52YWxp
ZEluQ29uc3RydWN0b3IpOworCisgICAgYXNzZXJ0X2ZhbHNlKGludGVybmFscy53aWxsVmFsaWRh
dGUpOworICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6ZGlzYWJsZWQiKSk7CisgICAgYXNz
ZXJ0X3RydWUoZWwubWF0Y2hlcygiOmVuYWJsZWQiKSk7CisgICAgYXNzZXJ0X2ZhbHNlKGVsLm1h
dGNoZXMoIjp2YWxpZCIpKTsKKyAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygiOmludmFsaWQi
KSk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNz
b2NpYXRlZENhbGxiYWNrOiB0aGVGb3JtIl0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRpc2FibGVkLWZpZWxkc2V0LnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2luc2lk
ZS1kaXNhYmxlZC1maWVsZHNldC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzdlYTJjNmU3ZWM4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGlzYWJsZWQtZmllbGRzZXQu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIERpc2FibGVk
IGZpZWxkc2V0IGFuY2VzdG9yIGRvZXNuJ3QgYWZmZWN0IGNvbnN0cmFpbnQgdmFsaWRhdGlvbiBp
biBwcmVjdXN0b21pemVkIHN0YXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91
cGdyYWRpbmcvaW5zaWRlLWRpc2FibGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9y
bS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGlzYWJsZWQtZmllbGRzZXQudGVudGF0aXZl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41OGE4MjE2OWY4
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2luc2lk
ZS1kaXNhYmxlZC1maWVsZHNldC50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5EaXNhYmxlZCBmaWVs
ZHNldCBhbmNlc3RvciBkb2Vzbid0IGFmZmVjdCBjb25zdHJhaW50IHZhbGlkYXRpb24gaW4gcHJl
Y3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxmb3JtIGlkPSJ0aGVGb3JtIj4KKyAgICA8ZmllbGRzZXQg
ZGlzYWJsZWQ+CisgICAgICAgIDx4LWZvbz48L3gtZm9vPgorICAgIDwvZmllbGRzZXQ+Cis8L2Zv
cm0+CisKKzxzY3JpcHQ+Cit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBjYWxsYmFja0hpc3Rvcnkg
PSBbXTsKKworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC1mb28iLCBjbGFzcyBleHRlbmRz
IEhUTUxFbGVtZW50IHsKKyAgICAgICAgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTsKKwor
ICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAg
ICAgIHdpbmRvdy5lbCA9IHRoaXM7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzID0gdGhp
cy5hdHRhY2hJbnRlcm5hbHMoKTsKKworICAgICAgICAgICAgd2luZG93LndpbGxWYWxpZGF0ZUlu
Q29uc3RydWN0b3IgPSBpbnRlcm5hbHMud2lsbFZhbGlkYXRlOworICAgICAgICAgICAgd2luZG93
Lm1hdGNoZXNEaXNhYmxlZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjpkaXNhYmxlZCIp
OworICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMu
bWF0Y2hlcygiOmVuYWJsZWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzVmFsaWRJbkNv
bnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6dmFsaWQiKTsKKyAgICAgICAgICAgIHdpbmRvdy5t
YXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjppbnZhbGlkIik7Cisg
ICAgICAgIH0KKworICAgICAgICBmb3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0pIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiAke2Zv
cm0uaWR9YCk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtRGlzYWJsZWRDYWxsYmFjayhpc0Rp
c2FibGVkKSB7CisgICAgICAgICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9ybURpc2FibGVk
Q2FsbGJhY2s6ICR7aXNEaXNhYmxlZH1gKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgYXNz
ZXJ0X3RydWUod2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3Rvcik7CisgICAgYXNzZXJ0X2ZhbHNlKG1h
dGNoZXNEaXNhYmxlZEluQ29uc3RydWN0b3IpOworICAgIGFzc2VydF9mYWxzZShtYXRjaGVzRW5h
YmxlZEluQ29uc3RydWN0b3IpOworICAgIGFzc2VydF9mYWxzZShtYXRjaGVzVmFsaWRJbkNvbnN0
cnVjdG9yKTsKKyAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0ludmFsaWRJbkNvbnN0cnVjdG9yKTsK
KworICAgIGFzc2VydF9mYWxzZShpbnRlcm5hbHMud2lsbFZhbGlkYXRlKTsKKyAgICBhc3NlcnRf
dHJ1ZShlbC5tYXRjaGVzKCI6ZGlzYWJsZWQiKSk7CisgICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNo
ZXMoIjplbmFibGVkIikpOworICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6dmFsaWQiKSk7
CisgICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjppbnZhbGlkIikpOworCisgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhjYWxsYmFja0hpc3RvcnksIFsiZm9ybUFzc29jaWF0ZWRDYWxsYmFjazog
dGhlRm9ybSIsICJmb3JtRGlzYWJsZWRDYWxsYmFjazogdHJ1ZSJdKTsKK30pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2luc2lkZS1sYWJlbC50
ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNp
ZGUtbGFiZWwudGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjUxOWJhNmE2ZmE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgRm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyBh
cmVuJ3QgY29uc2lkZXJlZCBsYWJlbHMnIGNvbnRyb2xzIGluIHByZWN1c3RvbWl6ZWQgc3RhdGUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtbGFiZWwu
dGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2luc2lkZS1sYWJl
bC50ZW50YXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LmY5YTYwNmM2NDFkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdy
YWRpbmcvaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkZvcm0tYXNzb2NpYXRl
ZCBjdXN0b20gZWxlbWVudHMgYXJlbid0IGNvbnNpZGVyZWQgbGFiZWxzJyBjb250cm9scyBpbiBw
cmVjdXN0b21pemVkIHN0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKworPGxhYmVsIGlkPSJ0aGVMYWJlbCI+CisgICAgPHgtZm9v
PjwveC1mb28+Cis8L2xhYmVsPgorCis8c2NyaXB0PgordGVzdCgoKSA9PiB7CisgICAgY29uc3Qg
Y2FsbGJhY2tIaXN0b3J5ID0gW107CisKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtZm9v
IiwgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgICAgIHN0YXRpYyBmb3JtQXNzb2Np
YXRlZCA9IHRydWU7CisKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBl
cigpOworCisgICAgICAgICAgICB3aW5kb3cuZWwgPSB0aGlzOworICAgICAgICAgICAgd2luZG93
LmludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7CisKKyAgICAgICAgICAgIHdpbmRv
dy5jb250cm9sSW5Db25zdHJ1Y3RvciA9IHRoZUxhYmVsLmNvbnRyb2w7CisgICAgICAgICAgICB3
aW5kb3cubGFiZWxzSW5Db25zdHJ1Y3RvciA9IGludGVybmFscy5sYWJlbHM7CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIGFzc2VydF9lcXVhbHMoY29udHJvbEluQ29uc3RydWN0b3IsIG51bGwp
OworICAgIGFzc2VydF9lcXVhbHMobGFiZWxzSW5Db25zdHJ1Y3RvciwgbnVsbCk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKHRoZUxhYmVsLmNvbnRyb2wsIGVsKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGludGVybmFscy5sYWJlbHMsIFt0aGVMYWJlbF0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGFmNmVjNjViMTgwZi4uMmU1MDM5ODAzM2JlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQz
NTEsMTUgKzQzNTEsMTUgQEAgUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUKIFBBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKIFBBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzaGFkb3dSb290Ci1GQUlMIEVsZW1lbnRJbnRl
cm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmlu
ZyBvciBGb3JtRGF0YSk/LCBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEp
PykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2lu
ZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2V0Rm9ybVZhbHVlIiBt
aXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZm9ybSBh
c3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImZv
cm0iIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZsYWdzLCBv
cHRpb25hbCBET01TdHJpbmcsIG9wdGlvbmFsIEhUTUxFbGVtZW50KSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0
aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRWYWxpZGl0eSIgbWlzc2luZwotRkFJTCBFbGVtZW50
SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHdpbGxWYWxpZGF0ZSBhc3NlcnRfdHJ1ZTog
VGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIndpbGxWYWxpZGF0ZSIg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSB2YWxpZGl0eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgInZhbGlkaXR5IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkYXRpb25NZXNzYWdl
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
dmFsaWRhdGlvbk1lc3NhZ2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEVsZW1lbnRJ
bnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2hlY2tWYWxpZGl0eSgpIGFzc2VydF9vd25f
cHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBv
cGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImNoZWNrVmFsaWRpdHkiIG1pc3NpbmcKLUZBSUwg
RWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0eSgpIGFz
c2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9u
LXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInJlcG9ydFZhbGlkaXR5IiBtaXNz
aW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzIGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAibGFi
ZWxzIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogb3BlcmF0aW9uIHNldEZvcm1WYWx1ZSgoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURh
dGEpPywgb3B0aW9uYWwgKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8pCitQQVNTIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZm9ybQorUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldFZhbGlkaXR5KG9wdGlvbmFsIFZhbGlkaXR5
U3RhdGVGbGFncywgb3B0aW9uYWwgRE9NU3RyaW5nLCBvcHRpb25hbCBIVE1MRWxlbWVudCkKK1BB
U1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3aWxsVmFsaWRhdGUKK1BB
U1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGl0eQorUEFTUyBF
bGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkYXRpb25NZXNzYWdlCitQ
QVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2hlY2tWYWxpZGl0eSgp
CitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVwb3J0VmFsaWRp
dHkoKQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIGxhYmVscwog
UEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGgKIFBBU1MgRGF0YVRyYW5zZmVyIGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFw
aXMvc2NyaXB0aW5nL2V2ZW50cy9jb21waWxlLWV2ZW50LWhhbmRsZXItbGV4aWNhbC1zY29wZXMt
Zm9ybS1vd25lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzL2NvbXBpbGUtZXZl
bnQtaGFuZGxlci1sZXhpY2FsLXNjb3Blcy1mb3JtLW93bmVyLWV4cGVjdGVkLnR4dAppbmRleCBj
OTMxNjFkMjg4MDIuLjQ2NmMzYTI3MWY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50
cy9jb21waWxlLWV2ZW50LWhhbmRsZXItbGV4aWNhbC1zY29wZXMtZm9ybS1vd25lci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9jb21waWxlLWV2ZW50LWhhbmRsZXItbGV4
aWNhbC1zY29wZXMtZm9ybS1vd25lci1leHBlY3RlZC50eHQKQEAgLTUsNSArNSw1IEBAIHgtZm9v
CiBQQVNTIDxpbnB1dD4gaGFzIGEgZm9ybSBvd25lcgogUEFTUyA8aW1nPiBoYXMgYSBmb3JtIG93
bmVyCiBQQVNTIDxkaXY+IGRvZXNuJ3QgaGF2ZSBhIGZvcm0gb3duZXIKLUZBSUwgZm9ybS1hc3Nv
Y2lhdGVkIDx4LWZvbz4gaGFzIGEgZm9ybSBvd25lciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25dIiBidXQg
Z290IChzdHJpbmcpICJnbG9iYWxfZWxlbWVudHMiCitQQVNTIGZvcm0tYXNzb2NpYXRlZCA8eC1m
b28+IGhhcyBhIGZvcm0gb3duZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCAxNThkNGM3OWI2MjIuLjcyNjIzODk0MmUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTQzNTEsMTUgKzQzNTEsMTUgQEAgUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIg
cHJvcGVydHkKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzaGFk
b3dSb290Ci1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0Rm9y
bVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/LCBvcHRpb25hbCAoRmlsZSBv
ciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBw
cm9wZXJ0eSAic2V0Rm9ybVZhbHVlIiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgZm9ybSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgImZvcm0iIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0VmFsaWRpdHkob3B0aW9u
YWwgVmFsaWRpdHlTdGF0ZUZsYWdzLCBvcHRpb25hbCBET01TdHJpbmcsIG9wdGlvbmFsIEhUTUxF
bGVtZW50KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
aXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRWYWxpZGl0
eSIgbWlzc2luZwotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHdp
bGxWYWxpZGF0ZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgIndpbGxWYWxpZGF0ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxl
bWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGl0eSBhc3NlcnRfdHJ1ZTog
VGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInZhbGlkaXR5IiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0
cmlidXRlIHZhbGlkYXRpb25NZXNzYWdlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVj
dCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidmFsaWRhdGlvbk1lc3NhZ2UiIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2hl
Y2tWYWxpZGl0eSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImNoZWNr
VmFsaWRpdHkiIG1pc3NpbmcKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJh
dGlvbiByZXBvcnRWYWxpZGl0eSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVy
dHkgInJlcG9ydFZhbGlkaXR5IiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgbGFiZWxzIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBt
dXN0IGhhdmUgYSBwcm9wZXJ0eSAibGFiZWxzIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldEZvcm1WYWx1ZSgoRmls
ZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPywgb3B0aW9uYWwgKEZpbGUgb3IgVVNWU3RyaW5n
IG9yIEZvcm1EYXRhKT8pCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgZm9ybQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldFZh
bGlkaXR5KG9wdGlvbmFsIFZhbGlkaXR5U3RhdGVGbGFncywgb3B0aW9uYWwgRE9NU3RyaW5nLCBv
cHRpb25hbCBIVE1MRWxlbWVudCkKK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSB3aWxsVmFsaWRhdGUKK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSB2YWxpZGl0eQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmli
dXRlIHZhbGlkYXRpb25NZXNzYWdlCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBv
cGVyYXRpb24gY2hlY2tWYWxpZGl0eSgpCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNl
OiBvcGVyYXRpb24gcmVwb3J0VmFsaWRpdHkoKQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIGxhYmVscwogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBEYXRhVHJhbnNm
ZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgRGF0YVRyYW5zZmVyIGludGVyZmFjZSBv
YmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0
ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9mb3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTFiOGZmZjdlOGUzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVs
ZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGFiZWwKKworRkFJTCBD
bGlja2luZyBvbiBhIGxhYmVsIGZvciBhIGZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudCB3
aXRoIGRlbGVnYXRlc0ZvY3VzIHNob3VsZCBmb2N1cyB0aGUgY3VzdG9tIGVsZW1lbnQncyBmb2N1
cyBkZWxlZ2F0ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxteS1jdXN0
b20tZWxlbWVudCBpZD0iY3VzdG9tIj48L215LWN1c3RvbS1lbGVtZW50PiBidXQgZ290IEVsZW1l
bnQgbm9kZSA8Ym9keT48Zm9ybT4KKyAgPGxhYmVsIGZvcj0iY3VzdG9tIj5sYWJlbDwvbGFiZWw+
CisgIDxteS1jdS4uLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggMTI1N2E4Mjg5ZWQ2Li5mMGJiZDc5NDFlZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRs
aGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQzNDEsMTUgKzQzNDEsMTUgQEAgUEFTUyBF
bGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBzaGFkb3dSb290Ci1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/LCBvcHRpb25h
bCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPykgYXNzZXJ0X293bl9wcm9wZXJ0eTog
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBl
eHBlY3RlZCBwcm9wZXJ0eSAic2V0Rm9ybVZhbHVlIiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRl
cm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZm9ybSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlw
ZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImZvcm0iIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0VmFsaWRp
dHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZsYWdzLCBvcHRpb25hbCBET01TdHJpbmcsIG9wdGlv
bmFsIEhUTUxFbGVtZW50KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJz
ZXRWYWxpZGl0eSIgbWlzc2luZwotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0
cmlidXRlIHdpbGxWYWxpZGF0ZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgIndpbGxWYWxpZGF0ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGl0eSBhc3Nl
cnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInZhbGlk
aXR5IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIHZhbGlkYXRpb25NZXNzYWdlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90
eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidmFsaWRhdGlvbk1lc3NhZ2UiIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVy
YXRpb24gY2hlY2tWYWxpZGl0eSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVy
dHkgImNoZWNrVmFsaWRpdHkiIG1pc3NpbmcKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0eSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0
ZWQgcHJvcGVydHkgInJlcG9ydFZhbGlkaXR5IiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBl
IG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAibGFiZWxzIiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldEZvcm1W
YWx1ZSgoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPywgb3B0aW9uYWwgKEZpbGUgb3Ig
VVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8pCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgZm9ybQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0
aW9uIHNldFZhbGlkaXR5KG9wdGlvbmFsIFZhbGlkaXR5U3RhdGVGbGFncywgb3B0aW9uYWwgRE9N
U3RyaW5nLCBvcHRpb25hbCBIVE1MRWxlbWVudCkKK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSB3aWxsVmFsaWRhdGUKK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGl0eQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFj
ZTogYXR0cmlidXRlIHZhbGlkYXRpb25NZXNzYWdlCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50
ZXJmYWNlOiBvcGVyYXRpb24gY2hlY2tWYWxpZGl0eSgpCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gcmVwb3J0VmFsaWRpdHkoKQorUEFTUyBFbGVtZW50SW50ZXJu
YWxzIGludGVyZmFjZTogYXR0cmlidXRlIGxhYmVscwogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBE
YXRhVHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgRGF0YVRyYW5zZmVyIGlu
dGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBh
ZC9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDI5MWQ2MDI3NzNhMC4uZjE1ZmI2ZmQ4M2Q4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pcGFkL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aXBhZC9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00MzUxLDE1ICs0MzUxLDE1IEBAIFBBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlCiBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3Ii
IHByb3BlcnR5CiBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5CiBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2hh
ZG93Um9vdAotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldEZv
cm1WYWx1ZSgoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPywgb3B0aW9uYWwgKEZpbGUg
b3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8pIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQg
cHJvcGVydHkgInNldEZvcm1WYWx1ZSIgbWlzc2luZwotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGlu
dGVyZmFjZTogYXR0cmlidXRlIGZvcm0gYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0
IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJmb3JtIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldFZhbGlkaXR5KG9wdGlv
bmFsIFZhbGlkaXR5U3RhdGVGbGFncywgb3B0aW9uYWwgRE9NU3RyaW5nLCBvcHRpb25hbCBIVE1M
RWxlbWVudCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2V0VmFsaWRp
dHkiIG1pc3NpbmcKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3
aWxsVmFsaWRhdGUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBh
IHByb3BlcnR5ICJ3aWxsVmFsaWRhdGUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRpdHkgYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ2YWxpZGl0eSIgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSB2YWxpZGF0aW9uTWVzc2FnZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmpl
Y3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInZhbGlkYXRpb25NZXNzYWdlIiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIGNo
ZWNrVmFsaWRpdHkoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjaGVj
a1ZhbGlkaXR5IiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVy
YXRpb24gcmVwb3J0VmFsaWRpdHkoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3Bl
cnR5ICJyZXBvcnRWYWxpZGl0eSIgbWlzc2luZwotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIGxhYmVscyBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgImxhYmVscyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BB
U1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZp
bGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmlu
ZyBvciBGb3JtRGF0YSk/KQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmli
dXRlIGZvcm0KK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRW
YWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9wdGlvbmFsIERPTVN0cmluZywg
b3B0aW9uYWwgSFRNTEVsZW1lbnQpCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgd2lsbFZhbGlkYXRlCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgdmFsaWRpdHkKK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB2YWxpZGF0aW9uTWVzc2FnZQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTog
b3BlcmF0aW9uIGNoZWNrVmFsaWRpdHkoKQorUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFj
ZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkKK1BBU1MgRWxlbWVudEludGVybmFscyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMKIFBBU1MgRGF0YVRyYW5zZmVyIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgRGF0YVRyYW5z
ZmVyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzMyMGFj
ZWE1NjhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29j
aWF0ZWQvRWxlbWVudEludGVybmFscy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE4IEBACitDT05TT0xFIE1FU1NBR0U6IEFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGggbmFt
ZT0nJyBpcyBub3QgZm9jdXNhYmxlLgorQ09OU09MRSBNRVNTQUdFOiBBbiBpbnZhbGlkIGZvcm0g
Y29udHJvbCB3aXRoIG5hbWU9JycgaXMgbm90IGZvY3VzYWJsZS4KK0NPTlNPTEUgTUVTU0FHRTog
QW4gaW52YWxpZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lPScnIGlzIG5vdCBmb2N1c2FibGUuCisK
KworRkFJTCB3aWxsVmFsaWRhdGUgYXNzZXJ0X2ZhbHNlOiBmYWxzZSBpbiBEQVRBTElTVCBleHBl
Y3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJTCB3aWxsVmFsaWRhdGUgYWZ0ZXIgdXBncmFkZSBhc3Nl
cnRfZmFsc2U6IGluIGRhdGFsaXN0IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIHdpbGxW
YWxpZGF0ZSBhZnRlciB1cGdyYWRlIChkb2N1bWVudC5jcmVhdGVFbGVtZW50KQorUEFTUyB3aWxs
VmFsaWRhdGUgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZEVycm9yIGlmIHRoZSB0YXJnZXQgZWxl
bWVudCBpcyBub3QgYSBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnQKK1BBU1MgdmFsaWRp
dHkgYW5kIHNldFZhbGlkaXR5KCkKK1BBU1MgImFuY2hvciIgYXJndW1lbnQgb2Ygc2V0VmFsaWRp
dHkoKQorUEFTUyBjaGVja1ZhbGlkaXR5KCkgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZEVycm9y
IGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBub3QgYSBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVs
ZW1lbnQKK1BBU1MgY2hlY2tWYWxpZGl0eSgpCitQQVNTIHJlcG9ydFZhbGlkaXR5KCkgc2hvdWxk
IHRocm93IE5vdFN1cHBvcnRlZEVycm9yIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBub3QgYSBm
b3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnQKK1BBU1MgcmVwb3J0VmFsaWRpdHkoKQorUEFT
UyBDdXN0b20gY29udHJvbCBhZmZlY3RzIHZhbGlkYXRpb24gYXQgdGhlIG93bmVyIGZvcm0KK1BB
U1MgQ3VzdG9tIGNvbnRyb2wgYWZmZWN0cyA6dmFsaWQgOmludmFsaWQgZm9yIEZPUk0gYW5kIEZJ
RUxEU0VUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3Qu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmIzOWUxNTg1MWUxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBkYXRhbGlzdCBhbmNlc3RvciBkb2Vz
bid0IGFmZmVjdCBjb25zdHJhaW50IHZhbGlkYXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZSBh
c3NlcnRfZmFsc2U6IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxo
YXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA0MjRhY2RlMDE4MjEuLjUzYjA4OThmODll
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNDM1
MSwxNSArNDM1MSwxNSBAQCBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZQogUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHNoYWRvd1Jvb3QKLUZBSUwgRWxlbWVudEludGVy
bmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZpbGUgb3IgVVNWU3RyaW5n
IG9yIEZvcm1EYXRhKT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/
KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5n
IG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRGb3JtVmFsdWUiIG1p
c3NpbmcKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtIGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZm9y
bSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9w
dGlvbmFsIERPTVN0cmluZywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpIGFzc2VydF9vd25fcHJvcGVy
dHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24gZXhwZWN0ZWQgcHJvcGVydHkgInNldFZhbGlkaXR5IiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJ
bnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRlIGFzc2VydF90cnVlOiBU
aGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAid2lsbFZhbGlkYXRlIiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTog
YXR0cmlidXRlIHZhbGlkaXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0
IGhhdmUgYSBwcm9wZXJ0eSAidmFsaWRpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2Ug
YXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ2
YWxpZGF0aW9uTWVzc2FnZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkgYXNzZXJ0X293bl9w
cm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9w
ZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY2hlY2tWYWxpZGl0eSIgbWlzc2luZwotRkFJTCBF
bGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24t
c3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAicmVwb3J0VmFsaWRpdHkiIG1pc3Np
bmcKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMgYXNz
ZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJsYWJl
bHMiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0
YSk/LCBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPykKK1BBU1MgRWxl
bWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtCitQQVNTIEVsZW1lbnRJbnRl
cm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlT
dGF0ZUZsYWdzLCBvcHRpb25hbCBET01TdHJpbmcsIG9wdGlvbmFsIEhUTUxFbGVtZW50KQorUEFT
UyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHdpbGxWYWxpZGF0ZQorUEFT
UyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkaXR5CitQQVNTIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UKK1BB
U1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkK
K1BBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0
eSgpCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzCiBQ
QVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aAogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dwZS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5l
c3MuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDMyZDc5Y2MzM2UxNi4uOWI1YTVmOGIwZDMwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNDM1MSwxNSArNDM1MSwx
NSBAQCBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIHNoYWRvd1Jvb3QKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRh
KT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/KSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMg
b3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRGb3JtVmFsdWUiIG1pc3NpbmcKLUZBSUwg
RWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtIGFzc2VydF90cnVlOiBU
aGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZm9ybSIgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBzZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9wdGlvbmFsIERPTVN0
cmluZywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQg
cHJvcGVydHkgInNldFZhbGlkaXR5IiBtaXNzaW5nCi1GQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBl
IG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAid2lsbFZhbGlkYXRlIiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZh
bGlkaXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9w
ZXJ0eSAidmFsaWRpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEVsZW1lbnRJbnRl
cm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UgYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ2YWxpZGF0aW9uTWVz
c2FnZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgRWxlbWVudEludGVybmFscyBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBl
Y3RlZCBwcm9wZXJ0eSAiY2hlY2tWYWxpZGl0eSIgbWlzc2luZwotRkFJTCBFbGVtZW50SW50ZXJu
YWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJh
dGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAicmVwb3J0VmFsaWRpdHkiIG1pc3NpbmcKLUZBSUwgRWxl
bWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMgYXNzZXJ0X3RydWU6IFRo
ZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJsYWJlbHMiIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/LCBvcHRpb25h
bCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPykKK1BBU1MgRWxlbWVudEludGVybmFs
cyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtCitQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZsYWdzLCBv
cHRpb25hbCBET01TdHJpbmcsIG9wdGlvbmFsIEhUTUxFbGVtZW50KQorUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHdpbGxWYWxpZGF0ZQorUEFTUyBFbGVtZW50SW50
ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkaXR5CitQQVNTIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UKK1BBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkKK1BBU1MgRWxlbWVu
dEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0eSgpCitQQVNTIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzCiBQQVNTIERhdGFUcmFu
c2ZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBEYXRh
VHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>