<?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>250601</bug_id>
          
          <creation_ts>2023-01-13 16:27:38 -0800</creation_ts>
          <short_desc>REGRESSION(258561@main): Seems to have caused 1% regression on Speedometer</short_desc>
          <delta_ts>2023-01-16 13:41:33 -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>ashvayka</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1925486</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-01-13 16:27:38 -0800</bug_when>
    <thetext>https://commits.webkit.org/258561@main introduced a regression:
Seems to have caused 1% regression on Speedometer

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>1925488</commentid>
    <comment_count>1</comment_count>
      <attachid>464495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-01-13 16:27:48 -0800</bug_when>
    <thetext>Created attachment 464495
REVERT of 258561@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>1925489</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-01-13 16:31:34 -0800</bug_when>
    <thetext>Committed 258899@main (72d53b83e110): &lt;https://commits.webkit.org/258899@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464495.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925490</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-01-13 16:32:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/104244663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925862</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-01-16 13:34:57 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 250687</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464495</attachid>
            <date>2023-01-13 16:27:48 -0800</date>
            <delta_ts>2023-01-13 16:31:35 -0800</delta_ts>
            <desc>REVERT of 258561@main</desc>
            <filename>bug-250601-20230113162748.patch</filename>
            <type>text/plain</type>
            <size>330316</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA0YWNiN2FhYzk2YTYxYmIwZDZkZTczMDRmNDU2ZWQ5ZmE1YTE5YmZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBGcmksIDEzIEphbiAyMDIzIDE2OjI3OjQ1IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNTg1NjFAbWFpbi4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTA2MDEKClNlZW1zIHRvIGhhdmUgY2F1c2VkIDElIHJlZ3Jl
c3Npb24gb24gU3BlZWRvbWV0ZXIKClJldmVydGVkIGNoYW5nZXNldDoKCiJJbXBsZW1lbnQgZm9y
bS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5Nzk2MwpodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8yNTg1NjFAbWFp
bgotLS0KIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICB8ICAg
MSAtCiAuLi4vV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0ICAgfCAgIDEg
LQogLi4uL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgIHwgICAyIC0K
IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICB8ICAgMSAtCiBT
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIFNv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogLi4u
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgIDQwICstCiAuLi4v
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAgfCAgMTIgKy0KIC4uLi9i
aW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwICB8ICA2MSAtLS0KIC4uLi9i
aW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCAgICB8ICAxOCArLQogLi4uL2Jp
bmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwICAgICAgIHwgICAzICstCiAuLi4vY3Nz
L1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAgICAgICAgfCAgIDggKy0KIC4uLi9kb20v
Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuY3BwICAgICAgICB8ICA5OCAtLS0tCiAuLi4vV2Vi
Q29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAgfCAgIDggLQogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgfCAgMzkgKy0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmggICAgICAgICAgICAgICAgICB8ICAxNCArLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuY3BwICAgICAgIHwgIDc1IC0tLQogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuaCAgICAgICAgIHwgIDIxIC0KIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50SW50ZXJuYWxzLmlkbCAgICAgICB8ICAxNSAtCiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmNwcCAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaCAgICAgICAgICB8ICAgNyAtCiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9XZWJDb3JlL2RvbS9WYWxp
ZGl0eVN0YXRlRmxhZ3MuaCAgICAgICB8ICA0OCAtLQogU291cmNlL1dlYkNvcmUvZG9tL1ZhbGlk
aXR5U3RhdGVGbGFncy5pZGwgICAgIHwgIDM3IC0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcCAgICAgfCAgMTUgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9t
RWxlbWVudEZvcm1WYWx1ZS5oICB8ICAzNiAtLQogLi4uL2h0bWwvRm9ybUFzc29jaWF0ZWRDdXN0
b21FbGVtZW50LmNwcCAgICAgIHwgMjg1IC0tLS0tLS0tLS0KIC4uLi9odG1sL0Zvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudC5oICAgICAgICB8IDEwNyAtLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUNvbnRyb2xsZXIuY3BwICAgICAgICB8ICA5OCArKy0tCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0Zvcm1Db250cm9sbGVyLmggICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUxpc3RlZEVsZW1lbnQuY3BwICAgICB8ICAyMyArLQogU291cmNlL1dlYkNvcmUvaHRtbC9G
b3JtTGlzdGVkRWxlbWVudC5oICAgICAgIHwgIDIwICstCiAuLi4vaHRtbC9HZW5lcmljQ2FjaGVk
SFRNTENvbGxlY3Rpb24uY3BwICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwICAgICAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oICAgICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZp
ZWxkU2V0RWxlbWVudC5jcHAgICB8ICAzMCArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmggICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVs
ZFNldEVsZW1lbnQuaWRsICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHAgICB8IDQyMSArKysrKysrKysrKysrLS0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oICB8IDE0NiArKysrKy0KIC4uLi9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwICB8ICA4NyArKysrCiAuLi4vaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmggICAgfCAgNjYgKysrCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgICAgICAgfCAgNzAgKy0tCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oICAgICAgICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbCAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5jcHAgICAgICB8ICAgOSArLQogLi4uL0hUTUxNYXliZUZvcm1B
c3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgIHwgMTg0IC0tLS0tLS0KIC4uLi9IVE1MTWF5YmVG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCAgICB8ICA4NiAtLS0KIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwICAgICB8ICAxMCArLQogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCAgICAgfCAgMjggKy0KIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCAgICAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmggICAgIHwgICAyIC0KIC4uLi9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcCAgICAgICB8ICAxOCArLQogLi4uL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvTm9kZUxpc3QuY3BwICAgICAgICAgfCAgMTAgKy0KIC4uLi9odG1sL1ZhbGlkYXRlZEZvcm1M
aXN0ZWRFbGVtZW50LmNwcCAgICAgICB8IDQ5MyAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9XZWJD
b3JlL2h0bWwvVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQuaCB8IDE2NyAtLS0tLS0KIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICAgICB8ICAgNiArLQogU291cmNl
L1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5oICAgICAgIHwgICA3ICstCiAuLi4vaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwICAgICAgfCAgIDcgKy0KIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL3N0eWxl
L1N0eWxlSW52YWxpZGF0aW9uRnVuY3Rpb25zLmggICAgICAgIHwgICA3ICstCiBTb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAgIDIgKy0KIC4uLnJtLWFzc29j
aWF0ZWQtY3VzdG9tLWVsZW1lbnRzLWV4cGVjdGVkLnR4dCB8ICAyOSAtLQogLi4uc3RvcmUtZm9y
bS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy5odG1sIHwgMTQ2IC0tLS0tLQogLi4ubnRJbnRl
cm5hbHMtTm90U3VwcG9ydGVkRXJyb3ItZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi4vRWxlbWVu
dEludGVybmFscy1mb3JtLWV4cGVjdGVkLnR4dCAgICAgICAgfCAgIDUgKy0KIC4uLi9FbGVtZW50
SW50ZXJuYWxzLWxhYmVscy1leHBlY3RlZC50eHQgICAgICB8ICAgNiArLQogLi4uL0VsZW1lbnRJ
bnRlcm5hbHMtbGFiZWxzLmh0bWwgICAgICAgICAgICAgIHwgICA0IC0KIC4uLkVsZW1lbnRJbnRl
cm5hbHMtc2V0Rm9ybVZhbHVlLWV4cGVjdGVkLnR4dCB8IDEwOCArKy0tCiAuLi4vRWxlbWVudElu
dGVybmFscy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCAgfCAgMjggKy0KIC4uLi9FbGVtZW50SW50
ZXJuYWxzLXZhbGlkYXRpb24uaHRtbCAgICAgICAgICB8ICAxNCAtCiAuLi4vZmllbGRzZXQtZWxl
bWVudHMtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9mb3JtLWFzc29jaWF0
ZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0ICAgICB8ICAxMCArLQogLi4uL2Zvcm0tZGlzYWJsZWQt
Y2FsbGJhY2stZXhwZWN0ZWQudHh0ICAgICAgIHwgIDE2ICstCiAuLi4vZm9ybS1lbGVtZW50cy1u
YW1lZEl0ZW0tZXhwZWN0ZWQudHh0ICAgICAgfCAgIDYgKy0KIC4uLi9mb3JtLXJlc2V0LWNhbGxi
YWNrLWV4cGVjdGVkLnR4dCAgICAgICAgICB8ICAgNiArLQogLi4uL2xhYmVsLWRlbGVnYXRlc0Zv
Y3VzLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgICA0ICstCiAuLi5vbnN0cnVjdG9yLWRpc2FibGVk
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgfCAgIDMgLQogLi4uL2F0dHItY29uc3RydWN0b3ItZGlz
YWJsZWQudGVudGF0aXZlLmh0bWwgIHwgIDU2IC0tCiAuLi5vbnN0cnVjdG9yLXJlYWRvbmx5LnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQgfCAgIDMgLQogLi4uL2F0dHItY29uc3RydWN0b3ItcmVhZG9u
bHkudGVudGF0aXZlLmh0bWwgIHwgIDU2IC0tCiAuLi50dHItcGFyc2VyLWRpc2FibGVkLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgfCAgIDMgLQogLi4uL2F0dHItcGFyc2VyLWRpc2FibGVkLnRlbnRh
dGl2ZS5odG1sICAgICAgIHwgIDU0IC0tCiAuLi50dHItcGFyc2VyLXJlYWRvbmx5LnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQgfCAgIDMgLQogLi4uL2F0dHItcGFyc2VyLXJlYWRvbmx5LnRlbnRhdGl2
ZS5odG1sICAgICAgIHwgIDU0IC0tCiAuLi5tLWZpZWxkc2V0LWVsZW1lbnRzLnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQgfCAgIDQgLQogLi4uY3Rvci1mb3JtLWZpZWxkc2V0LWVsZW1lbnRzLnRlbnRh
dGl2ZS5odG1sIHwgIDQzIC0tCiAuLi4vY29uc3RydWN0b3ItZm9ybS50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0ICAgfCAgIDMgLQogLi4uL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLnRlbnRhdGl2
ZS5odG1sIHwgIDM0IC0tCiAuLi5vci1tb3ZlLWluc2lkZS1mb3JtLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQgfCAgIDMgLQogLi4ub25zdHJ1Y3Rvci1tb3ZlLWluc2lkZS1mb3JtLnRlbnRhdGl2ZS5o
dG1sIHwgIDQyIC0tCiAuLi51Y3Rvci1zZXQtZm9ybS1hdHRyLnRlbnRhdGl2ZS1leHBlY3RlZC50
eHQgfCAgIDMgLQogLi4uL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLmh0bWwg
IHwgIDQyIC0tCiAuLi50cnVjdG9yLXNldFZhbGlkaXR5LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQg
fCAgIDMgLQogLi4uL2NvbnN0cnVjdG9yLXNldFZhbGlkaXR5LnRlbnRhdGl2ZS5odG1sICAgIHwg
IDUxIC0tCiAuLi4vaW5zaWRlLWRhdGFsaXN0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgICAgfCAg
IDMgLQogLi4uL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLmh0bWwgIHwgIDU2
IC0tCiAuLi5lLWRpc2FibGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgfCAgIDQg
LQogLi4uL2luc2lkZS1kaXNhYmxlZC1maWVsZHNldC50ZW50YXRpdmUuaHRtbCAgIHwgIDU2IC0t
CiAuLi4vaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgICAgICAgfCAgIDMgLQog
Li4uL3VwZ3JhZGluZy9pbnNpZGUtbGFiZWwudGVudGF0aXZlLmh0bWwgICAgIHwgIDM1IC0tCiAu
Li4vaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgICAgfCAgMTggKy0KIC4u
Lmxlci1sZXhpY2FsLXNjb3Blcy1mb3JtLW93bmVyLWV4cGVjdGVkLnR4dCB8ICAgMiArLQogLi4u
L2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0ICAgIHwgIDE4ICstCiAuLi4v
bGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAgIDYgLQogLi4uL2h0
bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0ICAgIHwgIDE4ICstCiAuLi4vaHRt
bC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgICAgfCAgMTggKy0KIC4uLi9FbGVt
ZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0ICB8ICAxOCAtCiAuLi4vaW5zaWRl
LWRhdGFsaXN0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgICAgfCAgIDMgLQogLi4uL2h0bWwvZG9t
L2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0ICAgIHwgIDE4ICstCiAuLi4vaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgICAgfCAgMTggKy0KIDExOCBmaWxlcyBjaGFu
Z2VkLCAxMDY0IGluc2VydGlvbnMoKyksIDMxMzEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvZG9tL1ZhbGlkaXR5U3RhdGVGbGFncy5oCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZG9tL1ZhbGlkaXR5U3RhdGVGbGFncy5pZGwKIGRlbGV0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbUVsZW1lbnRGb3JtVmFsdWUu
aAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0
aFN0YXRlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXli
ZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oCiBk
ZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlk
YXRlZEZvcm1MaXN0ZWRFbGVtZW50LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3N0YXRlLXJlc3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy1l
eHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N0
YXRlLXJlc3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy5odG1sCiBkZWxldGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9y
LWRpc2FibGVkLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItY29uc3RydWN0b3ItZGlzYWJsZWQudGVudGF0
aXZlLmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5n
L2F0dHItY29uc3RydWN0b3ItcmVhZG9ubHkudGVudGF0aXZlLWV4cGVjdGVkLnR4dAogZGVsZXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rv
ci1yZWFkb25seS50ZW50YXRpdmUuaHRtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItZGlzYWJsZWQudGVudGF0aXZlLWV4cGVjdGVk
LnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0
ci1wYXJzZXItZGlzYWJsZWQudGVudGF0aXZlLmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItcGFyc2VyLXJlYWRvbmx5LnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFk
aW5nL2F0dHItcGFyc2VyLXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLWZpZWxkc2V0
LWVsZW1lbnRzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLWZvcm0tZmllbGRzZXQtZWxlbWVu
dHMudGVudGF0aXZlLmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
dXBncmFkaW5nL2NvbnN0cnVjdG9yLWZvcm0udGVudGF0aXZlLWV4cGVjdGVkLnR4dAogZGVsZXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9y
bS50ZW50YXRpdmUuaHRtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91
cGdyYWRpbmcvY29uc3RydWN0b3ItbW92ZS1pbnNpZGUtZm9ybS50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25z
dHJ1Y3Rvci1tb3ZlLWluc2lkZS1mb3JtLnRlbnRhdGl2ZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1zZXQtZm9ybS1hdHRy
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29j
aWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLmh0bWwK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVj
dG9yLXNldFZhbGlkaXR5LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldFZhbGlkaXR5LnRl
bnRhdGl2ZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3Jh
ZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0LnRlbnRh
dGl2ZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGlu
Zy9pbnNpZGUtZGlzYWJsZWQtZmllbGRzZXQudGVudGF0aXZlLWV4cGVjdGVkLnR4dAogZGVsZXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRpc2FibGVk
LWZpZWxkc2V0LnRlbnRhdGl2ZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3Nv
Y2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtbGFiZWwudGVudGF0aXZlLWV4cGVjdGVkLnR4dAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWxhYmVs
LnRlbnRhdGl2ZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CiBkZWxldGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudElu
dGVybmFscy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3Qu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTBlMDRhYjBm
MjcxLi42NWY5MDQ2NmU4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDU3LDcgKzEwNTcs
NiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGRvbS9UcmVlV2Fsa2VyLmlk
bAogICAgIGRvbS9VSUV2ZW50LmlkbAogICAgIGRvbS9VSUV2ZW50SW5pdC5pZGwKLSAgICBkb20v
VmFsaWRpdHlTdGF0ZUZsYWdzLmlkbAogICAgIGRvbS9WaXNpYmlsaXR5U3RhdGUuaWRsCiAgICAg
ZG9tL1doZWVsRXZlbnQuaWRsCiAgICAgZG9tL1hNTERvY3VtZW50LmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZjdiNjczY2E3NGU5
Li45Mzc0MjAzOTBiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdApAQCAtMTIwMCw3ICsxMjAwLDYgQEAgJChQUk9KRUNUX0RJUikvZG9tL1Ry
YW5zaXRpb25FdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9UcmVlV2Fsa2VyLmlkbAogJChQ
Uk9KRUNUX0RJUikvZG9tL1VJRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vVUlFdmVudElu
aXQuaWRsCi0kKFBST0pFQ1RfRElSKS9kb20vVmFsaWRpdHlTdGF0ZUZsYWdzLmlkbAogJChQUk9K
RUNUX0RJUikvZG9tL1Zpc2liaWxpdHlTdGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9XaGVl
bEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvZG9tL1hNTERvY3VtZW50LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA4NTJiNWZh
YTA3OGQuLjA0YWZkZTQxYTg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI3MzUsOCArMjczNSw2IEBAICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
VXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVmFsaWRpdHlTdGF0ZUZsYWdzLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWYWxpZGl0eVN0YXRlRmxhZ3MuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWVFRDdWUuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZUVEN1ZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZUVFJlZ2lvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDc5YTg4Y2IyNzdjMC4uMTIyYjg1YTg2NjU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEwNDgsNyArMTA0OCw2IEBAIEpTX0JJ
TkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9VSUV2ZW50
SW5pdC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL1ZhbGlkaXR5U3RhdGVGbGFncy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL1Zpc2liaWxpdHlTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
ZG9tL1doZWVsRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9YTUxEb2N1bWVudC5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZGM1YzQ0NDA2MzJkLi44YjkzOGNkMmNmZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtODI0LDcgKzgyNCw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBkb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaAogICAgIGRvbS9V
c2VyR2VzdHVyZUluZGljYXRvci5oCiAgICAgZG9tL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9y
LmgKLSAgICBkb20vVmFsaWRpdHlTdGF0ZUZsYWdzLmgKICAgICBkb20vVmlld3BvcnRBcmd1bWVu
dHMuaAogICAgIGRvbS9WaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmgKICAgICBkb20vVmlzaWJpbGl0
eVN0YXRlLmgKQEAgLTkwOCwxNSArOTA3LDExIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBodG1sL0NhbnZhc0Jhc2UuaAogICAgIGh0bWwvQ29sbGVjdGlvblRy
YXZlcnNhbC5oCiAgICAgaHRtbC9Db2xsZWN0aW9uVHlwZS5oCi0gICAgaHRtbC9DdXN0b21FbGVt
ZW50Rm9ybVZhbHVlLmgKLSAgICBodG1sL0RPTUZvcm1EYXRhLmgKICAgICBodG1sL0RPTVRva2Vu
TGlzdC5oCiAgICAgaHRtbC9EYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oCiAgICAgaHRt
bC9FbnRlcktleUhpbnQuaAogICAgIGh0bWwvRmVhdHVyZVBvbGljeS5oCi0gICAgaHRtbC9Gb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaAogICAgIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmgKLSAgICBodG1sL0Zvcm1Db250cm9sbGVyLmgKICAgICBodG1sL0Zvcm1MaXN0ZWRFbGVtZW50
LmgKICAgICBodG1sL0hUTUxBbmNob3JFbGVtZW50LmgKICAgICBodG1sL0hUTUxBbmNob3JFbGVt
ZW50SW5saW5lcy5oCkBAIC05MzksOCArOTM0LDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oCiAgICAgaHRtbC9IVE1M
RmllbGRTZXRFbGVtZW50LmgKICAgICBodG1sL0hUTUxGb250RWxlbWVudC5oCi0gICAgaHRtbC9I
VE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaAogICAgIGh0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oCisgICAgaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
LmgKICAgICBodG1sL0hUTUxGb3JtRWxlbWVudC5oCiAgICAgaHRtbC9IVE1MRnJhbWVFbGVtZW50
LmgKICAgICBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTEwMTQsOCArMTAwOSw2IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBodG1sL1R5cGVBaGVh
ZC5oCiAgICAgaHRtbC9VUkxEZWNvbXBvc2l0aW9uLmgKICAgICBodG1sL1VSTFJlZ2lzdHJ5LmgK
LSAgICBodG1sL1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmgKLSAgICBodG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmgKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaAogICAgIGh0bWwvVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5oCiAgICAgaHRtbC9Wb2lkQ2FsbGJhY2suaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBmMzM3MzZjODUyOWUuLjA1ZjQyZDljODk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEyNDgs
NyArMTI0OCw2IEBAIGh0bWwvRW50ZXJLZXlIaW50LmNwcAogaHRtbC9GVFBEaXJlY3RvcnlEb2N1
bWVudC5jcHAKIGh0bWwvRmVhdHVyZVBvbGljeS5jcHAKIGh0bWwvRmlsZUlucHV0VHlwZS5jcHAK
LWh0bWwvRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcAogaHRtbC9Gb3JtQ29udHJvbGxl
ci5jcHAKIGh0bWwvRm9ybUxpc3RlZEVsZW1lbnQuY3BwCiBodG1sL0dlbmVyaWNDYWNoZWRIVE1M
Q29sbGVjdGlvbi5jcHAKQEAgLTEyNzgsNyArMTI3Nyw3IEBAIGh0bWwvSFRNTEVtYmVkRWxlbWVu
dC5jcHAKIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKIGh0bWwvSFRNTEZvbnRFbGVtZW50
LmNwcAogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAotaHRtbC9IVE1MTWF5YmVGb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwCitodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGUuY3BwCiBodG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAogaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCkBAIC0xMzk1LDcg
KzEzOTQsNiBAQCBodG1sL1VSTElucHV0VHlwZS5jcHAKIGh0bWwvVVJMUmVnaXN0cnkuY3BwCiBo
dG1sL1VSTFNlYXJjaFBhcmFtcy5jcHAKIGh0bWwvVXNlckFjdGl2YXRpb24uY3BwCi1odG1sL1Zh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmNwcAogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAK
IGh0bWwvV2Vla0lucHV0VHlwZS5jcHAKIGh0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlz
LmNwcApAQCAtNDE1Miw3ICs0MTUwLDYgQEAgSlNWVFRDdWUuY3BwCiBKU1ZUVFJlZ2lvbi5jcHAK
IEpTVlRUUmVnaW9uTGlzdC5jcHAKIEpTVmFsaWRpdHlTdGF0ZS5jcHAKLUpTVmFsaWRpdHlTdGF0
ZUZsYWdzLmNwcAogSlNWaWRlb0NvbG9yUHJpbWFyaWVzLmNwcAogSlNWaWRlb0NvbG9yU3BhY2Uu
Y3BwCiBKU1ZpZGVvQ29sb3JTcGFjZUluaXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjE4NGQxNGExZTYwLi5kYjgwNjNl
ZDg5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTkyNSw3ICs5MjUsNyBAQAogCQkyRUNEQkFEODIxRDg5MDYzMDBGMDBFQ0Qg
LyogVW5kb0l0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFQ0RCQUQ1MjFEODkwNjMwMEYwMEVDRCAvKiBVbmRvSXRlbS5oICovOyB9OwogCQkyRUNG
N0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGN0FEQjEwMTYyQjM4MDA0MjdERTcgLyog
SlNFcnJvckV2ZW50LmggKi87IH07CiAJCTJFQ0Y3QUUyMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJv
ckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RUNGN0FERjEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JFdmVudC5oICovOyB9OwotCQkyRUQ2MDlC
RDExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRDYwOUJCMTE0NUIwNzEwMEM4Njg0RSAvKiBET01G
b3JtRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTJFRDYwOUJEMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVENjA5QkIxMTQ1QjA3MTAwQzg2
ODRFIC8qIERPTUZvcm1EYXRhLmggKi87IH07CiAJCTJFRERBRjQ0Mjc5MjBFQjQwMDVEMThFNCAv
KiBJbnNwZWN0b3JPdmVybGF5TGFiZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFRERBRjQzMjc5MjBFQjQwMDVEMThFNCAvKiBJbnNwZWN0b3JPdmVy
bGF5TGFiZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkyRURFRjFGNDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUVFMTIxQjBFRkMwMDcyNkRC
MiAvKiBCbG9iRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTJFREVGMUY1MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUVGMTIxQjBF
RkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzAxOCwxMyArMzAxOCw5IEBACiAJCTg5ODc4NUY1MTIy
RTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg3ODVGMzEyMkUxRUFDMDAzQUFCREEgLyogSlNG
aWxlUmVhZGVyU3luYy5oICovOyB9OwogCQk4QTA1NDUzMzI4M0NGMTdGMDBGNDk4RTcgLyogRVhU
VGV4dHVyZU5vcm0xNi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEEwNTQ1MzIyODNDRjEzRjAwRjQ5OEU3IC8qIEVYVFRleHR1cmVOb3JtMTYuaCAqLzsg
fTsKIAkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZB
MzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBMjhDM0MyMjhFNEVDMDcwMDEwMThCOSAv
KiBWYWxpZGl0eVN0YXRlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDhBMjhDM0MxMjhFNEVDMDcwMDEwMThCOSAvKiBWYWxpZGl0eVN0YXRlRmxh
Z3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMzA5QzlFMTIzOTUw
QkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovOyB9OwotCQk4QTNGQ0Ix
NjI5M0MxMkZGMDBEMTcyOEEgLyogVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBM0ZDQjE0MjkzQzEyRkUw
MEQxNzI4QSAvKiBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBM0ZDQjFCMjkzQzEzMUYwMEQxNzI4
QSAvKiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBM0ZDQjE5MjkzQzEzMUYwMEQxNzI4
QSAvKiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTQxM0FFMDEyMDdCQkE1MDA4
MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE0NjJE
RUUyODYzM0Q3RDAwQUIyMDgwIC8qIFdlYkdMTXVsdGlEcmF3SW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEE0NjJERUIyODYzM0Q2MjAwQUIyMDgwIC8qIFdlYkdMTXVsdGlEcmF3SW5zdGFuY2VkQmFz
ZVZlcnRleEJhc2VJbnN0YW5jZS5oICovOyB9OwotCQk4QTc1QTkzQjI5NDgyM0Y5MDBBODE5QTkg
LyogRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTc1QTkzQTI5NDgyM0Y4MDBBODE5QTkgLyogRm9ybUFz
c29jaWF0ZWRDdXN0b21FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3Jp
cHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0ND
OTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE4MUJGODUxMURDRkQ5MDAwREEyQjk4
IC8qIE5ldHdvcmtMb2FkTWV0cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIE5ldHdvcmtMb2FkTWV0
cmljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CThBODQ0RDA1MTFEM0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE4NDREMDIxMUQzQzE4RTAwMTQwNjVD
IC8qIFBlcmZvcm1hbmNlLmggKi87IH07CkBAIC0zMDM2LDcgKzMwMzIsNiBAQAogCQk4QUFBQzVD
RDI4NDAxNDA1MDBEMDhBRTUgLyogT0VTRHJhd0J1ZmZlcnNJbmRleGVkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUFBQzVDQTI4NDAxM0Q2MDBEMDhB
RTUgLyogT0VTRHJhd0J1ZmZlcnNJbmRleGVkLmggKi87IH07CiAJCThBQjRCQzc3MTI2RkRCNzEw
MERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFCNEJDNzYxMjZGREI3
MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggKi87
IH07CiAJCThBQ0FFRDNDMjhCODE2NTcwMEYyMTVCQSAvKiBXZWJHTFByb3Zva2luZ1ZlcnRleC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFDQUVEM0Iy
OEI4MTYwMzAwRjIxNUJBIC8qIFdlYkdMUHJvdm9raW5nVmVydGV4LmggKi87IH07Ci0JCThBQ0NB
RDNEMjk1QTVBMUMwMDc4OEY1RSAvKiBDdXN0b21FbGVtZW50Rm9ybVZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUNDQUQzQzI5NUE1QTFCMDA3
ODhGNUUgLyogQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBQ0U4OEQ3Mjg1QzhGQjgwMDgyQzBGQyAvKiBX
ZWJHTERyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUNFODhENTI4NUM4RjY2MDA4MkMwRkMg
LyogV2ViR0xEcmF3SW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZS5oICovOyB9OwogCQk4
QUY0RTU1NjExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1MzExREM1QTM2
MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmggKi87IH07CiAJCThBRjRFNTVDMTFE
QzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFGNEU1NTkxMURDNUE2MzAwMEVEM0RFIC8qIFBl
cmZvcm1hbmNlVGltaW5nLmggKi87IH07CkBAIC01Mzg5LDYgKzUzODQsNyBAQAogCQlFMTM5ODY2
NDE1NDc4NDc0MDAxRTNGNjUgLyogU3R5bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzOTg2NjIxNTQ3ODQ3NDAwMUUzRjY1IC8qIFN0
eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJRTEzRUYzNDQxNjg0RUNGNDAwMzRDODNGIC8qIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEzRUYzNDIxNjg0RUNGNDAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUx
NDI0Qzk0MTY0QjUyQzgwMEYzMkQ0MCAvKiBDb29raWVKYXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNDI0QzkyMTY0QjUyQzgwMEYzMkQ0MCAvKiBD
b29raWVKYXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFMTRGMUM0NTE0QjVEQUM2MDBFQTkwMDkgLyogSFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE0RjFDNDMxNEI1REFDNjAwRUE5MDA5IC8qIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MTUyNTUxNTE2RkQyMzUwMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTUyNTUxMzE2RkQyMzRGMDAzRDdBREIgLyogV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmggKi87IH07CiAJCUUxNTdBOEUxMTgxNzMzMUMwMDlG
ODIxRCAvKiBKU0NyeXB0b0tleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE1N0E4REYxODE3MzMxQzAwOUY4MjFEIC8qIEpTQ3J5cHRvS2V5LmggKi87
IH07CiAJCUUxNTdBOEU1MTgxNzNBM0EwMDlGODIxRCAvKiBDcnlwdG9LZXkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTdBOEUzMTgxNzNBM0EwMDlG
ODIxRCAvKiBDcnlwdG9LZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNTgwNSw3ICs1ODAxLDcgQEAKIAkJRjRFNTdFREMyMTNGM0Y1RjAwNEVB
OThFIC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU1N0VEQTIxM0YzRjVGMDA0RUE5OEUgLyogRm9udEF0dHJp
YnV0ZUNoYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RTU3RURGMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0RkIzNEZD
MjM1MEM4NUQwMEYwMDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGQjM0RkEyMzUwQzg1RDAwRjAwOTRB
IC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNTA2NjRGODE1N0Y1MkRDMDBB
QzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3Nh
Z2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY1NDRGNzg5
MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmggKi87IH07CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNl
VGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87
IH07CkBAIC01ODM0LDcgKzU4MzAsNyBAQAogCQlGNTVCM0RFMDEyNTFGMTJEMDAzRUYyNjkgLyog
V2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAqLzsgfTsK
IAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZUNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4
MDQgLyogTG9jYWxlQ29jb2EuaCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8q
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oICovOyB9OwotCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY1QTE1NDI4
MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8q
IFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAv
KiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY1QzA0MUU3MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUyMEZGQ0E5
NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjkxNkM0OEUw
REI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOTE2QzQ4QzBEQjUxMEY4
MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKQEAgLTEz
MjEzLDEzICsxMzIwOSw3IEBACiAJCThBMDU0NTMxMjgzQ0YxM0YwMEY0OThFNyAvKiBFWFRUZXh0
dXJlTm9ybTE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVFRl
eHR1cmVOb3JtMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTA1NDUzMjI4
M0NGMTNGMDBGNDk4RTcgLyogRVhUVGV4dHVyZU5vcm0xNi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFWFRUZXh0dXJlTm9ybTE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBMjhDM0MxMjhFNEVDMDcwMDEwMThCOSAvKiBW
YWxpZGl0eVN0YXRlRmxhZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRpdHlTdGF0ZUZsYWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBMjhDM0Mz
MjhFNEVDMTgwMDEwMThCOSAvKiBWYWxpZGl0eVN0YXRlRmxhZ3MuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZhbGlkaXR5
U3RhdGVGbGFncy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMzA5QzlFMTIz
OTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk4QTNGQ0IxNDI5M0MxMkZFMDBEMTcyOEEgLyogVmFsaWRhdGVk
Rm9ybUxpc3RlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OEEzRkNCMTUyOTNDMTJGRjAwRDE3MjhBIC8qIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRlZEZvcm1MaXN0
ZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEEzRkNCMTgyOTND
MTMxRjAwRDE3MjhBIC8qIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MTWF5YmVGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTNG
Q0IxOTI5M0MxMzFGMDBEMTcyOEEgLyogSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxNYXliZUZvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTNG
RTEyRDI4M0JENjlEMDAwQkQ1REQgLyogRVhUVGV4dHVyZUNvbXByZXNzaW9uQlBUQy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRUZXh0dXJlQ29tcHJlc3Npb25CUFRDLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBM0ZFMTJFMjgzQkQ2OUUwMDBCRDVERCAv
KiBFWFRUZXh0dXJlQ29tcHJlc3Npb25CUFRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEVYVFRleHR1cmVDb21wcmVzc2lvbkJQVEMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4QTNGRTEyRjI4M0JENjlFMDAwQkQ1REQgLyogRVhUVGV4dHVyZUNv
bXByZXNzaW9uQlBUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUVGV4dHVyZUNvbXBy
ZXNzaW9uQlBUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIyOCw4ICsx
MzIxOCw2IEBACiAJCThBNDYyREVCMjg2MzNENjIwMEFCMjA4MCAvKiBXZWJHTE11bHRpRHJhd0lu
c3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR0xNdWx0aURyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDYyREVDMjg2MzNENjMwMEFCMjA4MCAv
KiBXZWJHTE11bHRpRHJhd0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMTXVsdGlEcmF3SW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJ
bnN0YW5jZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDYyREVEMjg2MzNE
NjQwMEFCMjA4MCAvKiBXZWJHTE11bHRpRHJhd0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFu
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xNdWx0aURy
YXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOEE3NUE5M0EyOTQ4MjNGODAwQTgxOUE5IC8qIEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE3NUE5
M0MyOTQ4MjQwMzAwQTgxOUE5IC8qIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2QTEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGlu
Z1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZW5kaW5nU2NyaXB0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBN0NDOTZGMTIwNzZGOEEwMDFENDU4
OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBlbmRpbmdTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTgx
QkY4NDExRENGRDkwMDBEQTJCOTggLyogTmV0d29ya0xvYWRNZXRyaWNzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkTWV0cmljcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTMyNTEsNyArMTMyMzksNiBAQAogCQk4QUNBRUQzOTI4QjgxNjAz
MDBGMjE1QkEgLyogV2ViR0xQcm92b2tpbmdWZXJ0ZXguaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYkdMUHJvdm9raW5nVmVydGV4LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOEFDQUVEM0EyOEI4MTYwMzAwRjIxNUJBIC8qIFdlYkdMUHJvdm9raW5nVmVydGV4LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMUHJvdm9raW5nVmVydGV4
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFDQUVEM0IyOEI4MTYwMzAwRjIx
NUJBIC8qIFdlYkdMUHJvdm9raW5nVmVydGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkdMUHJvdm9raW5nVmVydGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCThBQ0NBRDNDMjk1QTVBMUIwMDc4OEY1RSAvKiBDdXN0b21FbGVtZW50Rm9ybVZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFDRTg4RDQyODVDOEY2NjAwODJDMEZD
IC8qIFdlYkdMRHJhd0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xEcmF3SW5zdGFuY2VkQmFzZVZlcnRl
eEJhc2VJbnN0YW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBQ0U4OEQ1
Mjg1QzhGNjYwMDgyQzBGQyAvKiBXZWJHTERyYXdJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3Rh
bmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMRHJhd0luc3RhbmNl
ZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEFDRTg4RDYyODVDOEY2NjAwODJDMEZDIC8qIFdlYkdMRHJhd0luc3RhbmNlZEJhc2VWZXJ0ZXhC
YXNlSW5zdGFuY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMRHJhd0luc3RhbmNl
ZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTc4NTUsNiArMTc4NDIsOCBAQAogCQlFMTQyNEM5MTE2NEI1MkM4MDBGMzJENDAgLyogQ29v
a2llSmFyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvb2tpZUph
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNDI0QzkyMTY0QjUyQzgwMEYz
MkQ0MCAvKiBDb29raWVKYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29v
a2llSmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NEQ2MTZERkRGOTUw
MDY4REU4MiAvKiBCbG9iUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQmxvYlJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTE0RjFDNDIxNEI1REFDNjAwRUE5MDA5IC8qIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
NEYxQzQzMTRCNURBQzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1MTNENTAxNjc3
RjA4ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE5vdEltcGxlbWVudGVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTE1MjU1MTMxNkZEMjM0RjAwM0Q3QURCIC8qIFdlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1MjU1MTQxNkZEMjM0RjAwM0Q3QURCIC8qIFdl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2
ODc3LDcgKzI2ODY2LDYgQEAKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVj
dGlvblR5cGUuaCAqLywKIAkJCQlCQzI5OTM1QzE3QTFERDU4MDBCQ0U4ODAgLyogQ29sb3JJbnB1
dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDgwMTI1MUYxMkQwMDNFRjI2OSAvKiBDb2xvcklucHV0
VHlwZS5oICovLAotCQkJCThBQ0NBRDNDMjk1QTVBMUIwMDc4OEY1RSAvKiBDdXN0b21FbGVtZW50
Rm9ybVZhbHVlLmggKi8sCiAJCQkJNEIxRTEzRTkyMTc5MEQ3RTAwNDJDRjk4IC8qIEN1c3RvbVBh
aW50Q2FudmFzLmNwcCAqLywKIAkJCQk0QjFFMTNFNjIxNzkwRDY2MDA0MkNGOTggLyogQ3VzdG9t
UGFpbnRDYW52YXMuaCAqLywKIAkJCQlCQzg0RjQzOTI2NDFBQjE0MDBGNTdDMUMgLyogQ3VzdG9t
UGFpbnRJbWFnZS5jcHAgKi8sCkBAIC0yNjkwNyw4ICsyNjg5NSw2IEBACiAJCQkJNDFBMDgyOTky
MjkzMkVGNDAwODQyNkUwIC8qIEZlYXR1cmVQb2xpY3kuaCAqLywKIAkJCQlGNTVCM0Q4OTEyNTFG
MTJEMDAzRUYyNjkgLyogRmlsZUlucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOEExMjUxRjEy
RDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuaCAqLywKLQkJCQk4QTc1QTkzQzI5NDgyNDAzMDBB
ODE5QTkgLyogRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcCAqLywKLQkJCQk4QTc1QTkz
QTI5NDgyM0Y4MDBBODE5QTkgLyogRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggKi8sCiAJ
CQkJOUI1MEIxREMxN0NENEMwRjAwODdGNjNDIC8qIEZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oICov
LAogCQkJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8sCkBA
IC0yNjk5OSw2ICsyNjk4NSw4IEBACiAJCQkJMUFFMkE5RjUwQTFDREE1NzAwQjQyQjI1IC8qIEhU
TUxGb250RWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QjMwOTczNzRGNTAwRDc0NDYzIC8qIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUIyMDk3Mzc0RjUwMEQ3NDQ2
MyAvKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggKi8sCisJCQkJRTE0RjFDNDIxNEI1REFDNjAw
RUE5MDA5IC8qIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwICovLAorCQkJCUUx
NEYxQzQzMTRCNURBQzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
LmggKi8sCiAJCQkJQThERjNGQzcwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmNwcCAqLywKIAkJCQlBOERGM0ZDNjA5N0ZBMEZCMDA1Mjk4MUIgLyogSFRNTEZv
cm1Db250cm9sc0NvbGxlY3Rpb24uaCAqLywKIAkJCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIg
LyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsICovLApAQCAtMjcwNTgsOCArMjcwNDYs
NiBAQAogCQkJCUE4RUE3QzlFMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MTWFycXVlZUVsZW1lbnQu
Y3BwICovLAogCQkJCUE4RUE3QzlEMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MTWFycXVlZUVsZW1l
bnQuaCAqLywKIAkJCQlCQzQ5MUI0RTBDMDIzRTJEMDA5RDYzMTYgLyogSFRNTE1hcnF1ZWVFbGVt
ZW50LmlkbCAqLywKLQkJCQk4QTNGQ0IxODI5M0MxMzFGMDBEMTcyOEEgLyogSFRNTE1heWJlRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcCAqLywKLQkJCQk4QTNGQ0IxOTI5M0MxMzFGMDBE
MTcyOEEgLyogSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggKi8sCiAJCQkJ
NDFENkJEOTgyNTFCM0FEQTAwNTVBN0I3IC8qIEhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQu
aWRsICovLAogCQkJCUU0NDYxMzkyMENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50
LmNwcCAqLywKIAkJCQlFNDQ2MTM5MzBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVu
dC5oICovLApAQCAtMjczMTUsOCArMjczMDEsNiBAQAogCQkJCTVDNTM4MUFGMUQ4NzkzRTAwMEUy
RUJFNiAvKiBVUkxTZWFyY2hQYXJhbXMuaWRsICovLAogCQkJCTBEQTU1RDk1MjhFNjc4RjYwMDRB
Njc1OCAvKiBVc2VyQWN0aXZhdGlvbi5jcHAgKi8sCiAJCQkJMERBNTVEOTYyOEU2NzhGNjAwNEE2
NzU4IC8qIFVzZXJBY3RpdmF0aW9uLmggKi8sCi0JCQkJOEEzRkNCMTUyOTNDMTJGRjAwRDE3MjhB
IC8qIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmNwcCAqLywKLQkJCQk4QTNGQ0IxNDI5M0Mx
MkZFMDBEMTcyOEEgLyogVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQuaCAqLywKIAkJCQlGNUEx
NTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLAogCQkJCUY1
QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovLAogCQkJCTE1
Qzc3MDhBMTAwRDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmggKi8sCkBAIC0zNDM3Miw4
ICszNDM1Niw2IEBACiAJCQkJMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJl
SW5kaWNhdG9yLmggKi8sCiAJCQkJQkNERjMxNzkxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBp
bmdHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLywKIAkJCQlCQ0RGMzE3QTExRjhENjgzMDAzQzVCRjgg
LyogVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCAqLywKLQkJCQk4QTI4QzNDMTI4RTRFQzA3
MDAxMDE4QjkgLyogVmFsaWRpdHlTdGF0ZUZsYWdzLmggKi8sCi0JCQkJOEEyOEMzQzMyOEU0RUMx
ODAwMTAxOEI5IC8qIFZhbGlkaXR5U3RhdGVGbGFncy5pZGwgKi8sCiAJCQkJQ0VGNDE4Q0MxMTc5
Njc4QzAwOUQxMTJDIC8qIFZpZXdwb3J0QXJndW1lbnRzLmNwcCAqLywKIAkJCQlDRUY0MThDRDEx
Nzk2NzhDMDA5RDExMkMgLyogVmlld3BvcnRBcmd1bWVudHMuaCAqLywKIAkJCQk4MzQwN0ZDMDFF
OEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oICovLApAQCAtMzU3OTgs
NyArMzU3ODAsNiBAQAogCQkJCTcxNzM2OTRBMjc1RTBCNUUwMDNBREE5QiAvKiBDdXN0b21FZmZl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxNzM2OTRCMjc1RTBCNkEwMDNBREE5QiAvKiBDdXN0
b21FZmZlY3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxNUYwRDUyOEM0NkQzNTAw
NkI3RjMyIC8qIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OEFDQ0FEM0QyOTVBNUExQzAwNzg4RjVFIC8qIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJENEU5MUIxQzQ2MkNGQzAwNTA2
NUJDIC8qIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJDRDMy
NUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM2
MjgxLDcgKzM2MjYyLDYgQEAKIAkJCQk0QTZFOUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9udFRh
Z2dlZFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjAxNUMwQTFCRTZGRUIyMDA4MjIz
ODkgLyogRm9udFZhcmlhbnRCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNTMzMTI1
NjA1OTAzMDAyOEM1OTIgLyogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk4QTc1QTkzQjI5NDgyM0Y5MDBBODE5QTkgLyogRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjUwQjFERTE3Q0Q0QzBGMDA4N0Y2M0MgLyog
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDVDRUQyQTBBNDBC
QjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0U2Q0JGQjE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTM2NDc5LDYgKzM2NDU5LDcgQEAKIAkJCQlBOENGRjdBNjBBMTU2OTc4MDAwQTQyMzQg
LyogSFRNTEZvbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg2RjEyMjg4M0U5
MDBCODFGRjggLyogSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgxMzY5Q0UwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCUUxNEYxQzQ1MTRCNURBQzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50V2l0aFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGM0ZDRTA5N0ZB
MEZDMDA1Mjk4MUIgLyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTM2OUQwMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MRm9ybUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4NzFERTJCMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM2NTAyLDcgKzM2NDgzLDYgQEAKIAkJCQlBODcxREMy
MDBBMTUyMDU3MDBCMTJBNjggLyogSFRNTExpbmtFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBN0QyQzBBMTkzODU1MDBBOEVGNUYgLyogSFRNTE1hcEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4RUE3Q0FCMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MTWFycXVlZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAotCQkJCThBM0ZDQjFCMjkzQzEzMUYwMEQxNzI4QSAvKiBIVE1MTWF5
YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYx
M0E1MENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDUyMDlFNjFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREMzMTJFQTIyRkNEN0M2MDAxMjA0RUMgLyogSFRNTE1lZGlh
RWxlbWVudFJlbW90ZVBsYXliYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTM5NjE4LDEyICszOTU5
OCwxMCBAQAogCQkJCTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVB
QSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZBRkJGMTkxNUE1RkE3NDAw
MDgzQTIwIC8qIFVUSVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEEzRkNCMTYyOTND
MTJGRjAwRDE3MjhBIC8qIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDhEMTAw
RDNDNkIwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk4QTI4
QzNDMjI4RTRFQzA3MDAxMDE4QjkgLyogVmFsaWRpdHlTdGF0ZUZsYWdzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkgLyogVmVjdG9yTWF0aC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYxQTBDMzgyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9z
aXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBmYzlhMGE4YzQwNzguLjcy
YjQzYmRhZTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0zNjIzLDE5ICszNjIzLDE1IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNET01IaWRkZW4oKSBjb25zdAogCiBib29sIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzU2hvd2luZ1ZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKIHsKLSAgICBpZiAoUmVm
UHRyIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIGxpc3Rl
ZEVsZW1lbnQgPSBlbGVtZW50LT5hc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkpCi0gICAg
ICAgICAgICByZXR1cm4gbGlzdGVkRWxlbWVudC0+aXNTaG93aW5nVmFsaWRhdGlvbk1lc3NhZ2Uo
KTsKLSAgICB9CisgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KG5vZGUoKSkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqbm9kZSgpKS5p
c1Nob3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAogU3Ry
aW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKIHsKLSAg
ICBpZiAoUmVmUHRyIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIGxpc3RlZEVsZW1lbnQgPSBlbGVtZW50LT5hc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
KCkpCi0gICAgICAgICAgICByZXR1cm4gbGlzdGVkRWxlbWVudC0+dmFsaWRhdGlvbk1lc3NhZ2Uo
KTsKLSAgICB9CisgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KG5vZGUoKSkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqbm9kZSgpKS52
YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5j
cHAKaW5kZXggMWVhZGUwZTgyNTg1Li44OTY0NzIwMThhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcApAQCAt
MzEsMTMgKzMxLDEwIEBACiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAi
RWxlbWVudFJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCi0jaW5jbHVkZSAiSFRN
TEZvcm1FbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFVua25vd25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKICNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiSlNET01Gb3JtRGF0YS5oIgogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SlNFeGVjU3RhdGUuaCIKQEAgLTkyLDE3ICs4OSw2IEBAIFJlZjxFbGVtZW50PiBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U6OmNvbnN0cnVjdEVsZW1lbnRXaXRoRmFsbGJhY2soRG9jdW1lbnQmIGRv
CiAgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKLVJlZjxIVE1MRWxlbWVudD4gSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlOjpjcmVhdGVFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBp
ZiAobV9pc0Zvcm1Bc3NvY2lhdGVkKSB7Ci0gICAgICAgIGF1dG8gZWxlbWVudCA9IEhUTUxNYXli
ZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6Y3JlYXRlKG1fbmFtZSwgZG9jdW1lbnQpOwot
ICAgICAgICBlbGVtZW50LT5zZXRJbnRlcmZhY2VJc0Zvcm1Bc3NvY2lhdGVkKCk7Ci0gICAgICAg
IHJldHVybiBlbGVtZW50OwotICAgIH0KLQotICAgIHJldHVybiBIVE1MRWxlbWVudDo6Y3JlYXRl
KG1fbmFtZSwgZG9jdW1lbnQpOwotfQotCiBSZWZQdHI8RWxlbWVudD4gSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjp0cnlUb0NvbnN0cnVjdEN1c3RvbUVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBBdG9tU3RyaW5nJiBsb2NhbE5hbWUsIFBhcnNlckNvbnN0cnVjdEVsZW1lbnRXaXRo
RW1wdHlTdGFjayBwYXJzZXJDb25zdHJ1Y3RFbGVtZW50V2l0aEVtcHR5U3RhY2spCiB7CiAgICAg
aWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQpAQCAtMjM4LDExICsyMjQsNiBAQCB2b2lkIEpTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2lzRm9ybUFzc29jaWF0ZWQpIHsKLSAg
ICAgICAgQVNTRVJUKGlzPEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4oZWxl
bWVudCkpOwotICAgICAgICBkb3duY2FzdDxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQ+KGVsZW1lbnQpLndpbGxVcGdyYWRlRm9ybUFzc29jaWF0ZWQoKTsKLSAgICB9Ci0KICAg
ICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxv
d2VkKCkpOwogICAgIEpTRXhlY1N0YXRlOjppbnN0cnVtZW50RnVuY3Rpb24oY29udGV4dCwgY29u
c3RydWN0RGF0YSk7CkBAIC0yNjMsMTMgKzI0NCw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50SW50
ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICByZXBvcnRF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVy
bmVkIGEgd3JvbmcgZWxlbWVudCJfcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCiAgICAg
ZWxlbWVudC5zZXRJc0RlZmluZWRDdXN0b21FbGVtZW50KCp0aGlzKTsKLQotICAgIGlmIChtX2lz
Rm9ybUFzc29jaWF0ZWQpIHsKLSAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9uU3RhY2sgY3Vz
dG9tRWxlbWVudFJlYWN0aW9uU3RhY2sobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgICAgIGRv
d25jYXN0PEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4oZWxlbWVudCkuZGlk
VXBncmFkZUZvcm1Bc3NvY2lhdGVkKCk7Ci0gICAgfQogfQogCiB2b2lkIEpTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZTo6aW52b2tlQ2FsbGJhY2soRWxlbWVudCYgZWxlbWVudCwgSlNPYmplY3QqIGNh
bGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKEpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxP
YmplY3QqLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYpPiYgYWRkQXJndW1lbnRzKQpAQCAtMzYxLDQy
ICszMzYsNiBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6aW52b2tlQXR0cmlidXRl
Q2hhbmdlZENhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQsCiAgICAgfSk7CiB9CiAKLXZvaWQgSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlOjppbnZva2VGb3JtQXNzb2NpYXRlZENhbGxiYWNrKEVsZW1l
bnQmIGVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCogYXNzb2NpYXRlZEZvcm0pCi17Ci0gICAgaW52
b2tlQ2FsbGJhY2soZWxlbWVudCwgbV9mb3JtQXNzb2NpYXRlZENhbGxiYWNrLmdldCgpLCBbJl0o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzKSB7Ci0gICAgICAgIGFyZ3Mu
YXBwZW5kKHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBhc3NvY2lhdGVk
Rm9ybSkpOwotICAgIH0pOwotfQotCi12b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6aW52
b2tlRm9ybVJlc2V0Q2FsbGJhY2soRWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBpbnZva2VDYWxs
YmFjayhlbGVtZW50LCBtX2Zvcm1SZXNldENhbGxiYWNrLmdldCgpKTsKLX0KLQotdm9pZCBKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2U6Omludm9rZUZvcm1EaXNhYmxlZENhbGxiYWNrKEVsZW1lbnQm
IGVsZW1lbnQsIGJvb2wgaXNEaXNhYmxlZCkKLXsKLSAgICBpbnZva2VDYWxsYmFjayhlbGVtZW50
LCBtX2Zvcm1EaXNhYmxlZENhbGxiYWNrLmdldCgpLCBbJl0oSlNHbG9iYWxPYmplY3QqLCBKU0RP
TUdsb2JhbE9iamVjdCosIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzKSB7Ci0gICAgICAgIGFy
Z3MuYXBwZW5kKGpzQm9vbGVhbihpc0Rpc2FibGVkKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlOjppbnZva2VGb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soRWxl
bWVudCYgZWxlbWVudCwgQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSByZXN0b3JlZFN0YXRlKQotewot
ICAgIGludm9rZUNhbGxiYWNrKGVsZW1lbnQsIG1fZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrLmdl
dCgpLCBbJl0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzKSB7Ci0gICAg
ICAgIGF1dG8mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKLQotICAgICAgICBXVEY6
OnN3aXRjaE9uKHJlc3RvcmVkU3RhdGUsIFsmXShSZWZQdHI8RE9NRm9ybURhdGE+IHN0YXRlKSB7
Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZCh0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdCwgKnN0YXRlKSk7Ci0gICAgICAgIH0sIFsmXShjb25zdCBTdHJpbmcmIHN0YXRlKSB7
Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyh2bSwgc3RhdGUpKTsKLSAgICAgICAg
fSwgWyZdKFJlZlB0cjxGaWxlPikgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGFyZ3MuYXBwZW5kKGpzTm9udHJpdmlhbFN0cmluZyh2
bSwgInJlc3RvcmUiX3MpKTsKLSAgICB9KTsKLX0KLQogdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRl
cmZhY2U6OnNldEZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2soSlNPYmplY3QqIGNhbGxiYWNrKQogewog
ICAgIG1fZm9ybUFzc29jaWF0ZWRDYWxsYmFjayA9IGNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAppbmRleCBi
YWI5NmUyZDNkNzMuLmU4ODM1ZDBjM2YwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgKQEAgLTI3LDcgKzI3LDYgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKLSNpbmNsdWRl
ICJDdXN0b21FbGVtZW50Rm9ybVZhbHVlLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvV2Vhay5oPgpAQCAtNDgsOCArNDcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7Ci1jbGFz
cyBIVE1MRWxlbWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTWF0aE1MRWxl
bWVudDsKK2NsYXNzIFNWR0VsZW1lbnQ7CiAKIGVudW0gY2xhc3MgUGFyc2VyQ29uc3RydWN0RWxl
bWVudFdpdGhFbXB0eVN0YWNrIHsgTm8sIFllcyB9OwogCkBAIC02Miw3ICs2Miw2IEBAIHB1Ymxp
YzoKIAogICAgIFJlZjxFbGVtZW50PiBjb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNrKERvY3Vt
ZW50JiwgY29uc3QgQXRvbVN0cmluZyYsIFBhcnNlckNvbnN0cnVjdEVsZW1lbnRXaXRoRW1wdHlT
dGFjayA9IFBhcnNlckNvbnN0cnVjdEVsZW1lbnRXaXRoRW1wdHlTdGFjazo6Tm8pOwogICAgIFJl
ZjxFbGVtZW50PiBjb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNrKERvY3VtZW50JiwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwotICAgIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlRWxlbWVudChEb2N1
bWVudCYpOwogCiAgICAgdm9pZCB1cGdyYWRlRWxlbWVudChFbGVtZW50Jik7CiAKQEAgLTg5LDIz
ICs4OCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NoYWRvd0Rpc2FibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1NoYWRvd0Rpc2FibGVkOyB9CiAKICAgICB2b2lkIHNldElzRm9ybUFzc29jaWF0
ZWQoKSB7IG1faXNGb3JtQXNzb2NpYXRlZCA9IHRydWU7IH0KLSAgICBib29sIGlzRm9ybUFzc29j
aWF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9ybUFzc29jaWF0ZWQ7IH0KLQogICAgIHZvaWQg
c2V0Rm9ybUFzc29jaWF0ZWRDYWxsYmFjayhKU0M6OkpTT2JqZWN0Kik7Ci0gICAgYm9vbCBoYXNG
b3JtQXNzb2NpYXRlZENhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gISFtX2Zvcm1Bc3NvY2lhdGVk
Q2FsbGJhY2s7IH0KLSAgICB2b2lkIGludm9rZUZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2soRWxlbWVu
dCYsIEhUTUxGb3JtRWxlbWVudCopOwotCiAgICAgdm9pZCBzZXRGb3JtUmVzZXRDYWxsYmFjayhK
U0M6OkpTT2JqZWN0Kik7Ci0gICAgYm9vbCBoYXNGb3JtUmVzZXRDYWxsYmFjaygpIGNvbnN0IHsg
cmV0dXJuICEhbV9mb3JtUmVzZXRDYWxsYmFjazsgfQotICAgIHZvaWQgaW52b2tlRm9ybVJlc2V0
Q2FsbGJhY2soRWxlbWVudCYpOwotCiAgICAgdm9pZCBzZXRGb3JtRGlzYWJsZWRDYWxsYmFjayhK
U0M6OkpTT2JqZWN0Kik7Ci0gICAgYm9vbCBoYXNGb3JtRGlzYWJsZWRDYWxsYmFjaygpIGNvbnN0
IHsgcmV0dXJuICEhbV9mb3JtRGlzYWJsZWRDYWxsYmFjazsgfQotICAgIHZvaWQgaW52b2tlRm9y
bURpc2FibGVkQ2FsbGJhY2soRWxlbWVudCYsIGJvb2wgaXNEaXNhYmxlZCk7Ci0KICAgICB2b2lk
IHNldEZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhKU0M6OkpTT2JqZWN0Kik7Ci0gICAgYm9vbCBo
YXNGb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiAhIW1fZm9ybVN0YXRl
UmVzdG9yZUNhbGxiYWNrOyB9Ci0gICAgdm9pZCBpbnZva2VGb3JtU3RhdGVSZXN0b3JlQ2FsbGJh
Y2soRWxlbWVudCYsIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUgc3RhdGUpOwogCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
ICAgICBKU0M6OkpTT2JqZWN0KiBjb25zdHJ1Y3RvcigpIHsgcmV0dXJuIG1fY29uc3RydWN0b3Iu
Z2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVs
ZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVu
dEN1c3RvbS5jcHAKaW5kZXggZDc0MGZhMTdhODQxLi4zMGE2MDE4ODU2OTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rv
ckJhc2UuaCIKQEAgLTg2LDcgKzg1LDcgQEAgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNIVE1M
RWxlbWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICAg
ICAgYXV0byogbmV3RWxlbWVudFN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1
YmNsYXNzU3RydWN0dXJlKGxleGljYWxHbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgYmFzZVN0cnVj
dHVyZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICAg
ICAgUmVmPEhUTUxFbGVtZW50PiBlbGVtZW50ID0gZWxlbWVudEludGVyZmFjZS0+Y3JlYXRlRWxl
bWVudChkb2N1bWVudCk7CisgICAgICAgIFJlZjxIVE1MRWxlbWVudD4gZWxlbWVudCA9IEhUTUxF
bGVtZW50OjpjcmVhdGUoZWxlbWVudEludGVyZmFjZS0+bmFtZSgpLCBkb2N1bWVudCk7CiAgICAg
ICAgIGVsZW1lbnQtPnNldElzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKmVsZW1lbnRJbnRlcmZhY2Up
OwogICAgICAgICBhdXRvKiBqc0VsZW1lbnQgPSBKU0hUTUxFbGVtZW50OjpjcmVhdGUobmV3RWxl
bWVudFN0cnVjdHVyZSwgbmV3VGFyZ2V0R2xvYmFsT2JqZWN0LCBlbGVtZW50LmdldCgpKTsKICAg
ICAgICAgY2FjaGVXcmFwcGVyKG5ld1RhcmdldEdsb2JhbE9iamVjdC0+d29ybGQoKSwgZWxlbWVu
dC5wdHIoKSwganNFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyVGVzdEZ1bmN0aW9ucy5oCmluZGV4IDRhNjg1MGJlYjk3MC4uODYxZmE1ZmFlMDdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9u
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25z
LmgKQEAgLTU3NSwxMiArNTc1LDE2IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBtYXRjaGVzTW9kYWxQ
c2V1ZG9DbGFzcyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQogCiBBTFdBWVNfSU5MSU5FIGJvb2wg
bWF0Y2hlc1VzZXJJbnZhbGlkUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsK
LSAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzVXNlckludmFsaWRQc2V1ZG9DbGFzcygpOworICAg
IGlmIChjb25zdCBhdXRvKiBmb3JtQ29udHJvbEVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRN
TEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmb3JtQ29udHJv
bEVsZW1lbnQtPm1hdGNoZXNVc2VySW52YWxpZFBzZXVkb0NsYXNzKCk7CisgICAgcmV0dXJuIGZh
bHNlOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgbWF0Y2hlc1VzZXJWYWxpZFBzZXVkb0NsYXNz
KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlc1Vz
ZXJWYWxpZFBzZXVkb0NsYXNzKCk7CisgICAgaWYgKGNvbnN0IGF1dG8qIGZvcm1Db250cm9sRWxl
bWVudCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PihlbGVtZW50KSkK
KyAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sRWxlbWVudC0+bWF0Y2hlc1VzZXJWYWxpZFBzZXVk
b0NsYXNzKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVl
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNw
cAppbmRleCBlMTI0OWFlMzllNWMuLmUxMDI0ZjlkZmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuY3BwCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNp
bmNsdWRlICJFdmVudExvb3AuaCIKLSNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKQEAgLTUwLDEwICs0OSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgRGlzY29ubmVjdGVkLAogICAgICAgICBBZG9wdGVkLAogICAgICAgICBBdHRy
aWJ1dGVDaGFuZ2VkLAotICAgICAgICBGb3JtQXNzb2NpYXRlZCwKLSAgICAgICAgRm9ybVJlc2V0
LAotICAgICAgICBGb3JtRGlzYWJsZWQsCi0gICAgICAgIEZvcm1TdGF0ZVJlc3RvcmUsCiAgICAg
fTsKIAogICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbShUeXBlIHR5cGUpCkBAIC03
MywyMSArNjgsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9uZXdWYWx1ZShuZXdWYWx1ZSkKICAg
ICB7IH0KIAotICAgIGV4cGxpY2l0IEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbShIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCi0gICAgICAgIDogbV90eXBlKFR5cGU6OkZvcm1Bc3NvY2lhdGVk
KQotICAgICAgICAsIG1fYXNzb2NpYXRlZEZvcm0oZm9ybSkKLSAgICB7IH0KLQotICAgIGV4cGxp
Y2l0IEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbShib29sIGlzRGlzYWJsZWQpCi0gICAg
ICAgIDogbV90eXBlKFR5cGU6OkZvcm1EaXNhYmxlZCkKLSAgICAgICAgLCBtX2lzRGlzYWJsZWQo
aXNEaXNhYmxlZCkKLSAgICB7IH0KLQotICAgIGV4cGxpY2l0IEN1c3RvbUVsZW1lbnRSZWFjdGlv
blF1ZXVlSXRlbShDdXN0b21FbGVtZW50Rm9ybVZhbHVlJiYgc3RhdGUpCi0gICAgICAgIDogbV90
eXBlKFR5cGU6OkZvcm1TdGF0ZVJlc3RvcmUpCi0gICAgICAgICwgbV9mb3JtQXNzb2NpYXRlZFN0
YXRlKHN0YXRlKQotICAgIHsgfQotCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CiAKICAgICB2b2lkIGludm9rZShFbGVtZW50JiBlbGVtZW50LCBKU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UmIGVsZW1lbnRJbnRlcmZhY2UpCkBAIC0xMDksMTkgKzg5LDYgQEAgcHVibGlj
OgogICAgICAgICAgICAgQVNTRVJUKG1fYXR0cmlidXRlTmFtZSk7CiAgICAgICAgICAgICBlbGVt
ZW50SW50ZXJmYWNlLmludm9rZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhlbGVtZW50LCBtX2F0
dHJpYnV0ZU5hbWUudmFsdWUoKSwgbV9vbGRWYWx1ZSwgbV9uZXdWYWx1ZSk7CiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlOjpGb3JtQXNzb2NpYXRlZDoKLSAgICAgICAgICAg
IGVsZW1lbnRJbnRlcmZhY2UuaW52b2tlRm9ybUFzc29jaWF0ZWRDYWxsYmFjayhlbGVtZW50LCBt
X2Fzc29jaWF0ZWRGb3JtLmdldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFR5cGU6OkZvcm1SZXNldDoKLSAgICAgICAgICAgIGVsZW1lbnRJbnRlcmZhY2UuaW52b2tlRm9y
bVJlc2V0Q2FsbGJhY2soZWxlbWVudCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBUeXBlOjpGb3JtRGlzYWJsZWQ6Ci0gICAgICAgICAgICBBU1NFUlQobV9pc0Rpc2FibGVkKTsK
LSAgICAgICAgICAgIGVsZW1lbnRJbnRlcmZhY2UuaW52b2tlRm9ybURpc2FibGVkQ2FsbGJhY2so
ZWxlbWVudCwgbV9pc0Rpc2FibGVkLnZhbHVlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgVHlwZTo6Rm9ybVN0YXRlUmVzdG9yZToKLSAgICAgICAgICAgIGVsZW1lbnRJbnRl
cmZhY2UuaW52b2tlRm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKGVsZW1lbnQsIG1fZm9ybUFzc29j
aWF0ZWRTdGF0ZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MTMyLDEyICs5OSw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxRdWFsaWZpZWROYW1l
PiBtX2F0dHJpYnV0ZU5hbWU7CiAgICAgQXRvbVN0cmluZyBtX29sZFZhbHVlOwogICAgIEF0b21T
dHJpbmcgbV9uZXdWYWx1ZTsKLQotICAgIC8vIEZJWE1FOiBEb24ndCBhbGxvY2F0ZSBhbGwgdGhl
c2UgYXJndW1lbnRzIGZvciBhbGwgY2FsbGJhY2sgdHlwZXMuCi0gICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTk1NgotICAgIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4gbV9pc0Rpc2FibGVkOwotICAgIFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IG1fYXNzb2NpYXRl
ZEZvcm07Ci0gICAgQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSBtX2Zvcm1Bc3NvY2lhdGVkU3RhdGU7
CiB9OwogCiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6Q3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWUoSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJiBlbGVtZW50SW50ZXJmYWNlKQpAQCAtMjQ2
LDU1ICsyMDcsNiBAQCB2b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQXR0
cmlidXRlQ2hhbmdlZENhbGxiYWNrSWZOZWVkZWQoRWxlbWVudAogICAgIGVucXVldWVFbGVtZW50
T25BcHByb3ByaWF0ZUVsZW1lbnRRdWV1ZShlbGVtZW50KTsKIH0KIAotdm9pZCBDdXN0b21FbGVt
ZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2tJZk5lZWRlZChF
bGVtZW50JiBlbGVtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGFzc29jaWF0ZWRGb3JtKQotewotICAg
IEFTU0VSVChDdXN0b21FbGVtZW50UmVhY3Rpb25EaXNhbGxvd2VkU2NvcGU6OmlzUmVhY3Rpb25B
bGxvd2VkKCkpOwotICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucmVmQ291bnQoKSA8PSAwKQot
ICAgICAgICByZXR1cm47IC8vIERvbid0IGVucXVldWUgZm9ybUFzc29jaWF0ZWRDYWxsYmFjayBp
ZiB0aGUgZW50aXJlIGRvY3VtZW50IGlzIGdldHRpbmcgZGVzdHJ1Y3RlZC4KLSAgICBhdXRvJiBx
dWV1ZSA9ICplbGVtZW50LnJlYWN0aW9uUXVldWUoKTsKLSAgICBpZiAoIXF1ZXVlLm1faW50ZXJm
YWNlLT5oYXNGb3JtQXNzb2NpYXRlZENhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBB
U1NFUlQocXVldWUuaXNGb3JtQXNzb2NpYXRlZCgpKTsKLSAgICBxdWV1ZS5tX2l0ZW1zLmFwcGVu
ZChDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZUl0ZW0geyBhc3NvY2lhdGVkRm9ybSB9KTsKLSAg
ICBlbnF1ZXVlRWxlbWVudE9uQXBwcm9wcmlhdGVFbGVtZW50UXVldWUoZWxlbWVudCk7Ci19Ci0K
LXZvaWQgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVGb3JtUmVzZXRDYWxsYmFj
a0lmTmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgQVNTRVJUKEN1c3RvbUVsZW1lbnRS
ZWFjdGlvbkRpc2FsbG93ZWRTY29wZTo6aXNSZWFjdGlvbkFsbG93ZWQoKSk7Ci0gICAgQVNTRVJU
KGVsZW1lbnQuZG9jdW1lbnQoKS5yZWZDb3VudCgpID4gMCk7Ci0gICAgYXV0byYgcXVldWUgPSAq
ZWxlbWVudC5yZWFjdGlvblF1ZXVlKCk7Ci0gICAgaWYgKCFxdWV1ZS5tX2ludGVyZmFjZS0+aGFz
Rm9ybVJlc2V0Q2FsbGJhY2soKSkKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChxdWV1ZS5p
c0Zvcm1Bc3NvY2lhdGVkKCkpOwotICAgIHF1ZXVlLm1faXRlbXMuYXBwZW5kKHsgQ3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWVJdGVtOjpUeXBlOjpGb3JtUmVzZXQgfSk7Ci0gICAgZW5xdWV1ZUVs
ZW1lbnRPbkFwcHJvcHJpYXRlRWxlbWVudFF1ZXVlKGVsZW1lbnQpOwotfQotCi12b2lkIEN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRm9ybURpc2FibGVkQ2FsbGJhY2tJZk5lZWRl
ZChFbGVtZW50JiBlbGVtZW50LCBib29sIGlzRGlzYWJsZWQpCi17Ci0gICAgQVNTRVJUKEN1c3Rv
bUVsZW1lbnRSZWFjdGlvbkRpc2FsbG93ZWRTY29wZTo6aXNSZWFjdGlvbkFsbG93ZWQoKSk7Ci0g
ICAgQVNTRVJUKGVsZW1lbnQuZG9jdW1lbnQoKS5yZWZDb3VudCgpID4gMCk7Ci0gICAgYXV0byYg
cXVldWUgPSAqZWxlbWVudC5yZWFjdGlvblF1ZXVlKCk7Ci0gICAgaWYgKCFxdWV1ZS5tX2ludGVy
ZmFjZS0+aGFzRm9ybURpc2FibGVkQ2FsbGJhY2soKSkKLSAgICAgICAgcmV0dXJuOwotICAgIEFT
U0VSVChxdWV1ZS5pc0Zvcm1Bc3NvY2lhdGVkKCkpOwotICAgIHF1ZXVlLm1faXRlbXMuYXBwZW5k
KEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbSB7IGlzRGlzYWJsZWQgfSk7Ci0gICAgZW5x
dWV1ZUVsZW1lbnRPbkFwcHJvcHJpYXRlRWxlbWVudFF1ZXVlKGVsZW1lbnQpOwotfQotCi12b2lk
IEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRm9ybVN0YXRlUmVzdG9yZUNhbGxi
YWNrSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSYmIHN0
YXRlKQotewotICAgIEFTU0VSVChDdXN0b21FbGVtZW50UmVhY3Rpb25EaXNhbGxvd2VkU2NvcGU6
OmlzUmVhY3Rpb25BbGxvd2VkKCkpOwotICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkucmVm
Q291bnQoKSA+IDApOwotICAgIGF1dG8mIHF1ZXVlID0gKmVsZW1lbnQucmVhY3Rpb25RdWV1ZSgp
OwotICAgIGlmICghcXVldWUubV9pbnRlcmZhY2UtPmhhc0Zvcm1TdGF0ZVJlc3RvcmVDYWxsYmFj
aygpKQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKHF1ZXVlLmlzRm9ybUFzc29jaWF0ZWQo
KSk7Ci0gICAgcXVldWUubV9pdGVtcy5hcHBlbmQoQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWVJ
dGVtIHsgV1RGTW92ZShzdGF0ZSkgfSk7Ci0gICAgZW5xdWV1ZUVsZW1lbnRPbkFwcHJvcHJpYXRl
RWxlbWVudFF1ZXVlKGVsZW1lbnQpOwotfQotCiB2b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1
ZXVlOjplbnF1ZXVlUG9zdFVwZ3JhZGVSZWFjdGlvbnMoRWxlbWVudCYgZWxlbWVudCkKIHsKICAg
ICBBU1NFUlQoQ3VzdG9tRWxlbWVudFJlYWN0aW9uRGlzYWxsb3dlZFNjb3BlOjppc1JlYWN0aW9u
QWxsb3dlZCgpKTsKQEAgLTMyNiwxNiArMjM4LDYgQEAgYm9vbCBDdXN0b21FbGVtZW50UmVhY3Rp
b25RdWV1ZTo6aXNFbGVtZW50SW50ZXJuYWxzRGlzYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBt
X2ludGVyZmFjZS0+aXNFbGVtZW50SW50ZXJuYWxzRGlzYWJsZWQoKTsKIH0KIAotYm9vbCBDdXN0
b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6aXNGb3JtQXNzb2NpYXRlZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1faW50ZXJmYWNlLT5pc0Zvcm1Bc3NvY2lhdGVkKCk7Ci19Ci0KLWJvb2wgQ3VzdG9t
RWxlbWVudFJlYWN0aW9uUXVldWU6Omhhc0Zvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjaygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1faW50ZXJmYWNlLT5oYXNGb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2so
KTsKLX0KLQogYm9vbCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6aXNFbGVtZW50SW50ZXJu
YWxzQXR0YWNoZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX2VsZW1lbnRJbnRlcm5hbHNBdHRh
Y2hlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rp
b25RdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmgKaW5kZXggYWFlOGMwMzgyOTZjLi4zNzk5YWQ2NTIwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oCkBAIC0yNSw3ICsyNSw2IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkdDUmVhY2hhYmxlUmVmLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQzLDcgKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWVJdGVtOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFbGVtZW50OwotY2xhc3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlOwogY2xhc3MgUXVhbGlmaWVkTmFtZTsKIApAQCAtNzcsMTggKzc1
LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBlbnF1ZXVlRGlzY29ubmVjdGVkQ2FsbGJh
Y2tJZk5lZWRlZChFbGVtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgZW5xdWV1ZUFkb3B0ZWRDYWxs
YmFja0lmTmVlZGVkKEVsZW1lbnQmLCBEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBu
ZXdEb2N1bWVudCk7CiAgICAgc3RhdGljIHZvaWQgZW5xdWV1ZUF0dHJpYnV0ZUNoYW5nZWRDYWxs
YmFja0lmTmVlZGVkKEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlKTsKLSAgICBzdGF0aWMg
dm9pZCBlbnF1ZXVlRm9ybUFzc29jaWF0ZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQmLCBIVE1M
Rm9ybUVsZW1lbnQqKTsKLSAgICBzdGF0aWMgdm9pZCBlbnF1ZXVlRm9ybURpc2FibGVkQ2FsbGJh
Y2tJZk5lZWRlZChFbGVtZW50JiwgYm9vbCBpc0Rpc2FibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBl
bnF1ZXVlRm9ybVJlc2V0Q2FsbGJhY2tJZk5lZWRlZChFbGVtZW50Jik7Ci0gICAgc3RhdGljIHZv
aWQgZW5xdWV1ZUZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQmLCBDdXN0
b21FbGVtZW50Rm9ybVZhbHVlJiYpOwogICAgIHN0YXRpYyB2b2lkIGVucXVldWVQb3N0VXBncmFk
ZVJlYWN0aW9ucyhFbGVtZW50Jik7CiAKICAgICBib29sIG9ic2VydmVzU3R5bGVBdHRyaWJ1dGUo
KSBjb25zdDsKICAgICBib29sIGlzRWxlbWVudEludGVybmFsc0Rpc2FibGVkKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc0VsZW1lbnRJbnRlcm5hbHNBdHRhY2hlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
RWxlbWVudEludGVybmFsc0F0dGFjaGVkKCk7Ci0gICAgYm9vbCBpc0Zvcm1Bc3NvY2lhdGVkKCkg
Y29uc3Q7Ci0gICAgYm9vbCBoYXNGb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soKSBjb25zdDsKIAog
ICAgIHZvaWQgaW52b2tlQWxsKEVsZW1lbnQmKTsKICAgICB2b2lkIGNsZWFyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA0NmQ0YWY0NzgwNWYuLjI5ZjQyNzRhZDEyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMTIsNyArMTEyLDYgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxM
aW5rRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWV0
YUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZUNvbGxlY3Rpb24uaCIKQEAgLTEwMDYsNyAr
MTAwNSw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlVXBn
cmFkZUNhbmRpZGF0ZUVsZW1lbnQoRG9jdW1lbnQmIGRvCiAgICAgaWYgKERvY3VtZW50Ojp2YWxp
ZGF0ZUN1c3RvbUVsZW1lbnROYW1lKG5hbWUubG9jYWxOYW1lKCkpICE9IEN1c3RvbUVsZW1lbnRO
YW1lVmFsaWRhdGlvblN0YXR1czo6VmFsaWQpCiAgICAgICAgIHJldHVybiBIVE1MVW5rbm93bkVs
ZW1lbnQ6OmNyZWF0ZShuYW1lLCBkb2N1bWVudCk7CiAKLSAgICBhdXRvIGVsZW1lbnQgPSBIVE1M
TWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZShuYW1lLCBkb2N1bWVudCk7
CisgICAgYXV0byBlbGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShuYW1lLCBkb2N1bWVudCk7
CiAgICAgZWxlbWVudC0+c2V0SXNDdXN0b21FbGVtZW50VXBncmFkZUNhbmRpZGF0ZSgpOwogICAg
IHJldHVybiBlbGVtZW50OwogfQpAQCAtMTIwNyw3ICsxMjA2LDcgQEAgc3RhdGljIFJlZjxIVE1M
RWxlbWVudD4gY3JlYXRlRmFsbGJhY2tIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFF1YWwKICAgICAgICAgYXV0byogcmVnaXN0cnkgPSB3aW5kb3ctPmN1c3RvbUVsZW1lbnRS
ZWdpc3RyeSgpOwogICAgICAgICBpZiAoVU5MSUtFTFkocmVnaXN0cnkpKSB7CiAgICAgICAgICAg
ICBpZiAoUmVmUHRyIGVsZW1lbnRJbnRlcmZhY2UgPSByZWdpc3RyeS0+ZmluZEludGVyZmFjZShu
YW1lKSkgewotICAgICAgICAgICAgICAgIGF1dG8gZWxlbWVudCA9IGVsZW1lbnRJbnRlcmZhY2Ut
PmNyZWF0ZUVsZW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgIGF1dG8gZWxlbWVudCA9
IEhUTUxFbGVtZW50OjpjcmVhdGUobmFtZSwgZG9jdW1lbnQpOwogICAgICAgICAgICAgICAgIGVs
ZW1lbnQtPnNldElzQ3VzdG9tRWxlbWVudFVwZ3JhZGVDYW5kaWRhdGUoKTsKICAgICAgICAgICAg
ICAgICBlbGVtZW50LT5lbnF1ZXVlVG9VcGdyYWRlKCplbGVtZW50SW50ZXJmYWNlKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3NWY3
ZjJlMGI1OTYuLjE2YTYyZTM2MDk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNTksNyAr
NTksNiBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGb2N1c0V2ZW50LmgiCi0jaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtODM5LDE2ICs4MzgsNiBAQCBib29s
IEVsZW1lbnQ6OmlzVXNlckFjdGlvbkVsZW1lbnRIYXNGb2N1c1Zpc2libGUoKSBjb25zdAogICAg
IHJldHVybiBkb2N1bWVudCgpLnVzZXJBY3Rpb25FbGVtZW50cygpLmhhc0ZvY3VzVmlzaWJsZSgq
dGhpcyk7CiB9CiAKLUZvcm1MaXN0ZWRFbGVtZW50KiBFbGVtZW50Ojphc0Zvcm1MaXN0ZWRFbGVt
ZW50KCkKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotVmFsaWRhdGVkRm9ybUxpc3RlZEVs
ZW1lbnQqIEVsZW1lbnQ6OmFzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKQotewotICAgIHJl
dHVybiBudWxscHRyOwotfQotCiBib29sIEVsZW1lbnQ6OmlzVXNlckFjdGlvbkVsZW1lbnRIYXNG
b2N1c1dpdGhpbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVXNlckFjdGlvbkVsZW1lbnQoKSk7
CkBAIC0yOTAwLDYgKzI4ODksNyBAQCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZSogRWxlbWVu
dDo6cmVhY3Rpb25RdWV1ZSgpIGNvbnN0CiAgICAgaWYgKGlzRmFpbGVkT3JQcmVjdXN0b21pemVk
Q3VzdG9tRWxlbWVudCgpKSB7CiAgICAgICAgIGF1dG8qIHF1ZXVlID0gZWxlbWVudFJhcmVEYXRh
KCktPmN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlKCk7CiAgICAgICAgIEFTU0VSVChxdWV1ZSk7
CisgICAgICAgIEFTU0VSVChxdWV1ZS0+aXNFbXB0eSgpIHx8IHF1ZXVlLT5oYXNKdXN0VXBncmFk
ZVJlYWN0aW9uKCkpOwogICAgIH0KICNlbmRpZgogICAgIGlmICghaGFzUmFyZURhdGEoKSkKQEAg
LTQwNzEsMTYgKzQwNjEsNiBAQCBib29sIEVsZW1lbnQ6Om1hdGNoZXNJbnZhbGlkUHNldWRvQ2xh
c3MoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBFbGVtZW50OjptYXRjaGVz
VXNlclZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
Ym9vbCBFbGVtZW50OjptYXRjaGVzVXNlckludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiBib29sIEVsZW1lbnQ6Om1hdGNoZXNSZWFkV3JpdGVQc2V1
ZG9DbGFzcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTE1NywyMyArNTEzNyw2
IEBAIHZvaWQgRWxlbWVudDo6c2V0QXR0cmlidXRlU3R5bGVNYXAoUmVmPFN0eWxlUHJvcGVydHlN
YXA+JiYgbWFwKQogICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldEF0dHJpYnV0ZVN0eWxl
TWFwKFdURk1vdmUobWFwKSk7CiB9CiAKLXZvaWQgRWxlbWVudDo6ZW5zdXJlRm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50KCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChpczxIVE1MTWF5YmVGb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KCp0aGlzKSk7Ci0gICAgYXV0byYgZGF0YSA9IGVuc3Vy
ZUVsZW1lbnRSYXJlRGF0YSgpOwotICAgIGlmICghZGF0YS5mb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSkKLSAgICAgICAgZGF0YS5zZXRGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQobWFr
ZVVuaXF1ZTxGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KGRvd25jYXN0PEhUTUxNYXliZUZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4oKnRoaXMpKSk7Ci19Ci0KLUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudCYgRWxlbWVudDo6Zm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZl
KCkgY29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChpczxIVE1MTWF5YmVGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQ+KCp0aGlzKSk7Ci0gICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkpOwotICAg
IGF1dG8qIGN1c3RvbUVsZW1lbnQgPSBlbGVtZW50UmFyZURhdGEoKS0+Zm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50KCk7Ci0gICAgQVNTRVJUKGN1c3RvbUVsZW1lbnQpOwotICAgIHJldHVybiAq
Y3VzdG9tRWxlbWVudDsKLX0KLQogU3R5bGVQcm9wZXJ0eU1hcFJlYWRPbmx5KiBFbGVtZW50Ojpj
b21wdXRlZFN0eWxlTWFwKCkKIHsKICAgICBhdXRvJiByYXJlRGF0YSA9IGVuc3VyZUVsZW1lbnRS
YXJlRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYjc3MTY3NDJjMTM1Li5kM2Q5MmM1MmUy
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjAsOCArNjAsNiBAQCBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEVsZW1lbnRBbmltYXRpb25SYXJlRGF0YTsKIGNsYXNzIEVsZW1lbnREYXRhOwogY2xh
c3MgRWxlbWVudFJhcmVEYXRhOwotY2xhc3MgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Owot
Y2xhc3MgRm9ybUxpc3RlZEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxEb2N1bWVu
dDsKIGNsYXNzIEludFNpemU7CkBAIC04MSw3ICs3OSw2IEBAIGNsYXNzIFN0eWxlUHJvcGVydHlN
YXA7CiBjbGFzcyBTdHlsZVByb3BlcnR5TWFwUmVhZE9ubHk7CiBjbGFzcyBUZXh0OwogY2xhc3Mg
VW5pcXVlRWxlbWVudERhdGE7Ci1jbGFzcyBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDsKIGNs
YXNzIFdlYkFuaW1hdGlvbjsKIAogZW51bSBjbGFzcyBBbmltYXRpb25JbXBhY3QgOiB1aW50OF90
OwpAQCAtMzEyLDggKzMwOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlclNldEF0dHJpYnV0
ZXMoY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mKTsKIAogICAgIGJvb2wgaXNFdmVudEhhbmRsZXJB
dHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Q7Ci0gICAgdmlydHVhbCBGb3JtTGlzdGVk
RWxlbWVudCogYXNGb3JtTGlzdGVkRWxlbWVudCgpOwotICAgIHZpcnR1YWwgVmFsaWRhdGVkRm9y
bUxpc3RlZEVsZW1lbnQqIGFzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKTsKICAgICB2aXJ0
dWFsIGJvb2wgYXR0cmlidXRlQ29udGFpbnNKYXZhU2NyaXB0VVJMKGNvbnN0IEF0dHJpYnV0ZSYp
IGNvbnN0OwogCiAgICAgLy8gUmVtb3ZlIGF0dHJpYnV0ZXMgdGhhdCBtaWdodCBpbnRyb2R1Y2Ug
c2NyaXB0aW5nIGZyb20gdGhlIHZlY3RvciBsZWF2aW5nIHRoZSBlbGVtZW50IHVuY2hhbmdlZC4K
QEAgLTUwMyw4ICs0OTgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1Zh
bGlkUHNldWRvQ2xhc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc0ludmFsaWRQ
c2V1ZG9DbGFzcygpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzVXNlclZhbGlkUHNl
dWRvQ2xhc3MoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1VzZXJJbnZhbGlkUHNl
dWRvQ2xhc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVk
b0NsYXNzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNJbmRldGVybWluYXRlUHNl
dWRvQ2xhc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc0RlZmF1bHRQc2V1ZG9D
bGFzcygpIGNvbnN0OwpAQCAtNTIzLDEwICs1MTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzTWVkaWFFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0g
ICAgdmlydHVhbCBib29sIGlzRm9ybUxpc3RlZEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc01heWJlRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NwaW5CdXR0b25FbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rmll
bGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNzQwLDkgKzczMSw2IEBAIHByb3RlY3Rl
ZDoKICAgICBTdHlsZVByb3BlcnR5TWFwKiBhdHRyaWJ1dGVTdHlsZU1hcCgpOwogICAgIHZvaWQg
c2V0QXR0cmlidXRlU3R5bGVNYXAoUmVmPFN0eWxlUHJvcGVydHlNYXA+JiYpOwogCi0gICAgRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50JiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNh
ZmUoKSBjb25zdDsKLSAgICB2b2lkIGVuc3VyZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgp
OwotCiAgICAgdm9pZCB1cGRhdGVMYWJlbChUcmVlU2NvcGUmLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRGb3JBdHRyaWJ1dGVWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3Rm9yQXR0cmlidXRlVmFs
dWUpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJ
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuY3BwCmlu
ZGV4IDU1NTQyM2M2NjE5Mi4uNDk5YjdhZjIzYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudEludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRJbnRlcm5hbHMuY3BwCkBAIC0yOCw4ICsyOCw2IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiSFRNTEZvcm1F
bGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKQEAgLTUyLDc5ICs1MCw2IEBAIFNoYWRvd1Jvb3QqIEVsZW1lbnRJbnRlcm5hbHM6
OnNoYWRvd1Jvb3QoKSBjb25zdAogICAgIHJldHVybiBzaGFkb3dSb290OwogfQogCi1FeGNlcHRp
b25PcjxSZWZQdHI8SFRNTEZvcm1FbGVtZW50Pj4gRWxlbWVudEludGVybmFsczo6Zm9ybSgpIGNv
bnN0Ci17Ci0gICAgaWYgKFJlZlB0ciBlbGVtZW50ID0gZWxlbWVudEFzRm9ybUFzc29jaWF0ZWRD
dXN0b20oKSkKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmZvcm0oKTsKLSAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gRWxl
bWVudEludGVybmFsczo6c2V0Rm9ybVZhbHVlKHN0ZDo6b3B0aW9uYWw8Q3VzdG9tRWxlbWVudEZv
cm1WYWx1ZT4mJiB2YWx1ZSwgc3RkOjpvcHRpb25hbDxDdXN0b21FbGVtZW50Rm9ybVZhbHVlPiYm
IHN0YXRlKQotewotICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zvcm1Bc3NvY2lh
dGVkQ3VzdG9tKCkpIHsKLSAgICAgICAgZWxlbWVudC0+c2V0Rm9ybVZhbHVlKFdURk1vdmUodmFs
dWUpLCBXVEZNb3ZlKHN0YXRlKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9y
PHZvaWQ+IEVsZW1lbnRJbnRlcm5hbHM6OnNldFZhbGlkaXR5KFZhbGlkaXR5U3RhdGVGbGFncyB2
YWxpZGl0eVN0YXRlRmxhZ3MsIFN0cmluZyYmIG1lc3NhZ2UsIEhUTUxFbGVtZW50KiB2YWxpZGF0
aW9uQW5jaG9yKQotewotICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tKCkpCi0gICAgICAgIHJldHVybiBlbGVtZW50LT5zZXRWYWxpZGl0eSh2YWxp
ZGl0eVN0YXRlRmxhZ3MsIFdURk1vdmUobWVzc2FnZSksIHZhbGlkYXRpb25BbmNob3IpOwotICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25P
cjxib29sPiBFbGVtZW50SW50ZXJuYWxzOjp3aWxsVmFsaWRhdGUoKSBjb25zdAotewotICAgIGlm
IChSZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCi0gICAg
ICAgIHJldHVybiBlbGVtZW50LT53aWxsVmFsaWRhdGUoKTsKLSAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0aW9uT3I8UmVmUHRyPFZhbGlkaXR5
U3RhdGU+PiBFbGVtZW50SW50ZXJuYWxzOjp2YWxpZGl0eSgpCi17Ci0gICAgaWYgKFJlZlB0ciBl
bGVtZW50ID0gZWxlbWVudEFzRm9ybUFzc29jaWF0ZWRDdXN0b20oKSkKLSAgICAgICAgcmV0dXJu
IGVsZW1lbnQtPnZhbGlkaXR5KCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPFN0cmluZz4gRWxlbWVudEludGVybmFsczo6dmFs
aWRhdGlvbk1lc3NhZ2UoKSBjb25zdAotewotICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IGVsZW1l
bnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCi0gICAgICAgIHJldHVybiBlbGVtZW50LT52YWxp
ZGF0aW9uTWVzc2FnZSgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJv
ciB9OwotfQotCi1FeGNlcHRpb25Pcjxib29sPiBFbGVtZW50SW50ZXJuYWxzOjpyZXBvcnRWYWxp
ZGl0eSgpCi17Ci0gICAgaWYgKFJlZlB0ciBlbGVtZW50ID0gZWxlbWVudEFzRm9ybUFzc29jaWF0
ZWRDdXN0b20oKSkKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlcG9ydFZhbGlkaXR5KCk7Ci0g
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlv
bk9yPGJvb2w+IEVsZW1lbnRJbnRlcm5hbHM6OmNoZWNrVmFsaWRpdHkoKQotewotICAgIGlmIChS
ZWZQdHIgZWxlbWVudCA9IGVsZW1lbnRBc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tKCkpCi0gICAgICAg
IHJldHVybiBlbGVtZW50LT5jaGVja1ZhbGlkaXR5KCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPFJlZlB0cjxOb2RlTGlzdD4+
IEVsZW1lbnRJbnRlcm5hbHM6OmxhYmVscygpCi17Ci0gICAgaWYgKFJlZlB0ciBlbGVtZW50ID0g
ZWxlbWVudEFzRm9ybUFzc29jaWF0ZWRDdXN0b20oKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0
PExhYmVsYWJsZUVsZW1lbnQ+KGVsZW1lbnQtPmFzSFRNTEVsZW1lbnQoKSkubGFiZWxzKCk7Ci0g
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUZvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudCogRWxlbWVudEludGVybmFsczo6ZWxlbWVudEFzRm9ybUFzc29j
aWF0ZWRDdXN0b20oKSBjb25zdAotewotICAgIGlmIChSZWZQdHIgZWxlbWVudCA9IGR5bmFtaWNE
b3duY2FzdDxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KG1fZWxlbWVudC5n
ZXQoKSkpCi0gICAgICAgIHJldHVybiBlbGVtZW50LT5mb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnRGb3JFbGVtZW50SW50ZXJuYWxzKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBjb21wdXRlVmFsdWVGb3JBdHRyaWJ1dGUoRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKIHsKICAgICBhdXRvJiB2YWx1ZSA9IGVs
ZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihuYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudEludGVybmFscy5oCmluZGV4IGY3MTE1NWY3MWQwZi4uNWFiMTcwMjAwNjUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEludGVybmFscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW50ZXJuYWxzLmgKQEAgLTI1LDE5ICsyNSwxMyBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRGb3JtVmFsdWUuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgotI2lu
Y2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIKLSNpbmNsdWRlICJWYWxpZGl0eVN0YXRlRmxhZ3MuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MRm9ybUVsZW1lbnQ7Ci1jbGFzcyBGb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQ7Ci0KIGNsYXNzIEVsZW1lbnRJbnRlcm5hbHMgZmluYWwgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxFbGVtZW50SW50ZXJuYWxz
PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChFbGVtZW50SW50ZXJuYWxzKTsKIHB1Ymxp
YzoKQEAgLTQ5LDE5ICs0Myw2IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CiAgICAgU2hhZG93Um9vdCogc2hhZG93Um9v
dCgpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8UmVmUHRyPEhUTUxGb3JtRWxlbWVudD4+IGZv
cm0oKSBjb25zdDsKLQotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZvcm1WYWx1ZShzdGQ6Om9w
dGlvbmFsPEN1c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYsIHN0ZDo6b3B0aW9uYWw8Q3VzdG9tRWxl
bWVudEZvcm1WYWx1ZT4mJiA9IHN0ZDo6bnVsbG9wdCk7Ci0KLSAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRWYWxpZGl0eShWYWxpZGl0eVN0YXRlRmxhZ3MsIFN0cmluZyYmIG1lc3NhZ2UsIEhUTUxF
bGVtZW50KiB2YWxpZGF0aW9uQW5jaG9yKTsKLSAgICBFeGNlcHRpb25Pcjxib29sPiB3aWxsVmFs
aWRhdGUoKSBjb25zdDsKLSAgICBFeGNlcHRpb25PcjxSZWZQdHI8VmFsaWRpdHlTdGF0ZT4+IHZh
bGlkaXR5KCk7Ci0gICAgRXhjZXB0aW9uT3I8U3RyaW5nPiB2YWxpZGF0aW9uTWVzc2FnZSgpIGNv
bnN0OwotICAgIEV4Y2VwdGlvbk9yPGJvb2w+IHJlcG9ydFZhbGlkaXR5KCk7Ci0gICAgRXhjZXB0
aW9uT3I8Ym9vbD4gY2hlY2tWYWxpZGl0eSgpOwotCi0gICAgRXhjZXB0aW9uT3I8UmVmUHRyPE5v
ZGVMaXN0Pj4gbGFiZWxzKCk7Ci0KICAgICAvLyBGb3IgQVJJQU1peGluCiAgICAgY29uc3QgQXRv
bVN0cmluZyYgYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3Q7CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSk7CkBAIC03Nyw4
ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudCogZWxlbWVudEFzRm9ybUFzc29jaWF0ZWRDdXN0b20oKSBjb25zdDsKLQogICAg
IFdlYWtQdHI8SFRNTEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9l
bGVtZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbnRlcm5hbHMuaWRsCmluZGV4
IGViZWU1NTMwODhhNC4uMDQyOTlhOTg3ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudEludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJ
bnRlcm5hbHMuaWRsCkBAIC0yMyw4ICsyMyw2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotdHlwZWRlZiAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRE9NRm9ybURh
dGEpIEZvcm1WYWx1ZTsKLQogWwogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRS
b290LAogICAgIEdlbmVyYXRlQWRkT3BhcXVlUm9vdD1lbGVtZW50LApAQCAtMzMsMTkgKzMxLDYg
QEAgdHlwZWRlZiAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRE9NRm9ybURhdGEpIEZvcm1WYWx1ZTsK
IF0gaW50ZXJmYWNlIEVsZW1lbnRJbnRlcm5hbHMgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
aGFkb3dSb290PyBzaGFkb3dSb290OwogCi0gICAgdW5kZWZpbmVkIHNldEZvcm1WYWx1ZShGb3Jt
VmFsdWU/IHZhbHVlLCBvcHRpb25hbCBGb3JtVmFsdWU/IHN0YXRlKTsKLQotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQ/IGZvcm07Ci0KLSAgICB1bmRlZmluZWQgc2V0VmFs
aWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZsYWdzIGZsYWdzID0ge30sIG9wdGlvbmFsIERP
TVN0cmluZyBtZXNzYWdlLCBvcHRpb25hbCBIVE1MRWxlbWVudCB2YWxpZGF0aW9uQW5jaG9yKTsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRhdGU7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKLSAgICBib29sZWFuIGNoZWNrVmFsaWRp
dHkoKTsKLSAgICBib29sZWFuIHJlcG9ydFZhbGlkaXR5KCk7Ci0KLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwotCiAgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0LCBFbmFi
bGVkQnlTZXR0aW5nPURlZmF1bHRBUklBRm9yQ3VzdG9tRWxlbWVudHNFbmFibGVkXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyByb2xlOwogICAgIFtDRVJlYWN0aW9ucywgUmVmbGVjdD1hcmlhX2FjdGl2
ZWRlc2NlbmRhbnQsIEVuYWJsZWRCeVNldHRpbmc9RGVmYXVsdEFSSUFGb3JDdXN0b21FbGVtZW50
c0VuYWJsZWRdIGF0dHJpYnV0ZSBFbGVtZW50PyBhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQ7
CiAgICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0PWFyaWFfYXRvbWljLCBFbmFibGVkQnlTZXR0aW5n
PURlZmF1bHRBUklBRm9yQ3VzdG9tRWxlbWVudHNFbmFibGVkXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
PyBhcmlhQXRvbWljOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcAppbmRleCAz
MzA1ZDY5ZmVjYzIuLjg2MWMzNTU0ZDRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFNh
bWVTaXplQXNFbGVtZW50UmFyZURhdGEgOiBOb2RlUmFyZURhdGEgewogICAgIEludFBvaW50IHNh
dmVkTGF5ZXJTY3JvbGxQb3NpdGlvbjsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEVsZW1l
bnRBbmltYXRpb25SYXJlRGF0YT4+IGFuaW1hdGlvblJhcmVEYXRhOwotICAgIHZvaWQqIHBvaW50
ZXJzWzE0XTsKKyAgICB2b2lkKiBwb2ludGVyc1sxM107CiAgICAgdm9pZCogaW50ZXJzZWN0aW9u
T2JzZXJ2ZXJEYXRhOwogICAgIHZvaWQqIHR5cGVkT01EYXRhWzJdOwogICAgIHZvaWQqIHJlc2l6
ZU9ic2VydmVyRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA1MzM3
MDJjNmRkN2EuLjU1YTJmZWUyMTI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
aApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUg
IkRhdGFzZXRET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJFbGVtZW50QW5pbWF0aW9uUmFyZURh
dGEuaCIKLSNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJJbnRlcnNlY3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0U3RhY2su
aCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKQEAgLTcyLDkgKzcxLDYgQEAgcHVibGljOgog
ICAgIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQSogY3VzdG9tRWxlbWVudERlZmF1bHRBUklBKCkg
eyByZXR1cm4gbV9jdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuZ2V0KCk7IH0KICAgICB2b2lkIHNl
dEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQShzdGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudERl
ZmF1bHRBUklBPiYmIGRlZmF1bHRBUklBKSB7IG1fY3VzdG9tRWxlbWVudERlZmF1bHRBUklBID0g
V1RGTW92ZShkZWZhdWx0QVJJQSk7IH0KIAotICAgIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dCogZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkgeyByZXR1cm4gbV9mb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudChzdGQ6OnVuaXF1ZV9wdHI8Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50PiYmIGVs
ZW1lbnQpIHsgbV9mb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQp
OyB9Ci0KICAgICBOYW1lZE5vZGVNYXAqIGF0dHJpYnV0ZU1hcCgpIGNvbnN0IHsgcmV0dXJuIG1f
YXR0cmlidXRlTWFwLmdldCgpOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVNYXAoc3RkOjp1bmlx
dWVfcHRyPE5hbWVkTm9kZU1hcD4gYXR0cmlidXRlTWFwKSB7IG1fYXR0cmlidXRlTWFwID0gV1RG
TW92ZShhdHRyaWJ1dGVNYXApOyB9CiAKQEAgLTE0NSw4ICsxNDEsNiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXN1bHQuYWRkKFVzZVR5cGU6OkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlKTsK
ICAgICAgICAgaWYgKG1fY3VzdG9tRWxlbWVudERlZmF1bHRBUklBKQogICAgICAgICAgICAgcmVz
dWx0LmFkZChVc2VUeXBlOjpDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEpOwotICAgICAgICBpZiAo
bV9mb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQpCi0gICAgICAgICAgICByZXN1bHQuYWRkKFVz
ZVR5cGU6OkZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCk7CiAgICAgICAgIGlmIChtX2F0dHJp
YnV0ZU1hcCkKICAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6QXR0cmlidXRlTWFwKTsK
ICAgICAgICAgaWYgKG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKQpAQCAtMTgzLDcgKzE3Nyw2
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdDsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU+IG1fY3VzdG9tRWxlbWVu
dFJlYWN0aW9uUXVldWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1c3RvbUVsZW1lbnREZWZhdWx0
QVJJQT4gbV9jdXN0b21FbGVtZW50RGVmYXVsdEFSSUE7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4gbV9mb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhPiBtX2ludGVyc2VjdGlv
bk9ic2VydmVyRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGU0NGZiZmUxMDg0NS4uNzRlZTc0YTUyYWE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKQEAgLTU4OCw3ICs1ODgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIElz
RnVsbHNjcmVlbiA9IDEgPDwgMjksCiAgICAgICAgIElzSUZyYW1lRnVsbHNjcmVlbiA9IDEgPDwg
MzAsCiAjZW5kaWYKLSAgICAgICAgSGFzRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50SW50ZXJm
YWNlID0gMVUgPDwgMzEsCiAgICAgfTsKIAogICAgIGVudW0gY2xhc3MgVGFiSW5kZXhTdGF0ZSA6
IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGQ0NTlkMDk3MzlkYS4u
Y2RiMjM3ZjVmNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yNzIsNyArMjcy
LDYgQEAgcHVibGljOgogICAgICAgICBDb21wdXRlZFN0eWxlTWFwID0gMSA8PCAyMCwKICAgICAg
ICAgRXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcCA9IDEgPDwgMjEsCiAgICAgICAgIEVmZmVj
dGl2ZUxhbmcgPSAxIDw8IDIyLAotICAgICAgICBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQg
PSAxIDw8IDIzLAogICAgIH07CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1ZhbGlkaXR5U3RhdGVGbGFncy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZhbGlkaXR5U3Rh
dGVGbGFncy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmQxZTljMjhiMDAuLjAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmFsaWRpdHlTdGF0ZUZsYWdzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IFZhbGlkaXR5U3RhdGVGbGFncyB7Ci0g
ICAgYm9vbCB2YWx1ZU1pc3NpbmcgOiAxIHsgZmFsc2UgfTsKLSAgICBib29sIHR5cGVNaXNtYXRj
aCA6IDEgeyBmYWxzZSB9OwotICAgIGJvb2wgcGF0dGVybk1pc21hdGNoIDogMSB7IGZhbHNlIH07
Ci0gICAgYm9vbCB0b29Mb25nIDogMSB7IGZhbHNlIH07Ci0gICAgYm9vbCB0b29TaG9ydCA6IDEg
eyBmYWxzZSB9OwotICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3cgOiAxIHsgZmFsc2UgfTsKLSAgICBi
b29sIHJhbmdlT3ZlcmZsb3cgOiAxIHsgZmFsc2UgfTsKLSAgICBib29sIHN0ZXBNaXNtYXRjaCA6
IDEgeyBmYWxzZSB9OwotICAgIGJvb2wgYmFkSW5wdXQgOiAxIHsgZmFsc2UgfTsKLSAgICBib29s
IGN1c3RvbUVycm9yIDogMSB7IGZhbHNlIH07Ci0KLSAgICBib29sIGlzVmFsaWQoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuICF2YWx1ZU1pc3NpbmcgJiYgIXR5cGVNaXNtYXRjaCAmJiAh
cGF0dGVybk1pc21hdGNoICYmICF0b29Mb25nICYmICF0b29TaG9ydCAmJiAhcmFuZ2VVbmRlcmZs
b3cgJiYgIXJhbmdlT3ZlcmZsb3cgJiYgIXN0ZXBNaXNtYXRjaCAmJiAhYmFkSW5wdXQgJiYgIWN1
c3RvbUVycm9yOwotICAgIH0KLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9WYWxpZGl0eVN0YXRlRmxhZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZhbGlkaXR5U3Rh
dGVGbGFncy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwZjBmMTVlZmRmMS4u
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WYWxpZGl0eVN0YXRlRmxhZ3Mu
aWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLWRpY3Rpb25h
cnkgVmFsaWRpdHlTdGF0ZUZsYWdzIHsKLSAgICBib29sZWFuIHZhbHVlTWlzc2luZyA9IGZhbHNl
OwotICAgIGJvb2xlYW4gdHlwZU1pc21hdGNoID0gZmFsc2U7Ci0gICAgYm9vbGVhbiBwYXR0ZXJu
TWlzbWF0Y2ggPSBmYWxzZTsKLSAgICBib29sZWFuIHRvb0xvbmcgPSBmYWxzZTsKLSAgICBib29s
ZWFuIHRvb1Nob3J0ID0gZmFsc2U7Ci0gICAgYm9vbGVhbiByYW5nZVVuZGVyZmxvdyA9IGZhbHNl
OwotICAgIGJvb2xlYW4gcmFuZ2VPdmVyZmxvdyA9IGZhbHNlOwotICAgIGJvb2xlYW4gc3RlcE1p
c21hdGNoID0gZmFsc2U7Ci0gICAgYm9vbGVhbiBiYWRJbnB1dCA9IGZhbHNlOwotICAgIGJvb2xl
YW4gY3VzdG9tRXJyb3IgPSBmYWxzZTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCmluZGV4IDJiYWNkYmIyNzVlNC4uN2RlYzI1ZGVmZDgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMjQ5MCw4ICsyNDkwLDggQEAg
c3RhdGljIEhUTUxGb3JtRWxlbWVudCogc2NhbkZvckZvcm0oRWxlbWVudCogc3RhcnQpCiAgICAg
Zm9yIChhdXRvJiBlbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8SFRNTEVsZW1lbnQ+KHN0YXJ0
LT5kb2N1bWVudCgpKSkgewogICAgICAgICBpZiAoaXM8SFRNTEZvcm1FbGVtZW50PihlbGVtZW50
KSkKICAgICAgICAgICAgIHJldHVybiAmZG93bmNhc3Q8SFRNTEZvcm1FbGVtZW50PihlbGVtZW50
KTsKLSAgICAgICAgaWYgKGVsZW1lbnQuaXNGb3JtTGlzdGVkRWxlbWVudCgpKQotICAgICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQuYXNGb3JtTGlzdGVkRWxlbWVudCgpLT5mb3JtKCk7CisgICAgICAg
IGlmIChpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgICAgIHJl
dHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PihlbGVtZW50KS5mb3JtKCk7CiAg
ICAgICAgIGlmIChpczxIVE1MRnJhbWVFbGVtZW50QmFzZT4oZWxlbWVudCkpIHsKICAgICAgICAg
ICAgIGlmIChhdXRvKiBjb250ZW50RG9jdW1lbnQgPSBkb3duY2FzdDxIVE1MRnJhbWVFbGVtZW50
QmFzZT4oZWxlbWVudCkuY29udGVudERvY3VtZW50KCkpIHsKICAgICAgICAgICAgICAgICBpZiAo
YXV0byogZnJhbWVSZXN1bHQgPSBzY2FuRm9yRm9ybShjb250ZW50RG9jdW1lbnQtPmRvY3VtZW50
RWxlbWVudCgpKSkKQEAgLTI1MDIsMTUgKzI1MDIsNiBAQCBzdGF0aWMgSFRNTEZvcm1FbGVtZW50
KiBzY2FuRm9yRm9ybShFbGVtZW50KiBzdGFydCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
c3RhdGljIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KiBmaW5kRm9ybUNvbnRyb2xFbGVtZW50
QW5jZXN0b3IoRWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDog
bGluZWFnZU9mVHlwZTxFbGVtZW50PihlbGVtZW50KSkgewotICAgICAgICBpZiAoYXV0byogZm9y
bUNvbnRyb2xBbmNlc3RvciA9IGFuY2VzdG9yLmFzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQo
KSkKLSAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJvbEFuY2VzdG9yOwotICAgIH0KLSAgICBy
ZXR1cm4gbnVsbHB0cjsKLX0KLQogLy8gV2UgbG9vayBmb3IgZWl0aGVyIHRoZSBmb3JtIGNvbnRh
aW5pbmcgdGhlIGN1cnJlbnQgZm9jdXMsIG9yIGZvciBvbmUgaW1tZWRpYXRlbHkgYWZ0ZXIgaXQK
IEhUTUxGb3JtRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OmN1cnJlbnRGb3JtKCkgY29uc3QKIHsK
QEAgLTI1MjMsNyArMjUxNCw3IEBAIEhUTUxGb3JtRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OmN1
cnJlbnRGb3JtKCkgY29uc3QKIAogICAgIGlmIChhdXRvIGZvcm0gPSBsaW5lYWdlT2ZUeXBlPEhU
TUxGb3JtRWxlbWVudD4oKnN0YXJ0KS5maXJzdCgpKQogICAgICAgICByZXR1cm4gZm9ybTsKLSAg
ICBpZiAoYXV0byogZm9ybUNvbnRyb2wgPSBmaW5kRm9ybUNvbnRyb2xFbGVtZW50QW5jZXN0b3Io
KnN0YXJ0KSkKKyAgICBpZiAoYXV0byBmb3JtQ29udHJvbCA9IGxpbmVhZ2VPZlR5cGU8SFRNTEZv
cm1Db250cm9sRWxlbWVudD4oKnN0YXJ0KS5maXJzdCgpKQogICAgICAgICByZXR1cm4gZm9ybUNv
bnRyb2wtPmZvcm0oKTsKIAogICAgIC8vIFRyeSB3YWxraW5nIGZvcndhcmQgaW4gdGhlIG5vZGUg
dHJlZSB0byBmaW5kIGEgZm9ybSBlbGVtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DdXN0b21FbGVtZW50Rm9ybVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3Rv
bUVsZW1lbnRGb3JtVmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlhODUz
ZDljNWIxLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21FbGVt
ZW50Rm9ybVZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgotI2luY2x1ZGUgIkZp
bGUuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
dXNpbmcgQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8RmlsZT4s
IFN0cmluZywgUmVmUHRyPERPTUZvcm1EYXRhPj47Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdhNDQ4NjkxM2Y2Li4wMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Lmgi
Ci0KLSNpbmNsdWRlICJDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIgotI2luY2x1ZGUgIkVs
ZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5o
IgotI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgotI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5o
IgotI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50OjpGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50JiBlbGVtZW50KQotICAgIDogVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQg
eyBudWxscHRyIH0KLSAgICAsIG1fZWxlbWVudCB7IGVsZW1lbnQgfQotewotfQotCi1Gb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQ6On5Gb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKQotewot
ICAgIGNsZWFyRm9ybSgpOwotfQotCi1SZWY8Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50PiBG
b3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZShIVE1MTWF5YmVGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KGVsZW1lbnQpKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9p
ZD4gRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpzZXRWYWxpZGl0eShWYWxpZGl0eVN0YXRl
RmxhZ3MgdmFsaWRpdHlTdGF0ZUZsYWdzLCBTdHJpbmcmJiBtZXNzYWdlLCBIVE1MRWxlbWVudCog
dmFsaWRhdGlvbkFuY2hvcikKLXsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5pc1ByZWN1c3RvbWl6
ZWRPckRlZmluZWRDdXN0b21FbGVtZW50KCkpOwotCi0gICAgaWYgKCF2YWxpZGl0eVN0YXRlRmxh
Z3MuaXNWYWxpZCgpICYmIG1lc3NhZ2UuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yIH07Ci0KLSAgICBtX3ZhbGlkaXR5U3RhdGVGbGFncyA9IHZhbGlkaXR5
U3RhdGVGbGFnczsKLSAgICBzZXRDdXN0b21WYWxpZGl0eSh2YWxpZGl0eVN0YXRlRmxhZ3MuaXNW
YWxpZCgpID8gZW1wdHlTdHJpbmcoKSA6IFdURk1vdmUobWVzc2FnZSkpOwotCi0gICAgaWYgKHZh
bGlkYXRpb25BbmNob3IgJiYgIXZhbGlkYXRpb25BbmNob3ItPmlzRGVzY2VuZGFudE9yU2hhZG93
RGVzY2VuZGFudE9mKCptX2VsZW1lbnQpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
Rm91bmRFcnJvciB9OwotCi0gICAgbV92YWxpZGF0aW9uQW5jaG9yID0gdmFsaWRhdGlvbkFuY2hv
cjsKLQotICAgIHJldHVybiB7IH07Ci19Ci0KLVN0cmluZyBGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9lbGVtZW50
LT5pc1ByZWN1c3RvbWl6ZWRPckRlZmluZWRDdXN0b21FbGVtZW50KCkpOwotICAgIHJldHVybiBj
dXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpOwotfQotCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBDdXN0
b21FbGVtZW50Rm9ybVZhbHVlIGNsb25lSWZJc0Zvcm1EYXRhKEN1c3RvbUVsZW1lbnRGb3JtVmFs
dWUmJiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihXVEZNb3ZlKHZhbHVlKSwg
W10oUmVmUHRyPERPTUZvcm1EYXRhPiB2YWx1ZSkgLT4gQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSB7
Ci0gICAgICAgIHJldHVybiB2YWx1ZS0+Y2xvbmUoKS5wdHIoKTsKLSAgICB9LCBbXShjb25zdCBh
dXRvJiB2YWx1ZSkgLT4gQ3VzdG9tRWxlbWVudEZvcm1WYWx1ZSB7Ci0gICAgICAgIHJldHVybiB2
YWx1ZTsKLSAgICB9KTsKLX0KLQotdm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnNl
dEZvcm1WYWx1ZShzdGQ6Om9wdGlvbmFsPEN1c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYgc3VibWlz
c2lvblZhbHVlLCBzdGQ6Om9wdGlvbmFsPEN1c3RvbUVsZW1lbnRGb3JtVmFsdWU+JiYgc3RhdGUp
Ci17Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aXNQcmVjdXN0b21pemVkT3JEZWZpbmVkQ3VzdG9t
RWxlbWVudCgpKTsKLQotICAgIGlmIChzdWJtaXNzaW9uVmFsdWUuaGFzX3ZhbHVlKCkpCi0gICAg
ICAgIG1fc3VibWlzc2lvblZhbHVlID0gY2xvbmVJZklzRm9ybURhdGEoV1RGTW92ZShzdWJtaXNz
aW9uVmFsdWUudmFsdWUoKSkpOwotCi0gICAgbV9zdGF0ZSA9IHN0YXRlLmhhc192YWx1ZSgpID8g
Y2xvbmVJZklzRm9ybURhdGEoV1RGTW92ZShzdGF0ZS52YWx1ZSgpKSkgOiBtX3N1Ym1pc3Npb25W
YWx1ZTsKLX0KLQotSFRNTEVsZW1lbnQqIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6dmFs
aWRhdGlvbkFuY2hvckVsZW1lbnQoKQotewotICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVmaW5l
ZEN1c3RvbUVsZW1lbnQoKSk7Ci0gICAgcmV0dXJuIG1fdmFsaWRhdGlvbkFuY2hvci5nZXQoKTsK
LX0KLQotYm9vbCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNvbXB1dGVWYWxpZGl0eSgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aXNQcmVjdXN0b21pemVkT3JEZWZpbmVk
Q3VzdG9tRWxlbWVudCgpKTsKLSAgICByZXR1cm4gbV92YWxpZGl0eVN0YXRlRmxhZ3MuaXNWYWxp
ZCgpOwotfQotCi1ib29sIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6YXBwZW5kRm9ybURh
dGEoRE9NRm9ybURhdGEmIGZvcm1EYXRhKQotewotICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVm
aW5lZEN1c3RvbUVsZW1lbnQoKSk7Ci0KLSAgICBpZiAoIW1fc3VibWlzc2lvblZhbHVlLmhhc192
YWx1ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBXVEY6OnN3aXRjaE9uKG1fc3Vi
bWlzc2lvblZhbHVlLnZhbHVlKCksIFsmXShSZWZQdHI8RE9NRm9ybURhdGE+IHZhbHVlKSB7Ci0g
ICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IHZhbHVlLT5pdGVtcygpKSB7Ci0gICAgICAg
ICAgICBXVEY6OnN3aXRjaE9uKGl0ZW0uZGF0YSwgWyZdKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsK
LSAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoaXRlbS5uYW1lLCB2YWx1ZSk7Ci0gICAg
ICAgICAgICB9LCBbJl0oUmVmUHRyPEZpbGU+IHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgZm9y
bURhdGEuYXBwZW5kKGl0ZW0ubmFtZSwgKnZhbHVlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9Ci0gICAgfSwgWyZdKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsKLSAgICAgICAgaWYgKCFuYW1l
KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUoKSwgdmFsdWUp
OwotICAgIH0sIFsmXShSZWZQdHI8RmlsZT4gdmFsdWUpIHsKLSAgICAgICAgaWYgKCFuYW1lKCku
aXNFbXB0eSgpKQotICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUoKSwgKnZhbHVlKTsK
LSAgICB9KTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEZvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCgpCi17Ci0gICAgbV9mb3JtV2lsbEJlRGVz
dHJveWVkID0gdHJ1ZTsKLSAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6Zm9ybVdpbGxC
ZURlc3Ryb3llZCgpOwotICAgIG1fZm9ybVdpbGxCZURlc3Ryb3llZCA9IGZhbHNlOwotfQotCi1i
b29sIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aXNFbnVtZXJhdGFibGUoKSBjb25zdAot
ewotICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKSk7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpyZXNl
dCgpCi17Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aXNEZWZpbmVkQ3VzdG9tRWxlbWVudCgpKTsK
LSAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUZvcm1SZXNldENhbGxiYWNr
SWZOZWVkZWQoKm1fZWxlbWVudCk7Ci19Ci0KLXZvaWQgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpCi17Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aXNE
ZWZpbmVkQ3VzdG9tRWxlbWVudCgpKTsKLSAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6
ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKLSAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6
ZW5xdWV1ZUZvcm1EaXNhYmxlZENhbGxiYWNrSWZOZWVkZWQoKm1fZWxlbWVudCwgaXNEaXNhYmxl
ZCgpKTsKLX0KLQotdm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmRpZENoYW5nZUZv
cm0oKQotewotICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKSk7
Ci0gICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZENoYW5nZUZvcm0oKTsKLSAgICBp
ZiAoIW1fZm9ybVdpbGxCZURlc3Ryb3llZCkKLSAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWU6OmVucXVldWVGb3JtQXNzb2NpYXRlZENhbGxiYWNrSWZOZWVkZWQoKm1fZWxlbWVudCwg
Zm9ybSgpKTsKLX0KLQotdm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OndpbGxVcGdy
YWRlKCkKLXsKLSAgICBzZXREYXRhTGlzdEFuY2VzdG9yU3RhdGUoVHJpU3RhdGU6OkZhbHNlKTsK
LX0KLQotdm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmRpZFVwZ3JhZGUoKQotewot
ICAgIEFTU0VSVCghZm9ybSgpKTsKLQotICAgIEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1M
RWxlbWVudCgpOwotCi0gICAgcGFyc2VGb3JtQXR0cmlidXRlKGVsZW1lbnQuYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihmb3JtQXR0cikpOwotICAgIHBhcnNlRGlzYWJsZWRBdHRyaWJ1
dGUoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRpc2FibGVkQXR0cikp
OwotICAgIHBhcnNlUmVhZG9ubHlBdHRyaWJ1dGUoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKHJlYWRvbmx5QXR0cikpOwotCi0gICAgc2V0RGF0YUxpc3RBbmNlc3RvclN0
YXRlKFRyaVN0YXRlOjpJbmRldGVybWluYXRlKTsKLSAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRW
YWxpZGl0eSgpOwotICAgIHN5bmNXaXRoRmllbGRzZXRBbmNlc3RvcnMoZWxlbWVudC5wYXJlbnRO
b2RlKCkpOwotICAgIGludmFsaWRhdGVFbGVtZW50c0NvbGxlY3Rpb25DYWNoZXNJbkFuY2VzdG9y
cygpOwotICAgIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlSWZOZWNlc3NhcnkoKTsKLX0KLQotdm9p
ZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCi17
Ci0gICAgaWYgKCFGb3JtQ29udHJvbGxlcjo6b3duZXJGb3JtKCp0aGlzKSkKLSAgICAgICAgcmVz
dG9yZUZvcm1Db250cm9sU3RhdGVJZk5lY2Vzc2FyeSgpOwotfQotCi12b2lkIEZvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudDo6aW52YWxpZGF0ZUVsZW1lbnRzQ29sbGVjdGlvbkNhY2hlc0luQW5j
ZXN0b3JzKCkKLXsKLSAgICBhdXRvIGludmFsaWRhdGVFbGVtZW50c0NhY2hlID0gW10oSFRNTEVs
ZW1lbnQmIGVsZW1lbnQpIHsKLSAgICAgICAgaWYgKGF1dG8qIG5vZGVMaXN0cyA9IGVsZW1lbnQu
bm9kZUxpc3RzKCkpIHsKLSAgICAgICAgICAgIC8vIFdlIGtpY2sgdGhlICJmb3JtIiBhdHRyaWJ1
dGUgdG8gaW52YWxpZGF0ZSBvbmx5IHRoZSBGb3JtQ29udHJvbHMsIEZpZWxkU2V0RWxlbWVudHMs
Ci0gICAgICAgICAgICAvLyBhbmQgUmFkaW9Ob2RlTGlzdCBjb2xsZWN0aW9ucywgYW5kIGRvIHNv
IHdpdGhvdXQgZHVwbGljYXRpbmcgaW52YWxpZGF0aW9uIGxvZ2ljIG9mIE5vZGUuY3BwLgotICAg
ICAgICAgICAgbm9kZUxpc3RzLT5pbnZhbGlkYXRlQ2FjaGVzRm9yQXR0cmlidXRlKEhUTUxOYW1l
czo6Zm9ybUF0dHIpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGlmIChSZWZQdHIgZm9ybSA9
IHRoaXMtPmZvcm0oKSkKLSAgICAgICAgaW52YWxpZGF0ZUVsZW1lbnRzQ2FjaGUoKmZvcm0pOwot
Ci0gICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8SFRNTEZpZWxkU2V0RWxl
bWVudD4oKm1fZWxlbWVudCkpCi0gICAgICAgIGludmFsaWRhdGVFbGVtZW50c0NhY2hlKGFuY2Vz
dG9yKTsKLX0KLQotY29uc3QgQXRvbVN0cmluZyYgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBhc0hUTUxFbGVtZW50KCku
bG9jYWxOYW1lKCk7Ci19Ci0KLWJvb2wgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpzaG91
bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAotewotICAgIGNvbnN0IGF1
dG8mIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQucmVhY3Rp
b25RdWV1ZSgpKTsKLSAgICByZXR1cm4gZWxlbWVudC5pc0RlZmluZWRDdXN0b21FbGVtZW50KCkg
JiYgZWxlbWVudC5yZWFjdGlvblF1ZXVlKCktPmhhc0Zvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjaygp
OwotfQotCi1Gb3JtQ29udHJvbFN0YXRlIEZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6c2F2
ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAotewotICAgIEFTU0VSVChtX2VsZW1lbnQtPmlzRGVm
aW5lZEN1c3RvbUVsZW1lbnQoKSk7Ci0KLSAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVkU3RhdGU7
Ci0KLSAgICBpZiAobV9zdGF0ZS5oYXNfdmFsdWUoKSkgewotICAgICAgICAvLyBGSVhNRTogU3Vw
cG9ydCBGaWxlIHdoZW4gc2F2aW5nIC8gcmVzdG9yaW5nIHN0YXRlLgotICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5ODk1Ci0gICAgICAgIGJvb2wg
ZGlkTG9nTWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBhdXRvIGxvZ1Vuc3VwcG9ydGVkRmlsZVdh
cm5pbmcgPSBbJl0oUmVmUHRyPEZpbGU+KSB7Ci0gICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9
IGFzSFRNTEVsZW1lbnQoKS5kb2N1bWVudCgpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmZy
YW1lKCkgJiYgIWRpZExvZ01lc3NhZ2UpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAi
RmlsZSBpc24ndCBjdXJyZW50bHkgc3VwcG9ydGVkIHdoZW4gc2F2aW5nIC8gcmVzdG9yaW5nIHN0
YXRlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZGlkTG9nTWVzc2FnZSA9IHRydWU7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgV1RGOjpzd2l0Y2hPbihtX3N0YXRlLnZhbHVl
KCksIFsmXShSZWZQdHI8RE9NRm9ybURhdGE+IHN0YXRlKSB7Ci0gICAgICAgICAgICBzYXZlZFN0
YXRlLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RhdGUtPml0ZW1zKCkuc2l6ZSgpICogMik7Ci0K
LSAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IHN0YXRlLT5pdGVtcygpKSB7Ci0g
ICAgICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihpdGVtLmRhdGEsIFsmXShjb25zdCBTdHJpbmcm
IHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNhdmVkU3RhdGUuYXBwZW5kKGl0ZW0ubmFt
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHNhdmVkU3RhdGUuYXBwZW5kKHZhbHVlKTsKLSAgICAg
ICAgICAgICAgICB9LCBsb2dVbnN1cHBvcnRlZEZpbGVXYXJuaW5nKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgc2F2ZWRTdGF0ZS5zaHJpbmtUb0ZpdCgpOwotICAgICAgICB9LCBbJl0o
Y29uc3QgU3RyaW5nJiBzdGF0ZSkgewotICAgICAgICAgICAgc2F2ZWRTdGF0ZS5hcHBlbmQoc3Rh
dGUpOwotICAgICAgICB9LCBsb2dVbnN1cHBvcnRlZEZpbGVXYXJuaW5nKTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gc2F2ZWRTdGF0ZTsKLX0KLQotdm9pZCBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHNhdmVk
U3RhdGUpCi17Ci0gICAgQVNTRVJUKG1fZWxlbWVudC0+aXNEZWZpbmVkQ3VzdG9tRWxlbWVudCgp
KTsKLQotICAgIEN1c3RvbUVsZW1lbnRGb3JtVmFsdWUgcmVzdG9yZWRTdGF0ZTsKLQotICAgIGlm
IChzYXZlZFN0YXRlLnNpemUoKSA9PSAxKQotICAgICAgICByZXN0b3JlZFN0YXRlLmVtcGxhY2U8
U3RyaW5nPihzYXZlZFN0YXRlWzBdKTsKLSAgICBlbHNlIHsKLSAgICAgICAgYXV0byBmb3JtRGF0
YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoUEFMOjpVVEY4RW5jb2RpbmcoKSk7Ci0gICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2F2ZWRTdGF0ZS5zaXplKCk7IGkgKz0gMikKLSAgICAgICAg
ICAgIGZvcm1EYXRhLT5hcHBlbmQoc2F2ZWRTdGF0ZVtpXSwgc2F2ZWRTdGF0ZVtpICsgMV0pOwot
ICAgICAgICByZXN0b3JlZFN0YXRlLmVtcGxhY2U8UmVmUHRyPERPTUZvcm1EYXRhPj4oZm9ybURh
dGEucHRyKCkpOwotICAgIH0KLQotICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1
ZXVlRm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrSWZOZWVkZWQoKm1fZWxlbWVudCwgV1RGTW92ZShy
ZXN0b3JlZFN0YXRlKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYmNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmMmFmMDVlY2Y3ZmIuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIkN1c3RvbUVsZW1lbnRGb3JtVmFsdWUuaCIKLSNpbmNsdWRlICJIVE1MTWF5YmVGb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQuaCIKLSNpbmNsdWRlICJWYWxpZGF0ZWRGb3JtTGlzdGVkRWxl
bWVudC5oIgotI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGVGbGFncy5oIgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50IGZpbmFsIDogcHVibGljIFZhbGlkYXRlZEZv
cm1MaXN0ZWRFbGVtZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50PiBjcmVhdGUoSFRNTE1h
eWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Jik7Ci0KLSAgICBGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQoSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Jik7Ci0gICAg
dmlydHVhbCB+Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCk7Ci0KLSAgICBib29sIGlzRm9y
bUxpc3RlZEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBp
c1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQotCi0gICAgRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudCgpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KLSAgICBGb3JtTGlzdGVkRWxlbWVudCogYXNG
b3JtTGlzdGVkRWxlbWVudCgpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KLSAgICBWYWxpZGF0ZWRG
b3JtTGlzdGVkRWxlbWVudCogYXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgpIGZpbmFsIHsg
cmV0dXJuIHRoaXM7IH0KLQotICAgIEhUTUxFbGVtZW50JiBhc0hUTUxFbGVtZW50KCkgZmluYWwg
eyByZXR1cm4gKm1fZWxlbWVudC5nZXQoKTsgfQotICAgIGNvbnN0IEhUTUxFbGVtZW50JiBhc0hU
TUxFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gKm1fZWxlbWVudC5nZXQoKTsgfQotCi0g
ICAgdm9pZCByZXNldCgpIGZpbmFsOwotICAgIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCBm
aW5hbDsKLQotICAgIHZvaWQgc2V0Rm9ybVZhbHVlKHN0ZDo6b3B0aW9uYWw8Q3VzdG9tRWxlbWVu
dEZvcm1WYWx1ZT4mJiBzdWJtaXNzaW9uVmFsdWUsIHN0ZDo6b3B0aW9uYWw8Q3VzdG9tRWxlbWVu
dEZvcm1WYWx1ZT4mJiBzdGF0ZSk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsaWRpdHko
VmFsaWRpdHlTdGF0ZUZsYWdzLCBTdHJpbmcmJiBtZXNzYWdlLCBIVE1MRWxlbWVudCogdmFsaWRh
dGlvbkFuY2hvcik7Ci0gICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QgZmluYWw7
Ci0KLSAgICB2b2lkIGZvcm1XaWxsQmVEZXN0cm95ZWQoKSBmaW5hbDsKLSAgICB2b2lkIGZpbmlz
aFBhcnNpbmdDaGlsZHJlbigpOwotCi0gICAgYm9vbCBjb21wdXRlVmFsaWRpdHkoKSBjb25zdCBm
aW5hbDsKLSAgICBib29sIGFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJikgZmluYWw7Ci0KLSAg
ICB2b2lkIHdpbGxVcGdyYWRlKCk7Ci0gICAgdm9pZCBkaWRVcGdyYWRlKCk7Ci0KLSAgICBjb25z
dCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNo
b3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IGZpbmFsOwotICAgIEZv
cm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBmaW5h
bDsKLQotcHJvdGVjdGVkOgotICAgIHZvaWQgZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKSBmaW5hbDsK
LSAgICBib29sIHJlYWRPbmx5QmFyc0Zyb21Db25zdHJhaW50VmFsaWRhdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIHJlZkZvcm1Bc3NvY2lh
dGVkRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgbV9lbGVtZW50LT5yZWYoKTsgfQotICAgIHZvaWQg
ZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IG1fZWxlbWVudC0+ZGVy
ZWYoKTsgfQotCi0gICAgSFRNTEVsZW1lbnQqIHZhbGlkYXRpb25BbmNob3JFbGVtZW50KCkgZmlu
YWw7Ci0gICAgdm9pZCBkaWRDaGFuZ2VGb3JtKCkgZmluYWw7Ci0gICAgdm9pZCBpbnZhbGlkYXRl
RWxlbWVudHNDb2xsZWN0aW9uQ2FjaGVzSW5BbmNlc3RvcnMoKTsKLQotICAgIGJvb2wgaGFzQmFk
SW5wdXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZhbGlkaXR5U3RhdGVGbGFncy5iYWRJbnB1
dDsgfQotICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92
YWxpZGl0eVN0YXRlRmxhZ3MucGF0dGVybk1pc21hdGNoOyB9Ci0gICAgYm9vbCByYW5nZU92ZXJm
bG93KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWxpZGl0eVN0YXRlRmxhZ3MucmFuZ2VPdmVy
ZmxvdzsgfQotICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3coKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3ZhbGlkaXR5U3RhdGVGbGFncy5yYW5nZVVuZGVyZmxvdzsgfQotICAgIGJvb2wgc3RlcE1pc21h
dGNoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWxpZGl0eVN0YXRlRmxhZ3Muc3RlcE1pc21h
dGNoOyB9Ci0gICAgYm9vbCB0b29TaG9ydCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmFsaWRp
dHlTdGF0ZUZsYWdzLnRvb1Nob3J0OyB9Ci0gICAgYm9vbCB0b29Mb25nKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV92YWxpZGl0eVN0YXRlRmxhZ3MudG9vTG9uZzsgfQotICAgIGJvb2wgdHlwZU1p
c21hdGNoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92YWxpZGl0eVN0YXRlRmxhZ3MudHlwZU1p
c21hdGNoOyB9Ci0gICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3ZhbGlkaXR5U3RhdGVGbGFncy52YWx1ZU1pc3Npbmc7IH0KLQotICAgIFdlYWtQdHI8SFRNTE1h
eWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdl
dERhdGE+IG1fZWxlbWVudDsKLSAgICBWYWxpZGl0eVN0YXRlRmxhZ3MgbV92YWxpZGl0eVN0YXRl
RmxhZ3M7Ci0gICAgYm9vbCBtX2Zvcm1XaWxsQmVEZXN0cm95ZWQgOiAxIHsgZmFsc2UgfTsKLSAg
ICBXZWFrUHRyPEhUTUxFbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1f
dmFsaWRhdGlvbkFuY2hvciB7IG51bGxwdHIgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPEN1c3RvbUVs
ZW1lbnRGb3JtVmFsdWU+IG1fc3VibWlzc2lvblZhbHVlOwotICAgIHN0ZDo6b3B0aW9uYWw8Q3Vz
dG9tRWxlbWVudEZvcm1WYWx1ZT4gbV9zdGF0ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCmluZGV4IDI3
OTc3MTlhMDViYy4uMmVlMGU4OGNhM2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmgKQEAgLTI4LDggKzI4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNmb3Jt
LWFzc29jaWF0ZWQtZWxlbWVudAogY2xhc3MgRm9ybUFzc29jaWF0ZWRFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICB2b2lkIHJlZigpIGNvbnN0IHsgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCk7IH0K
LSAgICB2b2lkIGRlcmVmKCkgY29uc3QgeyBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpOyB9
CisgICAgdm9pZCByZWYoKSB7IHJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpOyB9CisgICAgdm9p
ZCBkZXJlZigpIHsgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKTsgfQogCiAgICAgdmlydHVh
bCB+Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgeyBSRUxFQVNFX0FTU0VSVCghbV9mb3JtKTsgfQog
ICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQmIGFzSFRNTEVsZW1lbnQoKSA9IDA7CkBAIC00NCw4ICs0
NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudEluc2VydGVkSW50b0FuY2Vz
dG9yKEVsZW1lbnQmLCBOb2RlOjpJbnNlcnRpb25UeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZWxl
bWVudFJlbW92ZWRGcm9tQW5jZXN0b3IoRWxlbWVudCYsIE5vZGU6OlJlbW92YWxUeXBlKTsKIAot
ICAgIHZpcnR1YWwgRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc0Zvcm1Bc3NvY2lhdGVkRWxlbWVu
dCgpID0gMDsKLQogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dChIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtNTMsOCArNTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkIHNldEZvcm1JbnRlcm5hbChIVE1MRm9ybUVsZW1lbnQqKTsKIAogcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpID0gMDsKIAogICAgIFdl
YWtQdHI8SFRNTEZvcm1FbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1f
Zm9ybTsKICAgICBXZWFrUHRyPEhUTUxGb3JtRWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRU
YXJnZXREYXRhPiBtX2Zvcm1TZXRCeVBhcnNlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJv
bGxlci5jcHAKaW5kZXggMjVmNmY2NTBmMzgzLi44YzU1YjQxYmZiZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiRmls
ZUNob29zZXIuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAi
VHlwZWRFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CkBAIC0zNSwxMiArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1I
VE1MRm9ybUVsZW1lbnQqIEZvcm1Db250cm9sbGVyOjpvd25lckZvcm0oY29uc3QgRm9ybUxpc3Rl
ZEVsZW1lbnQmIGNvbnRyb2wpCitzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiBvd25lckZvcm0oY29u
c3QgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY29udHJvbCkKIHsKICAgICAvLyBB
c3N1bWUgY29udHJvbHMgd2l0aCBmb3JtIGF0dHJpYnV0ZSBoYXZlIG5vIG93bmVycyBiZWNhdXNl
IHdlIHJlc3RvcmUKICAgICAvLyBzdGF0ZSBkdXJpbmcgcGFyc2luZyBhbmQgZm9ybSBvd25lcnMg
b2Ygc3VjaCBjb250cm9scyBtaWdodCBiZQogICAgIC8vIGluZGV0ZXJtaW5hdGUuCi0gICAgcmV0
dXJuIGNvbnRyb2wuYXNIVE1MRWxlbWVudCgpLmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oSFRNTE5hbWVzOjpmb3JtQXR0cikgPyBudWxscHRyIDogY29udHJvbC5mb3JtKCk7Cisg
ICAgcmV0dXJuIGNvbnRyb2wuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1M
TmFtZXM6OmZvcm1BdHRyKSA/IG51bGxwdHIgOiBjb250cm9sLmZvcm0oKTsKIH0KIAogc3RydWN0
IEF0b21TdHJpbmdWZWN0b3JSZWFkZXIgewpAQCAtMTY0LDcgKzE2Myw3IEBAIGNsYXNzIEZvcm1D
b250cm9sbGVyOjpGb3JtS2V5R2VuZXJhdG9yIHsKIAogcHVibGljOgogICAgIEZvcm1LZXlHZW5l
cmF0b3IoKSA9IGRlZmF1bHQ7Ci0gICAgU3RyaW5nIGZvcm1LZXkoY29uc3QgVmFsaWRhdGVkRm9y
bUxpc3RlZEVsZW1lbnQmKTsKKyAgICBTdHJpbmcgZm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50V2l0aFN0YXRlJik7CiAgICAgdm9pZCB3aWxsRGVsZXRlRm9ybShIVE1MRm9ybUVs
ZW1lbnQmKTsKIAogcHJpdmF0ZToKQEAgLTE3MiwxNSArMTcxLDYgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFN0cmluZywgdW5zaWduZWQ+IG1fZm9ybVNpZ25hdHVyZVRvTmV4dEluZGV4TWFwOwog
fTsKIAotc3RhdGljIGJvb2wgc2hvdWxkQmVVc2VkRm9yRm9ybVNpZ25hdHVyZShjb25zdCBFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIGlmIChpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PihlbGVt
ZW50KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGVs
ZW1lbnQpLnNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpOwotICAgIGlmIChp
czxIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+KGVsZW1lbnQpKQotICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Pihl
bGVtZW50KS5oYXNGb3JtQXNzb2NpYXRlZEludGVyZmFjZSgpIHx8IGVsZW1lbnQuaXNDdXN0b21F
bGVtZW50VXBncmFkZUNhbmRpZGF0ZSgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogc3RhdGlj
IFN0cmluZyBmb3JtU2lnbmF0dXJlKGNvbnN0IEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC0xOTgsMTEgKzE4OCwxNSBAQCBzdGF0aWMgU3Ry
aW5nIGZvcm1TaWduYXR1cmUoY29uc3QgSFRNTEZvcm1FbGVtZW50JiBmb3JtKQogICAgIFNjcmlw
dERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKICAg
ICB1bnNpZ25lZCBjb3VudCA9IDA7CiAgICAgYnVpbGRlci5hcHBlbmQoIiBbIik7Ci0gICAgZm9y
IChjb25zdCBhdXRvJiBlbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oZm9ybSkp
IHsKLSAgICAgICAgaWYgKCFzaG91bGRCZVVzZWRGb3JGb3JtU2lnbmF0dXJlKGVsZW1lbnQpIHx8
IGVsZW1lbnQuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmZv
cm1BdHRyKSkKKyAgICBmb3IgKGF1dG8mIGNvbnRyb2wgOiBmb3JtLnVuc2FmZUxpc3RlZEVsZW1l
bnRzKCkpIHsKKyAgICAgICAgYXV0byBlbGVtZW50ID0gY29udHJvbC0+YXNGb3JtTGlzdGVkRWxl
bWVudCgpOworICAgICAgICBpZiAoIWlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU+
KGVsZW1lbnQpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGF1dG8mIG5hbWUgPSBl
bGVtZW50LmdldE5hbWVBdHRyaWJ1dGUoKTsKLSAgICAgICAgaWYgKG5hbWUuaXNOdWxsKCkgfHwg
bmFtZS5pc0VtcHR5KCkpCisgICAgICAgIFJlZiBjb250cm9sV2l0aFN0YXRlID0gZG93bmNhc3Q8
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZT4oKmVsZW1lbnQpOworICAgICAgICBpZiAo
IW93bmVyRm9ybShjb250cm9sV2l0aFN0YXRlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBhdXRvJiBuYW1lID0gY29udHJvbFdpdGhTdGF0ZS0+bmFtZSgpOworICAgICAgICBpZiAo
bmFtZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQobmFtZSwgJyAnKTsKICAgICAgICAgaWYgKCsrY291bnQgPj0gbWF4TmFtZWRDb250cm9s
c1RvQmVSZWNvcmRlZCkKQEAgLTIxMyw3ICsyMDcsNyBAQCBzdGF0aWMgU3RyaW5nIGZvcm1TaWdu
YXR1cmUoY29uc3QgSFRNTEZvcm1FbGVtZW50JiBmb3JtKQogICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CiB9CiAKLVN0cmluZyBGb3JtQ29udHJvbGxlcjo6Rm9ybUtleUdlbmVyYXRvcjo6
Zm9ybUtleShjb25zdCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCYgY29udHJvbCkKK1N0cmlu
ZyBGb3JtQ29udHJvbGxlcjo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250cm9sKQogewogICAgIFJlZlB0ciBmb3JtID0g
b3duZXJGb3JtKGNvbnRyb2wpOwogICAgIGlmICghZm9ybSkgewpAQCAtMjQ5LDQxICsyNDMsNDQg
QEAgc3RhdGljIFN0cmluZyBmb3JtU3RhdGVTaWduYXR1cmUoKQogCiBWZWN0b3I8QXRvbVN0cmlu
Zz4gRm9ybUNvbnRyb2xsZXI6OmZvcm1FbGVtZW50c1N0YXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCkgY29uc3QKIHsKLSAgICBIYXNoTWFwPEF0b21TdHJpbmcsIFZlY3RvcjxSZWY8Y29uc3Qg
VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ+Pj4gZm9ybUtleVRvQ29udHJvbHNNYXA7CisgICAg
c3RydWN0IENvbnRyb2wgeworICAgICAgICBSZWY8Y29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZT4gY29udHJvbDsKKyAgICAgICAgU3RyaW5nIGZvcm1LZXk7CisgICAgfTsKIAor
ICAgIFZlY3RvcjxDb250cm9sPiBjb250cm9sczsKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgYmUgc2F2aW5nIHRoZSBzdGF0ZSBvZiBmb3JtIGNvbnRyb2xzIGluIHNoYWRvdyB0
cmVlcywgdG9vLgogICAgICAgICBGb3JtS2V5R2VuZXJhdG9yIGtleUdlbmVyYXRvcjsKLSAgICAg
ICAgZm9yIChhdXRvJiBlbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oZG9jdW1l
bnQpKSB7Ci0gICAgICAgICAgICBhdXRvKiBjb250cm9sID0gY29uc3RfY2FzdDxFbGVtZW50Jj4o
ZWxlbWVudCkuYXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgpOwotICAgICAgICAgICAgaWYg
KCFjb250cm9sIHx8ICFjb250cm9sLT5pc0NhbmRpZGF0ZUZvclNhdmluZ0FuZFJlc3RvcmluZ1N0
YXRlKCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIEF0b21TdHJp
bmcgZm9ybUtleSB7IGtleUdlbmVyYXRvci5mb3JtS2V5KCpjb250cm9sKSB9OwotICAgICAgICAg
ICAgYXV0byYgdmVjdG9yID0gZm9ybUtleVRvQ29udHJvbHNNYXAuZW5zdXJlKGZvcm1LZXksIFtd
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFJlZjxjb25zdCBWYWxpZGF0ZWRGb3Jt
TGlzdGVkRWxlbWVudD4+IHsgfTsKLSAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLSAg
ICAgICAgICAgIHZlY3Rvci5hcHBlbmQoKmNvbnRyb2wpOworICAgICAgICBmb3IgKGF1dG8mIGNv
bnRyb2wgOiBkZXNjZW5kYW50c09mVHlwZTxIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
Pihkb2N1bWVudCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChjb250cm9sLmluc2VydGlvbkluZGV4
KCkpOworICAgICAgICAgICAgaWYgKGNvbnRyb2wuc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKCkpCisgICAgICAgICAgICAgICAgY29udHJvbHMuYXBwZW5kKHsgY29udHJvbCwg
a2V5R2VuZXJhdG9yLmZvcm1LZXkoY29udHJvbCkgfSk7CiAgICAgICAgIH0KICAgICB9Ci0KLSAg
ICBpZiAoZm9ybUtleVRvQ29udHJvbHNNYXAuaXNFbXB0eSgpKQorICAgIGlmIChjb250cm9scy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CisgICAgc3RkOjpzb3J0KGNvbnRyb2xzLmJl
Z2luKCksIGNvbnRyb2xzLmVuZCgpLCBbXShhdXRvJiBhLCBhdXRvJiBiKSB7CisgICAgICAgIGlm
IChhLmZvcm1LZXkgIT0gYi5mb3JtS2V5KQorICAgICAgICAgICAgcmV0dXJuIGNvZGVQb2ludENv
bXBhcmVMZXNzVGhhbihhLmZvcm1LZXksIGIuZm9ybUtleSk7CisgICAgICAgIHJldHVybiBhLmNv
bnRyb2wtPmluc2VydGlvbkluZGV4KCkgPCBiLmNvbnRyb2wtPmluc2VydGlvbkluZGV4KCk7Cisg
ICAgfSk7CiAKICAgICBWZWN0b3I8QXRvbVN0cmluZz4gc3RhdGVWZWN0b3I7CiAgICAgc3RhdGVW
ZWN0b3IuYXBwZW5kKGZvcm1TdGF0ZVNpZ25hdHVyZSgpKTsKLQotICAgIGZvciAoY29uc3QgYXV0
byYgZW50cnkgOiBmb3JtS2V5VG9Db250cm9sc01hcCkgewotICAgICAgICBzdGF0ZVZlY3Rvci5h
cHBlbmQoZW50cnkua2V5KTsKLSAgICAgICAgc3RhdGVWZWN0b3IuYXBwZW5kKEF0b21TdHJpbmc6
Om51bWJlcihlbnRyeS52YWx1ZS5zaXplKCkpKTsKLQotICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNvbnRyb2wgOiBlbnRyeS52YWx1ZSkgewotICAgICAgICAgICAgc3RhdGVWZWN0b3IuYXBwZW5k
KGNvbnRyb2wtPm5hbWUoKSk7Ci0gICAgICAgICAgICBzdGF0ZVZlY3Rvci5hcHBlbmQoY29udHJv
bC0+Zm9ybUNvbnRyb2xUeXBlKCkpOwotICAgICAgICAgICAgYXBwZW5kU2VyaWFsaXplZEZvcm1D
b250cm9sU3RhdGUoc3RhdGVWZWN0b3IsIGNvbnRyb2wtPnNhdmVGb3JtQ29udHJvbFN0YXRlKCkp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gY29udHJvbHMuc2l6ZSgpOyBpIDwgc2l6
ZTsgKSB7CisgICAgICAgIGF1dG8gZm9ybVN0YXJ0ID0gaTsKKyAgICAgICAgYXV0byBmb3JtS2V5
ID0gY29udHJvbHNbZm9ybVN0YXJ0XS5mb3JtS2V5OworICAgICAgICB3aGlsZSAoKytpIDwgc2l6
ZSAmJiBjb250cm9sc1tpXS5mb3JtS2V5ID09IGZvcm1LZXkpIHsgfQorICAgICAgICBzdGF0ZVZl
Y3Rvci5hcHBlbmQoQXRvbVN0cmluZyB7IGZvcm1LZXkgfSk7CisgICAgICAgIHN0YXRlVmVjdG9y
LmFwcGVuZChBdG9tU3RyaW5nOjpudW1iZXIoaSAtIGZvcm1TdGFydCkpOworICAgICAgICBmb3Ig
KHNpemVfdCBqID0gZm9ybVN0YXJ0OyBqIDwgaTsgKytqKSB7CisgICAgICAgICAgICBhdXRvJiBj
b250cm9sID0gY29udHJvbHNbal0uY29udHJvbC5nZXQoKTsKKyAgICAgICAgICAgIHN0YXRlVmVj
dG9yLmFwcGVuZChjb250cm9sLm5hbWUoKSk7CisgICAgICAgICAgICBzdGF0ZVZlY3Rvci5hcHBl
bmQoY29udHJvbC50eXBlKCkpOworICAgICAgICAgICAgYXBwZW5kU2VyaWFsaXplZEZvcm1Db250
cm9sU3RhdGUoc3RhdGVWZWN0b3IsIGNvbnRyb2wuc2F2ZUZvcm1Db250cm9sU3RhdGUoKSk7CiAg
ICAgICAgIH0KICAgICB9Ci0KICAgICBzdGF0ZVZlY3Rvci5zaHJpbmtUb0ZpdCgpOwogICAgIHJl
dHVybiBzdGF0ZVZlY3RvcjsKIH0KQEAgLTI5Myw3ICsyOTAsNyBAQCB2b2lkIEZvcm1Db250cm9s
bGVyOjpzZXRTdGF0ZUZvck5ld0Zvcm1FbGVtZW50cyhjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4m
IHN0YXRlVgogICAgIG1fc2F2ZWRGb3JtU3RhdGVNYXAgPSBwYXJzZVN0YXRlVmVjdG9yKHN0YXRl
VmVjdG9yKTsKIH0KIAotRm9ybUNvbnRyb2xTdGF0ZSBGb3JtQ29udHJvbGxlcjo6dGFrZVN0YXRl
Rm9yRm9ybUVsZW1lbnQoY29uc3QgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQmIGNvbnRyb2wp
CitGb3JtQ29udHJvbFN0YXRlIEZvcm1Db250cm9sbGVyOjp0YWtlU3RhdGVGb3JGb3JtRWxlbWVu
dChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250cm9sKQogewogICAg
IGlmIChtX3NhdmVkRm9ybVN0YXRlTWFwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTMwMiw3ICsyOTksNyBAQCBGb3JtQ29udHJvbFN0YXRlIEZvcm1Db250cm9sbGVyOjp0YWtl
U3RhdGVGb3JGb3JtRWxlbWVudChjb25zdCBWYWxpZGF0ZWRGb3JtTGlzdAogICAgIGF1dG8gaXRl
cmF0b3IgPSBtX3NhdmVkRm9ybVN0YXRlTWFwLmZpbmQobV9mb3JtS2V5R2VuZXJhdG9yLT5mb3Jt
S2V5KGNvbnRyb2wpKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9zYXZlZEZvcm1TdGF0ZU1hcC5l
bmQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBhdXRvIHN0YXRlID0gaXRlcmF0b3ItPnZh
bHVlLnRha2VDb250cm9sU3RhdGUoeyBjb250cm9sLm5hbWUoKSwgY29udHJvbC5mb3JtQ29udHJv
bFR5cGUoKSB9KTsKKyAgICBhdXRvIHN0YXRlID0gaXRlcmF0b3ItPnZhbHVlLnRha2VDb250cm9s
U3RhdGUoeyBjb250cm9sLm5hbWUoKSwgY29udHJvbC50eXBlKCkgfSk7CiAgICAgaWYgKGl0ZXJh
dG9yLT52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fc2F2ZWRGb3JtU3RhdGVNYXAucmVtb3Zl
KGl0ZXJhdG9yKTsKICAgICByZXR1cm4gc3RhdGU7CkBAIC0zMzMsMTIgKzMzMCwxMiBAQCB2b2lk
IEZvcm1Db250cm9sbGVyOjp3aWxsRGVsZXRlRm9ybShIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCiAg
ICAgICAgIG1fZm9ybUtleUdlbmVyYXRvci0+d2lsbERlbGV0ZUZvcm0oZm9ybSk7CiB9CiAKLXZv
aWQgRm9ybUNvbnRyb2xsZXI6OnJlc3RvcmVDb250cm9sU3RhdGVGb3IoVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQmIGNvbnRyb2wpCit2b2lkIEZvcm1Db250cm9sbGVyOjpyZXN0b3JlQ29udHJv
bFN0YXRlRm9yKEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvbnRyb2wpCiB7CiAg
ICAgLy8gV2UgZG9uJ3Qgc2F2ZSBzdGF0ZSBvZiBhIGNvbnRyb2wgd2hlbiBzaG91bGRTYXZlQW5k
UmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKQogICAgIC8vIGlzIGZhbHNlLiBCdXQgd2UgbmVlZCB0
byBza2lwIHJlc3RvcmluZyBwcm9jZXNzIHRvbyBiZWNhdXNlIGEgY29udHJvbCBpbgogICAgIC8v
IGFub3RoZXIgZm9ybSBtaWdodCBoYXZlIHRoZSBzYW1lIHBhaXIgb2YgbmFtZSBhbmQgdHlwZSBh
bmQgc2F2ZWQgaXRzIHN0YXRlLgotICAgIGlmICghY29udHJvbC5pc0NhbmRpZGF0ZUZvclNhdmlu
Z0FuZFJlc3RvcmluZ1N0YXRlKCkpCisgICAgaWYgKCFjb250cm9sLnNob3VsZFNhdmVBbmRSZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIHx8IG93bmVyRm9ybShjb250cm9sKSkKICAgICAgICAgcmV0
dXJuOwogICAgIGF1dG8gc3RhdGUgPSB0YWtlU3RhdGVGb3JGb3JtRWxlbWVudChjb250cm9sKTsK
ICAgICBpZiAoIXN0YXRlLmlzRW1wdHkoKSkKQEAgLTM0NywxMiArMzQ0LDE1IEBAIHZvaWQgRm9y
bUNvbnRyb2xsZXI6OnJlc3RvcmVDb250cm9sU3RhdGVGb3IoVmFsaWRhdGVkRm9ybUxpc3RlZEVs
ZW1lbnQmIGNvbnRyb2wpCiAKIHZvaWQgRm9ybUNvbnRyb2xsZXI6OnJlc3RvcmVDb250cm9sU3Rh
dGVJbihIVE1MRm9ybUVsZW1lbnQmIGZvcm0pCiB7Ci0gICAgZm9yIChhdXRvJiBlbGVtZW50IDog
Zm9ybS5jb3B5VmFsaWRhdGVkTGlzdGVkRWxlbWVudHNWZWN0b3IoKSkgewotICAgICAgICBpZiAo
IWVsZW1lbnQtPmlzQ2FuZGlkYXRlRm9yU2F2aW5nQW5kUmVzdG9yaW5nU3RhdGUoKSB8fCBvd25l
ckZvcm0oZWxlbWVudCkgIT0gJmZvcm0pCisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogZm9ybS5j
b3B5TGlzdGVkRWxlbWVudHNWZWN0b3IoKSkgeworICAgICAgICBpZiAoIWlzPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGU+KGVsZW1lbnQpKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGF1dG8mIGNvbnRyb2wgPSBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0
aFN0YXRlPihlbGVtZW50LmdldCgpKTsKKyAgICAgICAgaWYgKCFjb250cm9sLnNob3VsZFNhdmVB
bmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIHx8IG93bmVyRm9ybShjb250cm9sKSAhPSAmZm9y
bSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhdXRvIHN0YXRlID0gdGFrZVN0YXRl
Rm9yRm9ybUVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgIGF1dG8gc3RhdGUgPSB0YWtlU3RhdGVG
b3JGb3JtRWxlbWVudChjb250cm9sKTsKICAgICAgICAgaWYgKCFzdGF0ZS5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICBlbGVtZW50LT5yZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSk7CisgICAg
ICAgICAgICBjb250cm9sLnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKHN0YXRlKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuaAppbmRleCBiNjBkYzZkOGUxMzEuLjY2
OWFjOTg4ZjI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuaApAQCAtMjcsOSAr
MjcsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEZv
cm1MaXN0ZWRFbGVtZW50OworY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTsK
IGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKLWNsYXNzIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50
OwogCiB1c2luZyBGb3JtQ29udHJvbFN0YXRlID0gVmVjdG9yPEF0b21TdHJpbmc+OwogCkBAIC00
NCwxOSArNDMsMTggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGVGb3JOZXdGb3JtRWxlbWVu
dHMoY29uc3QgVmVjdG9yPEF0b21TdHJpbmc+JiBzdGF0ZVZlY3Rvcik7CiAKICAgICB2b2lkIHdp
bGxEZWxldGVGb3JtKEhUTUxGb3JtRWxlbWVudCYpOwotICAgIHZvaWQgcmVzdG9yZUNvbnRyb2xT
dGF0ZUZvcihWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCYpOworICAgIHZvaWQgcmVzdG9yZUNv
bnRyb2xTdGF0ZUZvcihIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJik7CiAgICAgdm9p
ZCByZXN0b3JlQ29udHJvbFN0YXRlSW4oSFRNTEZvcm1FbGVtZW50Jik7CiAgICAgYm9vbCBoYXNG
b3JtU3RhdGVUb1Jlc3RvcmUoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBW
ZWN0b3I8U3RyaW5nPiByZWZlcmVuY2VkRmlsZVBhdGhzKGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5n
PiYgc3RhdGVWZWN0b3IpOwotICAgIHN0YXRpYyBIVE1MRm9ybUVsZW1lbnQqIG93bmVyRm9ybShj
b25zdCBGb3JtTGlzdGVkRWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGNsYXNzIEZvcm1LZXlH
ZW5lcmF0b3I7CiAgICAgY2xhc3MgU2F2ZWRGb3JtU3RhdGU7CiAgICAgdXNpbmcgU2F2ZWRGb3Jt
U3RhdGVNYXAgPSBIYXNoTWFwPFN0cmluZywgU2F2ZWRGb3JtU3RhdGU+OwogCi0gICAgRm9ybUNv
bnRyb2xTdGF0ZSB0YWtlU3RhdGVGb3JGb3JtRWxlbWVudChjb25zdCBWYWxpZGF0ZWRGb3JtTGlz
dGVkRWxlbWVudCYpOworICAgIEZvcm1Db250cm9sU3RhdGUgdGFrZVN0YXRlRm9yRm9ybUVsZW1l
bnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYpOwogICAgIHN0YXRpYyBT
YXZlZEZvcm1TdGF0ZU1hcCBwYXJzZVN0YXRlVmVjdG9yKGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5n
PiYpOwogCiAgICAgU2F2ZWRGb3JtU3RhdGVNYXAgbV9zYXZlZEZvcm1TdGF0ZU1hcDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVkRWxlbWVudC5jcHAKaW5kZXggZTkyMTkxM2Q4MWU2Li40
NTIyYjA5Zjc2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVsZW1lbnQuY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIEZvcm1MaXN0ZWRFbGVtZW50OjpGb3JtTGlzdGVkRWxlbWVudChI
VE1MRm9ybUVsZW1lbnQqIGZvcm0pCiAKIEZvcm1MaXN0ZWRFbGVtZW50Ojp+Rm9ybUxpc3RlZEVs
ZW1lbnQoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZE1vdmVUb05l
d0RvY3VtZW50KCkKK3ZvaWQgRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50
KERvY3VtZW50JikKIHsKICAgICBIVE1MRWxlbWVudCYgZWxlbWVudCA9IGFzSFRNTEVsZW1lbnQo
KTsKICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZv
cm1BdHRyKSAmJiBlbGVtZW50LmlzQ29ubmVjdGVkKCkpCkBAIC0xNjUsMjggKzE2NSwyMCBAQCB2
b2lkIEZvcm1MaXN0ZWRFbGVtZW50Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKIHZvaWQgRm9ybUxp
c3RlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVyKCkKIHsKICAgICBSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiBvcmlnaW5hbEZvcm0gPSBmb3JtKCk7CisgICAgc2V0Rm9ybShmaW5kQXNzb2NpYXRlZEZv
cm0oJmFzSFRNTEVsZW1lbnQoKSwgb3JpZ2luYWxGb3JtLmdldCgpKSk7CiAgICAgSFRNTEVsZW1l
bnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7Ci0gICAgc2V0Rm9ybShmaW5kQXNzb2NpYXRl
ZEZvcm0oJmVsZW1lbnQsIG9yaWdpbmFsRm9ybS5nZXQoKSkpOwogICAgIGF1dG8qIG5ld0Zvcm0g
PSBmb3JtKCk7CiAgICAgaWYgKG5ld0Zvcm0gJiYgbmV3Rm9ybSAhPSBvcmlnaW5hbEZvcm0gJiYg
bmV3Rm9ybS0+aXNDb25uZWN0ZWQoKSkKICAgICAgICAgZWxlbWVudC5kb2N1bWVudCgpLmRpZEFz
c29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogfQogCi12b2lkIEZvcm1MaXN0ZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAobmFtZSA9PSBmb3JtQXR0cikKLSAgICAgICAgcGFyc2VG
b3JtQXR0cmlidXRlKHZhbHVlKTsKLX0KLQotdm9pZCBGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VG
b3JtQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBGb3JtTGlzdGVkRWxl
bWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQogewogICAgIEhUTUxFbGVtZW50JiBlbGVtZW50
ID0gYXNIVE1MRWxlbWVudCgpOwotICAgIGlmICh2YWx1ZS5pc051bGwoKSkgeworICAgIGlmICgh
ZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvcm1BdHRyKSkgewog
ICAgICAgICAvLyBUaGUgZm9ybSBhdHRyaWJ1dGUgcmVtb3ZlZC4gV2UgbmVlZCB0byByZXNldCBm
b3JtIG93bmVyIGhlcmUuCiAgICAgICAgIFJlZlB0ciBvcmlnaW5hbEZvcm0gPSBmb3JtKCk7Ci0g
ICAgICAgIC8vIEluc3RlYWQgb2YgY2FsbGluZyBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSgm
ZWxlbWVudCwgb3JpZ2luYWxGb3JtLmdldCgpKSkgaGVyZSwKLSAgICAgICAgLy8gd2UgZWZmZWN0
aXZlbHkgcGVyZm9ybSBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSgmZWxlbWVudCwgbnVsbHB0
cikpIGJlY2F1c2UKLSAgICAgICAgLy8gaXQncyBrbm93biB0aGF0IG9yaWdpbmFsRm9ybSBpcyBv
YnNvbGV0ZSBhbmQgY2FuJ3QgYmUgdXNlZCBhcyBhIGZhbGxiYWNrLgorICAgICAgICAvLyBGSVhN
RTogV2h5IGRvZXMgdGhpcyBub3QgcGFzcyBvcmlnaW5hbEZvcm0gdG8gZmluZENsb3Nlc3RGb3Jt
QW5jZXN0b3I/CiAgICAgICAgIHNldEZvcm0oSFRNTEZvcm1FbGVtZW50OjpmaW5kQ2xvc2VzdEZv
cm1BbmNlc3RvcihlbGVtZW50KSk7CiAgICAgICAgIGF1dG8qIG5ld0Zvcm0gPSBmb3JtKCk7CiAg
ICAgICAgIGlmIChuZXdGb3JtICYmIG5ld0Zvcm0gIT0gb3JpZ2luYWxGb3JtICYmIG5ld0Zvcm0t
PmlzQ29ubmVjdGVkKCkpCkBAIC0yODgsNiArMjgwLDExIEBAIGNvbnN0IEF0b21TdHJpbmcmIEZv
cm1MaXN0ZWRFbGVtZW50OjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gbmFtZS5pc051bGwoKSA/
IGVtcHR5QXRvbSgpIDogbmFtZTsKIH0KIAorYm9vbCBGb3JtTGlzdGVkRWxlbWVudDo6aXNGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30K
KwogRm9ybUF0dHJpYnV0ZVRhcmdldE9ic2VydmVyOjpGb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2
ZXIoY29uc3QgQXRvbVN0cmluZyYgaWQsIEZvcm1MaXN0ZWRFbGVtZW50JiBlbGVtZW50KQogICAg
IDogSWRUYXJnZXRPYnNlcnZlcihlbGVtZW50LmFzSFRNTEVsZW1lbnQoKS50cmVlU2NvcGUoKS5p
ZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoKSwgaWQpCiAgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVsZW1lbnQuaAppbmRleCA3NDlmYzE2Y2IxYzUu
LmMyOWQ1NWI2ZTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtTGlzdGVk
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUxpc3RlZEVsZW1lbnQuaApA
QCAtNDgsOCArNDgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEhUTUxGb3JtRWxlbWVudCogZmlu
ZEFzc29jaWF0ZWRGb3JtKGNvbnN0IEhUTUxFbGVtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAg
ICAgVmFsaWRpdHlTdGF0ZSogdmFsaWRpdHkoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlk
YXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Zv
cm1Db250cm9sRWxlbWVudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJh
dGFibGUoKSBjb25zdCA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRoZSAnbmFtZScgYXR0cmlidXRl
IHZhbHVlLiBJZiB0aGlzIGVsZW1lbnQgaGFzIG5vIG5hbWUKQEAgLTYxLDcgKzYxLDcgQEAgcHVi
bGljOgogICAgIC8vIFJldHVybiB0cnVlIGZvciBhIHN1Y2Nlc3NmdWwgY29udHJvbCAoc2VlIEhU
TUw0LTE3LjEzLjIpLgogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0
YSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lkIGZvcm1XaWxsQmVEZXN0cm95ZWQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIGZvcm1XaWxsQmVEZXN0cm95ZWQoKSBmaW5hbDsKIAogICAgIHZv
aWQgcmVzZXRGb3JtT3duZXIoKSBmaW5hbDsKIApAQCAtODcsMTkgKzg3LDE1IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZm9ybUF0dHJpYnV0ZVRhcmdldENoYW5nZWQoKTsKIAotICAgIHZpcnR1YWwg
Rm9ybUxpc3RlZEVsZW1lbnQqIGFzRm9ybUxpc3RlZEVsZW1lbnQoKSA9IDA7Ci0gICAgdmlydHVh
bCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCogYXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVu
dCgpID0gMDsKLQogcHJvdGVjdGVkOgogICAgIEZvcm1MaXN0ZWRFbGVtZW50KEhUTUxGb3JtRWxl
bWVudCopOwogCi0gICAgdm9pZCBjbGVhckZvcm0oKSB7IHNldEZvcm0obnVsbHB0cik7IH0KKyAg
ICB2b2lkIGVsZW1lbnRJbnNlcnRlZEludG9BbmNlc3RvcihFbGVtZW50JiwgTm9kZTo6SW5zZXJ0
aW9uVHlwZSkgZmluYWw7CisgICAgdm9pZCBlbGVtZW50UmVtb3ZlZEZyb21BbmNlc3RvcihFbGVt
ZW50JiwgTm9kZTo6UmVtb3ZhbFR5cGUpOworICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQo
RG9jdW1lbnQmIG9sZERvY3VtZW50KTsKIAotICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQo
KTsKLSAgICB2b2lkIGVsZW1lbnRJbnNlcnRlZEludG9BbmNlc3RvcihFbGVtZW50JiwgTm9kZTo6
SW5zZXJ0aW9uVHlwZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbGVtZW50UmVtb3ZlZEZyb21BbmNl
c3RvcihFbGVtZW50JiwgTm9kZTo6UmVtb3ZhbFR5cGUpIG92ZXJyaWRlOwotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKTsKLSAg
ICB2b2lkIHBhcnNlRm9ybUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJik7CisgICAgdm9pZCBj
bGVhckZvcm0oKSB7IHNldEZvcm0obnVsbHB0cik7IH0KKyAgICB2b2lkIGZvcm1BdHRyaWJ1dGVD
aGFuZ2VkKCk7CiAKICAgICAvLyBJZiB5b3UgYWRkIGFuIG92ZXJyaWRlIG9mIHdpbGxDaGFuZ2VG
b3JtKCkgb3IgZGlkQ2hhbmdlRm9ybSgpIHRvIGEgY2xhc3MKICAgICAvLyBkZXJpdmVkIGZyb20g
dGhpcyBvbmUsIHlvdSB3aWxsIG5lZWQgdG8gYWRkIGEgY2FsbCB0byBzZXRGb3JtKDApIHRvIHRo
ZQpAQCAtMTE2LDYgKzExMiw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlc2V0Rm9ybUF0dHJp
YnV0ZVRhcmdldE9ic2VydmVyKCk7CiAKKyAgICBib29sIGlzRm9ybUxpc3RlZEVsZW1lbnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybUF0
dHJpYnV0ZVRhcmdldE9ic2VydmVyPiBtX2Zvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcjsKICAg
ICBTdHJpbmcgbV9jdXN0b21WYWxpZGF0aW9uTWVzc2FnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggM2I0ZDdh
MTUwMDViLi5lYmU3YzYxZjA1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2Vu
ZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0dl
bmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgYm9vbCBHZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb248dHJhdmVyc2FsVHlwZT46OmVsZW1lbnRNYXRjaGVzKEVs
ZW1lbnQmIGVsZW1lbnQKICAgICBjYXNlIERvY0FuY2hvcnM6CiAgICAgICAgIHJldHVybiBlbGVt
ZW50Lmhhc1RhZ05hbWUoYVRhZykgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKG5hbWVBdHRyKTsKICAgICBjYXNlIEZpZWxkU2V0RWxlbWVudHM6Ci0gICAgICAg
IHJldHVybiBlbGVtZW50LmlzRm9ybUxpc3RlZEVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIGlz
PEhUTUxPYmplY3RFbGVtZW50PihlbGVtZW50KSB8fCBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50
PihlbGVtZW50KTsKICAgICBjYXNlIEJ5Q2xhc3M6CiAgICAgY2FzZSBCeVRhZzoKICAgICBjYXNl
IEJ5SFRNTFRhZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMTk4NDNhY2Vj
MDc5Li41ZmE3ODcyNTE0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC01
Niw3ICs1Niw2IEBACiAjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKLSNpbmNs
dWRlICJIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9wdEdyb3VwRWxlbWVudC5oIgpAQCAtNzYzLDYgKzc2MiwxMSBAQCBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQqIEhUTUxFbGVtZW50Ojphc0Zvcm1Bc3NvY2lhdGVkRWxlbWVudCgpCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKK0Zvcm1MaXN0ZWRFbGVtZW50KiBIVE1MRWxlbWVudDo6YXNGb3JtTGlz
dGVkRWxlbWVudCgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHN0YXRpYyB2b2lkIHNl
dEhhc0RpckF1dG9GbGFnUmVjdXJzaXZlbHkoTm9kZSogZmlyc3ROb2RlLCBib29sIGZsYWcsIE5v
ZGUqIGxhc3ROb2RlID0gbnVsbHB0cikKIHsKICAgICBmaXJzdE5vZGUtPnNldFNlbGZPclByZWNl
ZGluZ05vZGVzQWZmZWN0RGlyQXV0byhmbGFnKTsKQEAgLTEwOTMsOCArMTA5Nyw3IEBAIGJvb2wg
SFRNTEVsZW1lbnQ6OmNhbkJlQWN0dWFsbHlEaXNhYmxlZCgpIGNvbnN0CiAgICAgICAgIHx8IGlz
PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCp0aGlzKQogICAgICAgICB8fCBpczxIVE1MT3B0R3JvdXBF
bGVtZW50PigqdGhpcykKICAgICAgICAgfHwgaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCp0aGlzKQot
ICAgICAgICB8fCBpczxIVE1MRmllbGRTZXRFbGVtZW50PigqdGhpcykKLSAgICAgICAgfHwgKGlz
PEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4oKnRoaXMpICYmIGRvd25jYXN0
PEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudD4oKnRoaXMpLmlzRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50KCkpOworICAgICAgICB8fCBpczxIVE1MRmllbGRTZXRFbGVtZW50
PigqdGhpcyk7CiB9CiAKIGJvb2wgSFRNTEVsZW1lbnQ6OmlzQWN0dWFsbHlEaXNhYmxlZCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMTRjNjNjNjNmOWQwLi5hZGY3MDM3
Y2QxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogYXNGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIEZvcm1MaXN0ZWRFbGVtZW50KiBhc0Zvcm1MaXN0ZWRF
bGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnRlcmFjdGl2ZUNvbnRlbnQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmNwcAppbmRleCBmMGI1YmNlYWMyMWYuLjhmZWE0M2ZiMzU0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCkBAIC02MywyMiArNjMsMTggQEAg
UmVmPEhUTUxGaWVsZFNldEVsZW1lbnQ+IEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW0KIAogc3RhdGljIHZvaWQgdXBkYXRlRnJvbUNvbnRyb2xF
bGVtZW50c0FuY2VzdG9yRGlzYWJsZWRTdGF0ZVVuZGVyKEhUTUxFbGVtZW50JiBzdGFydE5vZGUs
IGJvb2wgaXNEaXNhYmxlZCkKIHsKLSAgICBhdXRvIHJhbmdlID0gaW5jbHVzaXZlRGVzY2VuZGFu
dHNPZlR5cGU8RWxlbWVudD4oc3RhcnROb2RlKTsKLSAgICBhdXRvIGl0ID0gcmFuZ2UuYmVnaW4o
KTsKLQotICAgIC8vIFRoaXMgcHJlc2VydmVzIHN0YXR1cy1xdW8gZXN0YWJsaXNoZWQgYmVmb3Jl
IGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJLaXQvV2ViS2l0L3B1bGwvNDk4ODoKLSAgICAvLyBzZXRE
aXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldCgpIG1heSBtb2RpZnkgc2hhZG93IERPTSBvZiA8aW5w
dXQ+IC8gPHRleHRhcmVhPiBlbGVtZW50cywgYnV0IHdlIGRvbid0IGNhcmUuCi0gICAgaXQuZHJv
cEFzc2VydGlvbnMoKTsKLQotICAgIHdoaWxlIChpdCAhPSByYW5nZS5lbmQoKSkgewotICAgICAg
ICBpZiAoYXV0byogbGlzdGVkRWxlbWVudCA9IGl0LT5hc1ZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVt
ZW50KCkpCi0gICAgICAgICAgICBsaXN0ZWRFbGVtZW50LT5zZXREaXNhYmxlZEJ5QW5jZXN0b3JG
aWVsZHNldChpc0Rpc2FibGVkKTsKLQotICAgICAgICAvLyBEb24ndCBjYWxsIHNldERpc2FibGVk
QnlBbmNlc3RvckZpZWxkc2V0KCkgb24gZm9ybSBjb250cm9scyBpbnNpZGUgZGlzYWJsZWQgZmll
bGRzZXRzLgotICAgICAgICBpZiAoaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oKml0KSAmJiBpdC0+
aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkaXNhYmxlZEF0dHIpKQotICAgICAg
ICAgICAgaXQudHJhdmVyc2VOZXh0U2tpcHBpbmdDaGlsZHJlbigpOworICAgIFJlZlB0cjxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50PiBjb250cm9sOworICAgIGlmIChpczxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50PihzdGFydE5vZGUpKQorICAgICAgICBjb250cm9sID0gJmRvd25jYXN0PEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ+KHN0YXJ0Tm9kZSk7CisgICAgZWxzZQorICAgICAgICBjb250cm9sID0g
VHJhdmVyc2FsPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+OjpmaXJzdFdpdGhpbihzdGFydE5vZGUp
OworICAgIHdoaWxlIChjb250cm9sKSB7CisgICAgICAgIGNvbnRyb2wtPnNldEFuY2VzdG9yRGlz
YWJsZWQoaXNEaXNhYmxlZCk7CisgICAgICAgIC8vIERvbid0IGNhbGwgc2V0QW5jZXN0b3JEaXNh
YmxlZChmYWxzZSkgb24gZm9ybSBjb250cm9scyBpbnNpZGUgZGlzYWJsZWQgZmllbGRzZXRzLgor
ICAgICAgICBpZiAoaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oKmNvbnRyb2wpICYmIGNvbnRyb2wt
Pmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZGlzYWJsZWRBdHRyKSkKKyAgICAg
ICAgICAgIGNvbnRyb2wgPSBUcmF2ZXJzYWw8SFRNTEZvcm1Db250cm9sRWxlbWVudD46Om5leHRT
a2lwcGluZ0NoaWxkcmVuKCpjb250cm9sLCAmc3RhcnROb2RlKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgaXQudHJhdmVyc2VOZXh0KCk7CisgICAgICAgICAgICBjb250cm9sID0gVHJhdmVy
c2FsPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+OjpuZXh0KCpjb250cm9sLCAmc3RhcnROb2RlKTsK
ICAgICB9CiB9CiAKQEAgLTE3OSw3ICsxNzUsNyBAQCBSZWY8SFRNTENvbGxlY3Rpb24+IEhUTUxG
aWVsZFNldEVsZW1lbnQ6OmVsZW1lbnRzKCkKICAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5l
bnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNoZWRDb2xsZWN0aW9uPEdlbmVyaWNDYWNoZWRIVE1MQ29s
bGVjdGlvbjxDb2xsZWN0aW9uVHlwZVRyYWl0czxGaWVsZFNldEVsZW1lbnRzPjo6dHJhdmVyc2Fs
VHlwZT4+KCp0aGlzLCBGaWVsZFNldEVsZW1lbnRzKTsKIH0KIAotdm9pZCBIVE1MRmllbGRTZXRF
bGVtZW50OjphZGRJbnZhbGlkRGVzY2VuZGFudChjb25zdCBIVE1MRWxlbWVudCYgaW52YWxpZEZv
cm1Db250cm9sRWxlbWVudCkKK3ZvaWQgSFRNTEZpZWxkU2V0RWxlbWVudDo6YWRkSW52YWxpZERl
c2NlbmRhbnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgaW52YWxpZEZvcm1Db250cm9s
RWxlbWVudCkKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFpczxIVE1MRmllbGRTZXRFbGVt
ZW50PihpbnZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KSwgIkZpZWxkU2V0IGFyZSBuZXZlciBjYW5k
aWRhdGVzIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24uIik7CiAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PGNvbnN0IEVsZW1lbnQmPihpbnZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KS5tYXRjaGVzSW52
YWxpZFBzZXVkb0NsYXNzKCkpOwpAQCAtMTkyLDcgKzE4OCw3IEBAIHZvaWQgSFRNTEZpZWxkU2V0
RWxlbWVudDo6YWRkSW52YWxpZERlc2NlbmRhbnQoY29uc3QgSFRNTEVsZW1lbnQmIGludmFsaWRG
b3JtQ29uCiAgICAgbV9pbnZhbGlkRGVzY2VuZGFudHMuYWRkKGludmFsaWRGb3JtQ29udHJvbEVs
ZW1lbnQpOwogfQogCi12b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnJlbW92ZUludmFsaWREZXNj
ZW5kYW50KGNvbnN0IEhUTUxFbGVtZW50JiBmb3JtQ29udHJvbEVsZW1lbnQpCit2b2lkIEhUTUxG
aWVsZFNldEVsZW1lbnQ6OnJlbW92ZUludmFsaWREZXNjZW5kYW50KGNvbnN0IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQmIGZvcm1Db250cm9sRWxlbWVudCkKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFpczxIVE1MRmllbGRTZXRFbGVtZW50Pihmb3JtQ29udHJvbEVsZW1lbnQpLCAiRmllbGRT
ZXQgYXJlIG5ldmVyIGNhbmRpZGF0ZXMgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbi4iKTsKICAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1faW52YWxpZERlc2NlbmRhbnRzLmNvbnRhaW5zKGZvcm1D
b250cm9sRWxlbWVudCksICJVcGRhdGluZyB0aGUgZmllbGRzZXQgb24gdmFsaWRpdHkgY2hhbmdl
IGlzIG5vdCBhbiBlZmZpY2llbnQgb3BlcmF0aW9uLCBpdCBzaG91bGQgb25seSBiZSBkb25lIHdo
ZW4gbmVjZXNzYXJ5LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
aAppbmRleCA0OWQ2NjdkMTQwMjEuLjI5OWQxMzk5MWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTI4LDYgKzI4LDkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBGb3JtTGlzdGVkRWxlbWVudDsKK2NsYXNzIEhUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uOworCiBjbGFzcyBIVE1MRmllbGRTZXRFbGVtZW50IGZpbmFsIDogcHVibGlj
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRN
TEZpZWxkU2V0RWxlbWVudCk7CiBwdWJsaWM6CkBAIC0zNyw4ICs0MCw4IEBAIHB1YmxpYzoKIAog
ICAgIFJlZjxIVE1MQ29sbGVjdGlvbj4gZWxlbWVudHMoKTsKIAotICAgIHZvaWQgYWRkSW52YWxp
ZERlc2NlbmRhbnQoY29uc3QgSFRNTEVsZW1lbnQmKTsKLSAgICB2b2lkIHJlbW92ZUludmFsaWRE
ZXNjZW5kYW50KGNvbnN0IEhUTUxFbGVtZW50Jik7CisgICAgdm9pZCBhZGRJbnZhbGlkRGVzY2Vu
ZGFudChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Jik7CisgICAgdm9pZCByZW1vdmVJbnZh
bGlkRGVzY2VuZGFudChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgSFRNTEZpZWxkU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
LCBIVE1MRm9ybUVsZW1lbnQqKTsKQEAgLTU3LDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtYXRjaGVz
SW52YWxpZFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICBXZWFrSGFzaFNldDxIVE1M
RWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2ludmFsaWREZXNjZW5k
YW50czsKKyAgICBXZWFrSGFzaFNldDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50LCBXZWFrUHRySW1w
bFdpdGhFdmVudFRhcmdldERhdGE+IG1faW52YWxpZERlc2NlbmRhbnRzOwogICAgIGJvb2wgbV9o
YXNEaXNhYmxlZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCA2OTJmZmY1M2Y3NTguLjUyYmM1NGU1NjYw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0y
MCw3ICsyMCw3IEBACiBbCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEhUTUxGaWVs
ZFNldEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgW0NFUmVhY3Rpb25zLCBSZWZsZWN0XSBh
dHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBS
ZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA2N2MwNTFlZDdhMGYuLjBiN2JiMDZj
MzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCkBAIC0yNywxOSArMjcsMjQgQEAKIAogI2luY2x1ZGUgIkF1dG9maWxsLmgiCiAjaW5jbHVk
ZSAiQ29udHJvbFN0YXRlcy5oIgorI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MRGF0
YUxpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMu
aCIKKyNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiUHNldWRvQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJRdWlya3MuaCIKICNpbmNsdWRlICJS
ZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlNjcmlwdERp
c2FsbG93ZWRTY29wZS5oIgogI2luY2x1ZGUgIlNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZS5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVUcmVlUmVzb2x2ZXIuaCIKQEAg
LTU3LDEwICs2MiwxOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAg
IDogTGFiZWxhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIFZhbGlkYXRlZEZv
cm1MaXN0ZWRFbGVtZW50KGZvcm0pCisgICAgLCBGb3JtTGlzdGVkRWxlbWVudChmb3JtKQorICAg
ICwgbV9kaXNhYmxlZChmYWxzZSkKKyAgICAsIG1faGFzUmVhZE9ubHlBdHRyaWJ1dGUoZmFsc2Up
CiAgICAgLCBtX2lzUmVxdWlyZWQoZmFsc2UpCiAgICAgLCBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVy
KGZhbHNlKQorICAgICwgbV9kaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldChmYWxzZSkKKyAgICAs
IG1fZGF0YUxpc3RBbmNlc3RvclN0YXRlKFVua25vd24pCisgICAgLCBtX3dpbGxWYWxpZGF0ZUlu
aXRpYWxpemVkKGZhbHNlKQorICAgICwgbV93aWxsVmFsaWRhdGUodHJ1ZSkKKyAgICAsIG1faXNW
YWxpZCh0cnVlKQogICAgICwgbV93YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VF
dmVudChmYWxzZSkKKyAgICAsIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0
RXZlbnQoZmFsc2UpCiB7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7
CiB9CkBAIC0xMTUsNjQgKzEyOCw3OSBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dEZvcm1BY3Rpb24oY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAgICAgc2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihmb3JtYWN0aW9uQXR0ciwgdmFsdWUpOwogfQogCi1Ob2RlOjpJ
bnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjppbnNlcnRl
ZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUm
IHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQorYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpjb21w
dXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpIGNvbnN0CiB7Ci0gICAgSFRNTEVsZW1l
bnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9mSW5zZXJ0ZWRU
cmVlKTsKLSAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0
b3IoaW5zZXJ0aW9uVHlwZSwgcGFyZW50T2ZJbnNlcnRlZFRyZWUpOwotCi0gICAgcmV0dXJuIElu
c2VydGVkSW50b0FuY2VzdG9yUmVzdWx0OjpOZWVkc1Bvc3RJbnNlcnRpb25DYWxsYmFjazsKKyAg
ICBSZWZQdHI8RWxlbWVudD4gcHJldmlvdXNBbmNlc3RvcjsKKyAgICBmb3IgKFJlZlB0cjxFbGVt
ZW50PiBhbmNlc3RvciA9IHBhcmVudEVsZW1lbnQoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5j
ZXN0b3ItPnBhcmVudEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaXM8SFRNTEZpZWxkU2V0RWxl
bWVudD4oKmFuY2VzdG9yKSAmJiBhbmNlc3Rvci0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihkaXNhYmxlZEF0dHIpKSB7CisgICAgICAgICAgICBIVE1MRmllbGRTZXRFbGVtZW50
JiBmaWVsZFNldEFuY2VzdG9yID0gZG93bmNhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudD4oKmFuY2Vz
dG9yKTsKKyAgICAgICAgICAgIGJvb2wgaXNJbkZpcnN0TGVnZW5kID0gaXM8SFRNTExlZ2VuZEVs
ZW1lbnQ+KHByZXZpb3VzQW5jZXN0b3IpICYmIHByZXZpb3VzQW5jZXN0b3IgPT0gZmllbGRTZXRB
bmNlc3Rvci5sZWdlbmQoKTsKKyAgICAgICAgICAgIHJldHVybiAhaXNJbkZpcnN0TGVnZW5kOwor
ICAgICAgICB9CisgICAgICAgIHByZXZpb3VzQW5jZXN0b3IgPSBhbmNlc3RvcjsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZEZp
bmlzaEluc2VydGluZ05vZGUoKQordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRBbmNl
c3RvckRpc2FibGVkKGJvb2wgaXNEaXNhYmxlZCkKIHsKLSAgICBIVE1MRWxlbWVudDo6ZGlkRmlu
aXNoSW5zZXJ0aW5nTm9kZSgpOwotICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpkaWRG
aW5pc2hJbnNlcnRpbmdOb2RlKCk7Ci19CisgICAgQVNTRVJUKGNvbXB1dGVJc0Rpc2FibGVkQnlG
aWVsZHNldEFuY2VzdG9yKCkgPT0gaXNEaXNhYmxlZCk7CisgICAgaWYgKG1fZGlzYWJsZWRCeUFu
Y2VzdG9yRmllbGRzZXQgPT0gaXNEaXNhYmxlZCkKKyAgICAgICAgcmV0dXJuOwogCi12b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGRE
b2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KQotewotICAgIEhUTUxFbGVtZW50OjpkaWRN
b3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwotICAgIFZhbGlkYXRl
ZEZvcm1MaXN0ZWRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCgpOwotfQorICAgIFN0eWxl
OjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBkaXNhYmxlZEludmFsaWRhdGlvbigqdGhp
cywgeyB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0Rpc2FibGVkLCBpc0Rpc2FibGVkIH0sIHsg
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRW5hYmxlZCwgIWlzRGlzYWJsZWQgfSB9KTsKIAotdm9p
ZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBl
IHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKQotewot
ICAgIEhUTUxFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKHJlbW92YWxUeXBlLCBvbGRQYXJl
bnRPZlJlbW92ZWRUcmVlKTsKLSAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cmVtb3Zl
ZEZyb21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CisgICAg
bV9kaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldCA9IGlzRGlzYWJsZWQ7CisgICAgZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBpZiAobmFtZSA9PSByZXF1aXJlZEF0dHIpIHsKKyAgICBpZiAobmFtZSA9PSBm
b3JtQXR0cikKKyAgICAgICAgZm9ybUF0dHJpYnV0ZUNoYW5nZWQoKTsKKyAgICBlbHNlIGlmIChu
YW1lID09IGRpc2FibGVkQXR0cikgeworICAgICAgICBpZiAoY2FuQmVBY3R1YWxseURpc2FibGVk
KCkpIHsKKyAgICAgICAgICAgIGJvb2wgbmV3RGlzYWJsZWQgPSAhdmFsdWUuaXNOdWxsKCk7Cisg
ICAgICAgICAgICBpZiAobV9kaXNhYmxlZCAhPSBuZXdEaXNhYmxlZCkgeworICAgICAgICAgICAg
ICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBkaXNhYmxlZEludmFsaWRh
dGlvbigqdGhpcywgeyB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0Rpc2FibGVkLCBuZXdEaXNh
YmxlZCB9LCB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0VuYWJsZWQsICFuZXdEaXNhYmxlZCB9
IH0pOworICAgICAgICAgICAgICAgIG1fZGlzYWJsZWQgPSBuZXdEaXNhYmxlZDsKKyAgICAgICAg
ICAgICAgICBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0gZWxzZSBpZiAobmFtZSA9PSByZWFkb25seUF0dHIpIHsKKyAgICAgICAgYm9v
bCBuZXdIYXNSZWFkT25seUF0dHJpYnV0ZSA9ICF2YWx1ZS5pc051bGwoKTsKKyAgICAgICAgaWYg
KG1faGFzUmVhZE9ubHlBdHRyaWJ1dGUgIT0gbmV3SGFzUmVhZE9ubHlBdHRyaWJ1dGUpIHsKKyAg
ICAgICAgICAgIGJvb2wgbmV3TWF0Y2hlc1JlYWRXcml0ZSA9IHN1cHBvcnRzUmVhZE9ubHkoKSAm
JiAhbmV3SGFzUmVhZE9ubHlBdHRyaWJ1dGU7CisgICAgICAgICAgICBTdHlsZTo6UHNldWRvQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24gcmVhZFdyaXRlSW52YWxpZGF0aW9uKCp0aGlzLCB7IHsgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzUmVhZFdyaXRlLCBuZXdNYXRjaGVzUmVhZFdyaXRlIH0sIHsg
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzUmVhZE9ubHksICFuZXdNYXRjaGVzUmVhZFdyaXRlIH0g
fSk7CisgICAgICAgICAgICBtX2hhc1JlYWRPbmx5QXR0cmlidXRlID0gbmV3SGFzUmVhZE9ubHlB
dHRyaWJ1dGU7CisgICAgICAgICAgICByZWFkT25seVN0YXRlQ2hhbmdlZCgpOworICAgICAgICB9
CisgICAgfSBlbHNlIGlmIChuYW1lID09IHJlcXVpcmVkQXR0cikgewogICAgICAgICBib29sIG5l
d1JlcXVpcmVkID0gIXZhbHVlLmlzTnVsbCgpOwogICAgICAgICBpZiAobV9pc1JlcXVpcmVkICE9
IG5ld1JlcXVpcmVkKSB7CiAgICAgICAgICAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZh
bGlkYXRpb24gcmVxdWlyZWRJbnZhbGlkYXRpb24oKnRoaXMsIHsgeyBDU1NTZWxlY3Rvcjo6UHNl
dWRvQ2xhc3NSZXF1aXJlZCwgbmV3UmVxdWlyZWQgfSwgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NPcHRpb25hbCwgIW5ld1JlcXVpcmVkIH0gfSk7CiAgICAgICAgICAgICBtX2lzUmVxdWlyZWQg
PSBuZXdSZXF1aXJlZDsKICAgICAgICAgICAgIHJlcXVpcmVkU3RhdGVDaGFuZ2VkKCk7CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBMYWJlbGFibGVFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAgICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCi12b2lkIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCit2b2lkIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpCiB7Ci0gICAgSFRNTEVs
ZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwotICAgIGlmICghRm9ybUNvbnRyb2xsZXI6
Om93bmVyRm9ybSgqdGhpcykpCi0gICAgICAgIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlSWZOZWNl
c3NhcnkoKTsKKyAgICBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOwogfQogCiB2b2lkIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCkKIHsKLSAgICBWYWxpZGF0ZWRG
b3JtTGlzdGVkRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKKyAgICB1cGRhdGVXaWxs
VmFsaWRhdGVBbmRWYWxpZGl0eSgpOwogICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCkt
PnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAgICByZW5kZXJlcigpLT50
aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIoKSwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpF
bmFibGVkKTsKIH0KIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZWFkT25seVN0YXRl
Q2hhbmdlZCgpCiB7Ci0gICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnJlYWRPbmx5U3Rh
dGVDaGFuZ2VkKCk7CisgICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKIAogICAg
IC8vIFNvbWUgaW5wdXQgcHNldWRvIGNsYXNzZXMgbGlrZSA6aW4tcmFuZ2Uvb3V0LW9mLXJhbmdl
IGNoYW5nZSBiYXNlZCBvbiB0aGUgcmVhZG9ubHkgc3RhdGUuCiAgICAgLy8gRklYTUU6IFVzZSBQ
c2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBpbnN0ZWFkIGZvciA6aGFzKCkgc3VwcG9ydCBh
bmQgbW9yZSBlZmZpY2llbmN5LgpAQCAtMTkzLDExICsyMjEsOTYgQEAgdm9pZCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogICAgICAgICByZW5kZXJlcigpLT51
cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0Rv
Y3VtZW50KQoreworICAgIEZvcm1MaXN0ZWRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChv
bGREb2N1bWVudCk7CisgICAgSFRNTEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERv
Y3VtZW50LCBuZXdEb2N1bWVudCk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZEludmFsaWRFbGVtZW50
VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2ludChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
JiBlbGVtZW50LCBDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKK3sKKyAgICBpZiAoIWlz
PEVsZW1lbnQ+KGluc2VydGlvblBvaW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChh
dXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8SFRNTEZpZWxkU2V0RWxlbWVudD4oZG93bmNh
c3Q8RWxlbWVudD4oKmluc2VydGlvblBvaW50KSkpCisgICAgICAgIGFuY2VzdG9yLmFkZEludmFs
aWREZXNjZW5kYW50KGVsZW1lbnQpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVJbnZhbGlkRWxl
bWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxl
bWVudCYgZWxlbWVudCwgQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCit7CisgICAgaWYg
KCFpczxFbGVtZW50PihpbnNlcnRpb25Qb2ludCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZv
ciAoYXV0byYgYW5jZXN0b3IgOiBsaW5lYWdlT2ZUeXBlPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGRv
d25jYXN0PEVsZW1lbnQ+KCppbnNlcnRpb25Qb2ludCkpKQorICAgICAgICBhbmNlc3Rvci5yZW1v
dmVJbnZhbGlkRGVzY2VuZGFudChlbGVtZW50KTsKK30KKworTm9kZTo6SW5zZXJ0ZWRJbnRvQW5j
ZXN0b3JSZXN1bHQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3Io
SW5zZXJ0aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2Vy
dGVkVHJlZSkKK3sKKyAgICBpZiAobV9kYXRhTGlzdEFuY2VzdG9yU3RhdGUgPT0gTm90SW5zaWRl
RGF0YUxpc3QpCisgICAgICAgIG1fZGF0YUxpc3RBbmNlc3RvclN0YXRlID0gVW5rbm93bjsKKwor
ICAgIHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7CisgICAgaWYgKHdpbGxWYWxpZGF0
ZSgpICYmICFpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkpCisgICAgICAgIGFkZEludmFsaWRF
bGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2ludCgqdGhpcywgJnBhcmVudE9mSW5zZXJ0
ZWRUcmVlKTsKKyAgICBpZiAoZG9jdW1lbnQoKS5oYXNEaXNhYmxlZEZpZWxkc2V0RWxlbWVudCgp
KQorICAgICAgICBzZXRBbmNlc3RvckRpc2FibGVkKGNvbXB1dGVJc0Rpc2FibGVkQnlGaWVsZHNl
dEFuY2VzdG9yKCkpOworICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihpbnNl
cnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJlZSk7CisgICAgRm9ybUxpc3RlZEVsZW1lbnQ6
OmVsZW1lbnRJbnNlcnRlZEludG9BbmNlc3RvcigqdGhpcywgaW5zZXJ0aW9uVHlwZSk7CisKKyAg
ICByZXR1cm4gSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQ6Ok5lZWRzUG9zdEluc2VydGlvbkNh
bGxiYWNrOworfQorCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZEZpbmlzaEluc2Vy
dGluZ05vZGUoKQoreworICAgIHJlc2V0Rm9ybU93bmVyKCk7Cit9CisKK3ZvaWQgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlw
ZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKK3sKKyAgICBib29sIHdh
c01hdGNoaW5nSW52YWxpZFBzZXVkb0NsYXNzID0gd2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFsaWRG
b3JtQ29udHJvbEVsZW1lbnQoKTsKKworICAgIG1fdmFsaWRhdGlvbk1lc3NhZ2UgPSBudWxscHRy
OworICAgIGlmIChtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0KQorICAgICAgICBzZXRBbmNl
c3RvckRpc2FibGVkKGNvbXB1dGVJc0Rpc2FibGVkQnlGaWVsZHNldEFuY2VzdG9yKCkpOworCisg
ICAgYm9vbCB3YXNJbnNpZGVEYXRhTGlzdCA9IGZhbHNlOworICAgIGlmIChtX2RhdGFMaXN0QW5j
ZXN0b3JTdGF0ZSA9PSBJbnNpZGVEYXRhTGlzdCkgeworICAgICAgICBtX2RhdGFMaXN0QW5jZXN0
b3JTdGF0ZSA9IFVua25vd247CisgICAgICAgIHdhc0luc2lkZURhdGFMaXN0ID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlwZSwg
b2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CisgICAgRm9ybUxpc3RlZEVsZW1lbnQ6OmVsZW1lbnRS
ZW1vdmVkRnJvbUFuY2VzdG9yKCp0aGlzLCByZW1vdmFsVHlwZSk7CisKKyAgICBpZiAod2FzTWF0
Y2hpbmdJbnZhbGlkUHNldWRvQ2xhc3MpCisgICAgICAgIHJlbW92ZUludmFsaWRFbGVtZW50VG9B
bmNlc3RvckZyb21JbnNlcnRpb25Qb2ludCgqdGhpcywgJm9sZFBhcmVudE9mUmVtb3ZlZFRyZWUp
OworCisgICAgaWYgKHdhc0luc2lkZURhdGFMaXN0KQorICAgICAgICB1cGRhdGVXaWxsVmFsaWRh
dGVBbmRWYWxpZGl0eSgpOworfQorCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldENo
YW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGJvb2wgY2hhbmdlZCkKIHsKICAg
ICBtX3dhc0NoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50ID0gY2hhbmdlZDsK
IH0KIAordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbnRlcmFjdGVkV2l0aFNpbmNl
TGFzdEZvcm1TdWJtaXRFdmVudChib29sIGludGVyYWN0ZWRXaXRoKQoreworICAgIGlmIChtX3dh
c0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50ID09IGludGVyYWN0ZWRXaXRo
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGlzSW52YWxpZCA9IG1hdGNoZXNJbnZhbGlk
UHNldWRvQ2xhc3MoKTsKKyAgICBhdXRvIGlzVmFsaWQgPSBtYXRjaGVzVmFsaWRQc2V1ZG9DbGFz
cygpOworCisgICAgU3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uIHN0eWxlSW52
YWxpZGF0aW9uKCp0aGlzLCB7CisgICAgICAgIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVXNl
ckludmFsaWQsIGlzSW52YWxpZCAmJiBpbnRlcmFjdGVkV2l0aCB9LAorICAgICAgICB7IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1VzZXJWYWxpZCwgaXNWYWxpZCAmJiBpbnRlcmFjdGVkV2l0aCB9
LAorICAgIH0pOworCisgICAgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRF
dmVudCA9IGludGVyYWN0ZWRXaXRoOworfQorCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKQogewogICAgIGRpc3BhdGNoU2NvcGVkRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Olllcywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKQEAgLTIzNCw2ICszNDcsMTEgQEAgdm9pZCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKQogICAgIH0K
IH0KIAorYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIWlzRGlzYWJsZWRGb3JtQ29udHJvbCgpOworfQorCiBib29sIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCogZXZl
bnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkKQEAgLTI1Nyw2ICszNzUsMjQ3
IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cnVuRm9jdXNpbmdTdGVwc0ZvckF1dG9m
b2N1cygpCiAgICAgZm9jdXMoeyBTZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGU6OlBsYWNlQ2FyZXRB
dFN0YXJ0IH0pOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Om1hdGNoZXNWYWxp
ZFBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2lsbFZhbGlkYXRlKCkgJiYgaXNW
YWxpZEZvcm1Db250cm9sRWxlbWVudCgpOworfQorCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6Om1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdAoreworICAgIHJldHVybiB3aWxs
VmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOworfQorCit2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmVuZERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKQoreworICAg
IEFTU0VSVChtX2RlbGF5ZWRVcGRhdGVWYWxpZGl0eUNvdW50KTsKKyAgICBpZiAoIS0tbV9kZWxh
eWVkVXBkYXRlVmFsaWRpdHlDb3VudCkKKyAgICAgICAgdXBkYXRlVmFsaWRpdHkoKTsKK30KKwor
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3QK
K3sKKyAgICBpZiAobV9kYXRhTGlzdEFuY2VzdG9yU3RhdGUgPT0gVW5rbm93bikgeworI2lmIEVO
QUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgICAgICBtX2RhdGFMaXN0QW5jZXN0b3JTdGF0ZSA9
IChkb2N1bWVudCgpLmhhc0RhdGFMaXN0RWxlbWVudHMoKSAmJiBhbmNlc3RvcnNPZlR5cGU8SFRN
TERhdGFMaXN0RWxlbWVudD4oKnRoaXMpLmZpcnN0KCkpID8gSW5zaWRlRGF0YUxpc3QgOiBOb3RJ
bnNpZGVEYXRhTGlzdDsKKyNlbHNlCisgICAgICAgIG1fZGF0YUxpc3RBbmNlc3RvclN0YXRlID0g
Tm90SW5zaWRlRGF0YUxpc3Q7CisjZW5kaWYKKyAgICB9CisgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIGJhcnMgKmFsbCogPGlucHV0PiBlbGVtZW50cyBmcm9tIGNvbnN0cmFpbnQgdmFsaWRhdGlv
biwgcmVnYXJkbGVzcyBvZiB0aGUgPGlucHV0PiB0eXBlLCBmb3IgY29tcGF0IHJlYXNvbnM6Cisg
ICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5wdXQuaHRtbCN0
aGUtcmVhZG9ubHktYXR0cmlidXRlOmJhcnJlZC1mcm9tLWNvbnN0cmFpbnQtdmFsaWRhdGlvbgor
ICAgIHJldHVybiBtX2RhdGFMaXN0QW5jZXN0b3JTdGF0ZSA9PSBOb3RJbnNpZGVEYXRhTGlzdCAm
JiAhaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgJiYgIShtX2hhc1JlYWRPbmx5QXR0cmlidXRlICYm
IHJlYWRPbmx5QmFyc0Zyb21Db25zdHJhaW50VmFsaWRhdGlvbigpKTsKK30KKworYm9vbCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSBjb25zdAoreworICAgIGlmICghbV93
aWxsVmFsaWRhdGVJbml0aWFsaXplZCB8fCBtX2RhdGFMaXN0QW5jZXN0b3JTdGF0ZSA9PSBVbmtu
b3duKSB7CisgICAgICAgIG1fd2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAg
ICBib29sIG5ld1dpbGxWYWxpZGF0ZSA9IGNvbXB1dGVXaWxsVmFsaWRhdGUoKTsKKyAgICAgICAg
aWYgKG1fd2lsbFZhbGlkYXRlICE9IG5ld1dpbGxWYWxpZGF0ZSkKKyAgICAgICAgICAgIG1fd2ls
bFZhbGlkYXRlID0gbmV3V2lsbFZhbGlkYXRlOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIElm
IHRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9uIGZhaWxzLCB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxp
ZGl0eSgpIGlzIG5vdAorICAgICAgICAvLyBjYWxsZWQgY29ycmVjdGx5IHdoZW4gc29tZXRoaW5n
IHdoaWNoIGNoYW5nZXMgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIHJlc3VsdAorICAgICAgICAvLyBp
cyB1cGRhdGVkLgorICAgICAgICBBU1NFUlQobV93aWxsVmFsaWRhdGUgPT0gY29tcHV0ZVdpbGxW
YWxpZGF0ZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIG1fd2lsbFZhbGlkYXRlOworfQorCit2b2lk
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCkK
K3sKKyAgICAvLyBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHdpbGxWYWxpZGF0ZSBpbW1lZGlhdGVs
eSBiZWNhdXNlIHdpbGxWYWxpZGF0ZSBjaGFuZ2UgY2FuIGNhdXNlcyBzdHlsZSBjaGFuZ2UuCisg
ICAgYm9vbCBuZXdXaWxsVmFsaWRhdGUgPSBjb21wdXRlV2lsbFZhbGlkYXRlKCk7CisgICAgaWYg
KG1fd2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgJiYgbV93aWxsVmFsaWRhdGUgPT0gbmV3V2lsbFZh
bGlkYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHdhc1ZhbGlkID0gbV9pc1ZhbGlk
OworCisgICAgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZCA9IHRydWU7CisgICAgbV93aWxsVmFs
aWRhdGUgPSBuZXdXaWxsVmFsaWRhdGU7CisKKyAgICB1cGRhdGVWYWxpZGl0eSgpOworCisgICAg
aWYgKCFtX3dpbGxWYWxpZGF0ZSAmJiAhd2FzVmFsaWQpIHsKKyAgICAgICAgcmVtb3ZlSW52YWxp
ZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KCp0aGlzLCBwYXJlbnROb2RlKCkp
OworICAgICAgICBpZiAoUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybSA9IHRoaXMtPmZvcm0o
KSkKKyAgICAgICAgICAgIGZvcm0tPnJlbW92ZUludmFsaWRGb3JtQ29udHJvbElmTmVlZGVkKCp0
aGlzKTsKKyAgICB9CisKKyAgICBpZiAoIW1fd2lsbFZhbGlkYXRlKQorICAgICAgICBoaWRlVmlz
aWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7Cit9CisKK3ZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6dXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCkKK3sKKyAgICBQYWdlKiBwYWdlID0g
ZG9jdW1lbnQoKS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAg
U3RyaW5nIG1lc3NhZ2U7CisgICAgaWYgKHJlbmRlcmVyKCkgJiYgd2lsbFZhbGlkYXRlKCkpCisg
ICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0aW9uTWVzc2FnZSgpLnN0cmlwV2hpdGVTcGFjZSgpOwor
ICAgIGlmICghbV92YWxpZGF0aW9uTWVzc2FnZSkKKyAgICAgICAgbV92YWxpZGF0aW9uTWVzc2Fn
ZSA9IG1ha2VVbmlxdWU8VmFsaWRhdGlvbk1lc3NhZ2U+KCp0aGlzKTsKKyAgICBtX3ZhbGlkYXRp
b25NZXNzYWdlLT51cGRhdGVWYWxpZGF0aW9uTWVzc2FnZShtZXNzYWdlKTsKK30KKwordm9pZCBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoaWRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCkKK3sK
KyAgICBpZiAobV92YWxpZGF0aW9uTWVzc2FnZSkKKyAgICAgICAgbV92YWxpZGF0aW9uTWVzc2Fn
ZS0+cmVxdWVzdFRvSGlkZU1lc3NhZ2UoKTsKK30KKworYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpjaGVja1ZhbGlkaXR5KFZlY3RvcjxSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4+
KiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpCit7CisgICAgaWYgKCF3aWxsVmFsaWRhdGUoKSB8
fCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IC8vIEFuIGV2ZW50IGhhbmRsZXIgY2FuIGRlcmVmIHRoaXMgb2JqZWN0LgorICAgIFJlZjxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKKyAgICBSZWY8RG9jdW1l
bnQ+IG9yaWdpbmFsRG9jdW1lbnQoZG9jdW1lbnQoKSk7CisgICAgYXV0byBldmVudCA9IEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Olllcyk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudCk7Cisg
ICAgaWYgKCFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpICYmIHVuaGFuZGxlZEludmFsaWRDb250
cm9scyAmJiBpc0Nvbm5lY3RlZCgpICYmIG9yaWdpbmFsRG9jdW1lbnQucHRyKCkgPT0gJmRvY3Vt
ZW50KCkpCisgICAgICAgIHVuaGFuZGxlZEludmFsaWRDb250cm9scy0+YXBwZW5kKHRoaXMpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0Zv
Y3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc0Zv
Y3VzaW5nV2l0aFZhbGlkYXRpb25NZXNzYWdlOworfQorCitib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmlzU2hvd2luZ1ZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV92YWxpZGF0aW9uTWVzc2FnZSAmJiBtX3ZhbGlkYXRpb25NZXNzYWdlLT5pc1Zpc2libGUoKTsK
K30KKyAgICAKK2Jvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVwb3J0VmFsaWRpdHkoKQor
eworICAgIFZlY3RvcjxSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4+IGVsZW1lbnRzOwor
ICAgIGlmIChjaGVja1ZhbGlkaXR5KCZlbGVtZW50cykpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgaWYgKGVsZW1lbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgLy8gTmVlZHMgdG8gdXBkYXRlIGxheW91dCBub3cgYmVjYXVzZSB3ZSdkIGxpa2UgdG8gY2Fs
bCBpc0ZvY3VzYWJsZSgpLCB3aGljaAorICAgIC8vIGhhcyAhcmVuZGVyZXIoKS0+bmVlZHNMYXlv
dXQoKSBhc3NlcnRpb24uCisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKworICAgIGlmIChpc0Nvbm5lY3RlZCgpICYmIGlzRm9jdXNhYmxlKCkp
IHsKKyAgICAgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworICAgICAgICBmb2N1c0Fu
ZFNob3dWYWxpZGF0aW9uTWVzc2FnZSgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICBhdXRvIG1lc3NhZ2UgPSBt
YWtlU3RyaW5nKCJBbiBpbnZhbGlkIGZvcm0gY29udHJvbCB3aXRoIG5hbWU9JyIsIG5hbWUoKSwg
IicgaXMgbm90IGZvY3VzYWJsZS4iKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3Nh
Z2UpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZSgpCit7CisgICAgU2V0Rm9y
U2NvcGUgaXNGb2N1c2luZ1dpdGhWYWxpZGF0aW9uTWVzc2FnZVNjb3BlKG1faXNGb2N1c2luZ1dp
dGhWYWxpZGF0aW9uTWVzc2FnZSwgdHJ1ZSk7CisKKyAgICAvLyBDYWxsaW5nIGZvY3VzKCkgd2ls
bCBzY3JvbGwgdGhlIGVsZW1lbnQgaW50byB2aWV3LgorICAgIGZvY3VzKCk7CisKKyAgICAvLyBm
b2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBzY3JvbGwg
bWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KKyAgICAvLyBCZWNhdXNlIHNjcm9sbGluZyB0aGUg
dmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cgdGhlIHZh
bGlkYXRpb24KKyAgICAvLyBtZXNzYWdlIGFzeW5jaHJvbm91c2x5IGFzIHdlbGwuCisgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIHsKKyAg
ICAgICAgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7CisgICAgfSk7Cit9CisKK2lu
bGluZSBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzVmFsaWRGb3JtQ29udHJvbEVsZW1l
bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lzVmFsaWQ7Cit9CisKK3ZvaWQgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6d2lsbENoYW5nZUZvcm0oKQoreworICAgIGlmIChIVE1MRm9ybUVsZW1l
bnQqIGZvcm0gPSB0aGlzLT5mb3JtKCkpCisgICAgICAgIGZvcm0tPnJlbW92ZUludmFsaWRGb3Jt
Q29udHJvbElmTmVlZGVkKCp0aGlzKTsKKyAgICBGb3JtTGlzdGVkRWxlbWVudDo6d2lsbENoYW5n
ZUZvcm0oKTsKK30KKwordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaWRDaGFuZ2VGb3Jt
KCkKK3sKKyAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNh
bGxvd2VkU2NvcGU7CisKKyAgICBGb3JtTGlzdGVkRWxlbWVudDo6ZGlkQ2hhbmdlRm9ybSgpOwor
ICAgIGlmIChhdXRvKiBmb3JtID0gdGhpcy0+Zm9ybSgpKSB7CisgICAgICAgIGlmIChtX3dpbGxW
YWxpZGF0ZUluaXRpYWxpemVkICYmIG1fd2lsbFZhbGlkYXRlICYmICFpc1ZhbGlkRm9ybUNvbnRy
b2xFbGVtZW50KCkpCisgICAgICAgICAgICBmb3JtLT5hZGRJbnZhbGlkRm9ybUNvbnRyb2woKnRo
aXMpOworICAgIH0KK30KKwordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVWYWxp
ZGl0eSgpCit7CisgICAgaWYgKG1fZGVsYXllZFVwZGF0ZVZhbGlkaXR5Q291bnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGJvb2wgd2lsbFZhbGlkYXRlID0gdGhpcy0+d2lsbFZhbGlkYXRlKCk7
CisgICAgYm9vbCBuZXdJc1ZhbGlkID0gdGhpcy0+Y29tcHV0ZVZhbGlkaXR5KCk7CisKKyAgICBp
ZiAobmV3SXNWYWxpZCAhPSBtX2lzVmFsaWQpIHsKKyAgICAgICAgU3R5bGU6OlBzZXVkb0NsYXNz
Q2hhbmdlSW52YWxpZGF0aW9uIHN0eWxlSW52YWxpZGF0aW9uKCp0aGlzLCB7CisgICAgICAgICAg
ICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1ZhbGlkLCBuZXdJc1ZhbGlkIH0sCisgICAgICAg
ICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ludmFsaWQsICFuZXdJc1ZhbGlkIH0sCisg
ICAgICAgICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1VzZXJWYWxpZCwgbmV3SXNWYWxp
ZCAmJiBtX3dhc0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50IH0sCisgICAg
ICAgICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1VzZXJJbnZhbGlkLCAhbmV3SXNWYWxp
ZCAmJiBtX3dhc0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50IH0sCisgICAg
ICAgIH0pOworCisgICAgICAgIG1faXNWYWxpZCA9IG5ld0lzVmFsaWQ7CisKKyAgICAgICAgaWYg
KHdpbGxWYWxpZGF0ZSkgeworICAgICAgICAgICAgaWYgKCFtX2lzVmFsaWQpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgYWRkSW52YWxp
ZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KCp0aGlzLCBwYXJlbnROb2RlKCkp
OworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBmb3JtID0gdGhpcy0+Zm9ybSgpKQorICAgICAg
ICAgICAgICAgICAgICBmb3JtLT5hZGRJbnZhbGlkRm9ybUNvbnRyb2woKnRoaXMpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb25uZWN0ZWQoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVtb3ZlSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlv
blBvaW50KCp0aGlzLCBwYXJlbnROb2RlKCkpOworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBm
b3JtID0gdGhpcy0+Zm9ybSgpKQorICAgICAgICAgICAgICAgICAgICBmb3JtLT5yZW1vdmVJbnZh
bGlkRm9ybUNvbnRyb2xJZk5lZWRlZCgqdGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICAvLyBVcGRhdGVzIG9ubHkgaWYgdGhpcyBjb250cm9sIGFscmVhZHkgaGFz
IGEgdmFsaWRhdGlvbiBtZXNzYWdlLgorICAgIGlmIChtX3ZhbGlkYXRpb25NZXNzYWdlICYmIG1f
dmFsaWRhdGlvbk1lc3NhZ2UtPmlzVmlzaWJsZSgpKSB7CisgICAgICAgIC8vIENhbGxzIHVwZGF0
ZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpIGV2ZW4gaWYgbV9pc1ZhbGlkIGlzIG5vdAorICAg
ICAgICAvLyBjaGFuZ2VkIGJlY2F1c2UgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgY2FuIGJlIGNoYWdu
ZWQuCisgICAgICAgIHVwZGF0ZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpOworICAgIH0KK30K
Kwordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRDdXN0b21WYWxpZGl0eShjb25zdCBT
dHJpbmcmIGVycm9yKQoreworICAgIEZvcm1MaXN0ZWRFbGVtZW50OjpzZXRDdXN0b21WYWxpZGl0
eShlcnJvcik7CisgICAgdXBkYXRlVmFsaWRpdHkoKTsKK30KKworYm9vbCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZVNoYWRvd1RyZWVDb250YWlucyhjb25zdCBOb2Rl
JiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBtX3ZhbGlkYXRpb25NZXNzYWdlICYmIG1fdmFs
aWRhdGlvbk1lc3NhZ2UtPnNoYWRvd1RyZWVDb250YWlucyhub2RlKTsKK30KKworYm9vbCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjptYXRjaGVzVXNlckludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZl
bnQgJiYgbWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpOworfQorCitib29sIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6Om1hdGNoZXNVc2VyVmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQgJiYgbWF0
Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKTsKK30KKwogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpkaXNwYXRjaEJsdXJFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkK
IHsKICAgICBIVE1MRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoV1RGTW92ZShuZXdGb2N1c2Vk
RWxlbWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAppbmRleCBmMjA5MzhiNzdiOTQuLjVjZGNlODMxNTNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTI0LDggKzI0LDggQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiQXV0b2ZpbGwuaCIKKyNpbmNsdWRlICJGb3JtTGlzdGVkRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJWYWxpZGF0ZWRG
b3JtTGlzdGVkRWxlbWVudC5oIgogCiAjaWYgRU5BQkxFKEFVVE9DQVBJVEFMSVpFKQogI2luY2x1
ZGUgIkF1dG9jYXBpdGFsaXplLmgiCkBAIC0zMywyMCArMzMsMjEgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIExhYmVsYWJs
ZUVsZW1lbnQsIHB1YmxpYyBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCB7CitjbGFzcyBET01G
b3JtRGF0YTsKK2NsYXNzIEhUTUxGaWVsZFNldEVsZW1lbnQ7CitjbGFzcyBIVE1MRm9ybUVsZW1l
bnQ7CitjbGFzcyBIVE1MTGVnZW5kRWxlbWVudDsKK2NsYXNzIFZhbGlkYXRpb25NZXNzYWdlOwor
CisvLyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IGlzIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9u
IG9mIEZvcm1MaXN0ZWRFbGVtZW50LAorLy8gYW5kIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50IGlt
cGxlbWVudGF0aW9ucyBzaG91bGQgdXNlIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQKKy8vIHVubGVz
cyB0aGVyZSBpcyBhIHNwZWNpYWwgcmVhc29uLgorY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVu
dCA6IHB1YmxpYyBMYWJlbGFibGVFbGVtZW50LCBwdWJsaWMgRm9ybUxpc3RlZEVsZW1lbnQgewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTEZvcm1Db250cm9sRWxlbWVudCk7CisgICAg
ZnJpZW5kIGNsYXNzIERlbGF5ZWRVcGRhdGVWYWxpZGl0eVNjb3BlOwogcHVibGljOgogICAgIHZp
cnR1YWwgfkhUTUxGb3JtQ29udHJvbEVsZW1lbnQoKTsKIAotICAgIGJvb2wgaXNWYWxpZGF0ZWRG
b3JtTGlzdGVkRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBi
b29sIGlzRm9ybUxpc3RlZEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
Ci0KLSAgICBib29sIG1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gd2lsbFZhbGlkYXRlKCkgJiYgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOyB9Ci0g
ICAgYm9vbCBtYXRjaGVzSW52YWxpZFBzZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gd2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsgfQotCi0g
ICAgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBp
c0Rpc2FibGVkKCk7IH0KLSAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAhaXNEaXNhYmxlZCgpOyB9Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZm9y
bUVuY3R5cGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvcm1FbmN0eXBl
KGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZm9ybU1ldGhv
ZCgpIGNvbnN0OwpAQCAtNTUsMjMgKzU2LDQwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgZm9ybUFjdGlvbigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Rm9ybUFjdGlvbihjb25zdCBBdG9tU3RyaW5nJik7CiAKKyAgICB2b2lkIHNldEFuY2VzdG9yRGlz
YWJsZWQoYm9vbCBpc0Rpc2FibGVkKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIHsgfQor
CiAgICAgYm9vbCBmb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKCkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZU1hdGNoZXNSZW5kZXJlcjsgfQogICAgIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1
ZU1hdGNoZXNSZW5kZXJlcihib29sIGIpIHsgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA9IGI7IH0K
IAogICAgIGJvb2wgd2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX3dhc0NoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50
OyB9CiAgICAgdm9pZCBzZXRDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChi
b29sKTsKIAorICAgIGJvb2wgd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZl
bnQoKSBjb25zdCB7IHJldHVybiBtX3dhc0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1p
dEV2ZW50OyB9CisgICAgdm9pZCBzZXRJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRF
dmVudChib29sKTsKKwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdl
RXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKICAgICB2b2lkIGRpc3Bh
dGNoQ2FuY2VsRXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50
KCk7CiAKKyAgICBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fZGlzYWJsZWQgfHwgbV9kaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldDsgfQorCisgICAg
Ym9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisK
ICAgICBib29sIGlzUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVxdWlyZWQ7IH0KIAog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVybiBmb3JtQ29udHJvbFR5
cGUoKTsgfQogCisgICAgdmlydHVhbCBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlz
c2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBPdmVycmlkZSBpbiBkZXJp
dmVkIGNsYXNzZXMgdG8gZ2V0IHRoZSBlbmNvZGVkIG5hbWU9dmFsdWUgcGFpciBmb3Igc3VibWl0
dGluZy4KKyAgICAvLyBSZXR1cm4gdHJ1ZSBmb3IgYSBzdWNjZXNzZnVsIGNvbnRyb2wgKHNlZSBI
VE1MNC0xNy4xMy4yKS4KKyAgICBib29sIGFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJikgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBpc1N1Y2Nlc3NmdWxT
dWJtaXRCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0FjdGl2YXRlZFN1Ym1pdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldEFjdGl2YXRlZFN1Ym1pdChib29sKSB7IH0KQEAgLTg0LDYgKzEwMiwyNiBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgQXV0b2NhcGl0YWxpemVUeXBlIGF1dG9jYXBpdGFsaXpl
VHlwZSgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKKyAgICAvLyAid2lsbFZhbGlkYXRlIiBtZWFu
cyAiaXMgYSBjYW5kaWRhdGUgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiIuCisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVwZGF0
ZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpOworICAgIHZvaWQgaGlkZVZpc2libGVWYWxpZGF0
aW9uTWVzc2FnZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tWYWxpZGl0eShWZWN0
b3I8UmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+PiogdW5oYW5kbGVkSW52YWxpZENvbnRy
b2xzID0gbnVsbHB0cik7CisgICAgYm9vbCByZXBvcnRWYWxpZGl0eSgpOworICAgIHZvaWQgZm9j
dXNBbmRTaG93VmFsaWRhdGlvbk1lc3NhZ2UoKTsKKyAgICBib29sIGlzU2hvd2luZ1ZhbGlkYXRp
b25NZXNzYWdlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0ZvY3VzaW5nV2l0
aFZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3Q7CisgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCB3
aGVuIGEgdmFsaWRhdGlvbiBjb25zdHJhaW50IG9yIGNvbnRyb2wgdmFsdWUgaXMgY2hhbmdlZC4K
KyAgICB2b2lkIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKworICAgIGJvb2wgbWF0Y2hlc1VzZXJJbnZhbGlkUHNl
dWRvQ2xhc3MoKSBjb25zdDsKKyAgICBib29sIG1hdGNoZXNVc2VyVmFsaWRQc2V1ZG9DbGFzcygp
IGNvbnN0OworCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIHN1cHBv
cnRzUmVhZE9ubHkoKSAmJiBtX2hhc1JlYWRPbmx5QXR0cmlidXRlOyB9CisgICAgYm9vbCBpc011
dGFibGUoKSBjb25zdCB7IHJldHVybiAhaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgJiYgIWlzUmVh
ZE9ubHkoKTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGF1dG9jb21wbGV0ZSgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV0b2NvbXBsZXRlKGNvbnN0IEF0b21T
dHJpbmcmKTsKIApAQCAtMTAxLDE4ICsxMzksMjAgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAorICAgIGJvb2wgZGlzYWJsZWRCeUFuY2VzdG9y
RmllbGRzZXQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0OyB9
CisKKyAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmlidXRl
Q2hhbmdlZCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworICAg
IHZpcnR1YWwgdm9pZCByZWFkT25seVN0YXRlQ2hhbmdlZCgpOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1aXJlZFN0YXRlQ2hhbmdlZCgpOworICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3Zl
cnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0
b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlk
RmluaXNoSW5zZXJ0aW5nTm9kZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYg
b2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3Zl
cnJpZGU7Ci0KLSAgICB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZWFkT25seVN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBy
ZXF1aXJlZFN0YXRlQ2hhbmdlZCgpOworICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9j
dW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIG92ZXJyaWRlOwogCisg
ICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlz
TW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTIwLDMwICsxNjAsOTAgQEAg
cHJvdGVjdGVkOgogCiAgICAgdm9pZCBkaXNwYXRjaEJsdXJFdmVudChSZWZQdHI8RWxlbWVudD4m
JiBuZXdGb2N1c2VkRWxlbWVudCkgb3ZlcnJpZGU7CiAKKyAgICAvLyBUaGlzIG11c3QgYmUgY2Fs
bGVkIGFueSB0aW1lIHRoZSByZXN1bHQgb2Ygd2lsbFZhbGlkYXRlKCkgaGFzIGNoYW5nZWQuCisg
ICAgdm9pZCB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOworICAgIHZpcnR1YWwgYm9v
bCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJlYWRPbmx5
QmFyc0Zyb21Db25zdHJhaW50VmFsaWRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisK
KyAgICBib29sIHZhbGlkYXRpb25NZXNzYWdlU2hhZG93VHJlZUNvbnRhaW5zKGNvbnN0IE5vZGUm
KSBjb25zdDsKKworICAgIHZvaWQgd2lsbENoYW5nZUZvcm0oKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZENoYW5nZUZvcm0oKSBvdmVycmlkZTsKKwogcHJpdmF0ZToKLSAgICB2b2lkIHJlZkZvcm1B
c3NvY2lhdGVkRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmVmKCk7IH0KLSAgICB2b2lkIGRl
cmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBkZXJlZigpOyB9Cisg
ICAgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBvdmVycmlkZSB7IHJlZigpOyB9Cisg
ICAgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsg
fQogCiAgICAgdm9pZCBydW5Gb2N1c2luZ1N0ZXBzRm9yQXV0b2ZvY3VzKCkgZmluYWw7Ci0gICAg
SFRNTEVsZW1lbnQqIHZhbGlkYXRpb25BbmNob3JFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gdGhp
czsgfQorCisgICAgYm9vbCBtYXRjaGVzVmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0IG92ZXJyaWRl
OworICAgIGJvb2wgbWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KIAorICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OworCisg
ICAgYm9vbCBjb21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpIGNvbnN0OworICAg
IAorICAgIHZvaWQgc3RhcnREZWxheWluZ1VwZGF0ZVZhbGlkaXR5KCkgeyArK21fZGVsYXllZFVw
ZGF0ZVZhbGlkaXR5Q291bnQ7IH0KKyAgICB2b2lkIGVuZERlbGF5aW5nVXBkYXRlVmFsaWRpdHko
KTsKKwogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIGNvbmN1cnJlbnRseSBm
b3IgVmFsaWRpdHlTdGF0ZS4KICAgICBIVE1MRWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGZpbmFs
IHsgcmV0dXJuICp0aGlzOyB9CiAgICAgY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgYXNI
VE1MRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICp0aGlzOyB9CiAKICAgICBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQqIGFzRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1cm4g
dGhpczsgfQogICAgIEZvcm1MaXN0ZWRFbGVtZW50KiBhc0Zvcm1MaXN0ZWRFbGVtZW50KCkgZmlu
YWwgeyByZXR1cm4gdGhpczsgfQotICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KiBhc1Zh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQogCiAgICAg
Ym9vbCBuZWVkc01vdXNlRm9jdXNhYmxlUXVpcmsoKSBjb25zdDsKIAorICAgIHN0ZDo6dW5pcXVl
X3B0cjxWYWxpZGF0aW9uTWVzc2FnZT4gbV92YWxpZGF0aW9uTWVzc2FnZTsKKyAgICAKKyAgICB1
bnNpZ25lZCBtX2RlbGF5ZWRVcGRhdGVWYWxpZGl0eUNvdW50IHsgMCB9OworCisgICAgYm9vbCBt
X2lzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UgeyBmYWxzZSB9OworCisgICAgdW5zaWdu
ZWQgbV9kaXNhYmxlZCA6IDE7CisgICAgdW5zaWduZWQgbV9oYXNSZWFkT25seUF0dHJpYnV0ZSA6
IDE7CiAgICAgdW5zaWduZWQgbV9pc1JlcXVpcmVkIDogMTsKICAgICB1bnNpZ25lZCBtX3ZhbHVl
TWF0Y2hlc1JlbmRlcmVyIDogMTsKKyAgICB1bnNpZ25lZCBtX2Rpc2FibGVkQnlBbmNlc3RvckZp
ZWxkc2V0IDogMTsKKworICAgIGVudW0gRGF0YUxpc3RBbmNlc3RvclN0YXRlIHsgVW5rbm93biwg
SW5zaWRlRGF0YUxpc3QsIE5vdEluc2lkZURhdGFMaXN0IH07CisgICAgbXV0YWJsZSB1bnNpZ25l
ZCBtX2RhdGFMaXN0QW5jZXN0b3JTdGF0ZSA6IDI7CisKKyAgICAvLyBUaGUgaW5pdGlhbCB2YWx1
ZSBvZiBtX3dpbGxWYWxpZGF0ZSBkZXBlbmRzIG9uIHRoZSBkZXJpdmVkIGNsYXNzLiBXZSBjYW4n
dAorICAgIC8vIGluaXRpYWxpemUgaXQgd2l0aCBhIHZpcnR1YWwgZnVuY3Rpb24gaW4gdGhlIGNv
bnN0cnVjdG9yLiBtX3dpbGxWYWxpZGF0ZQorICAgIC8vIGlzIG5vdCBkZXRlcm1pbmlzdGljIGFz
IGxvbmcgYXMgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZCBpcyBmYWxzZS4KKyAgICBtdXRhYmxl
IGJvb2wgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV93
aWxsVmFsaWRhdGUgOiAxOworCisgICAgLy8gQ2FjaGUgb2YgdmFsaWRpdHkoKS0+dmFsaWQoKS4K
KyAgICAvLyBCdXQgImNhbmRpZGF0ZSBmb3IgY29uc3RyYWludCB2YWxpZGF0aW9uIiBkb2Vzbid0
IGFmZmVjdCBtX2lzVmFsaWQuCisgICAgdW5zaWduZWQgbV9pc1ZhbGlkIDogMTsKKwogICAgIHVu
c2lnbmVkIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQgOiAxOwor
ICAgIHVuc2lnbmVkIG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQg
OiAxOworfTsKKworY2xhc3MgRGVsYXllZFVwZGF0ZVZhbGlkaXR5U2NvcGUgeworcHVibGljOgor
ICAgIERlbGF5ZWRVcGRhdGVWYWxpZGl0eVNjb3BlKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVs
ZW1lbnQpCisgICAgICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisgICAgeworICAgICAgICBtX2Vs
ZW1lbnQuc3RhcnREZWxheWluZ1VwZGF0ZVZhbGlkaXR5KCk7CisgICAgfQorICAgIAorICAgIH5E
ZWxheWVkVXBkYXRlVmFsaWRpdHlTY29wZSgpCisgICAgeworICAgICAgICBtX2VsZW1lbnQuZW5k
RGVsYXlpbmdVcGRhdGVWYWxpZGl0eSgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50JiBtX2VsZW1lbnQ7CiB9OwogCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpIVE1MRm9ybUNvbnRy
b2xFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50V2l0aFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4yMGVkODNmNjY4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwCkBAIC0wLDAgKzEsODcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAq
ICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBA
bnlwb3AuY29tKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUuaCIKKworI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKTsK
KworSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKKyAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCit7Cit9CisKK0hUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6On5IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCkgPSBkZWZhdWx0Owor
CitOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
V2l0aFN0YXRlOjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5
cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQoreworICAgIG1faW5zZXJ0
aW9uSW5kZXggPSArK2xhc3RJbnNlcnRpb25JbmRleDsKKyAgICByZXR1cm4gSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9uVHlwZSwgcGFyZW50T2ZJ
bnNlcnRlZFRyZWUpOworfQorCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6
OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5v
ZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpCit7CisgICAgbV9pbnNlcnRpb25JbmRleCA9IDA7
CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFs
VHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7Cit9CisKK2Jvb2wgSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZTo6c2hvdWxkQXV0b2NvbXBsZXRlKCkgY29uc3QKK3sKKyAgICBpZiAo
IWZvcm0oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZvcm0oKS0+c2hvdWxk
QXV0b2NvbXBsZXRlKCk7Cit9CisKK2Jvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6c2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKK3sKKyAgICAv
LyBXZSBkb24ndCBzYXZlL3Jlc3RvcmUgY29udHJvbCBzdGF0ZSBpbiBhIGZvcm0gd2l0aCBhdXRv
Y29tcGxldGU9b2ZmLgorICAgIHJldHVybiBpc0Nvbm5lY3RlZCgpICYmIHNob3VsZEF1dG9jb21w
bGV0ZSgpOworfQorCitGb3JtQ29udHJvbFN0YXRlIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRo
U3RhdGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRm9ybUNv
bnRyb2xTdGF0ZSgpOworfQorCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCit7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CisgICAgZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigp
LnJlc3RvcmVDb250cm9sU3RhdGVGb3IoKnRoaXMpOworfQorCitib29sIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGU6OmlzRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordWludDY0X3QgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZTo6bGFzdEluc2VydGlvbkluZGV4IHsgMCB9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJjb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
NGM5ZmNhZTAxNmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAg
IChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEZvcm1Db250
cm9sU3RhdGUgPSBWZWN0b3I8QXRvbVN0cmluZz47CisKK2NsYXNzIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGUgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7CisgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKTsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCk7CisK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRl
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0
IEZvcm1Db250cm9sU3RhdGUmKSB7IH0gLy8gQ2FsbGVkIG9ubHkgaWYgc3RhdGUgaXMgbm90IGVt
cHR5LgorCisgICAgdWludDY0X3QgaW5zZXJ0aW9uSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2lu
c2VydGlvbkluZGV4OyB9CisKK3Byb3RlY3RlZDoKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
V2l0aFN0YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiwgSFRNTEZv
cm1FbGVtZW50Kik7CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b2NvbXBsZXRlKCkgY29u
c3Q7CisKKyAgICBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92ZXJy
aWRlOworICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbW92
ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKwor
cHJpdmF0ZToKKyAgICBib29sIGlzRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCkgY29uc3Qg
ZmluYWw7CisKKyAgICB1aW50NjRfdCBtX2luc2VydGlvbkluZGV4IHsgMCB9OworICAgIHN0YXRp
YyB1aW50NjRfdCBsYXN0SW5zZXJ0aW9uSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6SFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudCYgZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5pc0Zvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUmIG5vZGUpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OkVsZW1lbnQ+KG5vZGUpICYmIGlzVHlwZShk
b3duY2FzdDxXZWJDb3JlOjpFbGVtZW50Pihub2RlKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6Rm9ybUxpc3RlZEVsZW1lbnQmIGVsZW1lbnQpIHsgcmV0dXJuIGVs
ZW1lbnQuaXNGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoKTsgfQorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4
IDNiZmExZGIwZjFkNi4uYTgyYWRmNGM1ZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCkBAIC0yNDUsMTEgKzI0NSwxMSBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6
c3VibWl0SW1wbGljaXRseShFdmVudCYgZXZlbnQsIGJvb2wgZnJvbUltcGxpY2l0U3VibWlzc2lv
bgogYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnZhbGlkYXRlSW50ZXJhY3RpdmVseSgpCiB7CiAgICAg
Zm9yIChhdXRvJiBsaXN0ZWRFbGVtZW50IDogbV9saXN0ZWRFbGVtZW50cykgewotICAgICAgICBp
ZiAoYXV0byogY29udHJvbCA9IGxpc3RlZEVsZW1lbnQtPmFzVmFsaWRhdGVkRm9ybUxpc3RlZEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgIGNvbnRyb2wtPmhpZGVWaXNpYmxlVmFsaWRhdGlvbk1lc3Nh
Z2UoKTsKKyAgICAgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpsaXN0ZWRFbGVt
ZW50KSkKKyAgICAgICAgICAgIGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpsaXN0
ZWRFbGVtZW50KS5oaWRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgfQogCi0gICAg
VmVjdG9yPFJlZlB0cjxWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudD4+IHVuaGFuZGxlZEludmFs
aWRDb250cm9sczsKKyAgICBWZWN0b3I8UmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+PiB1
bmhhbmRsZWRJbnZhbGlkQ29udHJvbHM7CiAgICAgaWYgKCFjaGVja0ludmFsaWRDb250cm9sc0Fu
ZENvbGxlY3RVbmhhbmRsZWQodW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgLy8gQmVjYXVzZSB0aGUgZm9ybSBoYXMgaW52YWxpZCBjb250cm9scywg
d2UgYWJvcnQgdGhlIGZvcm0gc3VibWlzc2lvbiBhbmQKQEAgLTI2MiwxNSArMjYyLDIxIEBAIGJv
b2wgSFRNTEZvcm1FbGVtZW50Ojp2YWxpZGF0ZUludGVyYWN0aXZlbHkoKQogICAgIFJlZjxIVE1M
Rm9ybUVsZW1lbnQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgLy8gRm9jdXMgb24gdGhl
IGZpcnN0IGZvY3VzYWJsZSBjb250cm9sIGFuZCBzaG93IGEgdmFsaWRhdGlvbiBtZXNzYWdlLgot
ICAgIGJvb2wgc2hvdWxkRm9jdXMgPSB0cnVlOwogICAgIGZvciAoYXV0byYgY29udHJvbCA6IHVu
aGFuZGxlZEludmFsaWRDb250cm9scykgewotICAgICAgICBpZiAoYXV0byB2YWxpZGF0aW9uQW5j
aG9yID0gY29udHJvbC0+Zm9jdXNhYmxlVmFsaWRhdGlvbkFuY2hvckVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgaWYgKHNob3VsZEZvY3VzKSB7Ci0gICAgICAgICAgICAgICAgc2hvdWxkRm9jdXMg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICBjb250cm9sLT5mb2N1c0FuZFNob3dWYWxpZGF0aW9u
TWVzc2FnZSh2YWxpZGF0aW9uQW5jaG9yLnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAgICAg
fQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNvbnRyb2wtPnJlcG9ydE5vbkZvY3VzYWJs
ZUNvbnRyb2xFcnJvcigpOworICAgICAgICBpZiAoY29udHJvbC0+aXNDb25uZWN0ZWQoKSAmJiBj
b250cm9sLT5pc0ZvY3VzYWJsZSgpKSB7CisgICAgICAgICAgICBjb250cm9sLT5mb2N1c0FuZFNo
b3dWYWxpZGF0aW9uTWVzc2FnZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBXYXJuIGFib3V0IGFsbCBvZiB1bmZvY3VzYWJsZSBjb250cm9scy4KKyAg
ICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAgIGZvciAoYXV0byYgY29udHJvbCA6
IHVuaGFuZGxlZEludmFsaWRDb250cm9scykgeworICAgICAgICAgICAgaWYgKGNvbnRyb2wtPmlz
Q29ubmVjdGVkKCkgJiYgY29udHJvbC0+aXNGb2N1c2FibGUoKSkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIGF1dG8gbWVzc2FnZSA9IG1ha2VTdHJpbmcoIkFuIGludmFs
aWQgZm9ybSBjb250cm9sIHdpdGggbmFtZT0nIiwgY29udHJvbC0+bmFtZSgpLCAiJyBpcyBub3Qg
Zm9jdXNhYmxlLiIpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDk5LDggKzUwNSwxNyBA
QCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVzZXRMaXN0ZWRGb3JtQ29udHJvbEVsZW1lbnRzKCkK
ICAgICAvLyBFdmVudCBoYW5kbGluZyBjYW4gY2F1c2UgbGlzdGVkIGVsZW1lbnRzIHRvIGJlIGFk
ZGVkIG9yIGRlbGV0ZWQgd2hpbGUgaXRlcmF0aW5nCiAgICAgLy8gb3ZlciB0aGlzIGNvbGxlY3Rp
b24uIFByb3RlY3QgdGhlc2UgZWxlbWVudHMgdW50aWwgd2UgYXJlIGRvbmUgbm90aWZ5aW5nIHRo
ZW0gb2YKICAgICAvLyB0aGUgcmVzZXQgb3BlcmF0aW9uLgotICAgIGZvciAoYXV0byYgY29udHJv
bCA6IGNvcHlWYWxpZGF0ZWRMaXN0ZWRFbGVtZW50c1ZlY3RvcigpKQotICAgICAgICBjb250cm9s
LT5yZXNldCgpOworICAgIFZlY3RvcjxSZWY8SFRNTEZvcm1Db250cm9sRWxlbWVudD4+IGxpc3Rl
ZEZvcm1Db250cm9sRWxlbWVudHM7CisgICAgbGlzdGVkRm9ybUNvbnRyb2xFbGVtZW50cy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KG1fbGlzdGVkRWxlbWVudHMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1
dG8mIHdlYWtFbGVtZW50IDogbV9saXN0ZWRFbGVtZW50cykgeworICAgICAgICBhdXRvKiBlbGVt
ZW50ID0gd2Vha0VsZW1lbnQuZ2V0KCk7CisgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICAg
ICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICAgICAg
bGlzdGVkRm9ybUNvbnRyb2xFbGVtZW50cy51bmNoZWNrZWRBcHBlbmQoZG93bmNhc3Q8SFRNTEZv
cm1Db250cm9sRWxlbWVudD4oKmVsZW1lbnQpKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGxp
c3RlZEVsZW1lbnQgOiBsaXN0ZWRGb3JtQ29udHJvbEVsZW1lbnRzKQorICAgICAgICBsaXN0ZWRF
bGVtZW50LT5yZXNldCgpOwogfQogCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBA
IC02MDMsNyArNjE4LDcgQEAgdW5zaWduZWQgSFRNTEZvcm1FbGVtZW50Ojpmb3JtRWxlbWVudElu
ZGV4KEZvcm1MaXN0ZWRFbGVtZW50JiBsaXN0ZWRFbGVtZW50KQogICAgIGZvciAoYXV0byYgZWxl
bWVudCA6IGRlc2NlbmRhbnRzKSB7CiAgICAgICAgIGlmICgmZWxlbWVudCA9PSAmbGlzdGVkSFRN
TEVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgaWYgKCFlbGVtZW50Lmlz
Rm9ybUxpc3RlZEVsZW1lbnQoKSkKKyAgICAgICAgaWYgKCFpczxIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50PihlbGVtZW50KSAmJiAhaXM8SFRNTE9iamVjdEVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChlbGVtZW50LmFzRm9ybUxpc3RlZEVsZW1lbnQo
KS0+Zm9ybSgpICE9IHRoaXMpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTY0Nyw3ICs2NjIs
NyBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6dW5yZWdpc3RlckZvcm1MaXN0ZWRFbGVtZW50KEZv
cm1MaXN0ZWRFbGVtZW50JiBlbGVtZW50KQogICAgICAgICByZXNldERlZmF1bHRCdXR0b24oKTsK
IH0KIAotdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmFkZEludmFsaWRGb3JtQ29udHJvbChjb25zdCBI
VE1MRWxlbWVudCYgZm9ybUNvbnRyb2xFbGVtZW50KQordm9pZCBIVE1MRm9ybUVsZW1lbnQ6OmFk
ZEludmFsaWRGb3JtQ29udHJvbChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBmb3JtQ29u
dHJvbEVsZW1lbnQpCiB7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghaXM8SFRNTEZpZWxkU2V0
RWxlbWVudD4oZm9ybUNvbnRyb2xFbGVtZW50KSwgIkZpZWxkU2V0IGFyZSBuZXZlciBjYW5kaWRh
dGVzIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24uIik7CiAgICAgQVNTRVJUKHN0YXRpY19jYXN0
PGNvbnN0IEVsZW1lbnQmPihmb3JtQ29udHJvbEVsZW1lbnQpLm1hdGNoZXNJbnZhbGlkUHNldWRv
Q2xhc3MoKSk7CkBAIC02NTYsMTAgKzY3MSwxMCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6YWRk
SW52YWxpZEZvcm1Db250cm9sKGNvbnN0IEhUTUxFbGVtZW50JiBmb3JtQ29udHJvbEVsZW1lbgog
ICAgIGlmIChtX2ludmFsaWRGb3JtQ29udHJvbHMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBl
bXBsYWNlKHN0eWxlSW52YWxpZGF0aW9uLCAqdGhpcywgeyB7IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1ZhbGlkLCBmYWxzZSB9LCB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ludmFsaWQsIHRy
dWUgfSB9KTsKIAotICAgIG1faW52YWxpZEZvcm1Db250cm9scy5hZGQoZm9ybUNvbnRyb2xFbGVt
ZW50KTsKKyAgICBtX2ludmFsaWRGb3JtQ29udHJvbHMuYWRkKGNvbnN0X2Nhc3Q8SFRNTEZvcm1D
b250cm9sRWxlbWVudCY+KGZvcm1Db250cm9sRWxlbWVudCkpOwogfQogCi12b2lkIEhUTUxGb3Jt
RWxlbWVudDo6cmVtb3ZlSW52YWxpZEZvcm1Db250cm9sSWZOZWVkZWQoY29uc3QgSFRNTEVsZW1l
bnQmIGZvcm1Db250cm9sRWxlbWVudCkKK3ZvaWQgSFRNTEZvcm1FbGVtZW50OjpyZW1vdmVJbnZh
bGlkRm9ybUNvbnRyb2xJZk5lZWRlZChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JiBmb3Jt
Q29udHJvbEVsZW1lbnQpCiB7CiAgICAgaWYgKCFtX2ludmFsaWRGb3JtQ29udHJvbHMuY29udGFp
bnMoZm9ybUNvbnRyb2xFbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAtODIwLDE4ICs4MzUs
MjIgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlc2V0RGVmYXVsdEJ1dHRvbigpCiAKIGJvb2wg
SFRNTEZvcm1FbGVtZW50OjpjaGVja1ZhbGlkaXR5KCkKIHsKLSAgICBWZWN0b3I8UmVmUHRyPFZh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4gY29udHJvbHM7CisgICAgVmVjdG9yPFJlZlB0cjxI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Pj4gY29udHJvbHM7CiAgICAgcmV0dXJuICFjaGVja0ludmFs
aWRDb250cm9sc0FuZENvbGxlY3RVbmhhbmRsZWQoY29udHJvbHMpOwogfQogCi1ib29sIEhUTUxG
b3JtRWxlbWVudDo6Y2hlY2tJbnZhbGlkQ29udHJvbHNBbmRDb2xsZWN0VW5oYW5kbGVkKFZlY3Rv
cjxSZWZQdHI8VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ+PiYgdW5oYW5kbGVkSW52YWxpZENv
bnRyb2xzKQorYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OmNoZWNrSW52YWxpZENvbnRyb2xzQW5kQ29s
bGVjdFVuaGFuZGxlZChWZWN0b3I8UmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+PiYgdW5o
YW5kbGVkSW52YWxpZENvbnRyb2xzKQogewogICAgIFJlZjxIVE1MRm9ybUVsZW1lbnQ+IHByb3Rl
Y3RlZFRoaXMoKnRoaXMpOwogICAgIC8vIENvcHkgbV9saXN0ZWRFbGVtZW50cyBiZWNhdXNlIGV2
ZW50IGhhbmRsZXJzIGNhbGxlZCBmcm9tIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNrVmFs
aWRpdHkoKSBtaWdodCBjaGFuZ2UgbV9saXN0ZWRFbGVtZW50cy4KKyAgICBhdXRvIGVsZW1lbnRz
ID0gY29weUxpc3RlZEVsZW1lbnRzVmVjdG9yKCk7CiAgICAgYm9vbCBoYXNJbnZhbGlkQ29udHJv
bHMgPSBmYWxzZTsKLSAgICBmb3IgKGF1dG8mIGNvbnRyb2wgOiBjb3B5VmFsaWRhdGVkTGlzdGVk
RWxlbWVudHNWZWN0b3IoKSkgewotICAgICAgICBpZiAoY29udHJvbC0+Zm9ybSgpID09IHRoaXMg
JiYgIWNvbnRyb2wtPmNoZWNrVmFsaWRpdHkoJnVuaGFuZGxlZEludmFsaWRDb250cm9scykgJiYg
Y29udHJvbC0+Zm9ybSgpID09IHRoaXMpCi0gICAgICAgICAgICBoYXNJbnZhbGlkQ29udHJvbHMg
PSB0cnVlOworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnRzKSB7CisgICAgICAgIGlm
IChlbGVtZW50LT5mb3JtKCkgPT0gdGhpcyAmJiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pihl
bGVtZW50KSkgeworICAgICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgY29udHJvbCA9
IGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGVsZW1lbnQuZ2V0KCkpOworICAgICAg
ICAgICAgaWYgKCFjb250cm9sLmNoZWNrVmFsaWRpdHkoJnVuaGFuZGxlZEludmFsaWRDb250cm9s
cykgJiYgY29udHJvbC5mb3JtKCkgPT0gdGhpcykKKyAgICAgICAgICAgICAgICBoYXNJbnZhbGlk
Q29udHJvbHMgPSB0cnVlOworICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBoYXNJbnZhbGlk
Q29udHJvbHM7CiB9CkBAIC05NzIsMTMgKzk5MSw2IEBAIFZlY3RvcjxSZWY8Rm9ybUxpc3RlZEVs
ZW1lbnQ+PiBIVE1MRm9ybUVsZW1lbnQ6OmNvcHlMaXN0ZWRFbGVtZW50c1ZlY3RvcigpIGNvbnN0
CiAgICAgfSk7CiB9CiAKLVZlY3RvcjxSZWY8VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ+PiBI
VE1MRm9ybUVsZW1lbnQ6OmNvcHlWYWxpZGF0ZWRMaXN0ZWRFbGVtZW50c1ZlY3RvcigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIFdURjo6Y29tcGFjdE1hcChtX2xpc3RlZEVsZW1lbnRzLCBbXShhdXRv
JiB3ZWFrRWxlbWVudCkgewotICAgICAgICByZXR1cm4gUmVmUHRyIHsgd2Vha0VsZW1lbnQtPmFz
VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSB9OwotICAgIH0pOwotfQotCiB2b2lkIEhUTUxG
b3JtRWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXNGcm9tRWxlbWVudChjb25zdCBF
bGVtZW50JiBzb3VyY2UpCiB7CiAgICAgbV93YXNEZW1vdGVkID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
SFRNTEZvcm1FbGVtZW50Jj4oc291cmNlKS5tX3dhc0RlbW90ZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuaAppbmRleCA0ZDgxMGY0NjM2NTcuLjE4MDUyOGJlMDhhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEZv
cm1MaXN0ZWRFbGVtZW50OwogY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudDsKIGNsYXNzIEhU
TUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKLWNsYXNz
IFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OwogCiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRN
TEZvcm1FbGVtZW50KTsKQEAgLTY4LDggKzY3LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0
ZXJGb3JtTGlzdGVkRWxlbWVudChGb3JtTGlzdGVkRWxlbWVudCYpOwogICAgIHZvaWQgdW5yZWdp
c3RlckZvcm1MaXN0ZWRFbGVtZW50KEZvcm1MaXN0ZWRFbGVtZW50Jik7CiAKLSAgICB2b2lkIGFk
ZEludmFsaWRGb3JtQ29udHJvbChjb25zdCBIVE1MRWxlbWVudCYpOwotICAgIHZvaWQgcmVtb3Zl
SW52YWxpZEZvcm1Db250cm9sSWZOZWVkZWQoY29uc3QgSFRNTEVsZW1lbnQmKTsKKyAgICB2b2lk
IGFkZEludmFsaWRGb3JtQ29udHJvbChjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Jik7Cisg
ICAgdm9pZCByZW1vdmVJbnZhbGlkRm9ybUNvbnRyb2xJZk5lZWRlZChjb25zdCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Jik7CiAKICAgICB2b2lkIHJlZ2lzdGVySW1nRWxlbWVudChIVE1MSW1hZ2VF
bGVtZW50Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVySW1nRWxlbWVudChIVE1MSW1hZ2VFbGVtZW50
Jik7CkBAIC0xMTcsNyArMTE2LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29u
c3QgVmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0
RGF0YT4+JiB1bnNhZmVMaXN0ZWRFbGVtZW50cygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IFZlY3RvcjxSZWY8Rm9ybUxpc3RlZEVsZW1lbnQ+PiBjb3B5TGlzdGVkRWxlbWVudHNWZWN0b3Io
KSBjb25zdDsKLSAgICBWZWN0b3I8UmVmPFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4gY29w
eVZhbGlkYXRlZExpc3RlZEVsZW1lbnRzVmVjdG9yKCkgY29uc3Q7CiAgICAgY29uc3QgVmVjdG9y
PFdlYWtQdHI8SFRNTEltYWdlRWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRh
Pj4mIGltYWdlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlRWxlbWVudHM7IH0KIAog
ICAgIFN0cmluZ1BhaXJWZWN0b3IgdGV4dEZpZWxkVmFsdWVzKCkgY29uc3Q7CkBAIC0xNTUsNyAr
MTUzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBWYWxpZGF0ZXMgZWFjaCBvZiB0aGUgY29udHJvbHMs
IGFuZCBzdG9yZXMgY29udHJvbHMgb2Ygd2hpY2ggJ2ludmFsaWQnCiAgICAgLy8gZXZlbnQgd2Fz
IG5vdCBjYW5jZWxlZCB0byB0aGUgc3BlY2lmaWVkIHZlY3Rvci4gUmV0dXJucyB0cnVlIGlmIHRo
ZXJlCiAgICAgLy8gYXJlIGFueSBpbnZhbGlkIGNvbnRyb2xzIGluIHRoaXMgZm9ybS4KLSAgICBi
b29sIGNoZWNrSW52YWxpZENvbnRyb2xzQW5kQ29sbGVjdFVuaGFuZGxlZChWZWN0b3I8UmVmUHRy
PFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4mKTsKKyAgICBib29sIGNoZWNrSW52YWxpZENv
bnRyb2xzQW5kQ29sbGVjdFVuaGFuZGxlZChWZWN0b3I8UmVmUHRyPEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ+PiYpOwogCiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50RnJvbVBhc3ROYW1l
c01hcChjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBhZGRUb1Bhc3ROYW1lc01h
cChGb3JtQXNzb2NpYXRlZEVsZW1lbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBwYXN0TmFtZSk7CkBA
IC0xNzksNyArMTc3LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxXZWFrUHRyPEhUTUxFbGVt
ZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+PiBtX2xpc3RlZEVsZW1lbnRzOwog
ICAgIFZlY3RvcjxXZWFrUHRyPEhUTUxJbWFnZUVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50
VGFyZ2V0RGF0YT4+IG1faW1hZ2VFbGVtZW50czsKLSAgICBXZWFrSGFzaFNldDxIVE1MRWxlbWVu
dCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2ludmFsaWRGb3JtQ29udHJvbHM7
CisgICAgV2Vha0hhc2hTZXQ8SFRNTEZvcm1Db250cm9sRWxlbWVudCwgV2Vha1B0ckltcGxXaXRo
RXZlbnRUYXJnZXREYXRhPiBtX2ludmFsaWRGb3JtQ29udHJvbHM7CiAgICAgV2Vha1B0cjxGb3Jt
U3VibWlzc2lvbj4gbV9wbGFubmVkRm9ybVN1Ym1pc3Npb247CiAgICAgc3RkOjp1bmlxdWVfcHRy
PERPTVRva2VuTGlzdD4gbV9yZWxMaXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5pZGwKaW5kZXggZGU4ZTI3NWIzNDBkLi5iZjY1MDk4ZWE3Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKQEAgLTQzLDcgKzQzLDcgQEAKIAogICAgIFtJbXBs
ZW1lbnRlZEFzPXN1Ym1pdEZyb21KYXZhU2NyaXB0XSB1bmRlZmluZWQgc3VibWl0KCk7CiAgICAg
W0VuYWJsZWRCeVNldHRpbmc9UmVxdWVzdFN1Ym1pdEVuYWJsZWRdIHVuZGVmaW5lZCByZXF1ZXN0
U3VibWl0KG9wdGlvbmFsIEhUTUxFbGVtZW50PyBzdWJtaXR0ZXIpOwotICAgIFtDRVJlYWN0aW9u
c10gdW5kZWZpbmVkIHJlc2V0KCk7CisgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gdW5kZWZp
bmVkIHJlc2V0KCk7CiAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7CiAgICAgW0VuYWJsZWRC
eVNldHRpbmc9SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWRdIGJvb2xlYW4gcmVwb3J0
VmFsaWRpdHkoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4
IDRjYTVlNmU5OWU5MC4uOTdkYzMzMjI1ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuaApAQCAtMTc0LDggKzE3NCw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAg
ICB2b2lkIHJlc2V0Rm9ybU93bmVyKCkgZmluYWw7Ci0gICAgdm9pZCByZWZGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IEhUTUxFbGVtZW50OjpyZWYoKTsgfQotICAgIHZvaWQg
ZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IEhUTUxFbGVtZW50Ojpk
ZXJlZigpOyB9CisgICAgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7IEhU
TUxFbGVtZW50OjpyZWYoKTsgfQorICAgIHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQo
KSBmaW5hbCB7IEhUTUxFbGVtZW50OjpkZXJlZigpOyB9CiAgICAgdm9pZCBzZXRGb3JtSW50ZXJu
YWwoSFRNTEZvcm1FbGVtZW50KikgZmluYWw7CiAKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGU3ODlkOWEzMjAw
MC4uMDVjNTMxNGQ0OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTYzNCw3ICs2MzQsOSBAQCBjb25zdCBBdG9tU3RyaW5nJiBIVE1MSW5wdXRFbGVtZW50
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNob3Vs
ZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
aW5wdXRUeXBlLT5zaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKTsKKyAgICBp
ZiAoIW1faW5wdXRUeXBlLT5zaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCk7CiB9CiAKIEZvcm1D
b250cm9sU3RhdGUgSFRNTElucHV0RWxlbWVudDo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggZTgwOWRhMmFm
MDQxLi41Y2E2MzhhNzEwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcApAQCAtODIsMTEgKzgyLDEwIEBAIFJlZlB0cjxMYWJlbGFibGVFbGVtZW50PiBIVE1MTGFi
ZWxFbGVtZW50Ojpjb250cm9sKCkgY29uc3QKIAogSFRNTEZvcm1FbGVtZW50KiBIVE1MTGFiZWxF
bGVtZW50Ojpmb3JtKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBlbGVtZW50ID0gY29udHJvbCgp
KSB7Ci0gICAgICAgIGlmIChhdXRvKiBsaXN0ZWRFbGVtZW50ID0gZWxlbWVudC0+YXNWYWxpZGF0
ZWRGb3JtTGlzdGVkRWxlbWVudCgpKQotICAgICAgICAgICAgcmV0dXJuIGxpc3RlZEVsZW1lbnQt
PmZvcm0oKTsKLSAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBjb250cm9sID0g
dGhpcy0+Y29udHJvbCgpOworICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY29u
dHJvbCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Pihjb250cm9sLmdldCgpKS0+Zm9ybSgpOwogfQogCiB2b2lkIEhU
TUxMYWJlbEVsZW1lbnQ6OnNldEFjdGl2ZShib29sIGRvd24sIFN0eWxlOjpJbnZhbGlkYXRpb25T
Y29wZSBpbnZhbGlkYXRpb25TY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWI0NzI4YmQ4MTJjLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
LmgiCi0KLSNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCIKLSNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQpOwotCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCi1IVE1MTWF5YmVGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQ6OkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBM
YWJlbGFibGVFbGVtZW50IHsgdGFnTmFtZSwgZG9jdW1lbnQgfQotewotICAgIEFTU0VSVChEb2N1
bWVudDo6dmFsaWRhdGVDdXN0b21FbGVtZW50TmFtZSh0YWdOYW1lLmxvY2FsTmFtZSgpKSA9PSBD
dXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXM6OlZhbGlkKTsKLX0KLQotSFRNTE1heWJl
Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Ojp+SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0
b21FbGVtZW50KCkgPSBkZWZhdWx0OwotCi1SZWY8SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0
b21FbGVtZW50PiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7Ci19Ci0KLWJvb2wgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRD
dXN0b21FbGVtZW50Ojppc0Zvcm1MaXN0ZWRFbGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
aXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKTsKLX0KLQotYm9vbCBIVE1MTWF5YmVGb3Jt
QXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmlzVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSBj
b25zdAotewotICAgIHJldHVybiBpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpOwotfQot
Ci1ib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aXNGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBoYXNGb3JtQXNzb2NpYXRl
ZEludGVyZmFjZSgpICYmIGlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKTsKLX0KLQotRm9ybUFzc29j
aWF0ZWRFbGVtZW50KiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmFzRm9y
bUFzc29jaWF0ZWRFbGVtZW50KCkKLXsKLSAgICByZXR1cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQoKSA/ICZmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKSA6IG51bGxw
dHI7Ci19Ci0KLUZvcm1MaXN0ZWRFbGVtZW50KiBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQ6OmFzRm9ybUxpc3RlZEVsZW1lbnQoKQotewotICAgIHJldHVybiBpc0Zvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudCgpID8gJmZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudFVuc2Fm
ZSgpIDogbnVsbHB0cjsKLX0KLQotVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQqIEhUTUxNYXli
ZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6YXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVu
dCgpCi17Ci0gICAgcmV0dXJuIGlzRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkgPyAmZm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkgOiBudWxscHRyOwotfQotCi1Gb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQqIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dDo6Zm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50Rm9yRWxlbWVudEludGVybmFscygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGhhc0Zvcm1Bc3NvY2lhdGVkSW50ZXJmYWNlKCkgJiYgaXNQcmVjdXN0
b21pemVkT3JEZWZpbmVkQ3VzdG9tRWxlbWVudCgpID8gJmZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudFVuc2FmZSgpIDogbnVsbHB0cjsKLX0KLQotYm9vbCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQ6Om1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnRVbnNhZmUoKS5tYXRjaGVzVmFsaWRQc2V1ZG9DbGFzcygpOwotfQotCi1ib29s
IEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6bWF0Y2hlc0ludmFsaWRQc2V1
ZG9DbGFzcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50KCkgJiYgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkubWF0Y2hlc0ludmFs
aWRQc2V1ZG9DbGFzcygpOwotfQotCi1ib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudDo6bWF0Y2hlc1VzZXJWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnRVbnNhZmUoKS5tYXRjaGVzVXNlclZhbGlkUHNldWRvQ2xhc3MoKTsKLX0KLQotYm9v
bCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6Om1hdGNoZXNVc2VySW52YWxp
ZFBzZXVkb0NsYXNzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNGb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5tYXRjaGVz
VXNlckludmFsaWRQc2V1ZG9DbGFzcygpOwotfQotCi1ib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lh
dGVkQ3VzdG9tRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlz
Rm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KCkgPyAhZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVt
ZW50VW5zYWZlKCkuaXNEaXNhYmxlZCgpIDogSFRNTEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKTsK
LX0KLQotYm9vbCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnN1cHBvcnRM
YWJlbHMoKSBjb25zdAotewotICAgIHJldHVybiBpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dCgpOwotfQotCi1ib29sIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aXNE
aXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNGb3JtQXNzb2NpYXRl
ZEN1c3RvbUVsZW1lbnQoKSAmJiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5p
c0Rpc2FibGVkKCk7Ci19Ci0KLU5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEhUTUxN
YXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVk
VHJlZSkKLXsKLSAgICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9u
VHlwZSwgcGFyZW50T2ZJbnNlcnRlZFRyZWUpOwotICAgIGlmIChpc0Zvcm1Bc3NvY2lhdGVkQ3Vz
dG9tRWxlbWVudCgpKQotICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUo
KS5pbnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJl
ZSk7Ci0KLSAgICByZXR1cm4gSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQ6Ok5lZWRzUG9zdElu
c2VydGlvbkNhbGxiYWNrOwotfQotCi12b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpCi17Ci0gICAgSFRNTEVsZW1lbnQ6OmRp
ZEZpbmlzaEluc2VydGluZ05vZGUoKTsKLSAgICBpZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSkKLSAgICAgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkuZGlk
RmluaXNoSW5zZXJ0aW5nTm9kZSgpOwotfQotCi12b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50
LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpCi17Ci0gICAgSFRNTEVsZW1lbnQ6OmRpZE1vdmVUb05l
d0RvY3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7Ci0gICAgaWYgKGlzRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50KCkpCi0gICAgICAgIGZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dFVuc2FmZSgpLmRpZE1vdmVUb05ld0RvY3VtZW50KCk7Ci19Ci0KLXZvaWQgSFRNTE1heWJlRm9y
bUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBl
IHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKQotewot
ICAgIEhUTUxFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKHJlbW92YWxUeXBlLCBvbGRQYXJl
bnRPZlJlbW92ZWRUcmVlKTsKLSAgICBpZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQo
KSkKLSAgICAgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkucmVtb3ZlZEZy
b21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7Ci19Ci0KLXZv
aWQgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKLXsKLSAg
ICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIGlmIChpc0Zv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpKQotICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3Rv
bUVsZW1lbnRVbnNhZmUoKS5wYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci19Ci0KLXZvaWQg
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRy
ZW4oKQotewotICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKLSAgICBp
ZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKSkKLSAgICAgICAgZm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkuZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7Ci19Ci0KLXZv
aWQgSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50OjpzZXRJbnRlcmZhY2VJc0Zv
cm1Bc3NvY2lhdGVkKCkKLXsKLSAgICBzZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50SW50ZXJmYWNlKTsKLSAgICBlbnN1cmVGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQoKTsKLX0KLQotdm9pZCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQ6OndpbGxVcGdyYWRlRm9ybUFzc29jaWF0ZWQoKQotewotICAgIEFTU0VSVChpc1ByZWN1
c3RvbWl6ZWRDdXN0b21FbGVtZW50KCkpOwotICAgIHNldEludGVyZmFjZUlzRm9ybUFzc29jaWF0
ZWQoKTsKLSAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS53aWxsVXBncmFk
ZSgpOwotfQotCi12b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDo6ZGlk
VXBncmFkZUZvcm1Bc3NvY2lhdGVkKCkKLXsKLSAgICBBU1NFUlQoaXNGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQoKSk7Ci0gICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCku
ZGlkVXBncmFkZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJjb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRkNGVjMWUwZGVlLi4wMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1
c3RvbUVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ7Ci0KLWNs
YXNzIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBM
YWJlbGFibGVFbGVtZW50IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEhUTUxNYXliZUZv
cm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIVE1M
TWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwotCi0gICAgdXNpbmcgTm9kZTo6cmVmOwotICAgIHVz
aW5nIE5vZGU6OmRlcmVmOwotCi0gICAgYm9vbCBpc01heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgaXNGb3JtTGlz
dGVkRWxlbWVudCgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudCgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSBjb25zdDsKLQotICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCogYXNGb3JtQXNzb2Np
YXRlZEVsZW1lbnQoKSBmaW5hbDsKLSAgICBGb3JtTGlzdGVkRWxlbWVudCogYXNGb3JtTGlzdGVk
RWxlbWVudCgpIGZpbmFsOwotICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KiBhc1ZhbGlk
YXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgZmluYWw7Ci0gICAgRm9ybUFzc29jaWF0ZWRDdXN0b21F
bGVtZW50KiBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRGb3JFbGVtZW50SW50ZXJuYWxzKCkg
Y29uc3Q7Ci0KLSAgICBib29sIG1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7
Ci0gICAgYm9vbCBtYXRjaGVzSW52YWxpZFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7Ci0gICAg
Ym9vbCBtYXRjaGVzVXNlclZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5hbDsKLSAgICBib29s
IG1hdGNoZXNVc2VySW52YWxpZFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7Ci0KLSAgICBib29s
IHN1cHBvcnRzRm9jdXMoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHN1cHBvcnRMYWJlbHMoKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IGZpbmFs
OwotCi0gICAgdm9pZCBzZXRJbnRlcmZhY2VJc0Zvcm1Bc3NvY2lhdGVkKCk7Ci0gICAgYm9vbCBo
YXNGb3JtQXNzb2NpYXRlZEludGVyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIGhhc05vZGVGbGFnKE5v
ZGVGbGFnOjpIYXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpOyB9Ci0KLSAg
ICB2b2lkIHdpbGxVcGdyYWRlRm9ybUFzc29jaWF0ZWQoKTsKLSAgICB2b2lkIGRpZFVwZ3JhZGVG
b3JtQXNzb2NpYXRlZCgpOwotCi1wcml2YXRlOgotICAgIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwot
ICAgIHZpcnR1YWwgfkhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudCgpOwotCi0g
ICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNoSW5zZXJ0
aW5nTm9kZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
LCBEb2N1bWVudCYpIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFs
VHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIGZp
bmlzaFBhcnNpbmdDaGlsZHJlbigpIGZpbmFsOwotfTsKLQotc3RhdGljX2Fzc2VydChzaXplb2Yo
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50KSA9PSBzaXplb2YoTGFiZWxhYmxl
RWxlbWVudCkpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQkVHSU4oV2ViQ29yZTo6SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50
KQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50
KSB7IHJldHVybiBlbGVtZW50LmlzTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQoKTsg
fQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpOb2RlJiBub2RlKSB7IHJl
dHVybiBpczxXZWJDb3JlOjpFbGVtZW50Pihub2RlKSAmJiBpc1R5cGUoZG93bmNhc3Q8V2ViQ29y
ZTo6RWxlbWVudD4obm9kZSkpOyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDA1YzZiODViNGQ2ZC4u
NzhkNjZiNTBhY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNw
cApAQCAtMTA1LDcgKzEwNSw5IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgYm9vbCBp
bnZhbGlkYXRlUmVuZGVyZXIgPSBmYWxzZTsKICAgICBib29sIG5lZWRzV2lkZ2V0VXBkYXRlID0g
ZmFsc2U7CiAKLSAgICBpZiAobmFtZSA9PSB0eXBlQXR0cikgeworICAgIGlmIChuYW1lID09IGZv
cm1BdHRyKQorICAgICAgICBmb3JtQXR0cmlidXRlQ2hhbmdlZCgpOworICAgIGVsc2UgaWYgKG5h
bWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgbV9zZXJ2aWNlVHlwZSA9IHZhbHVlLnN0cmluZygp
LmxlZnQodmFsdWUuZmluZCgnOycpKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogICAgICAg
ICBpbnZhbGlkYXRlUmVuZGVyZXIgPSAhaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihjbGFzc2lkQXR0cik7CiAgICAgICAgIG5lZWRzV2lkZ2V0VXBkYXRlID0gdHJ1ZTsKQEAgLTEx
NywxMCArMTE5LDggQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICB9IGVsc2UgaWYgKG5h
bWUgPT0gY2xhc3NpZEF0dHIpIHsKICAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmVyID0gdHJ1ZTsK
ICAgICAgICAgbmVlZHNXaWRnZXRVcGRhdGUgPSB0cnVlOwotICAgIH0gZWxzZSB7CisgICAgfSBl
bHNlCiAgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKLSAgICAgICAgRm9ybUxpc3RlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKLSAgICB9CiAKICAgICBpZiAobmVlZHNXaWRnZXRVcGRhdGUpIHsKICAgICAgICAg
c2V0TmVlZHNXaWRnZXRVcGRhdGUodHJ1ZSk7CkBAIC00NjEsNyArNDYxLDcgQEAgdm9pZCBIVE1M
T2JqZWN0RWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVS
TD4mIHVybHMpIGNvbnMKIAogdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpCiB7Ci0g
ICAgRm9ybUxpc3RlZEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KCk7CisgICAgRm9ybUxp
c3RlZEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKICAgICBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCwgbmV3
RG9jdW1lbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5k
ZXggMmIwNzc4MWFmMjk2Li4zMmU1NmEwODY2MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmgKQEAgLTg2LDE5ICs4NiwxNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBo
YXNWYWxpZENsYXNzSWQoKTsKIAotICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkg
Y29uc3QgZmluYWwgeyByZWYoKTsgfQotICAgIHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1l
bnQoKSBjb25zdCBmaW5hbCB7IGRlcmVmKCk7IH0KKyAgICB2b2lkIHJlZkZvcm1Bc3NvY2lhdGVk
RWxlbWVudCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRF
bGVtZW50KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICBGb3JtQXNzb2NpYXRlZEVsZW1lbnQq
IGFzRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQogICAgIEZv
cm1MaXN0ZWRFbGVtZW50KiBhc0Zvcm1MaXN0ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gdGhp
czsgfQotICAgIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KiBhc1ZhbGlkYXRlZEZvcm1MaXN0
ZWRFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgLy8gVGhlc2UgZnVu
Y3Rpb25zIGNhbiBiZSBjYWxsZWQgY29uY3VycmVudGx5IGZvciBWYWxpZGl0eVN0YXRlLgogICAg
IEhUTUxPYmplY3RFbGVtZW50JiBhc0hUTUxFbGVtZW50KCkgZmluYWwgeyByZXR1cm4gKnRoaXM7
IH0KICAgICBjb25zdCBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICp0aGlzOyB9CiAKLSAgICBib29sIGlzRm9ybUxpc3RlZEVsZW1lbnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBpc1ZhbGlkYXRlZEZvcm1MaXN0
ZWRFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzRm9y
bUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJv
b2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDhmZGMwNzllZmMyNy4uM2I5
YWU3NDQ5M2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApA
QCAtNjksNyArNjksNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heFNlbGVjdEl0ZW1zID0gMTAwMDA7CiAKIEhUTUxTZWxlY3RFbGVtZW50OjpI
VE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlKHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQogICAgICwgbV90eXBlQWhlYWQo
dGhpcykKICAgICAsIG1fc2l6ZSgwKQogICAgICwgbV9sYXN0T25DaGFuZ2VJbmRleCgtMSkKQEAg
LTI3Nyw3ICsyNzcsNyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aGFzUHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTEZvcm1D
b250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShuYW1lKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC0zMDAs
NyArMzAwLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICB9IGVsc2UgaWYgKG5hbWUg
PT0gbXVsdGlwbGVBdHRyKQogICAgICAgICBwYXJzZU11bHRpcGxlQXR0cmlidXRlKHZhbHVlKTsK
ICAgICBlbHNlCi0gICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6
OmRlZmF1bHRUYWJJbmRleCgpIGNvbnN0CkBAIC0zMTIsMTQgKzMxMiwxNCBAQCBib29sIEhUTUxT
ZWxlY3RFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBj
b25zdAogewogICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gaXNGb2N1c2FibGUo
KTsKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJs
ZShldmVudCk7CisgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omlz
S2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQogCiBib29sIEhUTUxTZWxlY3RFbGVtZW50Ojpp
c01vdXNlRm9jdXNhYmxlKCkgY29uc3QKIHsKICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAg
cmV0dXJuIGlzRm9jdXNhYmxlKCk7Ci0gICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmlzTW91c2VGb2N1c2FibGUoKTsKKyAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZTo6aXNNb3VzZUZvY3VzYWJsZSgpOwogfQogCiBib29sIEhUTUxTZWxlY3RFbGVtZW50
OjpjYW5TZWxlY3RBbGwoKSBjb25zdApAQCAtMzQwLDcgKzM0MCw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYKIAogYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKIHsKLSAgICBpZiAoIUhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpKQorICAgIGlmICghSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
aGlsZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQpAQCAtNDAyLDcgKzQwMiw3IEBAIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQog
ICAgIEFTU0VSVChjaGFuZ2UuYWZmZWN0c0VsZW1lbnRzICE9IENoaWxkQ2hhbmdlOjpBZmZlY3Rz
RWxlbWVudHM6OlVua25vd24pOwogCiAgICAgaWYgKGNoYW5nZS5hZmZlY3RzRWxlbWVudHMgPT0g
Q2hpbGRDaGFuZ2U6OkFmZmVjdHNFbGVtZW50czo6Tm8pIHsKLSAgICAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CisgICAgICAgIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGU6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2UpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC00MTIsNyArNDEyLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgdXBkYXRl
VmFsaWRpdHkoKTsKICAgICBtX2xhc3RPbkNoYW5nZVNlbGVjdGlvbi5jbGVhcigpOwogCi0gICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CisgICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiB9
CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkVsZW1lbnRDaGlsZHJlbkNoYW5nZWQo
KQpAQCAtNTM1LDcgKzUzNSw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OndpbGxSZXNwb25k
VG9Nb3VzZUNsaWNrRXZlbnRzV2l0aEVkaXRhYmlsaXR5KEVkaXRhYmlsaXR5CiAgICAgVU5VU0VE
X1BBUkFNKGVkaXRhYmlsaXR5KTsKICAgICByZXR1cm4gIWlzRGlzYWJsZWRGb3JtQ29udHJvbCgp
OwogI2Vsc2UKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFJlc3BvbmRU
b01vdXNlQ2xpY2tFdmVudHNXaXRoRWRpdGFiaWxpdHkoZWRpdGFiaWxpdHkpOworICAgIHJldHVy
biBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjp3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50c1dpdGhFZGl0YWJpbGl0eShlZGl0YWJpbGl0eSk7CiAjZW5kaWYKIH0KIApAQCAtOTU0
LDcgKzk1NCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChS
ZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkRWxlbWVudCwKICAgICAvLyBkaXNwYXRjaGluZyBj
aGFuZ2UgZXZlbnRzIGR1cmluZyBibHVyIGV2ZW50IGRpc3BhdGNoLgogICAgIGlmICh1c2VzTWVu
dUxpc3QoKSkKICAgICAgICAgc2F2ZUxhc3RTZWxlY3Rpb24oKTsKLSAgICBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoV1RGTW92ZShvbGRGb2N1c2VkRWxlbWVudCks
IG9wdGlvbnMpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNo
Rm9jdXNFdmVudChXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSwgb3B0aW9ucyk7CiB9CiAKIHZv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYm
IG5ld0ZvY3VzZWRFbGVtZW50KQpAQCAtOTY0LDcgKzk2NCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3VzZWRFbGVt
ZW50KQogICAgIC8vIFRoaXMgbWF0Y2hlcyBvdGhlciBicm93c2VycycgYmVoYXZpb3IuCiAgICAg
aWYgKHVzZXNNZW51TGlzdCgpKQogICAgICAgICBkaXNwYXRjaENoYW5nZUV2ZW50Rm9yTWVudUxp
c3QoKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChXVEZN
b3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOwogfQog
CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRpb24o
SFRNTEVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQpAQCAtMTUyOCw3ICsxNTI4LDcgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAKICNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoaXNEaXNhYmxlZEZvcm1Db250cm9sKCkp
IHsKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihl
dmVudCk7CisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNTUwLDcg
KzE1NTAsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50JiBldmVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50
KTsKIH0KIAogaW50IEhUTUxTZWxlY3RFbGVtZW50OjpsYXN0U2VsZWN0ZWRMaXN0SW5kZXgoKSBj
b25zdApAQCAtMTU5OCw3ICsxNTk4LDcgQEAgTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1
bHQgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGkKICAgICAv
LyBpdGVtcyB5ZXQgLSBidXQgZm9yIGlubmVySFRNTCBhbmQgcmVsYXRlZCBtZXRob2RzLCB0aGlz
IG1ldGhvZCBpcyBjYWxsZWQKICAgICAvLyBhZnRlciB0aGUgd2hvbGUgc3VidHJlZSBpcyBjb25z
dHJ1Y3RlZC4KICAgICByZWNhbGNMaXN0SXRlbXMoKTsKLSAgICByZXR1cm4gSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9uVHlwZSwgcGFyZW50T2ZJ
bnNlcnRlZFRyZWUpOworICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
OjppbnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJl
ZSk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vzc0tleVNldFNlbGVjdGVkSW5k
ZXgoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4
IGNiY2MyMzA0ZDBkYi4uMDk3YmE5ZTNiZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGUuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1
ZGUgIlR5cGVBaGVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAt
MzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxPcHRpb25zQ29s
bGVjdGlvbjsKIAotY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250
cm9sRWxlbWVudCwgcHJpdmF0ZSBUeXBlQWhlYWREYXRhU291cmNlIHsKK2NsYXNzIEhUTUxTZWxl
Y3RFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUsIHByaXZh
dGUgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1M
U2VsZWN0RWxlbWVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MU2VsZWN0RWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVu
dCopOwpAQCAtMTA5LDkgKzEwOSw2IEBAIHB1YmxpYzoKIAogICAgIENvbXBsZXRpb25IYW5kbGVy
Q2FsbGluZ1Njb3BlIG9wdGlvblRvU2VsZWN0RnJvbUNoaWxkQ2hhbmdlU2NvcGUoY29uc3QgQ2hp
bGRDaGFuZ2UmLCBIVE1MT3B0R3JvdXBFbGVtZW50KiBwYXJlbnRPcHRHcm91cCA9IG51bGxwdHIp
OwogCi0gICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0KIHByb3RlY3RlZDoKICAgICBI
VE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9y
bUVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApp
bmRleCA5Yjk0NjM3MzNlYTkuLmY3NzM1MzJiMjlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTUzLDggKzUzLDYgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gaW5uZXJUZXh0
RWxlbWVudCgpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZv
cm1Db250cm9sU3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0KIHByaXZhdGU6
CiAgICAgSFRNTFRleHRBcmVhRWxlbWVudChEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCmluZGV4IDkzNDA4NDJmMzNlZi4uZGJlYTMxN2ZkNThkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNzAsNyArNzAs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogc3RhdGljIFBvc2l0aW9uIHBvc2l0aW9u
Rm9ySW5kZXgoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KiwgdW5zaWduZWQpOwogCiBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0pCi0gICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
LCBmb3JtKQorICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBk
b2N1bWVudCwgZm9ybSkKICAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uKGRvY3VtZW50
LmZyYW1lKCkgJiYgZG9jdW1lbnQuZnJhbWUoKS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRD
b25zaWRlclNlbGVjdGlvbkFzRGlyZWN0aW9uYWwoKSA/IFNlbGVjdGlvbkhhc0ZvcndhcmREaXJl
Y3Rpb24gOiBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbikKICAgICAsIG1fbGFzdENoYW5nZVdhc1Vz
ZXJFZGl0KGZhbHNlKQogICAgICwgbV9pc1BsYWNlaG9sZGVyVmlzaWJsZShmYWxzZSkKQEAgLTg3
LDEzICs4NywxMyBAQCBib29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjbwogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGRuJ3QgZm9yY2UgdGhlIHBzZXVkbyBlbGVtZW50cyBkb3duIGludG8gdGhlIHNoYWRvdywg
YnV0CiAgICAgLy8gdGhpcyBwZXJzZXJ2ZXMgdGhlIGN1cnJlbnQgYmVoYXZpb3Igb2YgV2ViS2l0
LgogICAgIGlmIChjaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOwotICAg
IHJldHVybiBoYXNTaGFkb3dSb290UGFyZW50KGNoaWxkKSAmJiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKKyAgICAgICAgcmV0dXJuIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y2hpbGQpOworICAgIHJldHVybiBoYXNTaGFkb3dSb290UGFyZW50KGNoaWxkKSAmJiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxk
KTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0aW9u
VHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCiB7Ci0gICAgSW5zZXJ0
ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgPSBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJl
bnRPZkluc2VydGVkVHJlZSk7CisgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSW5zZXJ0
ZWRJbnRvQW5jZXN0b3JSZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpp
bnNlcnRlZEludG9BbmNlc3RvcihpbnNlcnRpb25UeXBlLCBwYXJlbnRPZkluc2VydGVkVHJlZSk7
CiAgICAgaWYgKGluc2VydGlvblR5cGUuY29ubmVjdGVkVG9Eb2N1bWVudCkgewogICAgICAgICBT
dHJpbmcgaW5pdGlhbFZhbHVlID0gdmFsdWUoKTsKICAgICAgICAgc2V0VGV4dEFzT2ZMYXN0Rm9y
bUNvbnRyb2xDaGFuZ2VFdmVudChpbml0aWFsVmFsdWUuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygp
IDogaW5pdGlhbFZhbHVlKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9j
dXNlZAogICAgIGlmIChzdXBwb3J0c1BsYWNlaG9sZGVyKCkpCiAgICAgICAgIHVwZGF0ZVBsYWNl
aG9sZGVyVmlzaWJpbGl0eSgpOwogICAgIGhhbmRsZUZvY3VzRXZlbnQob2xkRm9jdXNlZEVsZW1l
bnQuZ2V0KCksIG9wdGlvbnMuZGlyZWN0aW9uKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpkaXNwYXRjaEZvY3VzRXZlbnQoV1RGTW92ZShvbGRGb2N1c2VkRWxlbWVudCksIG9wdGlvbnMp
OworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVu
dChXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYm
IG5ld0ZvY3VzZWRFbGVtZW50KQpAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG5ld0Zv
Y3VzZWRFCiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSgpOwogICAgIC8vIE1h
dGNoIHRoZSBvcmRlciBpbiBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQuCiAgICAgaGFuZGxl
Qmx1ckV2ZW50KCk7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZl
bnQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGU6OmRpc3BhdGNoQmx1ckV2ZW50KFdURk1vdmUobmV3Rm9jdXNlZEVsZW1lbnQp
KTsKIH0KIAogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlkRWRpdElubmVyVGV4
dFZhbHVlKCkKQEAgLTU1MywxOCArNTUzLDE4IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAg
ICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAgICAgICB1cGRhdGVQbGFjZWhvbGRl
clZpc2liaWxpdHkoKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCkKIHsKLSAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOworICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7CiAg
ICAgdXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCk7CiB9CiAKIHZvaWQgSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkKIHsKLSAgICBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpyZWFkT25seVN0YXRlQ2hhbmdlZCgpOworICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7CiAgICAgdXBk
YXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA4NTEwNmFkNDQ5OTQu
LjM4MjRhYzhmMGFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtMjQsNyArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUNvbnRy
b2xFbGVtZW50V2l0aFN0YXRlLmgiCiAjaW5jbHVkZSAiUG9pbnRlckV2ZW50VHlwZU5hbWVzLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDcgKzQxLDcgQEAgZW51bSBUZXh0RmllbGRT
ZWxlY3Rpb25EaXJlY3Rpb24geyBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgU2VsZWN0aW9uSGFz
Rm9yd2FyZEQKIGVudW0gVGV4dEZpZWxkRXZlbnRCZWhhdmlvciB7IERpc3BhdGNoTm9FdmVudCwg
RGlzcGF0Y2hDaGFuZ2VFdmVudCwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50IH07CiBlbnVt
IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24geyBTZXRTZWxlY3Rpb25Ub0VuZCwgQ2xhbXAs
IERvTm90U2V0IH07CiAKLWNsYXNzIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGlj
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgeworY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCk7CiBwdWJsaWM6CiAg
ICAgLy8gQ29tbW9uIGZsYWcgZm9yIEhUTUxJbnB1dEVsZW1lbnQ6OnRvb0xvbmcoKSAvIHRvb1No
b3J0KCkgYW5kIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnRvb0xvbmcoKSAvIHRvb1Nob3J0KCkuCkBA
IC0xMDgsOCArMTA4LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBi
b29sIGlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxlKCkgY29uc3Q7CiAKLSAgICBib29sIGNhbkNv
bnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQog
cHJvdGVjdGVkOgogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwogICAgIGJvb2wgaXNQbGFjZWhv
bGRlckVtcHR5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlv
Tm9kZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb05vZGVMaXN0LmNwcAppbmRl
eCBjOGJiOTgxMDVjYzEuLjNkNDk0MjBiNjAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYWRpb05vZGVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9k
ZUxpc3QuY3BwCkBAIC05NCwxNSArOTQsMTkgQEAgdm9pZCBSYWRpb05vZGVMaXN0OjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiBib29sIFJhZGlvTm9kZUxpc3Q6OmVsZW1lbnRNYXRj
aGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgaWYgKCFlbGVtZW50LmlzRm9ybUxp
c3RlZEVsZW1lbnQoKSkKKyAgICBpZiAoIWlzPEhUTUxPYmplY3RFbGVtZW50PihlbGVtZW50KSAm
JiAhaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5pc0ltYWdlQnV0dG9uKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChpczxIVE1MRm9ybUVsZW1lbnQ+KG93bmVyTm9kZSgpKSkg
ewotICAgICAgICBSZWZQdHIgZm9ybSA9IGVsZW1lbnQuYXNGb3JtTGlzdGVkRWxlbWVudCgpLT5m
b3JtKCk7Ci0gICAgICAgIGlmIChmb3JtICE9ICZvd25lck5vZGUoKSkKKyAgICAgICAgUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gZm9ybTsKKyAgICAgICAgaWYgKGlzPEhUTUxPYmplY3RFbGVtZW50
PihlbGVtZW50KSkKKyAgICAgICAgICAgIGZvcm0gPSBkb3duY2FzdDxIVE1MT2JqZWN0RWxlbWVu
dD4oZWxlbWVudCkuZm9ybSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmb3JtID0gZG93
bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkuZm9ybSgpOworICAgICAgICBp
ZiAoIWZvcm0gfHwgZm9ybSAhPSAmb3duZXJOb2RlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZv
cm1MaXN0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDNkNDQwYzY0
YmIuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRlZEZvcm1M
aXN0ZWRFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ5MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiAgICAgICAg
ICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiAgICAgICAg
ICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAyMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgICAgICAg
ICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1l
bnQuaCIKLQotI2luY2x1ZGUgIkNvbnRyb2xTdGF0ZXMuaCIKLSNpbmNsdWRlICJFbGVtZW50QW5j
ZXN0b3JJdGVyYXRvci5oIgotI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRIYW5k
bGVyLmgiCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkZvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oIgotI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRnJhbWUu
aCIKLSNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJIVE1MRGF0YUxpc3RFbGVtZW50
LmgiCi0jaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxGb3Jt
RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgotI2luY2x1ZGUgIlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9u
LmgiCi0jaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCi0jaW5jbHVkZSAiVmFsaWRh
dGlvbk1lc3NhZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1NldEZv
clNjb3BlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci0KLVZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVt
ZW50OjpWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudChIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCi0g
ICAgOiBGb3JtTGlzdGVkRWxlbWVudCB7IGZvcm0gfQotewotfQotCi1WYWxpZGF0ZWRGb3JtTGlz
dGVkRWxlbWVudDo6flZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KCkgPSBkZWZhdWx0OwotCi1i
b29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSBjb25zdAotewot
ICAgIGlmICghbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZCB8fCBtX2lzSW5zaWRlRGF0YUxpc3Qg
PT0gVHJpU3RhdGU6OkluZGV0ZXJtaW5hdGUpIHsKLSAgICAgICAgbV93aWxsVmFsaWRhdGVJbml0
aWFsaXplZCA9IHRydWU7Ci0gICAgICAgIGJvb2wgbmV3V2lsbFZhbGlkYXRlID0gY29tcHV0ZVdp
bGxWYWxpZGF0ZSgpOwotICAgICAgICBpZiAobV93aWxsVmFsaWRhdGUgIT0gbmV3V2lsbFZhbGlk
YXRlKQotICAgICAgICAgICAgbV93aWxsVmFsaWRhdGUgPSBuZXdXaWxsVmFsaWRhdGU7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgLy8gSWYgdGhlIGZvbGxvd2luZyBhc3NlcnRpb24gZmFpbHMsIHVw
ZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCkgaXMgbm90Ci0gICAgICAgIC8vIGNhbGxlZCBj
b3JyZWN0bHkgd2hlbiBzb21ldGhpbmcgd2hpY2ggY2hhbmdlcyBjb21wdXRlV2lsbFZhbGlkYXRl
KCkgcmVzdWx0Ci0gICAgICAgIC8vIGlzIHVwZGF0ZWQuCi0gICAgICAgIEFTU0VSVChtX3dpbGxW
YWxpZGF0ZSA9PSBjb21wdXRlV2lsbFZhbGlkYXRlKCkpOwotICAgIH0KLSAgICByZXR1cm4gbV93
aWxsVmFsaWRhdGU7Ci19Ci0KLWJvb2wgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OmNvbXB1
dGVXaWxsVmFsaWRhdGUoKSBjb25zdAotewotICAgIGlmIChtX2lzSW5zaWRlRGF0YUxpc3QgPT0g
VHJpU3RhdGU6OkluZGV0ZXJtaW5hdGUpIHsKLSNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
LSAgICAgICAgY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7Ci0g
ICAgICAgIG1faXNJbnNpZGVEYXRhTGlzdCA9IHRyaVN0YXRlKGVsZW1lbnQuZG9jdW1lbnQoKS5o
YXNEYXRhTGlzdEVsZW1lbnRzKCkgJiYgYW5jZXN0b3JzT2ZUeXBlPEhUTUxEYXRhTGlzdEVsZW1l
bnQ+KGVsZW1lbnQpLmZpcnN0KCkpOwotI2Vsc2UKLSAgICAgICAgbV9pc0luc2lkZURhdGFMaXN0
ID0gVHJpU3RhdGU6OkZhbHNlOwotI2VuZGlmCi0gICAgfQotICAgIC8vIHJlYWRvbmx5IGJhcnMg
Y29uc3RyYWludCB2YWxpZGF0aW9uIGZvciAqYWxsKiA8aW5wdXQ+IGVsZW1lbnRzLCByZWdhcmRs
ZXNzIG9mIHRoZSA8aW5wdXQ+IHR5cGUsIGZvciBjb21wYXQgcmVhc29ucy4KLSAgICByZXR1cm4g
bV9pc0luc2lkZURhdGFMaXN0ID09IFRyaVN0YXRlOjpGYWxzZSAmJiAhaXNEaXNhYmxlZCgpICYm
ICEobV9oYXNSZWFkT25seUF0dHJpYnV0ZSAmJiByZWFkT25seUJhcnNGcm9tQ29uc3RyYWludFZh
bGlkYXRpb24oKSk7Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnVwZGF0
ZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZShSZWY8SFRNTEVsZW1lbnQ+IHZhbGlkYXRpb25BbmNo
b3IpCi17Ci0gICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7Ci0gICAg
aWYgKCFlbGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgU3Ry
aW5nIG1lc3NhZ2U7Ci0gICAgaWYgKGVsZW1lbnQucmVuZGVyZXIoKSAmJiB3aWxsVmFsaWRhdGUo
KSkKLSAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRpb25NZXNzYWdlKCkuc3RyaXBXaGl0ZVNwYWNl
KCk7Ci0gICAgaWYgKCFtX3ZhbGlkYXRpb25NZXNzYWdlKQotICAgICAgICBtX3ZhbGlkYXRpb25N
ZXNzYWdlID0gbWFrZVVuaXF1ZTxWYWxpZGF0aW9uTWVzc2FnZT4odmFsaWRhdGlvbkFuY2hvcik7
Ci0gICAgbV92YWxpZGF0aW9uTWVzc2FnZS0+dXBkYXRlVmFsaWRhdGlvbk1lc3NhZ2UodmFsaWRh
dGlvbkFuY2hvciwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1l
bnQ6OmhpZGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoKQotewotICAgIGlmIChtX3ZhbGlkYXRp
b25NZXNzYWdlKQotICAgICAgICBtX3ZhbGlkYXRpb25NZXNzYWdlLT5yZXF1ZXN0VG9IaWRlTWVz
c2FnZSgpOwotfQotCi1ib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpjaGVja1ZhbGlk
aXR5KFZlY3RvcjxSZWZQdHI8VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ+PiogdW5oYW5kbGVk
SW52YWxpZENvbnRyb2xzKQotewotICAgIGlmICghd2lsbFZhbGlkYXRlKCkgfHwgaXNWYWxpZEZv
cm1Db250cm9sRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAvLyBBbiBldmVu
dCBoYW5kbGVyIGNhbiBkZXJlZiB0aGlzIG9iamVjdC4KLSAgICBIVE1MRWxlbWVudCYgZWxlbWVu
dCA9IGFzSFRNTEVsZW1lbnQoKTsKLSAgICBSZWYgcHJvdGVjdGVkVGhpcyB7IGVsZW1lbnQgfTsK
LSAgICBSZWYgb3JpZ2luYWxEb2N1bWVudCB7IGVsZW1lbnQuZG9jdW1lbnQoKSB9OwotICAgIGF1
dG8gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMpOwotICAgIGVsZW1lbnQu
ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgaWYgKCFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgp
ICYmIHVuaGFuZGxlZEludmFsaWRDb250cm9scyAmJiBlbGVtZW50LmlzQ29ubmVjdGVkKCkgJiYg
b3JpZ2luYWxEb2N1bWVudC5wdHIoKSA9PSAmZWxlbWVudC5kb2N1bWVudCgpKQotICAgICAgICB1
bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMtPmFwcGVuZCh0aGlzKTsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnJlcG9ydFZhbGlkaXR5KCkK
LXsKLSAgICBWZWN0b3I8UmVmUHRyPFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Pj4gZWxlbWVu
dHM7Ci0gICAgaWYgKGNoZWNrVmFsaWRpdHkoJmVsZW1lbnRzKSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICBpZiAoZWxlbWVudHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAvLyBOZWVkcyB0byB1cGRhdGUgbGF5b3V0IG5vdyBiZWNhdXNlIHdlJ2QgbGlrZSB0
byBjYWxsIGlzRm9jdXNhYmxlKCksCi0gICAgLy8gd2hpY2ggaGFzICFyZW5kZXJlcigpLT5uZWVk
c0xheW91dCgpIGFzc2VydGlvbi4KLSAgICBhc0hUTUxFbGVtZW50KCkuZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKLSAgICBpZiAoYXV0byB2YWxpZGF0
aW9uQW5jaG9yID0gZm9jdXNhYmxlVmFsaWRhdGlvbkFuY2hvckVsZW1lbnQoKSkKLSAgICAgICAg
Zm9jdXNBbmRTaG93VmFsaWRhdGlvbk1lc3NhZ2UodmFsaWRhdGlvbkFuY2hvci5yZWxlYXNlTm9u
TnVsbCgpKTsKLSAgICBlbHNlCi0gICAgICAgIHJlcG9ydE5vbkZvY3VzYWJsZUNvbnRyb2xFcnJv
cigpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1SZWZQdHI8SFRNTEVsZW1lbnQ+IFZhbGlk
YXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojpmb2N1c2FibGVWYWxpZGF0aW9uQW5jaG9yRWxlbWVudCgp
Ci17Ci0gICAgaWYgKFJlZlB0ciB2YWxpZGF0aW9uQW5jaG9yID0gdmFsaWRhdGlvbkFuY2hvckVs
ZW1lbnQoKSkgewotICAgICAgICBpZiAodmFsaWRhdGlvbkFuY2hvci0+aXNDb25uZWN0ZWQoKSAm
JiB2YWxpZGF0aW9uQW5jaG9yLT5pc0ZvY3VzYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25BbmNob3I7Ci0gICAgfQotICAgIHJldHVybiBudWxscHRyOwotfQotCi12b2lkIFZh
bGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZShS
ZWY8SFRNTEVsZW1lbnQ+IHZhbGlkYXRpb25BbmNob3IpCi17Ci0gICAgUmVmIHByb3RlY3RlZFRo
aXMgeyAqdGhpcyB9OwotICAgIFNldEZvclNjb3BlIGlzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1l
c3NhZ2VTY29wZShtX2lzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UsIHRydWUpOwotCi0g
ICAgLy8gQ2FsbGluZyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldy4K
LSAgICB2YWxpZGF0aW9uQW5jaG9yLT5mb2N1cygpOwotCi0gICAgLy8gZm9jdXMoKSB3aWxsIHNj
cm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcgYW5kIHRoaXMgc2Nyb2xsIG1heSBoYXBwZW4gYXN5
bmNocm9ub3VzbHkuCi0gICAgLy8gQmVjYXVzZSBzY3JvbGxpbmcgdGhlIHZpZXcgaGlkZXMgdGhl
IHZhbGlkYXRpb24gbWVzc2FnZSwgd2UgbmVlZCB0byBzaG93IHRoZSB2YWxpZGF0aW9uCi0gICAg
Ly8gbWVzc2FnZSBhc3luY2hyb25vdXNseSBhcyB3ZWxsLgotICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHByb3RlY3RlZFRoaXMsIHZhbGlkYXRpb25BbmNob3JdIHsKLSAgICAgICAgdXBkYXRl
VmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKHZhbGlkYXRpb25BbmNob3IpOwotICAgIH0pOwotfQot
Ci12b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpyZXBvcnROb25Gb2N1c2FibGVDb250
cm9sRXJyb3IoKQotewotICAgIGF1dG8mIGRvY3VtZW50ID0gYXNIVE1MRWxlbWVudCgpLmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LmZyYW1lKCkpIHsKLSAgICAgICAgYXV0byBtZXNzYWdl
ID0gbWFrZVN0cmluZygiQW4gaW52YWxpZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lPSciLCBuYW1l
KCksICInIGlzIG5vdCBmb2N1c2FibGUuIik7Ci0gICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlJlbmRlcmluZywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVz
c2FnZSk7Ci0gICAgfQotfQotCi1ib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojppc1No
b3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmFsaWRhdGlv
bk1lc3NhZ2UgJiYgbV92YWxpZGF0aW9uTWVzc2FnZS0+aXNWaXNpYmxlKCk7Ci19Ci0KLWJvb2wg
VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlU2hhZG93VHJlZUNv
bnRhaW5zKGNvbnN0IE5vZGUmIG5vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmFsaWRhdGlv
bk1lc3NhZ2UgJiYgbV92YWxpZGF0aW9uTWVzc2FnZS0+c2hhZG93VHJlZUNvbnRhaW5zKG5vZGUp
OwotfQotCi1ib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojppc0ZvY3VzaW5nV2l0aFZh
bGlkYXRpb25NZXNzYWdlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pc0ZvY3VzaW5nV2l0aFZh
bGlkYXRpb25NZXNzYWdlOwotfQotCi12b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50Ojpz
ZXREaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldChib29sIGlzRGlzYWJsZWQpCi17Ci0gICAgQVNT
RVJUKGNvbXB1dGVJc0Rpc2FibGVkQnlGaWVsZHNldEFuY2VzdG9yKCkgPT0gaXNEaXNhYmxlZCk7
Ci0gICAgaWYgKG1fZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQgPT0gaXNEaXNhYmxlZCkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgU3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9u
IGRpc2FibGVkSW52YWxpZGF0aW9uKGFzSFRNTEVsZW1lbnQoKSwgeyB7IENTU1NlbGVjdG9yOjpQ
c2V1ZG9DbGFzc0Rpc2FibGVkLCBpc0Rpc2FibGVkIH0sIHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzRW5hYmxlZCwgIWlzRGlzYWJsZWQgfSB9KTsKLQotICAgIG1fZGlzYWJsZWRCeUFuY2VzdG9y
RmllbGRzZXQgPSBpc0Rpc2FibGVkOwotICAgIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7Ci19Ci0K
LXN0YXRpYyB2b2lkIGFkZEludmFsaWRFbGVtZW50VG9BbmNlc3RvckZyb21JbnNlcnRpb25Qb2lu
dChjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVudCwgQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9p
bnQpCi17Ci0gICAgaWYgKCFpczxFbGVtZW50PihpbnNlcnRpb25Qb2ludCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGZvciAoYXV0byYgYW5jZXN0b3IgOiBsaW5lYWdlT2ZUeXBlPEhUTUxGaWVs
ZFNldEVsZW1lbnQ+KGRvd25jYXN0PEVsZW1lbnQ+KCppbnNlcnRpb25Qb2ludCkpKQotICAgICAg
ICBhbmNlc3Rvci5hZGRJbnZhbGlkRGVzY2VuZGFudChlbGVtZW50KTsKLX0KLQotc3RhdGljIHZv
aWQgcmVtb3ZlSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KGNvbnN0
IEhUTUxFbGVtZW50JiBlbGVtZW50LCBDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKLXsK
LSAgICBpZiAoIWlzPEVsZW1lbnQ+KGluc2VydGlvblBvaW50KSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8SFRNTEZpZWxkU2V0RWxl
bWVudD4oZG93bmNhc3Q8RWxlbWVudD4oKmluc2VydGlvblBvaW50KSkpCi0gICAgICAgIGFuY2Vz
dG9yLnJlbW92ZUludmFsaWREZXNjZW5kYW50KGVsZW1lbnQpOwotfQotCi12b2lkIFZhbGlkYXRl
ZEZvcm1MaXN0ZWRFbGVtZW50Ojp1cGRhdGVWYWxpZGl0eSgpCi17Ci0gICAgaWYgKG1fZGVsYXll
ZFVwZGF0ZVZhbGlkaXR5Q291bnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGJvb2wgd2lsbFZh
bGlkYXRlID0gdGhpcy0+d2lsbFZhbGlkYXRlKCk7Ci0gICAgYm9vbCBuZXdJc1ZhbGlkID0gdGhp
cy0+Y29tcHV0ZVZhbGlkaXR5KCk7Ci0KLSAgICBpZiAobmV3SXNWYWxpZCAhPSBtX2lzVmFsaWQp
IHsKLSAgICAgICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7Ci0gICAg
ICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBzdHlsZUludmFsaWRhdGlv
bihlbGVtZW50LCB7Ci0gICAgICAgICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1ZhbGlk
LCBuZXdJc1ZhbGlkIH0sCi0gICAgICAgICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0lu
dmFsaWQsICFuZXdJc1ZhbGlkIH0sCi0gICAgICAgICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1VzZXJWYWxpZCwgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRFdmVu
dCAmJiBuZXdJc1ZhbGlkIH0sCi0gICAgICAgICAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c1VzZXJJbnZhbGlkLCBtX3dhc0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50
ICYmICFuZXdJc1ZhbGlkIH0sCi0gICAgICAgIH0pOwotCi0gICAgICAgIG1faXNWYWxpZCA9IG5l
d0lzVmFsaWQ7Ci0KLSAgICAgICAgaWYgKHdpbGxWYWxpZGF0ZSkgewotICAgICAgICAgICAgaWYg
KCFuZXdJc1ZhbGlkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQo
KSkKLSAgICAgICAgICAgICAgICAgICAgYWRkSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUlu
c2VydGlvblBvaW50KGVsZW1lbnQsIGVsZW1lbnQucGFyZW50Tm9kZSgpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoYXV0byogZm9ybSA9IHRoaXMtPmZvcm0oKSkKLSAgICAgICAgICAgICAgICAgICAg
Zm9ybS0+YWRkSW52YWxpZEZvcm1Db250cm9sKGVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pc0Nvbm5lY3RlZCgpKQotICAgICAgICAg
ICAgICAgICAgICByZW1vdmVJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9p
bnQoZWxlbWVudCwgZWxlbWVudC5wYXJlbnROb2RlKCkpOwotICAgICAgICAgICAgICAgIGlmIChh
dXRvKiBmb3JtID0gdGhpcy0+Zm9ybSgpKQotICAgICAgICAgICAgICAgICAgICBmb3JtLT5yZW1v
dmVJbnZhbGlkRm9ybUNvbnRyb2xJZk5lZWRlZChlbGVtZW50KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgIH0KLQotICAgIC8vIFVwZGF0ZXMgb25seSBpZiB0aGlzIGNvbnRyb2wgYWxy
ZWFkeSBoYXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UuCi0gICAgaWYgKGlzU2hvd2luZ1ZhbGlkYXRp
b25NZXNzYWdlKCkpIHsKLSAgICAgICAgLy8gQ2FsbHMgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25N
ZXNzYWdlKCkgZXZlbiBpZiBtX2lzVmFsaWQgaXMgbm90Ci0gICAgICAgIC8vIGNoYW5nZWQgYmVj
YXVzZSBhIHZhbGlkYXRpb24gbWVzc2FnZSBjYW4gYmUgY2hhbmdlZC4KLSAgICAgICAgaWYgKGF1
dG8gdmFsaWRhdGlvbkFuY2hvciA9IGZvY3VzYWJsZVZhbGlkYXRpb25BbmNob3JFbGVtZW50KCkp
Ci0gICAgICAgICAgICB1cGRhdGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UodmFsaWRhdGlvbkFu
Y2hvci5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICB9Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQotewotICAgIGlmIChuYW1lID09IGRpc2FibGVkQXR0ciAm
JiBhc0hUTUxFbGVtZW50KCkuY2FuQmVBY3R1YWxseURpc2FibGVkKCkpCi0gICAgICAgIHBhcnNl
RGlzYWJsZWRBdHRyaWJ1dGUodmFsdWUpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gcmVhZG9ubHlB
dHRyKQotICAgICAgICBwYXJzZVJlYWRvbmx5QXR0cmlidXRlKHZhbHVlKTsKLSAgICBlbHNlCi0g
ICAgICAgIEZvcm1MaXN0ZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci19
Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnBhcnNlRGlzYWJsZWRBdHRyaWJ1
dGUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzSFRNTEVsZW1lbnQo
KS5jYW5CZUFjdHVhbGx5RGlzYWJsZWQoKSk7Ci0KLSAgICBib29sIG5ld0Rpc2FibGVkID0gIXZh
bHVlLmlzTnVsbCgpOwotICAgIGlmIChtX2Rpc2FibGVkICE9IG5ld0Rpc2FibGVkKSB7Ci0gICAg
ICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBkaXNhYmxlZEludmFsaWRh
dGlvbihhc0hUTUxFbGVtZW50KCksIHsgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NEaXNhYmxl
ZCwgbmV3RGlzYWJsZWQgfSwgeyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NFbmFibGVkLCAhbmV3
RGlzYWJsZWQgfSB9KTsKLSAgICAgICAgbV9kaXNhYmxlZCA9IG5ld0Rpc2FibGVkOwotICAgICAg
ICBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgVmFsaWRhdGVk
Rm9ybUxpc3RlZEVsZW1lbnQ6OnBhcnNlUmVhZG9ubHlBdHRyaWJ1dGUoY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgYm9vbCBuZXdIYXNSZWFkT25seUF0dHJpYnV0ZSA9ICF2YWx1ZS5p
c051bGwoKTsKLSAgICBpZiAobV9oYXNSZWFkT25seUF0dHJpYnV0ZSAhPSBuZXdIYXNSZWFkT25s
eUF0dHJpYnV0ZSkgewotICAgICAgICBib29sIG5ld01hdGNoZXNSZWFkV3JpdGUgPSBzdXBwb3J0
c1JlYWRPbmx5KCkgJiYgIW5ld0hhc1JlYWRPbmx5QXR0cmlidXRlOwotICAgICAgICBTdHlsZTo6
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gcmVhZFdyaXRlSW52YWxpZGF0aW9uKGFzSFRN
TEVsZW1lbnQoKSwgeyB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1JlYWRXcml0ZSwgbmV3TWF0
Y2hlc1JlYWRXcml0ZSB9LCB7IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1JlYWRPbmx5LCAhbmV3
TWF0Y2hlc1JlYWRXcml0ZSB9IH0pOwotICAgICAgICBtX2hhc1JlYWRPbmx5QXR0cmlidXRlID0g
bmV3SGFzUmVhZE9ubHlBdHRyaWJ1dGU7Ci0gICAgICAgIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7
Ci0gICAgfQotfQotCi12b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpkaXNhYmxlZEF0
dHJpYnV0ZUNoYW5nZWQoKQotewotICAgIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7Ci19Ci0KLXZv
aWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKE5vZGU6
Okluc2VydGlvblR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpCi17Ci0gICAgbV9pc0luc2lkZURhdGFMaXN0ID0gVHJpU3RhdGU6OkluZGV0ZXJt
aW5hdGU7Ci0gICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKLSAgICBzeW5jV2l0
aEZpZWxkc2V0QW5jZXN0b3JzKCZwYXJlbnRPZkluc2VydGVkVHJlZSk7Ci0KLSAgICBGb3JtTGlz
dGVkRWxlbWVudDo6ZWxlbWVudEluc2VydGVkSW50b0FuY2VzdG9yKGFzSFRNTEVsZW1lbnQoKSwg
aW5zZXJ0aW9uVHlwZSk7Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnNl
dERhdGFMaXN0QW5jZXN0b3JTdGF0ZShUcmlTdGF0ZSBpc0luc2lkZURhdGFMaXN0KQotewotICAg
IG1faXNJbnNpZGVEYXRhTGlzdCA9IGlzSW5zaWRlRGF0YUxpc3Q7Ci19Ci0KLXZvaWQgVmFsaWRh
dGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnN5bmNXaXRoRmllbGRzZXRBbmNlc3RvcnMoQ29udGFpbmVy
Tm9kZSogaW5zZXJ0aW9uUG9pbnQpCi17Ci0gICAgaWYgKG1hdGNoZXNJbnZhbGlkUHNldWRvQ2xh
c3MoKSkKLSAgICAgICAgYWRkSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBv
aW50KGFzSFRNTEVsZW1lbnQoKSwgaW5zZXJ0aW9uUG9pbnQpOwotICAgIGlmIChhc0hUTUxFbGVt
ZW50KCkuZG9jdW1lbnQoKS5oYXNEaXNhYmxlZEZpZWxkc2V0RWxlbWVudCgpKQotICAgICAgICBz
ZXREaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldChjb21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRB
bmNlc3RvcigpKTsKLX0KLQotdm9pZCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cmVtb3Zl
ZEZyb21BbmNlc3RvcihOb2RlOjpSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9k
ZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKLXsKLSAgICBIVE1MRWxlbWVudCYgZWxlbWVudCA9
IGFzSFRNTEVsZW1lbnQoKTsKLSAgICBib29sIHdhc01hdGNoaW5nSW52YWxpZFBzZXVkb0NsYXNz
ID0gbWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpOwotCi0gICAgbV92YWxpZGF0aW9uTWVzc2Fn
ZSA9IG51bGxwdHI7Ci0gICAgaWYgKG1fZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQpCi0gICAg
ICAgIHNldERpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0KGNvbXB1dGVJc0Rpc2FibGVkQnlGaWVs
ZHNldEFuY2VzdG9yKCkpOwotCi0gICAgYm9vbCB3YXNJbnNpZGVEYXRhTGlzdCA9IG1faXNJbnNp
ZGVEYXRhTGlzdCA9PSBUcmlTdGF0ZTo6VHJ1ZTsKLSAgICBpZiAod2FzSW5zaWRlRGF0YUxpc3Qp
Ci0gICAgICAgIG1faXNJbnNpZGVEYXRhTGlzdCA9IFRyaVN0YXRlOjpJbmRldGVybWluYXRlOwot
Ci0gICAgRm9ybUxpc3RlZEVsZW1lbnQ6OmVsZW1lbnRSZW1vdmVkRnJvbUFuY2VzdG9yKGVsZW1l
bnQsIHJlbW92YWxUeXBlKTsKLQotICAgIGlmICh3YXNNYXRjaGluZ0ludmFsaWRQc2V1ZG9DbGFz
cykKLSAgICAgICAgcmVtb3ZlSW52YWxpZEVsZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBv
aW50KGVsZW1lbnQsICZvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKTsKLQotICAgIGlmICh3YXNJbnNp
ZGVEYXRhTGlzdCkKLSAgICAgICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKLX0K
LQotYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6Y29tcHV0ZUlzRGlzYWJsZWRCeUZp
ZWxkc2V0QW5jZXN0b3IoKSBjb25zdAotewotICAgIFJlZlB0cjxjb25zdCBFbGVtZW50PiBwcmV2
aW91c0FuY2VzdG9yOwotICAgIGZvciAoYXV0byYgYW5jZXN0b3IgOiBhbmNlc3RvcnNPZlR5cGU8
RWxlbWVudD4oYXNIVE1MRWxlbWVudCgpKSkgewotICAgICAgICBpZiAoaXM8SFRNTEZpZWxkU2V0
RWxlbWVudD4oYW5jZXN0b3IpICYmIGFuY2VzdG9yLmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oZGlzYWJsZWRBdHRyKSkgewotICAgICAgICAgICAgYm9vbCBpc0luRmlyc3RMZWdl
bmQgPSBpczxIVE1MTGVnZW5kRWxlbWVudD4ocHJldmlvdXNBbmNlc3RvcikgJiYgcHJldmlvdXNB
bmNlc3RvciA9PSBkb3duY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50PihhbmNlc3RvcikubGVnZW5k
KCk7Ci0gICAgICAgICAgICByZXR1cm4gIWlzSW5GaXJzdExlZ2VuZDsKLSAgICAgICAgfQotICAg
ICAgICBwcmV2aW91c0FuY2VzdG9yID0gJmFuY2VzdG9yOwotICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OndpbGxDaGFuZ2VGb3Jt
KCkKLXsKLSAgICBpZiAoYXV0byogZm9ybSA9IHRoaXMtPmZvcm0oKSkKLSAgICAgICAgZm9ybS0+
cmVtb3ZlSW52YWxpZEZvcm1Db250cm9sSWZOZWVkZWQoYXNIVE1MRWxlbWVudCgpKTsKLSAgICBG
b3JtTGlzdGVkRWxlbWVudDo6d2lsbENoYW5nZUZvcm0oKTsKLX0KLQotdm9pZCBWYWxpZGF0ZWRG
b3JtTGlzdGVkRWxlbWVudDo6ZGlkQ2hhbmdlRm9ybSgpCi17Ci0gICAgU2NyaXB0RGlzYWxsb3dl
ZFNjb3BlOjpJbk1haW5UaHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotCi0gICAgRm9ybUxp
c3RlZEVsZW1lbnQ6OmRpZENoYW5nZUZvcm0oKTsKLSAgICBpZiAoYXV0byogZm9ybSA9IHRoaXMt
PmZvcm0oKSkgewotICAgICAgICBpZiAobV93aWxsVmFsaWRhdGVJbml0aWFsaXplZCAmJiBtX3dp
bGxWYWxpZGF0ZSAmJiAhaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpKQotICAgICAgICAgICAg
Zm9ybS0+YWRkSW52YWxpZEZvcm1Db250cm9sKGFzSFRNTEVsZW1lbnQoKSk7Ci0gICAgfQotfQot
Ci12b2lkIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgp
Ci17Ci0gICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKLX0KLQotdm9pZCBWYWxp
ZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cmVhZE9ubHlTdGF0ZUNoYW5nZWQoKQotewotICAgIHVw
ZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxp
c3RlZEVsZW1lbnQ6OnVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCkKLXsKLSAgICAvLyBX
ZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHdpbGxWYWxpZGF0ZSBpbW1lZGlhdGVseSBiZWNhdXNlIHdp
bGxWYWxpZGF0ZSBjaGFuZ2UgY2FuIGNhdXNlcyBzdHlsZSBjaGFuZ2UuCi0gICAgYm9vbCBuZXdX
aWxsVmFsaWRhdGUgPSBjb21wdXRlV2lsbFZhbGlkYXRlKCk7Ci0gICAgaWYgKG1fd2lsbFZhbGlk
YXRlSW5pdGlhbGl6ZWQgJiYgbV93aWxsVmFsaWRhdGUgPT0gbmV3V2lsbFZhbGlkYXRlKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBib29sIHdhc1ZhbGlkID0gbV9pc1ZhbGlkOwotCi0gICAgbV93
aWxsVmFsaWRhdGVJbml0aWFsaXplZCA9IHRydWU7Ci0gICAgbV93aWxsVmFsaWRhdGUgPSBuZXdX
aWxsVmFsaWRhdGU7Ci0KLSAgICB1cGRhdGVWYWxpZGl0eSgpOwotCi0gICAgaWYgKCFtX3dpbGxW
YWxpZGF0ZSAmJiAhd2FzVmFsaWQpIHsKLSAgICAgICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBh
c0hUTUxFbGVtZW50KCk7Ci0gICAgICAgIHJlbW92ZUludmFsaWRFbGVtZW50VG9BbmNlc3RvckZy
b21JbnNlcnRpb25Qb2ludChlbGVtZW50LCBlbGVtZW50LnBhcmVudE5vZGUoKSk7Ci0gICAgICAg
IGlmIChSZWZQdHIgZm9ybSA9IHRoaXMtPmZvcm0oKSkKLSAgICAgICAgICAgIGZvcm0tPnJlbW92
ZUludmFsaWRGb3JtQ29udHJvbElmTmVlZGVkKGVsZW1lbnQpOwotICAgIH0KLQotICAgIGlmICgh
bV93aWxsVmFsaWRhdGUpCi0gICAgICAgIGhpZGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoKTsK
LX0KLQotdm9pZCBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5n
Tm9kZSgpCi17Ci0gICAgcmVzZXRGb3JtT3duZXIoKTsKLX0KLQotdm9pZCBWYWxpZGF0ZWRGb3Jt
TGlzdGVkRWxlbWVudDo6c2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJiBlcnJvcikKLXsK
LSAgICBGb3JtTGlzdGVkRWxlbWVudDo6c2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3IpOwotICAgIHVw
ZGF0ZVZhbGlkaXR5KCk7Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OmVu
ZERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKQotewotICAgIEFTU0VSVChtX2RlbGF5ZWRVcGRhdGVW
YWxpZGl0eUNvdW50KTsKLSAgICBpZiAoIS0tbV9kZWxheWVkVXBkYXRlVmFsaWRpdHlDb3VudCkK
LSAgICAgICAgdXBkYXRlVmFsaWRpdHkoKTsKLX0KLQotYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudDo6aXNDYW5kaWRhdGVGb3JTYXZpbmdBbmRSZXN0b3JpbmdTdGF0ZSgpIGNvbnN0Ci17
Ci0gICAgLy8gV2UgZG9uJ3Qgc2F2ZS9yZXN0b3JlIGNvbnRyb2wgc3RhdGUgaW4gYSBmb3JtIHdp
dGggYXV0b2NvbXBsZXRlPW9mZi4KLSAgICByZXR1cm4gc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKCkgJiYgYXNIVE1MRWxlbWVudCgpLmlzQ29ubmVjdGVkKCkgJiYgc2hvdWxk
QXV0b2NvbXBsZXRlKCk7Ci19Ci0KLWJvb2wgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnNo
b3VsZEF1dG9jb21wbGV0ZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFmb3JtKCkpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIHJldHVybiBmb3JtKCktPnNob3VsZEF1dG9jb21wbGV0ZSgpOwotfQot
Ci1Gb3JtQ29udHJvbFN0YXRlIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotdm9pZCBWYWxpZGF0
ZWRGb3JtTGlzdGVkRWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGVJZk5lY2Vzc2FyeSgp
Ci17Ci0gICAgYXNIVE1MRWxlbWVudCgpLmRvY3VtZW50KCkuZm9ybUNvbnRyb2xsZXIoKS5yZXN0
b3JlQ29udHJvbFN0YXRlRm9yKCp0aGlzKTsKLX0KLQotYm9vbCBWYWxpZGF0ZWRGb3JtTGlzdGVk
RWxlbWVudDo6bWF0Y2hlc1ZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdAotewotICAgIHJldHVybiB3
aWxsVmFsaWRhdGUoKSAmJiBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7Ci19Ci0KLWJvb2wg
VmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6Om1hdGNoZXNJbnZhbGlkUHNldWRvQ2xhc3MoKSBj
b25zdAotewotICAgIHJldHVybiB3aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250cm9s
RWxlbWVudCgpOwotfQotCi1ib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjptYXRjaGVz
VXNlckludmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2FzSW50ZXJh
Y3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQgJiYgbWF0Y2hlc0ludmFsaWRQc2V1ZG9D
bGFzcygpOwotfQotCi1ib29sIFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50OjptYXRjaGVzVXNl
clZhbGlkUHNldWRvQ2xhc3MoKSBjb25zdAotewotICAgIHJldHVybiBtX3dhc0ludGVyYWN0ZWRX
aXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50ICYmIG1hdGNoZXNWYWxpZFBzZXVkb0NsYXNzKCk7
Ci19Ci0KLXZvaWQgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQ6OnNldEludGVyYWN0ZWRXaXRo
U2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50KGJvb2wgaW50ZXJhY3RlZFdpdGgpCi17Ci0gICAgaWYg
KG1fd2FzSW50ZXJhY3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQgPT0gaW50ZXJhY3Rl
ZFdpdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUlu
dmFsaWRhdGlvbiBzdHlsZUludmFsaWRhdGlvbihhc0hUTUxFbGVtZW50KCksIHsKLSAgICAgICAg
eyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NVc2VyVmFsaWQsIGludGVyYWN0ZWRXaXRoICYmIG1h
dGNoZXNWYWxpZFBzZXVkb0NsYXNzKCkgfSwKLSAgICAgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NVc2VySW52YWxpZCwgaW50ZXJhY3RlZFdpdGggJiYgbWF0Y2hlc0ludmFsaWRQc2V1ZG9D
bGFzcygpIH0sCi0gICAgfSk7Ci0KLSAgICBtX3dhc0ludGVyYWN0ZWRXaXRoU2luY2VMYXN0Rm9y
bVN1Ym1pdEV2ZW50ID0gaW50ZXJhY3RlZFdpdGg7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYmNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGVkRm9ybUxpc3RlZEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAxNjkxMGJiMDliLi4wMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudC5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMTk5OSBBbnR0
aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMjAwMSBEaXJr
IE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDIzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICAgICAgICAgICAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJGb3JtTGlzdGVkRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkxhYmVsYWJsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJWYWxpZGF0aW9u
TWVzc2FnZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEhUTUxNYXliZUZvcm1B
c3NvY2lhdGVkQ3VzdG9tRWxlbWVudDsKLQotY2xhc3MgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1l
bnQgOiBwdWJsaWMgRm9ybUxpc3RlZEVsZW1lbnQgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50KTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLSAgICBmcmllbmQgY2xhc3MgRGVsYXllZFVwZGF0ZVZhbGlkaXR5U2NvcGU7Ci0gICAgZnJp
ZW5kIGNsYXNzIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudDsKLXB1YmxpYzoK
LSAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudChIVE1MRm9ybUVsZW1lbnQqKTsKLSAgICB2
aXJ0dWFsIH5WYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgpOwotCi0gICAgLy8gIndpbGxWYWxp
ZGF0ZSIgbWVhbnMgImlzIGEgY2FuZGlkYXRlIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24iLgot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2UoUmVmPEhUTUxFbGVtZW50PiB2
YWxpZGF0aW9uQW5jaG9yKTsKLSAgICB2b2lkIGhpZGVWaXNpYmxlVmFsaWRhdGlvbk1lc3NhZ2Uo
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNoZWNrVmFsaWRpdHkoVmVjdG9yPFJlZlB0cjxW
YWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudD4+KiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMgPSBu
dWxscHRyKTsKLSAgICBib29sIHJlcG9ydFZhbGlkaXR5KCk7Ci0gICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBmb2N1c2FibGVWYWxpZGF0aW9uQW5jaG9yRWxlbWVudCgpOwotICAgIHZvaWQgcmVwb3J0
Tm9uRm9jdXNhYmxlQ29udHJvbEVycm9yKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb2N1
c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZShSZWY8SFRNTEVsZW1lbnQ+IHZhbGlkYXRpb25BbmNo
b3IpOwotICAgIGJvb2wgaXNTaG93aW5nVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGlzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25z
dDsKLSAgICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW4gYSB2YWxpZGF0aW9uIGNvbnN0cmFp
bnQgb3IgY29udHJvbCB2YWx1ZSBpcyBjaGFuZ2VkLgotICAgIHZvaWQgdXBkYXRlVmFsaWRpdHko
KTsKLSAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBzZXREaXNhYmxlZEJ5QW5jZXN0b3JGaWVsZHNldChib29sIGlzRGlzYWJsZWQp
OwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIHsgfQotCi0gICAgdmlydHVhbCBib29sIHN1cHBv
cnRzUmVhZE9ubHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNEaXNhYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQgfHwgbV9kaXNhYmxlZEJ5QW5jZXN0b3JGaWVs
ZHNldDsgfQotICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIHN1cHBvcnRzUmVh
ZE9ubHkoKSAmJiBtX2hhc1JlYWRPbmx5QXR0cmlidXRlOyB9Ci0gICAgYm9vbCBpc011dGFibGUo
KSBjb25zdCB7IHJldHVybiAhaXNEaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5KCk7IH0KLQotICAg
IC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgYW55IHRpbWUgdGhlIHJlc3VsdCBvZiB3aWxsVmFsaWRh
dGUoKSBoYXMgY2hhbmdlZC4KLSAgICBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX2lzVmFsaWQ7IH0KLQotICAgIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgYm9vbCB3YXNJbnRlcmFjdGVk
V2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzSW50ZXJh
Y3RlZFdpdGhTaW5jZUxhc3RGb3JtU3VibWl0RXZlbnQ7IH0KLSAgICB2b2lkIHNldEludGVyYWN0
ZWRXaXRoU2luY2VMYXN0Rm9ybVN1Ym1pdEV2ZW50KGJvb2wpOwotCi0gICAgYm9vbCBtYXRjaGVz
VmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0OwotICAgIGJvb2wgbWF0Y2hlc0ludmFsaWRQc2V1ZG9D
bGFzcygpIGNvbnN0OwotICAgIGJvb2wgbWF0Y2hlc1VzZXJJbnZhbGlkUHNldWRvQ2xhc3MoKSBj
b25zdDsKLSAgICBib29sIG1hdGNoZXNVc2VyVmFsaWRQc2V1ZG9DbGFzcygpIGNvbnN0OwotCi0g
ICAgYm9vbCBpc0NhbmRpZGF0ZUZvclNhdmluZ0FuZFJlc3RvcmluZ1N0YXRlKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBib29sIHNob3VsZEF1dG9jb21wbGV0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xT
dGF0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBGb3JtQ29udHJvbFN0YXRlJikgeyB9IC8vIENhbGxlZCBvbmx5IGlmIHN0YXRlIGlzIG5v
dCBlbXB0eS4KLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0ID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlV2lsbFZh
bGlkYXRlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHJlYWRPbmx5QmFyc0Zyb21Db25zdHJh
aW50VmFsaWRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdm9pZCB1cGRhdGVX
aWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwotICAgIGJvb2wgZGlzYWJsZWRCeUFuY2VzdG9yRmll
bGRzZXQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkQnlBbmNlc3RvckZpZWxkc2V0OyB9Ci0K
LSAgICBib29sIHZhbGlkYXRpb25NZXNzYWdlU2hhZG93VHJlZUNvbnRhaW5zKGNvbnN0IE5vZGUm
KSBjb25zdDsKLQotICAgIHZvaWQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoTm9kZTo6SW5zZXJ0aW9u
VHlwZSwgQ29udGFpbmVyTm9kZSYpOwotICAgIHZvaWQgZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgp
OwotICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihOb2RlOjpSZW1vdmFsVHlwZSwgQ29udGFp
bmVyTm9kZSYpOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKTsKLSAgICB2b2lkIHBhcnNlRGlzYWJsZWRBdHRyaWJ1dGUoY29u
c3QgQXRvbVN0cmluZyYpOwotICAgIHZvaWQgcGFyc2VSZWFkb25seUF0dHJpYnV0ZShjb25zdCBB
dG9tU3RyaW5nJik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2Vk
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7Ci0gICAgdmlydHVh
bCB2b2lkIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7Ci0KLSAgICB2b2lkIHdpbGxDaGFuZ2VGb3Jt
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRDaGFuZ2VGb3JtKCkgb3ZlcnJpZGU7Ci0KLSAgICB2
b2lkIHNldERhdGFMaXN0QW5jZXN0b3JTdGF0ZShUcmlTdGF0ZSk7Ci0gICAgdm9pZCBzeW5jV2l0
aEZpZWxkc2V0QW5jZXN0b3JzKENvbnRhaW5lck5vZGUqIGluc2VydGlvbk5vZGUpOwotICAgIHZv
aWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGVJZk5lY2Vzc2FyeSgpOwotCi1wcml2YXRlOgotICAg
IGJvb2wgY29tcHV0ZUlzRGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0b3IoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIEhUTUxFbGVtZW50KiB2YWxpZGF0aW9uQW5jaG9yRWxlbWVudCgpID0gMDsKLQotICAg
IHZvaWQgc3RhcnREZWxheWluZ1VwZGF0ZVZhbGlkaXR5KCkgeyArK21fZGVsYXllZFVwZGF0ZVZh
bGlkaXR5Q291bnQ7IH0KLSAgICB2b2lkIGVuZERlbGF5aW5nVXBkYXRlVmFsaWRpdHkoKTsKLQot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWYWxpZGF0aW9uTWVzc2FnZT4gbV92YWxpZGF0aW9uTWVzc2Fn
ZTsKLQotICAgIC8vIENhY2hlIG9mIHZhbGlkaXR5KCktPnZhbGlkKCkuCi0gICAgLy8gQnV0ICJj
YW5kaWRhdGUgZm9yIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiIgZG9lc24ndCBhZmZlY3QgaXNWYWxp
ZC4KLSAgICBib29sIG1faXNWYWxpZCA6IDEgeyB0cnVlIH07Ci0KLSAgICAvLyBUaGUgaW5pdGlh
bCB2YWx1ZSBvZiB3aWxsVmFsaWRhdGUgZGVwZW5kcyBvbiB0aGUgZGVyaXZlZCBjbGFzcy4KLSAg
ICAvLyBXZSBjYW4ndCBpbml0aWFsaXplIGl0IHdpdGggYSB2aXJ0dWFsIGZ1bmN0aW9uIGluIHRo
ZSBjb25zdHJ1Y3Rvci4KLSAgICAvLyB3aWxsVmFsaWRhdGUgaXMgbm90IGRldGVybWluaXN0aWMg
YXMgbG9uZyBhcyB3aWxsVmFsaWRhdGVJbml0aWFsaXplZCBpcyBmYWxzZS4KLSAgICBtdXRhYmxl
IGJvb2wgbV93aWxsVmFsaWRhdGUgOiAxIHsgdHJ1ZSB9OwotICAgIG11dGFibGUgYm9vbCBtX3dp
bGxWYWxpZGF0ZUluaXRpYWxpemVkIDogMSB7IGZhbHNlIH07Ci0KLSAgICBib29sIG1fZGlzYWJs
ZWQgOiAxIHsgZmFsc2UgfTsKLSAgICBib29sIG1fZGlzYWJsZWRCeUFuY2VzdG9yRmllbGRzZXQg
OiAxIHsgZmFsc2UgfTsKLQotICAgIGJvb2wgbV9oYXNSZWFkT25seUF0dHJpYnV0ZSA6IDEgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV93YXNJbnRlcmFjdGVkV2l0aFNpbmNlTGFzdEZvcm1TdWJtaXRF
dmVudCA6IDEgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0ZvY3VzaW5nV2l0aFZhbGlkYXRpb25N
ZXNzYWdlIHsgZmFsc2UgfTsKLQotICAgIG11dGFibGUgVHJpU3RhdGUgbV9pc0luc2lkZURhdGFM
aXN0IDogMiB7IFRyaVN0YXRlOjpJbmRldGVybWluYXRlIH07Ci0KLSAgICB1bnNpZ25lZCBtX2Rl
bGF5ZWRVcGRhdGVWYWxpZGl0eUNvdW50IHsgMCB9OwotfTsKLQotY2xhc3MgRGVsYXllZFVwZGF0
ZVZhbGlkaXR5U2NvcGUgewotcHVibGljOgotICAgIERlbGF5ZWRVcGRhdGVWYWxpZGl0eVNjb3Bl
KFZhbGlkYXRlZEZvcm1MaXN0ZWRFbGVtZW50JiBlbGVtZW50KQotICAgICAgICA6IG1fZWxlbWVu
dCB7IGVsZW1lbnQgfQotICAgIHsKLSAgICAgICAgbV9lbGVtZW50LnN0YXJ0RGVsYXlpbmdVcGRh
dGVWYWxpZGl0eSgpOwotICAgIH0KLSAgICAKLSAgICB+RGVsYXllZFVwZGF0ZVZhbGlkaXR5U2Nv
cGUoKQotICAgIHsKLSAgICAgICAgbV9lbGVtZW50LmVuZERlbGF5aW5nVXBkYXRlVmFsaWRpdHko
KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVmFsaWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQmIG1f
ZWxlbWVudDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggMTM2MTRiODQ3MGU1Li44MTUwYTBlNTlmMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC01NCw3ICs1
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotVmFsaWRhdGlvbk1lc3NhZ2U6OlZhbGlkYXRpb25NZXNzYWdlKEhUTUxFbGVtZW50JiBlbGVt
ZW50KQorVmFsaWRhdGlvbk1lc3NhZ2U6OlZhbGlkYXRpb25NZXNzYWdlKEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKIHsKICAgICBBU1NF
UlQobV9lbGVtZW50KTsKQEAgLTc3LDcgKzc3LDcgQEAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQq
IFZhbGlkYXRpb25NZXNzYWdlOjp2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKLXZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OnVwZGF0ZVZhbGlkYXRpb25N
ZXNzYWdlKEhUTUxFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lk
IFZhbGlkYXRpb25NZXNzYWdlOjp1cGRhdGVWYWxpZGF0aW9uTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiB7CiAgICAgLy8gV2Ugd2FudCB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3Nh
Z2UgYXMgc29vbiBhcyB0aGUgdXNlciBzdGFydHMKICAgICAvLyB0eXBpbmcsIGV2ZW4gaWYgYSBj
b25zdHJhaW50IGlzIHN0aWxsIHZpb2xhdGVkLiBUaGVmb3JlLCB3ZSBoaWRlIHRoZSBtZXNzYWdl
IGluc3RlYWQKQEAgLTEwMyw4ICsxMDMsNiBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjp1cGRh
dGVWYWxpZGF0aW9uTWVzc2FnZShIVE1MRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3RyaQogICAg
ICAgICByZXF1ZXN0VG9IaWRlTWVzc2FnZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0g
ICAgbV9lbGVtZW50ID0gZWxlbWVudDsKICAgICBzZXRNZXNzYWdlKHVwZGF0ZWRNZXNzYWdlKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5oCmluZGV4IDUwYmQ3MWYx
MGMxOC4uMTlmZTBiMDRjNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlk
YXRpb25NZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vha1B0
ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhOwogY2xhc3MgSFRNTEVsZW1lbnQ7CitjbGFzcyBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OwogY2xhc3MgTm9kZTsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50OwogCkBAIC00OSwxMCArNTAsMTAgQEAgY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQ7CiBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxWYWxp
ZGF0aW9uTWVzc2FnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZhbGlkYXRpb25NZXNz
YWdlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgVmFs
aWRhdGlvbk1lc3NhZ2UoSFRNTEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBWYWxpZGF0aW9uTWVz
c2FnZShIVE1MRm9ybUNvbnRyb2xFbGVtZW50Jik7CiAgICAgflZhbGlkYXRpb25NZXNzYWdlKCk7
CiAKLSAgICB2b2lkIHVwZGF0ZVZhbGlkYXRpb25NZXNzYWdlKEhUTUxFbGVtZW50JiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdm9pZCB1cGRhdGVWYWxpZGF0aW9uTWVzc2FnZShjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIHJlcXVlc3RUb0hpZGVNZXNzYWdlKCk7CiAgICAgYm9vbCBpc1Zpc2libGUo
KSBjb25zdDsKICAgICBib29sIHNoYWRvd1RyZWVDb250YWlucyhjb25zdCBOb2RlJikgY29uc3Q7
CkBAIC02NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBidWlsZEJ1YmJsZVRyZWUoKTsK
ICAgICB2b2lkIGRlbGV0ZUJ1YmJsZVRyZWUoKTsKIAotICAgIFdlYWtQdHI8SFRNTEVsZW1lbnQs
IFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9lbGVtZW50OworICAgIFdlYWtQdHI8
SFRNTEZvcm1Db250cm9sRWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBt
X2VsZW1lbnQ7CiAgICAgU3RyaW5nIG1fbWVzc2FnZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGlt
ZXI+IG1fdGltZXI7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2J1YmJsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRl
eCBhOWMzZTI2ODIxMDUuLmZjNGNkNDYxYTAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtMzcsMTEgKzM3LDkgQEAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCi0jaW5jbHVkZSAiSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
T3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MUGFyc2VySWRpb21zLmgiCkBAIC03OTEsMTQgKzc4OSwxMyBAQCBSZWZQdHI8SFRN
TEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudE9yRmluZEN1
c3RvbUVsZW1lbnRJbgogICAgICAgICAgICAgICAgICpjdXN0b21FbGVtZW50SW50ZXJmYWNlID0g
ZWxlbWVudEludGVyZmFjZTsKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIEFTU0VSVChxdWFsaWZpZWROYW1lRm9ySFRNTFRhZyh0b2tl
bikgPT0gZWxlbWVudEludGVyZmFjZS0+bmFtZSgpKTsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBl
bGVtZW50SW50ZXJmYWNlLT5jcmVhdGVFbGVtZW50KG93bmVyRG9jdW1lbnQpOworICAgICAgICAg
ICAgZWxlbWVudCA9IEhUTUxFbGVtZW50OjpjcmVhdGUocXVhbGlmaWVkTmFtZUZvckhUTUxUYWco
dG9rZW4pLCBvd25lckRvY3VtZW50KTsKICAgICAgICAgICAgIGVsZW1lbnQtPnNldElzQ3VzdG9t
RWxlbWVudFVwZ3JhZGVDYW5kaWRhdGUoKTsKICAgICAgICAgICAgIGVsZW1lbnQtPmVucXVldWVU
b1VwZ3JhZGUoKmVsZW1lbnRJbnRlcmZhY2UpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgYXV0byBxdWFsaWZpZWROYW1lID0gcXVhbGlmaWVkTmFtZUZvckhUTUxUYWcodG9rZW4pOwog
ICAgICAgICAgICAgaWYgKERvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKHRva2Vu
Lm5hbWUoKSkgPT0gQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzOjpWYWxpZCkgewot
ICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQ6OmNyZWF0ZShxdWFsaWZpZWROYW1lLCBvd25lckRvY3VtZW50KTsKKyAgICAgICAgICAg
ICAgICBlbGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShxdWFsaWZpZWROYW1lLCBvd25lckRv
Y3VtZW50KTsKICAgICAgICAgICAgICAgICBlbGVtZW50LT5zZXRJc0N1c3RvbUVsZW1lbnRVcGdy
YWRlQ2FuZGlkYXRlKCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBlbGVt
ZW50ID0gSFRNTFVua25vd25FbGVtZW50OjpjcmVhdGUocXVhbGlmaWVkTmFtZSwgb3duZXJEb2N1
bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDZiZmVkM2M5NWZiZC4uMWI0ZjE2YzNhNmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIFN0cmluZyBGcmFtZTo6
c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxz
LCBFbGVtZW50CiAgICAgTm9kZSogbjsKICAgICBmb3IgKG4gPSBOb2RlVHJhdmVyc2FsOjpwcmV2
aW91cygqZWxlbWVudCk7IG4gJiYgbGVuZ3RoU2VhcmNoZWQgPCBjaGFyc1NlYXJjaGVkVGhyZXNo
b2xkOyBuID0gTm9kZVRyYXZlcnNhbDo6cHJldmlvdXMoKm4pKSB7CiAgICAgICAgIC8vIFdlIGhp
dCBhbm90aGVyIGZvcm0gZWxlbWVudCBvciB0aGUgc3RhcnQgb2YgdGhlIGZvcm0gLSBiYWlsIG91
dAotICAgICAgICBpZiAoaXM8SFRNTEZvcm1FbGVtZW50PigqbikgfHwgKGlzPEVsZW1lbnQ+KCpu
KSAmJiBkb3duY2FzdDxFbGVtZW50PigqbikuaXNWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudCgp
KSkKKyAgICAgICAgaWYgKGlzPEhUTUxGb3JtRWxlbWVudD4oKm4pIHx8IGlzPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ+KCpuKSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChuLT5o
YXNUYWdOYW1lKHRkVGFnKSAmJiAhc3RhcnRpbmdUYWJsZUNlbGwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdGlvbkZ1bmN0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRpb25GdW5jdGlvbnMuaAppbmRleCA1Mjk5M2EyMjg1
NWQuLmRkNzAxNGM3YjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJ
bnZhbGlkYXRpb25GdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUlu
dmFsaWRhdGlvbkZ1bmN0aW9ucy5oCkBAIC05MCwxMSArOTAsOCBAQCBpbmxpbmUgdm9pZCB0cmF2
ZXJzZVJ1bGVGZWF0dXJlcyhFbGVtZW50JiBlbGVtZW50LCBUcmF2ZXJzZUZ1bmN0aW9uJiYgZnVu
Y3Rpb24pCiAgICAgdHJhdmVyc2VSdWxlRmVhdHVyZXNGb3JTbG90dGVkKGVsZW1lbnQsIGZ1bmN0
aW9uKTsKIAogICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBjb250YWluaW5nIHRyZWUgcmVzb2x2ZXIg
YWxzbyBleGlzdHMgc28gaXQgZG9lc24ndCBnZXQgY3JlYXRlZCBpbiB0aGUgbWlkZGxlIG9mIGlu
dmFsaWRhdGlvbi4KLSAgICBpZiAoZWxlbWVudC5pc0luU2hhZG93VHJlZSgpICYmIGVsZW1lbnQu
Y29udGFpbmluZ1NoYWRvd1Jvb3QoKSkgewotICAgICAgICBhdXRvJiBob3N0ID0gKmVsZW1lbnQu
Y29udGFpbmluZ1NoYWRvd1Jvb3QoKS0+aG9zdCgpOwotICAgICAgICBpZiAoaG9zdC5pc0Nvbm5l
Y3RlZCgpKQotICAgICAgICAgICAgU3R5bGU6OlNjb3BlOjpmb3JOb2RlKGhvc3QpLnJlc29sdmVy
KCk7Ci0gICAgfQorICAgIGlmIChlbGVtZW50LmlzSW5TaGFkb3dUcmVlKCkgJiYgZWxlbWVudC5j
b250YWluaW5nU2hhZG93Um9vdCgpKQorICAgICAgICBTdHlsZTo6U2NvcGU6OmZvck5vZGUoKmVs
ZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3QoKS0+aG9zdCgpKS5yZXNvbHZlcigpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKaW5kZXgg
ZmMxMmVlZDg0ZjJkLi40M2UxYWU2NmEwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCBib29sIFNoYXJpbmdS
ZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0eQogICAgIGlmICghY2FuZGlkYXRlRWxlbWVudElkLmlzTnVsbCgpICYmIG1fcnVs
ZVNldHMuZmVhdHVyZXMoKS5pZHNJblJ1bGVzLmNvbnRhaW5zKGNhbmRpZGF0ZUVsZW1lbnRJZCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmlzVmFs
aWRhdGVkRm9ybUxpc3RlZEVsZW1lbnQoKSB8fCBlbGVtZW50LmlzVmFsaWRhdGVkRm9ybUxpc3Rl
ZEVsZW1lbnQoKSkKKyAgICBpZiAoaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY2FuZGlkYXRl
RWxlbWVudCkgfHwgaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIEhUTUxGb3JtRWxlbWVudCBjYW4gZ2V0IHRoZSA6dmFs
aWQvaW52YWxpZCBwc2V1ZG8gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0tYXNzb2NpYXRlZC1jdXN0b20tZWxlbWVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0tYXNzb2Np
YXRlZC1jdXN0b20tZWxlbWVudHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiYmRjY2FmYjVlOWYuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3N0YXRlLXJlc3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0KLVVwZ3JhZGVkIGZvcm0t
YXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMgd2l0aG91dCBhbiBvd25lcjoKLVBBU1MgJCgibm9v
d25lci11cGdyYWRlMSIpLnJlc3RvcmVkU3RhdGUgaXMgImZvbyIKLVBBU1MgJCgibm9vd25lci11
cGdyYWRlMiIpLnJlc3RvcmVkU3RhdGUgaXMgImJhciIKLVBBU1MgaXNGb3JtRGF0YUVxdWFsKCQo
Im5vb3duZXItdXBncmFkZTMiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMikgaXMgdHJ1ZQot
UEFTUyBpc0Zvcm1EYXRhRXF1YWwoJCgibm9vd25lci11cGdyYWRlNCIpLnJlc3RvcmVkU3RhdGUs
IF9fZm9ybURhdGExKSBpcyB0cnVlCi0KLVVwZ3JhZGVkIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20g
ZWxlbWVudHMgd2l0aCBhIGZvcm0gb3duZXI6Ci1QQVNTIGlzRm9ybURhdGFFcXVhbCgkKCJ1cGdy
YWRlMSIpLnJlc3RvcmVkU3RhdGUsIF9fZm9ybURhdGEyKSBpcyB0cnVlCi1QQVNTICQoInVwZ3Jh
ZGUyIikucmVzdG9yZWRTdGF0ZSBpcyAiZm9vIgotUEFTUyBpc0Zvcm1EYXRhRXF1YWwoJCgidXBn
cmFkZTMiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSkgaXMgdHJ1ZQotUEFTUyAkKCJ1cGdy
YWRlNCIpLnJlc3RvcmVkU3RhdGUgaXMgImJhciIKLQotUHJlZGVmaW5lZCBmb3JtLWFzc29jaWF0
ZWQgY3VzdG9tIGVsZW1lbnRzIHdpdGhvdXQgYW4gb3duZXI6Ci1QQVNTICQoIm5vb3duZXItcHJl
ZGVmaW5lZDEiKS5yZXN0b3JlZFN0YXRlIGlzICJmb28iCi1QQVNTICQoIm5vb3duZXItcHJlZGVm
aW5lZDIiKS5yZXN0b3JlZFN0YXRlIGlzICJiYXIiCi1QQVNTIGlzRm9ybURhdGFFcXVhbCgkKCJu
b293bmVyLXByZWRlZmluZWQzIikucmVzdG9yZWRTdGF0ZSwgX19mb3JtRGF0YTEpIGlzIHRydWUK
LVBBU1MgaXNGb3JtRGF0YUVxdWFsKCQoIm5vb3duZXItcHJlZGVmaW5lZDQiKS5yZXN0b3JlZFN0
YXRlLCBfX2Zvcm1EYXRhMikgaXMgdHJ1ZQotCi1QcmVkZWZpbmVkIGZvcm0tYXNzb2NpYXRlZCBj
dXN0b20gZWxlbWVudHMgd2l0aCBhIGZvcm0gb3duZXI6Ci1QQVNTICQoInByZWRlZmluZWQxIiku
cmVzdG9yZWRTdGF0ZSBpcyAiZm9vIgotUEFTUyBpc0Zvcm1EYXRhRXF1YWwoJCgicHJlZGVmaW5l
ZDIiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSkgaXMgdHJ1ZQotUEFTUyAkKCJwcmVkZWZp
bmVkMyIpLnJlc3RvcmVkU3RhdGUgaXMgImJhciIKLVBBU1MgJCgicHJlZGVmaW5lZDQiKS5yZXN0
b3JlZFN0YXRlIGlzICJmb28iCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3N0YXRl
LXJlc3RvcmUtZm9ybS1hc3NvY2lhdGVkLWN1c3RvbS1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0tYXNzb2NpYXRlZC1jdXN0b20tZWxlbWVu
dHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI3OGI2OGM5NGJmLi4wMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zdGF0ZS1yZXN0b3JlLWZvcm0t
YXNzb2NpYXRlZC1jdXN0b20tZWxlbWVudHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0NiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxpbnB1dCBpZD1lbXB0eU9uRmlyc3RWaXNpdD4KLQotPHNjcmlwdD4K
LWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi13aW5kb3cuX19mb3JtRGF0YTEgPSBuZXcgRm9ybURh
dGE7Ci1fX2Zvcm1EYXRhMS5hcHBlbmQoImZvbyIsICJiYXIiKTsKLQotd2luZG93Ll9fZm9ybURh
dGEyID0gbmV3IEZvcm1EYXRhOwotX19mb3JtRGF0YTIuYXBwZW5kKCJhIiwgIjEiKTsKLV9fZm9y
bURhdGEyLmFwcGVuZCgiYiIsICIyIik7Ci0KLWZ1bmN0aW9uIGdldFhGb29Db25zdHJ1Y3Rvcigp
IHsKLSAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHN0YXRp
YyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7Ci0KLSAgICAgICAgY29uc3RydWN0b3IoKSB7Ci0gICAg
ICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxzID0gdGhpcy5hdHRh
Y2hJbnRlcm5hbHMoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbm5lY3RlZENhbGxiYWNrKCkg
ewotICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxzLnNldEZvcm1WYWx1ZSgKLSAgICAgICAgICAg
ICAgICB0aGlzLl9wYXJzZUZvcm1WYWx1ZSh0aGlzLmRhdGFzZXQuc3VibWlzc2lvblZhbHVlKSwK
LSAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUZvcm1WYWx1ZSh0aGlzLmRhdGFzZXQuc3RhdGUp
LAotICAgICAgICAgICAgKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcm1TdGF0ZVJlc3RvcmVD
YWxsYmFjayhzdGF0ZSkgewotICAgICAgICAgICAgdGhpcy5yZXN0b3JlZFN0YXRlID0gc3RhdGU7
Ci0gICAgICAgIH0KLQotICAgICAgICBfcGFyc2VGb3JtVmFsdWUoYXR0clZhbHVlKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gdHlwZW9mIGF0dHJWYWx1ZSA9PT0gInN0cmluZyIgJiYgYXR0clZhbHVl
LnN0YXJ0c1dpdGgoIkAiKSA/IHdpbmRvd1tgX18ke2F0dHJWYWx1ZS5zbGljZSgxKX1gXSA6IGF0
dHJWYWx1ZTsKLSAgICAgICAgfQotICAgIH07Ci19Ci0KLWZ1bmN0aW9uIGlzRm9ybURhdGFFcXVh
bChhLCBiKSB7Ci0gICAgY29uc3QgYkVudHJpZXMgPSBbLi4uYl07Ci0KLSAgICByZXR1cm4gWy4u
LmFdLmV2ZXJ5KChbYUtleSwgYVZhbHVlXSwgaW5kZXgpID0+IHsKLSAgICAgICAgY29uc3QgW2JL
ZXksIGJWYWx1ZV0gPSBiRW50cmllc1tpbmRleF07Ci0gICAgICAgIHJldHVybiBhS2V5ID09PSBi
S2V5ICYmIGFWYWx1ZSA9PT0gYlZhbHVlOwotICAgIH0pOwotfQotCi1jdXN0b21FbGVtZW50cy5k
ZWZpbmUoIngtZm9vLXByZWRlZmluZWQiLCBnZXRYRm9vQ29uc3RydWN0b3IoKSk7Ci0KLWZ1bmN0
aW9uIG1ha2VGb3JtcyhzdGFnZSkgewotICAgIHZhciBiZWZvcmVGb3JtcyA9ICc8ZGl2IGlkPXBh
cmVudD4nICsKLSAgICAgICAgJzx4LWZvby11cGdyYWRlIGlkPSJub293bmVyLXVwZ3JhZGUyIiBu
YW1lPSJub293bmVyLXVwZ3JhZGUyIiBkYXRhLXN1Ym1pc3Npb24tdmFsdWU9IkBmb3JtRGF0YTIi
IGRhdGEtc3RhdGU9ImJhciI+PC94LWZvby11cGdyYWRlPicgKwotICAgICAgICAnPHgtZm9vLXVw
Z3JhZGUgaWQ9Im5vb3duZXItdXBncmFkZTQiIG5hbWU9Im5vb3duZXItdXBncmFkZTQiIGRhdGEt
c3VibWlzc2lvbi12YWx1ZT0iZm9vIiBkYXRhLXN0YXRlPSJAZm9ybURhdGExIj48L3gtZm9vLXVw
Z3JhZGU+JyArCi0gICAgICAgICc8eC1mb28tcHJlZGVmaW5lZCBpZD0ibm9vd25lci1wcmVkZWZp
bmVkMiIgbmFtZT0ibm9vd25lci1wcmVkZWZpbmVkMiIgZGF0YS1zdWJtaXNzaW9uLXZhbHVlPSJm
b28iIGRhdGEtc3RhdGU9ImJhciI+PC94LWZvby1wcmVkZWZpbmVkPicgKwotICAgICAgICAnPHgt
Zm9vLXByZWRlZmluZWQgaWQ9Im5vb3duZXItcHJlZGVmaW5lZDQiIG5hbWU9Im5vb3duZXItcHJl
ZGVmaW5lZDQiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iQGZvcm1EYXRhMSIgZGF0YS1zdGF0ZT0i
QGZvcm1EYXRhMiI+PC94LWZvby1wcmVkZWZpbmVkPic7Ci0KLSAgICB2YXIgYmFja0Zvcm0gPSAn
PGZvcm0gYWN0aW9uPSJkYXRhOnRleHQvaHRtbCwmbHQ7c2NyaXB0Pmhpc3RvcnkuYmFjaygpOyZs
dDsvc2NyaXB0PiIgaWQ9Zm9ybTEgbmFtZT1mb3JtMT4nICsKLSAgICAgICAgJzwvZm9ybT4nOwot
Ci0gICAgdmFyIHF1ZXJ5ID0gc3RhZ2UgPT0gMSA/ICI/c2Vzc2lvbj0wMTIzNDU2IiA6ICI/c2Vz
c2lvbj03NjU0MzIxMTExIjsKLSAgICB2YXIgc2FtZUFjdGlvbkZvcm0xID0gJzxmb3JtIGFjdGlv
bj0iaHR0cDovL2V4YW1wbGUuY29tL2Zvby5jZ2knICsgcXVlcnkgKyAnI2JhciIgaWQ9Zm9ybTIg
bmFtZT1mb3JtMj4nICsKLSAgICAgICAgJzx4LWZvby11cGdyYWRlIGlkPSJ1cGdyYWRlMiIgbmFt
ZT0idXBncmFkZTIiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iZm9vIj48L3gtZm9vLXVwZ3JhZGU+
JyArCi0gICAgICAgICc8eC1mb28tdXBncmFkZSBpZD0idXBncmFkZTQiIG5hbWU9InVwZ3JhZGU0
IiBkYXRhLXN1Ym1pc3Npb24tdmFsdWU9ImZvbyIgZGF0YS1zdGF0ZT0iYmFyIj48L3gtZm9vLXVw
Z3JhZGU+JyArCi0gICAgICAgICc8eC1mb28tcHJlZGVmaW5lZCBpZD0icHJlZGVmaW5lZDIiIG5h
bWU9InByZWRlZmluZWQyIiBkYXRhLXN1Ym1pc3Npb24tdmFsdWU9ImZvbyIgZGF0YS1zdGF0ZT0i
QGZvcm1EYXRhMSI+PC94LWZvby1wcmVkZWZpbmVkPicgKwotICAgICAgICAnPHgtZm9vLXByZWRl
ZmluZWQgaWQ9InByZWRlZmluZWQ0IiBuYW1lPSJwcmVkZWZpbmVkNCIgZGF0YS1zdWJtaXNzaW9u
LXZhbHVlPSJAZm9ybURhdGEyIiBkYXRhLXN0YXRlPSJmb28iPjwveC1mb28tcHJlZGVmaW5lZD4n
ICsKLSAgICAgICAgJzwvZm9ybT4nOwotCi0gICAgdmFyIHNhbWVBY3Rpb25Gb3JtMiA9ICc8Zm9y
bSBhY3Rpb249Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28uY2dpP2FjdGlvbj1sb2dpbiNiYXIiIGlk
PWZvcm0zIG5hbWU9Zm9ybTM+JyArCi0gICAgICAgICc8eC1mb28tdXBncmFkZSBpZD0idXBncmFk
ZTEiIG5hbWU9InVwZ3JhZGUxIiBkYXRhLXN1Ym1pc3Npb24tdmFsdWU9IkBmb3JtRGF0YTIiPjwv
eC1mb28tdXBncmFkZT4nICsKLSAgICAgICAgJzx4LWZvby11cGdyYWRlIGlkPSJ1cGdyYWRlMyIg
bmFtZT0idXBncmFkZTMiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iQGZvcm1EYXRhMiIgZGF0YS1z
dGF0ZT0iQGZvcm1EYXRhMSI+PC94LWZvby11cGdyYWRlPicgKwotICAgICAgICAnPHgtZm9vLXBy
ZWRlZmluZWQgaWQ9InByZWRlZmluZWQxIiBuYW1lPSJwcmVkZWZpbmVkMSIgZGF0YS1zdWJtaXNz
aW9uLXZhbHVlPSJmb28iPjwveC1mb28tcHJlZGVmaW5lZD4nICsKLSAgICAgICAgJzx4LWZvby1w
cmVkZWZpbmVkIGlkPSJwcmVkZWZpbmVkMyIgbmFtZT0icHJlZGVmaW5lZDMiIGRhdGEtc3VibWlz
c2lvbi12YWx1ZT0iYmFyIj48L3gtZm9vLXByZWRlZmluZWQ+JyArCi0gICAgICAgICc8L2Zvcm0+
JzsKLQotICAgIHZhciBhZnRlckZvcm1zID0KLSAgICAgICAgJzx4LWZvby11cGdyYWRlIGlkPSJu
b293bmVyLXVwZ3JhZGUxIiBuYW1lPSJub293bmVyLXVwZ3JhZGUxIiBkYXRhLXN1Ym1pc3Npb24t
dmFsdWU9ImZvbyI+PC94LWZvby11cGdyYWRlPicgKwotICAgICAgICAnPHgtZm9vLXVwZ3JhZGUg
aWQ9Im5vb3duZXItdXBncmFkZTMiIG5hbWU9Im5vb3duZXItdXBncmFkZTMiIGRhdGEtc3VibWlz
c2lvbi12YWx1ZT0iQGZvcm1EYXRhMiI+PC94LWZvby11cGdyYWRlPicgKwotICAgICAgICAnPHgt
Zm9vLXByZWRlZmluZWQgaWQ9Im5vb3duZXItcHJlZGVmaW5lZDEiIG5hbWU9Im5vb3duZXItcHJl
ZGVmaW5lZDEiIGRhdGEtc3VibWlzc2lvbi12YWx1ZT0iZm9vIj48L3gtZm9vLXByZWRlZmluZWQ+
JyArCi0gICAgICAgICc8eC1mb28tcHJlZGVmaW5lZCBpZD0ibm9vd25lci1wcmVkZWZpbmVkMyIg
bmFtZT0ibm9vd25lci1wcmVkZWZpbmVkMyIgZGF0YS1zdWJtaXNzaW9uLXZhbHVlPSJAZm9ybURh
dGExIj48L3gtZm9vLXByZWRlZmluZWQ+JyArCi0gICAgICAgICc8L2Rpdj4nOwotCi0gICAgZG9j
dW1lbnQud3JpdGUoCi0gICAgICAgIGJlZm9yZUZvcm1zICsKLSAgICAgICAgKHN0YWdlID09PSAx
ID8gYmFja0Zvcm0gKyBzYW1lQWN0aW9uRm9ybTEgOiBzYW1lQWN0aW9uRm9ybTEgKyBiYWNrRm9y
bSkgKwotICAgICAgICBzYW1lQWN0aW9uRm9ybTIgKwotICAgICAgICBhZnRlckZvcm1zCi0gICAg
KTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC1mb28tdXBncmFkZSIsIGdldFhGb29D
b25zdHJ1Y3RvcigpKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgdmFyIHN0YXRl
ID0gJCgnZW1wdHlPbkZpcnN0VmlzaXQnKTsKLSAgICBpZiAoIXN0YXRlLnZhbHVlKSB7Ci0gICAg
ICAgIHN0YXRlLnZhbHVlID0gJ3Zpc2l0ZWQnOwotICAgICAgICBtYWtlRm9ybXMoMSk7Ci0gICAg
Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAkKCdmb3JtMScp
LnN1Ym1pdCgpOwotICAgICAgICB9KTsKLSAgICB9IGVsc2UgewotICAgICAgICBtYWtlRm9ybXMo
Mik7Ci0KLSAgICAgICAgZGVidWcoJ1xuVXBncmFkZWQgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBl
bGVtZW50cyB3aXRob3V0IGFuIG93bmVyOicpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJyQoIm5vb3duZXItdXBncmFkZTEiKS5yZXN0b3JlZFN0YXRlJywgJ2ZvbycpOwotICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJyQoIm5vb3duZXItdXBncmFkZTIiKS5yZXN0b3JlZFN0
YXRlJywgJ2JhcicpOwotICAgICAgICBzaG91bGRCZVRydWUoJ2lzRm9ybURhdGFFcXVhbCgkKCJu
b293bmVyLXVwZ3JhZGUzIikucmVzdG9yZWRTdGF0ZSwgX19mb3JtRGF0YTIpJyk7Ci0gICAgICAg
IHNob3VsZEJlVHJ1ZSgnaXNGb3JtRGF0YUVxdWFsKCQoIm5vb3duZXItdXBncmFkZTQiKS5yZXN0
b3JlZFN0YXRlLCBfX2Zvcm1EYXRhMSknKTsKLQotICAgICAgICBkZWJ1ZygnXG5VcGdyYWRlZCBm
b3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdpdGggYSBmb3JtIG93bmVyOicpOwotICAg
ICAgICBzaG91bGRCZVRydWUoJ2lzRm9ybURhdGFFcXVhbCgkKCJ1cGdyYWRlMSIpLnJlc3RvcmVk
U3RhdGUsIF9fZm9ybURhdGEyKScpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJyQo
InVwZ3JhZGUyIikucmVzdG9yZWRTdGF0ZScsICdmb28nKTsKLSAgICAgICAgc2hvdWxkQmVUcnVl
KCdpc0Zvcm1EYXRhRXF1YWwoJCgidXBncmFkZTMiKS5yZXN0b3JlZFN0YXRlLCBfX2Zvcm1EYXRh
MSknKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCckKCJ1cGdyYWRlNCIpLnJlc3Rv
cmVkU3RhdGUnLCAnYmFyJyk7Ci0KLSAgICAgICAgZGVidWcoJ1xuUHJlZGVmaW5lZCBmb3JtLWFz
c29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHdpdGhvdXQgYW4gb3duZXI6Jyk7Ci0gICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnJCgibm9vd25lci1wcmVkZWZpbmVkMSIpLnJlc3RvcmVkU3Rh
dGUnLCAnZm9vJyk7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnJCgibm9vd25lci1w
cmVkZWZpbmVkMiIpLnJlc3RvcmVkU3RhdGUnLCAnYmFyJyk7Ci0gICAgICAgIHNob3VsZEJlVHJ1
ZSgnaXNGb3JtRGF0YUVxdWFsKCQoIm5vb3duZXItcHJlZGVmaW5lZDMiKS5yZXN0b3JlZFN0YXRl
LCBfX2Zvcm1EYXRhMSknKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCdpc0Zvcm1EYXRhRXF1YWwo
JCgibm9vd25lci1wcmVkZWZpbmVkNCIpLnJlc3RvcmVkU3RhdGUsIF9fZm9ybURhdGEyKScpOwot
Ci0gICAgICAgIGRlYnVnKCdcblByZWRlZmluZWQgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVt
ZW50cyB3aXRoIGEgZm9ybSBvd25lcjonKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCckKCJwcmVkZWZpbmVkMSIpLnJlc3RvcmVkU3RhdGUnLCAnZm9vJyk7Ci0gICAgICAgIHNob3Vs
ZEJlVHJ1ZSgnaXNGb3JtRGF0YUVxdWFsKCQoInByZWRlZmluZWQyIikucmVzdG9yZWRTdGF0ZSwg
X19mb3JtRGF0YTEpJyk7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnJCgicHJlZGVm
aW5lZDMiKS5yZXN0b3JlZFN0YXRlJywgJ2JhcicpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJyQoInByZWRlZmluZWQ0IikucmVzdG9yZWRTdGF0ZScsICdmb28nKTsKLQotICAgICAg
ICAkKCdwYXJlbnQnKS5pbm5lckhUTUwgPSAnJzsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsgZmluaXNoSlNUZXN0KCk7IH0pOwotICAgIH0KLX0KLQotcnVuVGVzdCgpOwotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVy
bmFscy1Ob3RTdXBwb3J0ZWRFcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
RWxlbWVudEludGVybmFscy1Ob3RTdXBwb3J0ZWRFcnJvci1leHBlY3RlZC50eHQKaW5kZXggYjJk
NDUzYWU0NTVhLi41NTQ1M2FjYmMxZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9F
bGVtZW50SW50ZXJuYWxzLU5vdFN1cHBvcnRlZEVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1Ob3RTdXBwb3J0ZWRFcnJvci1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLVBBU1MgRm9ybS1yZWxhdGVkIG9wZXJhdGlvbnMgYW5k
IGF0dHJpYnV0ZXMgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZEVycm9ycyBmb3Igbm9uLWZvcm0t
YXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMuCitGQUlMIEZvcm0tcmVsYXRlZCBvcGVyYXRpb25z
IGFuZCBhdHRyaWJ1dGVzIHNob3VsZCB0aHJvdyBOb3RTdXBwb3J0ZWRFcnJvcnMgZm9yIG5vbi1m
b3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzLiBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rp
b24gIigpID0+IGkuc2V0Rm9ybVZhbHVlKCcnKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IGku
c2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2kuc2V0Rm9ybVZhbHVlKCcnKScs
ICdpLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRp
b24gTm90U3VwcG9ydGVkRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmlu
ZWQsIGV4cGVjdGVkIDkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJ
bnRlcm5hbHMtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudElu
dGVybmFscy1mb3JtLWV4cGVjdGVkLnR4dAppbmRleCBkNGM2ZTA1MWJlYjQuLjRlZDEwODJlZDli
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtZm9ybS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtZm9y
bS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1IEBACiAKLVBBU1MgRWxlbWVudEludGVybmFscy5m
b3JtIHNob3VsZCByZXR1cm4gdGhlIHRhcmdldCBlbGVtZW50J3MgZm9ybSBvd25lcgotUEFTUyBF
bGVtZW50SW50ZXJuYWxzLmZvcm0gc2hvdWxkIHRocm93cyBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0
aGUgdGFyZ2V0IGVsZW1lbnQgaXMgbm90IGEgZm9ybS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50
CitGQUlMIEVsZW1lbnRJbnRlcm5hbHMuZm9ybSBzaG91bGQgcmV0dXJuIHRoZSB0YXJnZXQgZWxl
bWVudCdzIGZvcm0gb3duZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgRWxlbWVu
dCBub2RlIDxmb3JtIGlkPSJjdXN0b20tZm9ybSI+CisgIDxjdXN0b20taW5wdXQtcGFyc2VyIGlk
PSJjdXN0b20uLi4gYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK0ZBSUwgRWxlbWVudElu
dGVybmFscy5mb3JtIHNob3VsZCB0aHJvd3MgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdl
dCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudCBhc3NlcnRf
dGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGkuZm9ybSIgZGlkIG5vdCB0aHJvdwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1sYWJlbHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtbGFiZWxzLWV4cGVj
dGVkLnR4dAppbmRleCBhZGRhYjMzM2Q0MjAuLmQ1MmQ4YzZmZjM2NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtbGFiZWxzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy1sYWJlbHMtZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNSBAQAogCi1QQVNTIExBQkVMIGFzc29jaWF0aW9uCi1QQVNTIExBQkVMIGNs
aWNrCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMubGFiZWxzIHNob3VsZCB0aHJvdyBOb3RTdXBwb3J0
ZWRFcnJvciBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgbm90IGEgZm9ybS1hc3NvY2lhdGVkIGN1
c3RvbSBlbGVtZW50CitGQUlMIExBQkVMIGFzc29jaWF0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIEVsZW1lbnQgbm9kZSA8bXktY29udHJvbD48L215LWNvbnRyb2w+IGJ1dCBnb3QgbnVsbAor
RkFJTCBMQUJFTCBjbGljayBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxIGJ1dCBnb3QgMAorRkFJ
TCBFbGVtZW50SW50ZXJuYWxzLmxhYmVscyBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3Ig
aWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxl
bWVudCBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGkubGFiZWxzIiBkaWQgbm90
IHRocm93CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxz
LWxhYmVscy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtbGFiZWxz
Lmh0bWwKaW5kZXggYjI3YmU1ZjJmYzNiLi4wMmU4YTBmMmViNWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zv
cm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLWxhYmVscy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLWxhYmVscy5odG1sCkBAIC00MCwxMCArNDAsNiBA
QCB0ZXN0KCgpID0+IHsKICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8bXktY29udHJvbD48L215
LWNvbnRyb2w+JzsKICAgY29udHJvbCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdteS1jb250
cm9sJyk7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMoY29udHJvbC5pLmxhYmVscywgW10pOwotCi0g
IGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGxhYmVsPjx4LWZvbz48L3gtZm9vPjwvbGFiZWw+JzsK
LSAgbGFiZWwgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignbGFiZWwnKTsKLSAgYXNzZXJ0X2Vx
dWFscyhsYWJlbC5jb250cm9sLCBudWxsKTsKIH0sICdMQUJFTCBhc3NvY2lhdGlvbicpOwogCiB0
ZXN0KCgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJu
YWxzLXNldEZvcm1WYWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVu
dEludGVybmFscy1zZXRGb3JtVmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4IDdjZDcwMzRhYmRkMy4u
ODVhNWU1OTNmNjA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVy
bmFscy1zZXRGb3JtVmFsdWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9F
bGVtZW50SW50ZXJuYWxzLXNldEZvcm1WYWx1ZS1leHBlY3RlZC50eHQKQEAgLTEsNTggKzEsNTgg
QEAKIAogCiBQQVNTIFNpbmdsZSB2YWx1ZSAtIG5hbWUgaXMgbWlzc2luZwotUEFTUyBTaW5nbGUg
dmFsdWUgLSBlbXB0eSBuYW1lIGV4aXN0cwotUEFTUyBTaW5nbGUgdmFsdWUgLSBOb24tZW1wdHkg
bmFtZSBleGlzdHMKLVBBU1MgTnVsbCB2YWx1ZSBzaG91bGQgc3VibWl0IG5vdGhpbmcKLVBBU1Mg
TXVsdGlwbGUgdmFsdWVzIC0gbmFtZSBjb250ZW50IGF0dHJpYnV0ZSBpcyBpZ25vcmVkCi1QQVNT
IHNldEZvcm1WYWx1ZSB3aXRoIGFuIGVtcHR5IEZvcm1EYXRhIHNob3VsZCBzdWJtaXQgbm90aGlu
ZwotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBuYW1lICh1cmxlbmNvZGVkKQot
UEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBuYW1lIChmb3JtZGF0YSkKLVBBU1Mg
TmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gbmFtZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3
bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gbmFtZSAoZm9ybWRhdGEpCi1QQVNTIE5ld2xpbmUg
bm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gbmFtZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBu
b3JtYWxpemF0aW9uIC0gXHJcbiBpbiBuYW1lIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBub3Jt
YWxpemF0aW9uIC0gXG5cciBpbiBuYW1lICh1cmxlbmNvZGVkKQotUEFTUyBOZXdsaW5lIG5vcm1h
bGl6YXRpb24gLSBcblxyIGluIG5hbWUgKGZvcm1kYXRhKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6
YXRpb24gLSBcbiBpbiB2YWx1ZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0
aW9uIC0gXG4gaW4gdmFsdWUgKGZvcm1kYXRhKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24g
LSBcciBpbiB2YWx1ZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0g
XHIgaW4gdmFsdWUgKGZvcm1kYXRhKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxu
IGluIHZhbHVlICh1cmxlbmNvZGVkKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxu
IGluIHZhbHVlIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBp
biB2YWx1ZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBp
biB2YWx1ZSAoZm9ybWRhdGEpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIGZp
bGVuYW1lICh1cmxlbmNvZGVkKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBm
aWxlbmFtZSAoZm9ybWRhdGEpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIGZp
bGVuYW1lICh1cmxlbmNvZGVkKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBpbiBm
aWxlbmFtZSAoZm9ybWRhdGEpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4g
ZmlsZW5hbWUgKHVybGVuY29kZWQpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4g
aW4gZmlsZW5hbWUgKGZvcm1kYXRhKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcblxy
IGluIGZpbGVuYW1lICh1cmxlbmNvZGVkKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBc
blxyIGluIGZpbGVuYW1lIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0g
XG4gaW4gRm9ybURhdGEgbmFtZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0
aW9uIC0gXG4gaW4gRm9ybURhdGEgbmFtZSAoZm9ybWRhdGEpCi1QQVNTIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxyIGluIEZvcm1EYXRhIG5hbWUgKHVybGVuY29kZWQpCi1QQVNTIE5ld2xpbmUg
bm9ybWFsaXphdGlvbiAtIFxyIGluIEZvcm1EYXRhIG5hbWUgKGZvcm1kYXRhKQotUEFTUyBOZXds
aW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIG5hbWUgKHVybGVuY29kZWQpCi1Q
QVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gRm9ybURhdGEgbmFtZSAoZm9ybWRh
dGEpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgbmFtZSAo
dXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiBGb3JtRGF0
YSBuYW1lIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gRm9y
bURhdGEgdmFsdWUgKHVybGVuY29kZWQpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxu
IGluIEZvcm1EYXRhIHZhbHVlIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9u
IC0gXHIgaW4gRm9ybURhdGEgdmFsdWUgKHVybGVuY29kZWQpCi1QQVNTIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxyIGluIEZvcm1EYXRhIHZhbHVlIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBu
b3JtYWxpemF0aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSB2YWx1ZSAodXJsZW5jb2RlZCkKLVBBU1Mg
TmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSB2YWx1ZSAoZm9ybWRhdGEp
Ci1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEgdmFsdWUgKHVy
bGVuY29kZWQpCi1QQVNTIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gRm9ybURhdGEg
dmFsdWUgKGZvcm1kYXRhKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBGb3Jt
RGF0YSBmaWxlbmFtZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0g
XG4gaW4gRm9ybURhdGEgZmlsZW5hbWUgKGZvcm1kYXRhKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6
YXRpb24gLSBcciBpbiBGb3JtRGF0YSBmaWxlbmFtZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGlu
ZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gRm9ybURhdGEgZmlsZW5hbWUgKGZvcm1kYXRhKQotUEFT
UyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIGZpbGVuYW1lICh1cmxl
bmNvZGVkKQotUEFTUyBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIGZp
bGVuYW1lIChmb3JtZGF0YSkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiBG
b3JtRGF0YSBmaWxlbmFtZSAodXJsZW5jb2RlZCkKLVBBU1MgTmV3bGluZSBub3JtYWxpemF0aW9u
IC0gXG5cciBpbiBGb3JtRGF0YSBmaWxlbmFtZSAoZm9ybWRhdGEpCi1QQVNTIEVsZW1lbnRJbnRl
cm5hbHMuc2V0Rm9ybVZhbHVlKCkgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZEVycm9yIGlmIHRo
ZSB0YXJnZXQgZWxlbWVudCBpcyBub3QgYSBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnQK
K0ZBSUwgU2luZ2xlIHZhbHVlIC0gZW1wdHkgbmFtZSBleGlzdHMgdGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9y
bVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkK
K0ZBSUwgU2luZ2xlIHZhbHVlIC0gTm9uLWVtcHR5IG5hbWUgZXhpc3RzIHRoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmlu
ZWQpCitGQUlMIE51bGwgdmFsdWUgc2hvdWxkIHN1Ym1pdCBub3RoaW5nIHRoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNl
dEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmlu
ZWQpCitGQUlMIE11bHRpcGxlIHZhbHVlcyAtIG5hbWUgY29udGVudCBhdHRyaWJ1dGUgaXMgaWdu
b3JlZCB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZv
cm1WYWx1ZScgaXMgdW5kZWZpbmVkKQorRkFJTCBzZXRGb3JtVmFsdWUgd2l0aCBhbiBlbXB0eSBG
b3JtRGF0YSBzaG91bGQgc3VibWl0IG5vdGhpbmcgdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYp
JywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgTmV3
bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScg
aXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gbmFtZSAo
Zm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxyIGluIG5hbWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5l
ZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIG5hbWUgKGZvcm1kYXRhKSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBc
clxuIGluIG5hbWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1W
YWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
KHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlM
IE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gbmFtZSAoZm9ybWRhdGEpIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFs
dWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4g
bmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAn
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGlu
ZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiBuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMg
dW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gdmFsdWUgKHVy
bGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxuIGluIHZhbHVlIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18u
c2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRG
b3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVk
KSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gdmFsdWUgKHVybGVuY29kZWQp
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5z
ZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAt
IFxyIGluIHZhbHVlIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUo
diknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwg
TmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiB2YWx1ZSAodXJsZW5jb2RlZCkgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Ro
aXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1W
YWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBp
biB2YWx1ZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywg
J3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xp
bmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gdmFsdWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhp
cy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUn
IGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuXHIgaW4gdmFs
dWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5v
cm1hbGl6YXRpb24gLSBcbiBpbiBmaWxlbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMg
dW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gZmlsZW5hbWUg
KGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEg
ZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1h
bGl6YXRpb24gLSBcciBpbiBmaWxlbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5k
ZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXHIgaW4gZmlsZW5hbWUgKGZv
cm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6
YXRpb24gLSBcclxuIGluIGZpbGVuYW1lICh1cmxlbmNvZGVkKSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZSh2KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRl
ZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIGZpbGVuYW1lIChm
b3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRl
cm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxp
emF0aW9uIC0gXG5cciBpbiBmaWxlbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUodiknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5k
ZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5cciBpbiBmaWxlbmFtZSAo
Zm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKHYpJywgJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFs
aXphdGlvbiAtIFxuIGluIEZvcm1EYXRhIG5hbWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5p
bnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBG
b3JtRGF0YSBuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUo
Zm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCki
CitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGluIEZvcm1EYXRhIG5hbWUgKHVybGVu
Y29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5v
cm1hbGl6YXRpb24gLSBcciBpbiBGb3JtRGF0YSBuYW1lIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4g
aW4gRm9ybURhdGEgbmFtZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVm
aW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gRm9ybURhdGEgbmFt
ZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScs
ICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXds
aW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGluIEZvcm1EYXRhIG5hbWUgKHVybGVuY29kZWQpIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVybmFs
c18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRp
b24gLSBcblxyIGluIEZvcm1EYXRhIG5hbWUgKGZvcm1kYXRhKSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScg
aXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gRm9ybURh
dGEgdmFsdWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZv
cm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgor
RkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcbiBpbiBGb3JtRGF0YSB2YWx1ZSAoZm9ybWRh
dGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1h
bGl6YXRpb24gLSBcciBpbiBGb3JtRGF0YSB2YWx1ZSAodXJsZW5jb2RlZCkgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3Jt
VmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyIGlu
IEZvcm1EYXRhIHZhbHVlIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9y
bVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFs
dWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5l
ZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxyXG4gaW4gRm9ybURhdGEgdmFsdWUg
KHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScs
ICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXds
aW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIHZhbHVlIChmb3JtZGF0YSkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoZm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxz
Xy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiCitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlv
biAtIFxuXHIgaW4gRm9ybURhdGEgdmFsdWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRl
cm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFs
c18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
JyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcblxyIGluIEZv
cm1EYXRhIHZhbHVlIChmb3JtZGF0YSkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZh
bHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUo
Zm9ybURhdGEpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCki
CitGQUlMIE5ld2xpbmUgbm9ybWFsaXphdGlvbiAtIFxuIGluIEZvcm1EYXRhIGZpbGVuYW1lICh1
cmxlbmNvZGVkKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEg
ZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAn
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGlu
ZSBub3JtYWxpemF0aW9uIC0gXG4gaW4gRm9ybURhdGEgZmlsZW5hbWUgKGZvcm1kYXRhKSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9u
IC0gXHIgaW4gRm9ybURhdGEgZmlsZW5hbWUgKHVybGVuY29kZWQpIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRl
cm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFs
c18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
JyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcciBpbiBGb3Jt
RGF0YSBmaWxlbmFtZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1W
YWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVl
KGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQp
IgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6YXRpb24gLSBcclxuIGluIEZvcm1EYXRhIGZpbGVuYW1l
ICh1cmxlbmNvZGVkKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSkn
LCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3
bGluZSBub3JtYWxpemF0aW9uIC0gXHJcbiBpbiBGb3JtRGF0YSBmaWxlbmFtZSAoZm9ybWRhdGEp
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVy
bmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpIgorRkFJTCBOZXdsaW5lIG5vcm1hbGl6
YXRpb24gLSBcblxyIGluIEZvcm1EYXRhIGZpbGVuYW1lICh1cmxlbmNvZGVkKSBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRo
aXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5p
bnRlcm5hbHNfLnNldEZvcm1WYWx1ZShmb3JtRGF0YSknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZv
cm1WYWx1ZScgaXMgdW5kZWZpbmVkKSIKK0ZBSUwgTmV3bGluZSBub3JtYWxpemF0aW9uIC0gXG5c
ciBpbiBGb3JtRGF0YSBmaWxlbmFtZSAoZm9ybWRhdGEpIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0
Rm9ybVZhbHVlKGZvcm1EYXRhKScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1
bmRlZmluZWQpIgorRkFJTCBFbGVtZW50SW50ZXJuYWxzLnNldEZvcm1WYWx1ZSgpIHNob3VsZCB0
aHJvdyBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgbm90IGEgZm9y
bS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAi
KCkgPT4gaS5zZXRGb3JtVmFsdWUoInRlc3QiKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IGku
c2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2kuc2V0Rm9ybVZhbHVlKCJ0ZXN0
IiknLCAnaS5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkiIHRoYXQgaXMgbm90IGEgRE9NRXhj
ZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5k
ZWZpbmVkLCBleHBlY3RlZCA5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVt
ZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNmJhNDI0MzY2
MGMwLi5mNjYyZThlMzU5MTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50
SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRl
ZC9FbGVtZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDE4ICsxLDE2
IEBACi1DT05TT0xFIE1FU1NBR0U6IEFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGggbmFtZT0n
JyBpcyBub3QgZm9jdXNhYmxlLgotQ09OU09MRSBNRVNTQUdFOiBBbiBpbnZhbGlkIGZvcm0gY29u
dHJvbCB3aXRoIG5hbWU9JycgaXMgbm90IGZvY3VzYWJsZS4KLUNPTlNPTEUgTUVTU0FHRTogQW4g
aW52YWxpZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lPScnIGlzIG5vdCBmb2N1c2FibGUuCiAKIAot
UEFTUyB3aWxsVmFsaWRhdGUKLVBBU1Mgd2lsbFZhbGlkYXRlIGFmdGVyIHVwZ3JhZGUKLVBBU1Mg
d2lsbFZhbGlkYXRlIGFmdGVyIHVwZ3JhZGUgKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpCi1QQVNT
IHdpbGxWYWxpZGF0ZSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdl
dCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudAotUEFTUyB2
YWxpZGl0eSBhbmQgc2V0VmFsaWRpdHkoKQotUEFTUyAiYW5jaG9yIiBhcmd1bWVudCBvZiBzZXRW
YWxpZGl0eSgpCi1QQVNTIGNoZWNrVmFsaWRpdHkoKSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVk
RXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0
b20gZWxlbWVudAotUEFTUyBjaGVja1ZhbGlkaXR5KCkKLVBBU1MgcmVwb3J0VmFsaWRpdHkoKSBz
aG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5v
dCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudAotUEFTUyByZXBvcnRWYWxpZGl0eSgp
Ci1QQVNTIEN1c3RvbSBjb250cm9sIGFmZmVjdHMgdmFsaWRhdGlvbiBhdCB0aGUgb3duZXIgZm9y
bQotUEFTUyBDdXN0b20gY29udHJvbCBhZmZlY3RzIDp2YWxpZCA6aW52YWxpZCBmb3IgRk9STSBh
bmQgRklFTERTRVQKK0ZBSUwgd2lsbFZhbGlkYXRlIGFzc2VydF90cnVlOiBkZWZhdWx0IHZhbHVl
IGlzIHRydWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgdW5kZWZpbmVkCitGQUlMIHdpbGxWYWxpZGF0ZSBh
ZnRlciB1cGdyYWRlIGFzc2VydF90cnVlOiBkZWZhdWx0IHZhbHVlIGV4cGVjdGVkIHRydWUgZ290
IHVuZGVmaW5lZAorRkFJTCB3aWxsVmFsaWRhdGUgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZEVy
cm9yIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBub3QgYSBmb3JtLWFzc29jaWF0ZWQgY3VzdG9t
IGVsZW1lbnQgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiBlbGVtZW50Lmkud2ls
bFZhbGlkYXRlIiBkaWQgbm90IHRocm93CitGQUlMIHZhbGlkaXR5IGFuZCBzZXRWYWxpZGl0eSgp
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWxpZGl0eS52YWx1ZU1p
c3NpbmcnKQorRkFJTCAiYW5jaG9yIiBhcmd1bWVudCBvZiBzZXRWYWxpZGl0eSgpIGFzc2VydF90
aHJvd3NfZG9tOiBOb3QgYSBkZXNjZW5kYW50IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgY29udHJv
bC5pLnNldFZhbGlkaXR5KGZsYWdzLCBtLCBkb2N1bWVudC5ib2R5KTsKKyAgfSIgdGhyZXcgb2Jq
ZWN0ICJUeXBlRXJyb3I6IGNvbnRyb2wuaS5zZXRWYWxpZGl0eSBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdjb250cm9sLmkuc2V0VmFsaWRpdHkoZmxhZ3MsIG0sIGRvY3VtZW50LmJvZHkpJywgJ2Nv
bnRyb2wuaS5zZXRWYWxpZGl0eScgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNl
cHRpb24gTm90Rm91bmRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5l
ZCwgZXhwZWN0ZWQgOAorRkFJTCBjaGVja1ZhbGlkaXR5KCkgc2hvdWxkIHRocm93IE5vdFN1cHBv
cnRlZEVycm9yIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBub3QgYSBmb3JtLWFzc29jaWF0ZWQg
Y3VzdG9tIGVsZW1lbnQgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiBlbGVtZW50
LmkuY2hlY2tWYWxpZGl0eSgpIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogZWxlbWVudC5pLmNo
ZWNrVmFsaWRpdHkgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZWxlbWVudC5pLmNoZWNrVmFsaWRp
dHkoKScsICdlbGVtZW50LmkuY2hlY2tWYWxpZGl0eScgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBu
b3QgYSBET01FeGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDkKK0ZBSUwgY2hlY2tWYWxpZGl0eSgpIGNvbnRy
b2wuaS5jaGVja1ZhbGlkaXR5IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2NvbnRyb2wuaS5jaGVj
a1ZhbGlkaXR5KCknLCAnY29udHJvbC5pLmNoZWNrVmFsaWRpdHknIGlzIHVuZGVmaW5lZCkKK0ZB
SUwgcmVwb3J0VmFsaWRpdHkoKSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhl
IHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudCBh
c3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGVsZW1lbnQuaS5yZXBvcnRWYWxpZGl0
eSgpIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogZWxlbWVudC5pLnJlcG9ydFZhbGlkaXR5IGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2VsZW1lbnQuaS5yZXBvcnRWYWxpZGl0eSgpJywgJ2VsZW1l
bnQuaS5yZXBvcnRWYWxpZGl0eScgaXMgdW5kZWZpbmVkKSIgdGhhdCBpcyBub3QgYSBET01FeGNl
cHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRl
ZmluZWQsIGV4cGVjdGVkIDkKK0ZBSUwgcmVwb3J0VmFsaWRpdHkoKSBjb250cm9sLmkucmVwb3J0
VmFsaWRpdHkgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY29udHJvbC5pLnJlcG9ydFZhbGlkaXR5
KCknLCAnY29udHJvbC5pLnJlcG9ydFZhbGlkaXR5JyBpcyB1bmRlZmluZWQpCitGQUlMIEN1c3Rv
bSBjb250cm9sIGFmZmVjdHMgdmFsaWRhdGlvbiBhdCB0aGUgb3duZXIgZm9ybSBjb250cm9sLmku
Y2hlY2tWYWxpZGl0eSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdjb250cm9sLmkuY2hlY2tWYWxp
ZGl0eSgpJywgJ2NvbnRyb2wuaS5jaGVja1ZhbGlkaXR5JyBpcyB1bmRlZmluZWQpCitGQUlMIEN1
c3RvbSBjb250cm9sIGFmZmVjdHMgOnZhbGlkIDppbnZhbGlkIGZvciBGT1JNIGFuZCBGSUVMRFNF
VCBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9y
bS1hc3NvY2lhdGVkL0VsZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi5odG1sCmluZGV4IDJiOGZk
NmFmYWRmZC4uNDg5MGNlZTcyMTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxl
bWVudEludGVybmFscy12YWxpZGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL0Vs
ZW1lbnRJbnRlcm5hbHMtdmFsaWRhdGlvbi5odG1sCkBAIC04NSwyMCArODUsNiBAQCB0ZXN0KCgp
ID0+IHsKICAgYXNzZXJ0X2ZhbHNlKGNvbnRyb2xzWzRdLmkud2lsbFZhbGlkYXRlLCAnaW4gZGlz
YWJsZWQgZmllbGRzZXQnKTsKIH0sICd3aWxsVmFsaWRhdGUgYWZ0ZXIgdXBncmFkZScpOwogCi10
ZXN0KHQgPT4gewotICBjb25zdCBjb250cm9sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnd2ls
bC1iZS1kZWZpbmVkLTInKTsKLQotICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3dpbGwtYmUtZGVm
aW5lZC0yJywgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgc3RhdGljIGdldCBmb3Jt
QXNzb2NpYXRlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgfSk7Ci0KLSAgY29udGFpbmVyLmFwcGVu
ZChjb250cm9sKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IGNvbnRhaW5lci5pbm5lckhUTUwg
PSAnJzsgfSk7Ci0KLSAgY29uc3QgaSA9IGNvbnRyb2wuYXR0YWNoSW50ZXJuYWxzKCk7Ci0gIGFz
c2VydF90cnVlKGkud2lsbFZhbGlkYXRlKTsKLX0sICd3aWxsVmFsaWRhdGUgYWZ0ZXIgdXBncmFk
ZSAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCknKTsKLQogdGVzdCgoKSA9PiB7CiAgIGNvbnN0IGVs
ZW1lbnQgPSBuZXcgTm90Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCk7CiAgIGFzc2VydF90aHJvd3Nf
ZG9tKCdOb3RTdXBwb3J0ZWRFcnJvcicsICgpID0+IGVsZW1lbnQuaS53aWxsVmFsaWRhdGUpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
dXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2ZpZWxkc2V0LWVsZW1lbnRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9maWVsZHNldC1lbGVtZW50cy1leHBlY3RlZC50eHQK
aW5kZXggN2ZhNTI5MWIxZTY1Li4wYzMzNzgyMzZlOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC9maWVsZHNldC1lbGVtZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3Nv
Y2lhdGVkL2ZpZWxkc2V0LWVsZW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAog
Ci1QQVNTIEZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMgc2hvdWxkIHdvcmsgd2l0aCBm
aWVsZHNldC5lbGVtZW50cworRkFJTCBGb3JtIGFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHNo
b3VsZCB3b3JrIHdpdGggZmllbGRzZXQuZWxlbWVudHMgYXNzZXJ0X2FycmF5X2VxdWFsczogVGhl
IGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uIG11c3QgYmUgY2hpbGRyZW4gb2YgdGhlIGlubmVyIGZp
ZWxkc2V0IGVsZW1lbnQuIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbdW5kZWZpbmVk
XSBsZW5ndGggMSwgZ290IG9iamVjdCAiW29iamVjdCBIVE1MQ29sbGVjdGlvbl0iIGxlbmd0aCAw
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWFzc29jaWF0ZWQtY2FsbGJh
Y2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0tYXNzb2NpYXRlZC1jYWxs
YmFjay1leHBlY3RlZC50eHQKaW5kZXggOGExZGRlZGE0MDQ4Li5jODJmYWEzZjM0YzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWFzc29jaWF0ZWQtY2FsbGJhY2stZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWFzc29jaWF0ZWQtY2FsbGJhY2st
ZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1QQVNTIEFzc29jaWF0ZSBieSBwYXJzZXIs
IGN1c3RvbWl6ZWQgYXQgZWxlbWVudCBjcmVhdGlvbgotUEFTUyBQYXJzZWQsIGNvbm5lY3RlZCwg
dGhlbiB1cGdyYWRlZAotUEFTUyBEaXNhc3NvY2lhdGlvbgotUEFTUyBVcGRhdGluZyAiZm9ybSIg
Y29udGVudCBhdHRyaWJ1dGUKLVBBU1MgVXBkYXRpbmcgImlkIiBhdHRyaWJ1dGUgb2YgZm9ybSBl
bGVtZW50CitGQUlMIEFzc29jaWF0ZSBieSBwYXJzZXIsIGN1c3RvbWl6ZWQgYXQgZWxlbWVudCBj
cmVhdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAzIGJ1dCBnb3QgMgorRkFJTCBQYXJzZWQs
IGNvbm5lY3RlZCwgdGhlbiB1cGdyYWRlZCBhc3NlcnRfZXF1YWxzOiBmb3JtLmVsZW1lbnRzLmxl
bmd0aCBleHBlY3RlZCAzIGJ1dCBnb3QgMgorRkFJTCBEaXNhc3NvY2lhdGlvbiBhc3NlcnRfZXF1
YWxzOiBmb3JtLmVsZW1lbnRzLmxlbmd0aCBiZWZvcmUgcmVtb3ZhbCBleHBlY3RlZCAzIGJ1dCBn
b3QgMgorRkFJTCBVcGRhdGluZyAiZm9ybSIgY29udGVudCBhdHRyaWJ1dGUgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAor
RkFJTCBVcGRhdGluZyAiaWQiIGF0dHJpYnV0ZSBvZiBmb3JtIGVsZW1lbnQgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvZm9ybS1kaXNhYmxlZC1jYWxsYmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvZm9ybS1kaXNhYmxlZC1jYWxsYmFjay1l
eHBlY3RlZC50eHQKaW5kZXggNWRiM2JlNTUwYTJiLi44N2RlMzZkNmM3M2IgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWRpc2FibGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvZm9ybS1kaXNhYmxlZC1jYWxsYmFjay1leHBlY3RlZC50
eHQKQEAgLTEsMTEgKzEsMTcgQEAKK0NPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiB0aGlzLmlu
dGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUoJ215LWNvbnRyb2wtdmFsdWUnKScsICd0aGlzLmludGVybmFsc18u
c2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpCitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjog
dGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlz
LmludGVybmFsc18uc2V0Rm9ybVZhbHVlKCdteS1jb250cm9sLXZhbHVlJyknLCAndGhpcy5pbnRl
cm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKQorQ09OU09MRSBNRVNTQUdFOiBUeXBl
RXJyb3I6IHRoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSgnbXktY29udHJvbC12YWx1ZScpJywgJ3Ro
aXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkKK0NPTlNPTEUgTUVTU0FH
RTogVHlwZUVycm9yOiB0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3RoaXMuaW50ZXJuYWxzXy5zZXRGb3JtVmFsdWUoJ215LWNvbnRyb2wtdmFsdWUn
KScsICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlJyBpcyB1bmRlZmluZWQpCitDT05TT0xF
IE1FU1NBR0U6IFR5cGVFcnJvcjogdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZSBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKCdteS1jb250cm9s
LXZhbHVlJyknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5kZWZpbmVkKQog
CiAKIAorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBUeXBlRXJyb3I6IHRoaXMuaW50
ZXJuYWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5h
bHNfLnNldEZvcm1WYWx1ZSgnbXktY29udHJvbC12YWx1ZScpJywgJ3RoaXMuaW50ZXJuYWxzXy5z
ZXRGb3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkKIAotUEFTUyBBZGRpbmcvcmVtb3ZpbmcgZGlzYWJs
ZWQgY29udGVudCBhdHRyaWJ1dGUKLVBBU1MgUmVsYXRpb25zaGlwIHdpdGggRklFTERTRVQKK0ZB
SUwgQWRkaW5nL3JlbW92aW5nIGRpc2FibGVkIGNvbnRlbnQgYXR0cmlidXRlIHRoaXMuaW50ZXJu
YWxzXy5zZXRGb3JtVmFsdWUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndGhpcy5pbnRlcm5hbHNf
LnNldEZvcm1WYWx1ZSgnbXktY29udHJvbC12YWx1ZScpJywgJ3RoaXMuaW50ZXJuYWxzXy5zZXRG
b3JtVmFsdWUnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgUmVsYXRpb25zaGlwIHdpdGggRklFTERTRVQg
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIEEgZGlzYWJsZWQgZm9y
bS1hc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50IHNob3VsZCBub3QgcHJvdmlkZSBhbiBlbnRyeSBm
b3IgaXQKLVBBU1MgQSBkaXNhYmxlZCBmb3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnQgc2hv
dWxkIG5vdCBzdWJtaXQgYW4gZW50cnkgZm9yIGl0Ci1QQVNTIERpc2FibGVkIGF0dHJpYnV0ZSBh
ZmZlY3RzIGZvY3VzLWNhcGFiaWxpdHkKLVBBU1MgVXBncmFkaW5nIGFuIGVsZW1lbnQgd2l0aCBk
aXNhYmxlZCBjb250ZW50IGF0dHJpYnV0ZQorRkFJTCBBIGRpc2FibGVkIGZvcm0tYXNzb2NpYXRl
ZCBjdXN0b20gZWxlbWVudCBzaG91bGQgbm90IHN1Ym1pdCBhbiBlbnRyeSBmb3IgaXQgYXNzZXJ0
X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIERpc2FibGVkIGF0dHJp
YnV0ZSBhZmZlY3RzIGZvY3VzLWNhcGFiaWxpdHkgdGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1
ZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICd0aGlzLmludGVybmFsc18uc2V0Rm9ybVZhbHVlKCdt
eS1jb250cm9sLXZhbHVlJyknLCAndGhpcy5pbnRlcm5hbHNfLnNldEZvcm1WYWx1ZScgaXMgdW5k
ZWZpbmVkKQorRkFJTCBVcGdyYWRpbmcgYW4gZWxlbWVudCB3aXRoIGRpc2FibGVkIGNvbnRlbnQg
YXR0cmlidXRlIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzIHVuZGVmaW5lZCwgZXhwZWN0
ZWQgYXJyYXkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0tZWxlbWVudHMt
bmFtZWRJdGVtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWVsZW1lbnRz
LW5hbWVkSXRlbS1leHBlY3RlZC50eHQKaW5kZXggMWE2ZjRkYTc0MWU0Li5iODNkNjQ3Mzc5ZmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9mb3JtLWVsZW1lbnRzLW5hbWVkSXRlbS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0tZWxlbWVudHMtbmFtZWRJ
dGVtLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotUEFTUyBGb3JtIGFzc29jaWF0ZWQg
Y3VzdG9tIGVsZW1lbnRzIHNob3VsZCB3b3JrIHdpdGggZG9jdW1lbnQuZm9ybXMuZWxlbWVudHMu
bmFtZWRJdGVtKCkKLVBBU1MgRm9ybSBhc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50cyBzaG91bGQg
d29yayB3aXRoIGRvY3VtZW50LmZvcm1zLmVsZW1lbnRzLm5hbWVkSXRlbSgpIGFmdGVyIHVwZ3Jh
ZGluZwotUEFTUyBGb3JtIGFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHNob3VsZCB3b3JrIHdp
dGggZG9jdW1lbnQuZm9ybXMuZWxlbWVudHMubmFtZWRJdGVtKCkgYWZ0ZXIgdXBkYXRpbmcgdGhl
IG5hbWUgYXR0cmlidXRlCitGQUlMIEZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMgc2hv
dWxkIHdvcmsgd2l0aCBkb2N1bWVudC5mb3Jtcy5lbGVtZW50cy5uYW1lZEl0ZW0oKSBhc3NlcnRf
ZXF1YWxzOiBTaW5nbGUgaW5wdXQgc2hvdWxkIGJlIHJldHVybmVkIGFzLWlzIGV4cGVjdGVkIChv
YmplY3QpIEVsZW1lbnQgbm9kZSA8Y3VzdG9tLWlucHV0IGlkPSJjdXN0b20tMSIgbmFtZT0iYWxv
bmUiPjwvY3VzdG9tLWlucHV0PiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBG
b3JtIGFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIHNob3VsZCB3b3JrIHdpdGggZG9jdW1lbnQu
Zm9ybXMuZWxlbWVudHMubmFtZWRJdGVtKCkgYWZ0ZXIgdXBncmFkaW5nIGFzc2VydF9lcXVhbHM6
IFNpbmdsZSBidXR0b24gc2hvdWxkIGJlIHJldHVybmVkIGFmdGVyIHVwZ3JhZGluZyBleHBlY3Rl
ZCAob2JqZWN0KSBFbGVtZW50IG5vZGUgPGN1c3RvbS1idXR0b24gaWQ9ImN1c3RvbS00IiBuYW1l
PSJ1cGdyYWRlIj48L2N1c3RvbS1idXR0b24+IGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
CitGQUlMIEZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMgc2hvdWxkIHdvcmsgd2l0aCBk
b2N1bWVudC5mb3Jtcy5lbGVtZW50cy5uYW1lZEl0ZW0oKSBhZnRlciB1cGRhdGluZyB0aGUgbmFt
ZSBhdHRyaWJ1dGUgYXNzZXJ0X2VxdWFsczogU2luZ2xlIGlucHV0IHNob3VsZCBiZSByZXR1cm5l
ZCBhcy1pcyBleHBlY3RlZCAob2JqZWN0KSBFbGVtZW50IG5vZGUgPGN1c3RvbS1pbnB1dCBpZD0i
Y3VzdG9tLTEiIG5hbWU9ImFsb25lIj48L2N1c3RvbS1pbnB1dD4gYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0tcmVzZXQt
Y2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0tcmVzZXQtY2Fs
bGJhY2stZXhwZWN0ZWQudHh0CmluZGV4IDAyZDNiMGVhOWRhMy4uMGZjNTg0ODFmMmZlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvZm9ybS1yZXNldC1jYWxsYmFjay1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL2Zvcm0tcmVzZXQtY2FsbGJhY2stZXhwZWN0ZWQu
dHh0CkBAIC0xLDcgKzEsNyBAQAogZGVmYXVsdAogCiAKLVBBU1MgZm9ybS5yZXNldCgpIHNob3Vs
ZCB0cmlnZ2VyIGZvcm1SZXNldENhbGxiYWNrCi1QQVNTIGZvcm0ucmVzZXQoKTogZm9ybVJlc2V0
Q2FsbGJhY2sgaXMgY2FsbGVkIGFmdGVyIHJlc2V0IG9mIHRoZSBsYXN0IGJ1aWx0LWluIGZvcm0g
Y29udHJvbCBhbmQgYmVmb3JlIHRoZSBuZXh0IHN0YXRlbWVudC4KLVBBU1MgQ2xpY2tpbmcgYSBy
ZXNldCBidXR0b24gaW52b2tlcyBmb3JtUmVzZXRDYWxsYmFjayBpbiBhIG1pY3JvdGFzaworRkFJ
TCBmb3JtLnJlc2V0KCkgc2hvdWxkIHRyaWdnZXIgZm9ybVJlc2V0Q2FsbGJhY2sgYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIGZvcm0ucmVzZXQoKTogZm9ybVJlc2V0
Q2FsbGJhY2sgaXMgY2FsbGVkIGFmdGVyIHJlc2V0IG9mIHRoZSBsYXN0IGJ1aWx0LWluIGZvcm0g
Y29udHJvbCBhbmQgYmVmb3JlIHRoZSBuZXh0IHN0YXRlbWVudC4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIENsaWNraW5nIGEgcmVzZXQgYnV0dG9uIGludm9rZXMg
Zm9ybVJlc2V0Q2FsbGJhY2sgaW4gYSBtaWNyb3Rhc2sgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9sYWJlbC1kZWxl
Z2F0ZXNGb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdh
dGVzRm9jdXMtZXhwZWN0ZWQudHh0CmluZGV4IDExNDk4NmRkY2NjNC4uMTFiOGZmZjdlOGUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1
c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9sYWJlbC1kZWxlZ2F0ZXNGb2N1cy1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw2IEBACiBsYWJlbAogCi1QQVNTIENsaWNraW5nIG9uIGEgbGFi
ZWwgZm9yIGEgZm9ybSBhc3NvY2lhdGVkIGN1c3RvbSBlbGVtZW50IHdpdGggZGVsZWdhdGVzRm9j
dXMgc2hvdWxkIGZvY3VzIHRoZSBjdXN0b20gZWxlbWVudCdzIGZvY3VzIGRlbGVnYXRlLgorRkFJ
TCBDbGlja2luZyBvbiBhIGxhYmVsIGZvciBhIGZvcm0gYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVu
dCB3aXRoIGRlbGVnYXRlc0ZvY3VzIHNob3VsZCBmb2N1cyB0aGUgY3VzdG9tIGVsZW1lbnQncyBm
b2N1cyBkZWxlZ2F0ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxteS1j
dXN0b20tZWxlbWVudCBpZD0iY3VzdG9tIj48L215LWN1c3RvbS1lbGVtZW50PiBidXQgZ290IEVs
ZW1lbnQgbm9kZSA8Ym9keT48Zm9ybT4KKyAgPGxhYmVsIGZvcj0iY3VzdG9tIj5sYWJlbDwvbGFi
ZWw+CisgIDxteS1jdS4uLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFk
aW5nL2F0dHItY29uc3RydWN0b3ItZGlzYWJsZWQudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rvci1kaXNhYmxlZC50ZW50
YXRpdmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDE0YzIz
NDFlZTUuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0
dHItY29uc3RydWN0b3ItZGlzYWJsZWQudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTICJkaXNhYmxlZCIgYXR0cmlidXRlIHNldCBpbiBj
b25zdHJ1Y3RvciBkb2Vzbid0IGFmZmVjdCBjb25zdHJhaW50IHZhbGlkYXRpb24gaW4gcHJlY3Vz
dG9taXplZCBzdGF0ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5n
L2F0dHItY29uc3RydWN0b3ItZGlzYWJsZWQudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29j
aWF0ZWQvdXBncmFkaW5nL2F0dHItY29uc3RydWN0b3ItZGlzYWJsZWQudGVudGF0aXZlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzMjFjMmNlZTVlOS4uMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1jb25zdHJ1Y3Rvci1kaXNh
YmxlZC50ZW50YXRpdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPiJkaXNhYmxlZCIgYXR0
cmlidXRlIHNldCBpbiBjb25zdHJ1Y3RvciBkb2Vzbid0IGFmZmVjdCBjb25zdHJhaW50IHZhbGlk
YXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxmb3JtIGlkPSJ0aGVGb3JtIj4KLSAg
ICA8eC1mb28+PC94LWZvbz4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXRlc3QoKCkgPT4gewotICAg
IGNvbnN0IGNhbGxiYWNrSGlzdG9yeSA9IFtdOwotCi0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBzdGF0aWMgZm9y
bUFzc29jaWF0ZWQgPSB0cnVlOwotCi0gICAgICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAgICAg
ICAgc3VwZXIoKTsKLQotICAgICAgICAgICAgd2luZG93LmVsID0gdGhpczsKLSAgICAgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpOwotCi0gICAgICAgICAg
ICB0aGlzLnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7Ci0KLSAgICAgICAgICAgIHdpbmRv
dy53aWxsVmFsaWRhdGVJbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTsKLSAg
ICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRj
aGVzKCI6ZGlzYWJsZWQiKTsKLSAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRW5hYmxlZEluQ29u
c3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjplbmFibGVkIik7Ci0gICAgICAgICAgICB3aW5kb3cu
bWF0Y2hlc1ZhbGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOnZhbGlkIik7Ci0gICAg
ICAgICAgICB3aW5kb3cubWF0Y2hlc0ludmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVz
KCI6aW52YWxpZCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybUFzc29jaWF0ZWRDYWxsYmFj
ayhmb3JtKSB7Ci0gICAgICAgICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9ybUFzc29jaWF0
ZWRDYWxsYmFjazogJHtmb3JtLmlkfWApOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybURpc2Fi
bGVkQ2FsbGJhY2soaXNEaXNhYmxlZCkgewotICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1
c2goYGZvcm1EaXNhYmxlZENhbGxiYWNrOiAke2lzRGlzYWJsZWR9YCk7Ci0gICAgICAgIH0KLSAg
ICB9KTsKLQotICAgIGFzc2VydF90cnVlKHdpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3IpOwotICAg
IGFzc2VydF9mYWxzZShtYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRf
ZmFsc2UobWF0Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0
Y2hlc1ZhbGlkSW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNJbnZhbGlk
SW5Db25zdHJ1Y3Rvcik7Ci0KLSAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLndpbGxWYWxpZGF0
ZSk7Ci0gICAgYXNzZXJ0X3RydWUoZWwubWF0Y2hlcygiOmRpc2FibGVkIikpOwotICAgIGFzc2Vy
dF9mYWxzZShlbC5tYXRjaGVzKCI6ZW5hYmxlZCIpKTsKLSAgICBhc3NlcnRfZmFsc2UoZWwubWF0
Y2hlcygiOnZhbGlkIikpOwotICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6aW52YWxpZCIp
KTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0b3J5LCBbImZvcm1Bc3Nv
Y2lhdGVkQ2FsbGJhY2s6IHRoZUZvcm0iLCAiZm9ybURpc2FibGVkQ2FsbGJhY2s6IHRydWUiXSk7
Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGlu
Zy9hdHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItY29uc3RydWN0b3ItcmVhZG9ubHkudGVudGF0
aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhlMzgwNzMw
ODBkLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRy
LWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwzICswLDAgQEAKLQotUEFTUyAicmVhZG9ubHkiIGF0dHJpYnV0ZSBzZXQgaW4gY29u
c3RydWN0b3IgZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0aW9uIGluIHByZWN1c3Rv
bWl6ZWQgc3RhdGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9h
dHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL3VwZ3JhZGluZy9hdHRyLWNvbnN0cnVjdG9yLXJlYWRvbmx5LnRlbnRhdGl2ZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmFhMzVlMjdiZDUuLjAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2F0dHItY29uc3RydWN0b3ItcmVhZG9u
bHkudGVudGF0aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT4icmVhZG9ubHkiIGF0dHJp
YnV0ZSBzZXQgaW4gY29uc3RydWN0b3IgZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0
aW9uIGluIHByZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08Zm9ybSBpZD0idGhlRm9ybSI+Ci0gICAg
PHgtZm9vPjwveC1mb28+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci10ZXN0KCgpID0+IHsKLSAgICBj
b25zdCBjYWxsYmFja0hpc3RvcnkgPSBbXTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgi
eC1mb28iLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgc3RhdGljIGZvcm1B
c3NvY2lhdGVkID0gdHJ1ZTsKLQotICAgICAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgICAg
IHN1cGVyKCk7Ci0KLSAgICAgICAgICAgIHdpbmRvdy5lbCA9IHRoaXM7Ci0gICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMoKTsKLQotICAgICAgICAgICAg
dGhpcy5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgIiIpOwotCi0gICAgICAgICAgICB3aW5kb3cu
d2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3RvciA9IGludGVybmFscy53aWxsVmFsaWRhdGU7Ci0gICAg
ICAgICAgICB3aW5kb3cubWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hl
cygiOmRpc2FibGVkIik7Ci0gICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0VuYWJsZWRJbkNvbnN0
cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6ZW5hYmxlZCIpOwotICAgICAgICAgICAgd2luZG93Lm1h
dGNoZXNWYWxpZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjp2YWxpZCIpOwotICAgICAg
ICAgICAgd2luZG93Lm1hdGNoZXNJbnZhbGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygi
OmludmFsaWQiKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2so
Zm9ybSkgewotICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1c2goYGZvcm1Bc3NvY2lhdGVk
Q2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcm1EaXNhYmxl
ZENhbGxiYWNrKGlzRGlzYWJsZWQpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNo
KGBmb3JtRGlzYWJsZWRDYWxsYmFjazogJHtpc0Rpc2FibGVkfWApOwotICAgICAgICB9Ci0gICAg
fSk7Ci0KLSAgICBhc3NlcnRfdHJ1ZSh3aWxsVmFsaWRhdGVJbkNvbnN0cnVjdG9yKTsKLSAgICBh
c3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2Zh
bHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNo
ZXNWYWxpZEluQ29uc3RydWN0b3IpOwotICAgIGFzc2VydF9mYWxzZShtYXRjaGVzSW52YWxpZElu
Q29uc3RydWN0b3IpOwotCi0gICAgYXNzZXJ0X2ZhbHNlKGludGVybmFscy53aWxsVmFsaWRhdGUp
OwotICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6ZGlzYWJsZWQiKSk7Ci0gICAgYXNzZXJ0
X3RydWUoZWwubWF0Y2hlcygiOmVuYWJsZWQiKSk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNo
ZXMoIjp2YWxpZCIpKTsKLSAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygiOmludmFsaWQiKSk7
Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNzb2Np
YXRlZENhbGxiYWNrOiB0aGVGb3JtIl0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItZGlzYWJsZWQudGVudGF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXIt
ZGlzYWJsZWQudGVudGF0aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYWE5NjAwYmM0MTE5Li4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVk
L3VwZ3JhZGluZy9hdHRyLXBhcnNlci1kaXNhYmxlZC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgImRpc2FibGVkIiBhdHRyaWJ1dGUg
ZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0aW9uIGluIHByZWN1c3RvbWl6ZWQgc3Rh
dGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNl
ci1kaXNhYmxlZC50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcv
YXR0ci1wYXJzZXItZGlzYWJsZWQudGVudGF0aXZlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU3OTJiYzIwNTBhMy4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2Np
YXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItZGlzYWJsZWQudGVudGF0aXZlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT4iZGlzYWJsZWQiIGF0dHJpYnV0ZSBkb2Vzbid0IGFmZmVjdCBjb25z
dHJhaW50IHZhbGlkYXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxmb3JtIGlkPSJ0
aGVGb3JtIj4KLSAgICA8eC1mb28gZGlzYWJsZWQ+PC94LWZvbz4KLTwvZm9ybT4KLQotPHNjcmlw
dD4KLXRlc3QoKCkgPT4gewotICAgIGNvbnN0IGNhbGxiYWNrSGlzdG9yeSA9IFtdOwotCi0gICAg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQg
ewotICAgICAgICBzdGF0aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOwotCi0gICAgICAgIGNvbnN0
cnVjdG9yKCkgewotICAgICAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICAgICAgd2luZG93LmVs
ID0gdGhpczsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVy
bmFscygpOwotCi0gICAgICAgICAgICB3aW5kb3cud2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3RvciA9
IGludGVybmFscy53aWxsVmFsaWRhdGU7Ci0gICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0Rpc2Fi
bGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmRpc2FibGVkIik7Ci0gICAgICAgICAg
ICB3aW5kb3cubWF0Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6ZW5h
YmxlZCIpOwotICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IgPSB0
aGlzLm1hdGNoZXMoIjp2YWxpZCIpOwotICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNJbnZhbGlk
SW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmludmFsaWQiKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2soZm9ybSkgewotICAgICAgICAgICAgY2FsbGJh
Y2tIaXN0b3J5LnB1c2goYGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZvcm1EaXNhYmxlZENhbGxiYWNrKGlzRGlzYWJsZWQpIHsKLSAg
ICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtRGlzYWJsZWRDYWxsYmFjazogJHtp
c0Rpc2FibGVkfWApOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnRfdHJ1ZSh3aWxs
VmFsaWRhdGVJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVk
SW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1
Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOwotICAg
IGFzc2VydF9mYWxzZShtYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IpOwotCi0gICAgYXNzZXJ0
X2ZhbHNlKGludGVybmFscy53aWxsVmFsaWRhdGUpOwotICAgIGFzc2VydF90cnVlKGVsLm1hdGNo
ZXMoIjpkaXNhYmxlZCIpKTsKLSAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygiOmVuYWJsZWQi
KSk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjp2YWxpZCIpKTsKLSAgICBhc3NlcnRf
ZmFsc2UoZWwubWF0Y2hlcygiOmludmFsaWQiKSk7Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiB0aGVGb3JtIiwgImZv
cm1EaXNhYmxlZENhbGxiYWNrOiB0cnVlIl0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItcmVhZG9ubHkudGVudGF0
aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJz
ZXItcmVhZG9ubHkudGVudGF0aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDFmNjBkNzc4YjZkLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL3VwZ3JhZGluZy9hdHRyLXBhcnNlci1yZWFkb25seS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgInJlYWRvbmx5IiBhdHRyaWJ1
dGUgZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0aW9uIGluIHByZWN1c3RvbWl6ZWQg
c3RhdGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9hdHRyLXBh
cnNlci1yZWFkb25seS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRp
bmcvYXR0ci1wYXJzZXItcmVhZG9ubHkudGVudGF0aXZlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRkMTVlODM1MDI3OS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC91cGdyYWRpbmcvYXR0ci1wYXJzZXItcmVhZG9ubHkudGVudGF0aXZlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT4icmVhZG9ubHkiIGF0dHJpYnV0ZSBkb2Vzbid0IGFmZmVjdCBj
b25zdHJhaW50IHZhbGlkYXRpb24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxmb3JtIGlk
PSJ0aGVGb3JtIj4KLSAgICA8eC1mb28gcmVhZG9ubHk+PC94LWZvbz4KLTwvZm9ybT4KLQotPHNj
cmlwdD4KLXRlc3QoKCkgPT4gewotICAgIGNvbnN0IGNhbGxiYWNrSGlzdG9yeSA9IFtdOwotCi0g
ICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1l
bnQgewotICAgICAgICBzdGF0aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOwotCi0gICAgICAgIGNv
bnN0cnVjdG9yKCkgewotICAgICAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICAgICAgd2luZG93
LmVsID0gdGhpczsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaElu
dGVybmFscygpOwotCi0gICAgICAgICAgICB3aW5kb3cud2lsbFZhbGlkYXRlSW5Db25zdHJ1Y3Rv
ciA9IGludGVybmFscy53aWxsVmFsaWRhdGU7Ci0gICAgICAgICAgICB3aW5kb3cubWF0Y2hlc0Rp
c2FibGVkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmRpc2FibGVkIik7Ci0gICAgICAg
ICAgICB3aW5kb3cubWF0Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6
ZW5hYmxlZCIpOwotICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3Ig
PSB0aGlzLm1hdGNoZXMoIjp2YWxpZCIpOwotICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNJbnZh
bGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmludmFsaWQiKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2soZm9ybSkgewotICAgICAgICAgICAgY2Fs
bGJhY2tIaXN0b3J5LnB1c2goYGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGZvcm1EaXNhYmxlZENhbGxiYWNrKGlzRGlzYWJsZWQpIHsK
LSAgICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtRGlzYWJsZWRDYWxsYmFjazog
JHtpc0Rpc2FibGVkfWApOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnRfdHJ1ZSh3
aWxsVmFsaWRhdGVJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2Fi
bGVkSW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25z
dHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOwot
ICAgIGFzc2VydF9mYWxzZShtYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IpOwotCi0gICAgYXNz
ZXJ0X2ZhbHNlKGludGVybmFscy53aWxsVmFsaWRhdGUpOwotICAgIGFzc2VydF9mYWxzZShlbC5t
YXRjaGVzKCI6ZGlzYWJsZWQiKSk7Ci0gICAgYXNzZXJ0X3RydWUoZWwubWF0Y2hlcygiOmVuYWJs
ZWQiKSk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjp2YWxpZCIpKTsKLSAgICBhc3Nl
cnRfZmFsc2UoZWwubWF0Y2hlcygiOmludmFsaWQiKSk7Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGNhbGxiYWNrSGlzdG9yeSwgWyJmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiB0aGVGb3JtIl0p
OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRp
bmcvY29uc3RydWN0b3ItZm9ybS1maWVsZHNldC1lbGVtZW50cy50ZW50YXRpdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLWZpZWxk
c2V0LWVsZW1lbnRzLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE1MGYxODU1MGEyMy4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2Np
YXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9ybS1maWVsZHNldC1lbGVtZW50cy50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLQotUEFTUyBG
b3JtLWFzc29jaWF0ZWQgY3VzdG9tIGVsZW1lbnRzIGRvbid0IGdldCBlbnVtZXJhdGVkIGluIGZv
cm0gLyBmaWVsZHNldCBjb2xsZWN0aW9ucyBpbiBwcmVjdXN0b21pemVkIHN0YXRlCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3ItZm9ybS1maWVs
ZHNldC1lbGVtZW50cy50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRp
bmcvY29uc3RydWN0b3ItZm9ybS1maWVsZHNldC1lbGVtZW50cy50ZW50YXRpdmUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM1ZmM5MjYxNDVkLi4wMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1mb3JtLWZpZWxkc2V0
LWVsZW1lbnRzLnRlbnRhdGl2ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+Rm9ybS1hc3Nv
Y2lhdGVkIGN1c3RvbSBlbGVtZW50cyBkb24ndCBnZXQgZW51bWVyYXRlZCBpbiBmb3JtIC8gZmll
bGRzZXQgY29sbGVjdGlvbnMgaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxmb3JtIGlkPSJ0
aGVGb3JtIj4KLSAgICA8ZmllbGRzZXQgaWQ9InRoZUZpZWxkc2V0Ij4KLSAgICAgICAgPHgtZm9v
PjwveC1mb28+Ci0gICAgPC9maWVsZHNldD4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXRlc3QoKCkg
PT4gewotICAgIGNvbnN0IGNhbGxiYWNrSGlzdG9yeSA9IFtdOwotCi0gICAgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBz
dGF0aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOwotCi0gICAgICAgIGNvbnN0cnVjdG9yKCkgewot
ICAgICAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICAgICAgd2luZG93LmZvcm1FbGVtZW50c0xl
bmd0aEluQ29uc3RydWN0b3IgPSB0aGVGb3JtLmVsZW1lbnRzLmxlbmd0aDsKLSAgICAgICAgICAg
IHdpbmRvdy5mb3JtTGVuZ3RoSW5Db25zdHJ1Y3RvciA9IHRoZUZvcm0ubGVuZ3RoOwotICAgICAg
ICAgICAgd2luZG93LmZpZWxkc2V0RWxlbWVudHNMZW5ndGhJbkNvbnN0cnVjdG9yID0gdGhlRmll
bGRzZXQuZWxlbWVudHMubGVuZ3RoOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybUFzc29jaWF0
ZWRDYWxsYmFjayhmb3JtKSB7Ci0gICAgICAgICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9y
bUFzc29jaWF0ZWRDYWxsYmFjazogJHtmb3JtLmlkfWApOwotICAgICAgICB9Ci0gICAgfSk7Ci0K
LSAgICBhc3NlcnRfZXF1YWxzKGZvcm1FbGVtZW50c0xlbmd0aEluQ29uc3RydWN0b3IsIDEpOwot
ICAgIGFzc2VydF9lcXVhbHMoZm9ybUxlbmd0aEluQ29uc3RydWN0b3IsIDEpOwotICAgIGFzc2Vy
dF9lcXVhbHMoZmllbGRzZXRFbGVtZW50c0xlbmd0aEluQ29uc3RydWN0b3IsIDApOwotCi0gICAg
YXNzZXJ0X2VxdWFscyh0aGVGb3JtLmVsZW1lbnRzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0X2Vx
dWFscyh0aGVGb3JtLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0X2VxdWFscyh0aGVGaWVsZHNldC5l
bGVtZW50cy5sZW5ndGgsIDEpOwotCi0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxsYmFja0hp
c3RvcnksIFsiZm9ybUFzc29jaWF0ZWRDYWxsYmFjazogdGhlRm9ybSJdKTsKLX0pOwotPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9y
LWZvcm0udGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRp
bmcvY29uc3RydWN0b3ItZm9ybS50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjNWVhZjYyMGFiZDQuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3Jt
LWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLWZvcm0udGVudGF0aXZlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIEN1c3RvbSBlbGVtZW50
cyBkb24ndCBnZXQgYXNzb2NpYXRlZCB3aXRoIGEgZm9ybSBpbiBwcmVjdXN0b21pemVkIHN0YXRl
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3It
Zm9ybS50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3Ry
dWN0b3ItZm9ybS50ZW50YXRpdmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2M3M2VlZjNjMDAzLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3Jh
ZGluZy9jb25zdHJ1Y3Rvci1mb3JtLnRlbnRhdGl2ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+Q3VzdG9tIGVsZW1lbnRzIGRvbid0IGdldCBhc3NvY2lhdGVkIHdpdGggYSBmb3JtIGluIHBy
ZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotCi08Zm9ybSBpZD0idGhlRm9ybSI+Ci0gICAgPHgtZm9vPjwv
eC1mb28+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci10ZXN0KCgpID0+IHsKLSAgICBjb25zdCBjYWxs
YmFja0hpc3RvcnkgPSBbXTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC1mb28iLCBj
bGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgc3RhdGljIGZvcm1Bc3NvY2lhdGVk
ID0gdHJ1ZTsKLQotICAgICAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgICAgIHN1cGVyKCk7
Ci0KLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygp
OwotICAgICAgICAgICAgd2luZG93LmZvcm1JbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLmZvcm07
Ci0gICAgICAgIH0KLQotICAgICAgICBmb3JtQXNzb2NpYXRlZENhbGxiYWNrKGZvcm0pIHsKLSAg
ICAgICAgICAgIGNhbGxiYWNrSGlzdG9yeS5wdXNoKGBmb3JtQXNzb2NpYXRlZENhbGxiYWNrOiAk
e2Zvcm0uaWR9YCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGFzc2VydF9lcXVhbHMoZm9y
bUluQ29uc3RydWN0b3IsIG51bGwpOwotICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLmZvcm0s
IHRoZUZvcm0pOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0b3J5LCBbImZv
cm1Bc3NvY2lhdGVkQ2FsbGJhY2s6IHRoZUZvcm0iXSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1tb3ZlLWluc2lk
ZS1mb3JtLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFk
aW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5zaWRlLWZvcm0udGVudGF0aXZlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI2M2UwZDM5ZDFkLi4wMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1tb3ZlLWluc2lk
ZS1mb3JtLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBDdXN0b20gZWxlbWVudHMgZG9uJ3QgZ2V0IGFzc29jaWF0ZWQgd2l0aCBhIGZv
cm0gaW4gcHJlY3VzdG9taXplZCBzdGF0ZSAoaW5zZXJ0ZWQgaW50byBpdCBpbiBjb25zdHJ1Y3Rv
cikKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rv
ci1tb3ZlLWluc2lkZS1mb3JtLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3Vw
Z3JhZGluZy9jb25zdHJ1Y3Rvci1tb3ZlLWluc2lkZS1mb3JtLnRlbnRhdGl2ZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzNhZGJkMGQyZWMuLjAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLW1vdmUtaW5zaWRlLWZv
cm0udGVudGF0aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5DdXN0b20gZWxlbWVudHMg
ZG9uJ3QgZ2V0IGFzc29jaWF0ZWQgd2l0aCBhIGZvcm0gaW4gcHJlY3VzdG9taXplZCBzdGF0ZSAo
aW5zZXJ0ZWQgaW50byBpdCBpbiBjb25zdHJ1Y3Rvcik8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08Zm9ybSBpZD0idGhlRm9ybSI+
PC9mb3JtPgotPHgtZm9vPjwveC1mb28+Ci0KLTxzY3JpcHQ+Ci10ZXN0KCgpID0+IHsKLSAgICBj
b25zdCBjYWxsYmFja0hpc3RvcnkgPSBbXTsKLQotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgi
eC1mb28iLCBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgc3RhdGljIGZvcm1B
c3NvY2lhdGVkID0gdHJ1ZTsKLQotICAgICAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgICAg
IHN1cGVyKCk7Ci0KLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaElu
dGVybmFscygpOwotCi0gICAgICAgICAgICB0aGVGb3JtLmFwcGVuZCh0aGlzKTsKLQotICAgICAg
ICAgICAgd2luZG93LmZvcm1JbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLmZvcm07Ci0KLSAgICAg
ICAgICAgIHRoZUZvcm0ucmVzZXQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcm1Bc3NvY2lh
dGVkQ2FsbGJhY2soZm9ybSkgewotICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1c2goYGZv
cm1Bc3NvY2lhdGVkQ2FsbGJhY2s6ICR7Zm9ybS5pZH1gKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGZvcm1SZXNldENhbGxiYWNrKCkgewotICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1c2go
ImZvcm1SZXNldENhbGxiYWNrIik7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGFzc2VydF9l
cXVhbHMoZm9ybUluQ29uc3RydWN0b3IsIG51bGwpOwotICAgIGFzc2VydF9lcXVhbHMoaW50ZXJu
YWxzLmZvcm0sIHRoZUZvcm0pOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0
b3J5LCBbImZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s6IHRoZUZvcm0iXSk7Ci19KTsKLTwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1z
ZXQtZm9ybS1hdHRyLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
dXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RlY2ZlODdlZDI2Li4wMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1zZXQtZm9y
bS1hdHRyLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBDdXN0b20gZWxlbWVudHMgZG9uJ3QgZ2V0IGFzc29jaWF0ZWQgd2l0aCBhIGZv
cm0gaW4gcHJlY3VzdG9taXplZCBzdGF0ZSAoYXNzb2NpYXRlZCB2aWEgYXR0cmlidXRlIGluIGNv
bnN0cnVjdG9yKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2Nv
bnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0
ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldC1mb3JtLWF0dHIudGVudGF0aXZlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNzc4ZTU3OTI4ZS4uMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvY29uc3RydWN0b3Itc2V0LWZvcm0tYXR0
ci50ZW50YXRpdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkN1c3RvbSBlbGVtZW50cyBk
b24ndCBnZXQgYXNzb2NpYXRlZCB3aXRoIGEgZm9ybSBpbiBwcmVjdXN0b21pemVkIHN0YXRlIChh
c3NvY2lhdGVkIHZpYSBhdHRyaWJ1dGUgaW4gY29uc3RydWN0b3IpPC90aXRsZT4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLQotPGZvcm0gaWQ9InRo
ZUZvcm0iPjwvZm9ybT4KLTx4LWZvbz48L3gtZm9vPgotCi08c2NyaXB0PgotdGVzdCgoKSA9PiB7
Ci0gICAgY29uc3QgY2FsbGJhY2tIaXN0b3J5ID0gW107Ci0KLSAgICBjdXN0b21FbGVtZW50cy5k
ZWZpbmUoIngtZm9vIiwgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHN0YXRp
YyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7Ci0KLSAgICAgICAgY29uc3RydWN0b3IoKSB7Ci0gICAg
ICAgICAgICBzdXBlcigpOwotCi0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzID0gdGhpcy5h
dHRhY2hJbnRlcm5hbHMoKTsKLQotICAgICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoImZvcm0i
LCAidGhlRm9ybSIpOwotCi0gICAgICAgICAgICB3aW5kb3cuZm9ybUluQ29uc3RydWN0b3IgPSBp
bnRlcm5hbHMuZm9ybTsKLQotICAgICAgICAgICAgdGhlRm9ybS5yZXNldCgpOwotICAgICAgICB9
Ci0KLSAgICAgICAgZm9ybUFzc29jaWF0ZWRDYWxsYmFjayhmb3JtKSB7Ci0gICAgICAgICAgICBj
YWxsYmFja0hpc3RvcnkucHVzaChgZm9ybUFzc29jaWF0ZWRDYWxsYmFjazogJHtmb3JtLmlkfWAp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybVJlc2V0Q2FsbGJhY2soKSB7Ci0gICAgICAgICAg
ICBjYWxsYmFja0hpc3RvcnkucHVzaCgiZm9ybVJlc2V0Q2FsbGJhY2siKTsKLSAgICAgICAgfQot
ICAgIH0pOwotCi0gICAgYXNzZXJ0X2VxdWFscyhmb3JtSW5Db25zdHJ1Y3RvciwgbnVsbCk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMuZm9ybSwgdGhlRm9ybSk7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxsYmFja0hpc3RvcnksIFsiZm9ybUFzc29jaWF0ZWRDYWxsYmFjazogdGhl
Rm9ybSJdKTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQv
dXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldFZhbGlkaXR5LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldFZhbGlkaXR5LnRl
bnRhdGl2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwZjg0
Y2NjYWFmYS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcv
Y29uc3RydWN0b3Itc2V0VmFsaWRpdHkudGVudGF0aXZlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIHNldFZhbGlkaXR5KCkgd29ya3MgYXMgZXhwZWN0
ZWQgaW4gcHJlY3VzdG9taXplZCBzdGF0ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0
ZWQvdXBncmFkaW5nL2NvbnN0cnVjdG9yLXNldFZhbGlkaXR5LnRlbnRhdGl2ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1zZXRWYWxpZGl0eS50ZW50YXRp
dmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg5YWI5OWZmN2Y0Li4wMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9jb25zdHJ1Y3Rvci1z
ZXRWYWxpZGl0eS50ZW50YXRpdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPnNldFZhbGlk
aXR5KCkgd29ya3MgYXMgZXhwZWN0ZWQgaW4gcHJlY3VzdG9taXplZCBzdGF0ZTwvdGl0bGU+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTx4LWZv
bz48L3gtZm9vPgotCi08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCJ4LWZvbyIsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgewotICAgICAgICBzdGF0
aWMgZm9ybUFzc29jaWF0ZWQgPSB0cnVlOwotCi0gICAgICAgIGNvbnN0cnVjdG9yKCkgewotICAg
ICAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICAgICAgd2luZG93LmVsID0gdGhpczsKLSAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMgPSB0aGlzLmF0dGFjaEludGVybmFscygpOwotCi0gICAg
ICAgICAgICBpbnRlcm5hbHMuc2V0VmFsaWRpdHkoe2N1c3RvbUVycm9yOiB0cnVlfSwgImZvbyIp
OwotCi0gICAgICAgICAgICB3aW5kb3cudmFsaWRJbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLnZh
bGlkaXR5LnZhbGlkOwotICAgICAgICAgICAgd2luZG93LnZhbGlkYXRpb25NZXNzYWdlSW5Db25z
dHJ1Y3RvciA9IGludGVybmFscy52YWxpZGF0aW9uTWVzc2FnZTsKLQotICAgICAgICAgICAgd2lu
ZG93LndpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3IgPSBpbnRlcm5hbHMud2lsbFZhbGlkYXRlOwot
ICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNEaXNhYmxlZEluQ29uc3RydWN0b3IgPSB0aGlzLm1h
dGNoZXMoIjpkaXNhYmxlZCIpOwotICAgICAgICAgICAgd2luZG93Lm1hdGNoZXNFbmFibGVkSW5D
b25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOmVuYWJsZWQiKTsKLSAgICAgICAgICAgIHdpbmRv
dy5tYXRjaGVzVmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6dmFsaWQiKTsKLSAg
ICAgICAgICAgIHdpbmRvdy5tYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IgPSB0aGlzLm1hdGNo
ZXMoIjppbnZhbGlkIik7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGFzc2VydF9mYWxzZSh2
YWxpZEluQ29uc3RydWN0b3IpOwotICAgIGFzc2VydF9lcXVhbHModmFsaWRhdGlvbk1lc3NhZ2VJ
bkNvbnN0cnVjdG9yLCAiZm9vIik7Ci0KLSAgICBhc3NlcnRfdHJ1ZSh3aWxsVmFsaWRhdGVJbkNv
bnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc0Rpc2FibGVkSW5Db25zdHJ1Y3Rv
cik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNFbmFibGVkSW5Db25zdHJ1Y3Rvcik7Ci0gICAg
YXNzZXJ0X2ZhbHNlKG1hdGNoZXNWYWxpZEluQ29uc3RydWN0b3IpOwotICAgIGFzc2VydF9mYWxz
ZShtYXRjaGVzSW52YWxpZEluQ29uc3RydWN0b3IpOwotCi0gICAgYXNzZXJ0X2ZhbHNlKGludGVy
bmFscy52YWxpZGl0eS52YWxpZCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMudmFsaWRh
dGlvbk1lc3NhZ2UsICJmb28iKTsKLQotICAgIGFzc2VydF90cnVlKGludGVybmFscy53aWxsVmFs
aWRhdGUpOwotICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6ZGlzYWJsZWQiKSk7Ci0gICAg
YXNzZXJ0X3RydWUoZWwubWF0Y2hlcygiOmVuYWJsZWQiKSk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGVs
Lm1hdGNoZXMoIjp2YWxpZCIpKTsKLSAgICBhc3NlcnRfdHJ1ZShlbC5tYXRjaGVzKCI6aW52YWxp
ZCIpKTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBn
cmFkaW5nL2luc2lkZS1kYXRhbGlzdC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1h
c3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU3NTA3NDcxZTA4Li4wMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IGRhdGFsaXN0IGFuY2VzdG9yIGRvZXNuJ3QgYWZmZWN0IGNvbnN0cmFpbnQgdmFsaWRhdGlvbiBp
biBwcmVjdXN0b21pemVkIHN0YXRlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91
cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0LnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lh
dGVkL3VwZ3JhZGluZy9pbnNpZGUtZGF0YWxpc3QudGVudGF0aXZlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI2MWRjMmQ4Y2I4NS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zv
cm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0LnRlbnRhdGl2ZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+ZGF0YWxpc3QgYW5jZXN0b3IgZG9lc24ndCBhZmZlY3QgY29u
c3RyYWludCB2YWxpZGF0aW9uIGluIHByZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxlPgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08Zm9ybSBpZD0i
dGhlRm9ybSI+Ci0gICAgPGRhdGFsaXN0PgotICAgICAgICA8eC1mb28+PC94LWZvbz4KLSAgICA8
L2RhdGFsaXN0PgotPC9mb3JtPgotCi08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29uc3Qg
Y2FsbGJhY2tIaXN0b3J5ID0gW107Ci0KLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtZm9v
IiwgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHN0YXRpYyBmb3JtQXNzb2Np
YXRlZCA9IHRydWU7Ci0KLSAgICAgICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgICAgICBzdXBl
cigpOwotCi0gICAgICAgICAgICB3aW5kb3cuZWwgPSB0aGlzOwotICAgICAgICAgICAgd2luZG93
LmludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7Ci0KLSAgICAgICAgICAgIHdpbmRv
dy53aWxsVmFsaWRhdGVJbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTsKLSAg
ICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRj
aGVzKCI6ZGlzYWJsZWQiKTsKLSAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRW5hYmxlZEluQ29u
c3RydWN0b3IgPSB0aGlzLm1hdGNoZXMoIjplbmFibGVkIik7Ci0gICAgICAgICAgICB3aW5kb3cu
bWF0Y2hlc1ZhbGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOnZhbGlkIik7Ci0gICAg
ICAgICAgICB3aW5kb3cubWF0Y2hlc0ludmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVz
KCI6aW52YWxpZCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybUFzc29jaWF0ZWRDYWxsYmFj
ayhmb3JtKSB7Ci0gICAgICAgICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9ybUFzc29jaWF0
ZWRDYWxsYmFjazogJHtmb3JtLmlkfWApOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybURpc2Fi
bGVkQ2FsbGJhY2soaXNEaXNhYmxlZCkgewotICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1
c2goYGZvcm1EaXNhYmxlZENhbGxiYWNrOiAke2lzRGlzYWJsZWR9YCk7Ci0gICAgICAgIH0KLSAg
ICB9KTsKLQotICAgIGFzc2VydF90cnVlKHdpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3IpOwotICAg
IGFzc2VydF9mYWxzZShtYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRf
ZmFsc2UobWF0Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0
Y2hlc1ZhbGlkSW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNJbnZhbGlk
SW5Db25zdHJ1Y3Rvcik7Ci0KLSAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLndpbGxWYWxpZGF0
ZSk7Ci0gICAgYXNzZXJ0X2ZhbHNlKGVsLm1hdGNoZXMoIjpkaXNhYmxlZCIpKTsKLSAgICBhc3Nl
cnRfdHJ1ZShlbC5tYXRjaGVzKCI6ZW5hYmxlZCIpKTsKLSAgICBhc3NlcnRfZmFsc2UoZWwubWF0
Y2hlcygiOnZhbGlkIikpOwotICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6aW52YWxpZCIp
KTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0b3J5LCBbImZvcm1Bc3Nv
Y2lhdGVkQ2FsbGJhY2s6IHRoZUZvcm0iXSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGlzYWJsZWQtZmllbGRzZXQudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRl
LWRpc2FibGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM3ZWEyYzZlN2VjOC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0t
YXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRpc2FibGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotCi1QQVNTIERpc2Fi
bGVkIGZpZWxkc2V0IGFuY2VzdG9yIGRvZXNuJ3QgYWZmZWN0IGNvbnN0cmFpbnQgdmFsaWRhdGlv
biBpbiBwcmVjdXN0b21pemVkIHN0YXRlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRl
ZC91cGdyYWRpbmcvaW5zaWRlLWRpc2FibGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Zm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUtZGlzYWJsZWQtZmllbGRzZXQudGVudGF0
aXZlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4YTgyMTY5ZjgyOC4uMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRpc2Fi
bGVkLWZpZWxkc2V0LnRlbnRhdGl2ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+RGlzYWJs
ZWQgZmllbGRzZXQgYW5jZXN0b3IgZG9lc24ndCBhZmZlY3QgY29uc3RyYWludCB2YWxpZGF0aW9u
IGluIHByZWN1c3RvbWl6ZWQgc3RhdGU8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08Zm9ybSBpZD0idGhlRm9ybSI+Ci0gICAgPGZp
ZWxkc2V0IGRpc2FibGVkPgotICAgICAgICA8eC1mb28+PC94LWZvbz4KLSAgICA8L2ZpZWxkc2V0
PgotPC9mb3JtPgotCi08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29uc3QgY2FsbGJhY2tI
aXN0b3J5ID0gW107Ci0KLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtZm9vIiwgY2xhc3Mg
ZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRy
dWU7Ci0KLSAgICAgICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgICAgICBzdXBlcigpOwotCi0g
ICAgICAgICAgICB3aW5kb3cuZWwgPSB0aGlzOwotICAgICAgICAgICAgd2luZG93LmludGVybmFs
cyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7Ci0KLSAgICAgICAgICAgIHdpbmRvdy53aWxsVmFs
aWRhdGVJbkNvbnN0cnVjdG9yID0gaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTsKLSAgICAgICAgICAg
IHdpbmRvdy5tYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6ZGlz
YWJsZWQiKTsKLSAgICAgICAgICAgIHdpbmRvdy5tYXRjaGVzRW5hYmxlZEluQ29uc3RydWN0b3Ig
PSB0aGlzLm1hdGNoZXMoIjplbmFibGVkIik7Ci0gICAgICAgICAgICB3aW5kb3cubWF0Y2hlc1Zh
bGlkSW5Db25zdHJ1Y3RvciA9IHRoaXMubWF0Y2hlcygiOnZhbGlkIik7Ci0gICAgICAgICAgICB3
aW5kb3cubWF0Y2hlc0ludmFsaWRJbkNvbnN0cnVjdG9yID0gdGhpcy5tYXRjaGVzKCI6aW52YWxp
ZCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybUFzc29jaWF0ZWRDYWxsYmFjayhmb3JtKSB7
Ci0gICAgICAgICAgICBjYWxsYmFja0hpc3RvcnkucHVzaChgZm9ybUFzc29jaWF0ZWRDYWxsYmFj
azogJHtmb3JtLmlkfWApOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9ybURpc2FibGVkQ2FsbGJh
Y2soaXNEaXNhYmxlZCkgewotICAgICAgICAgICAgY2FsbGJhY2tIaXN0b3J5LnB1c2goYGZvcm1E
aXNhYmxlZENhbGxiYWNrOiAke2lzRGlzYWJsZWR9YCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQot
ICAgIGFzc2VydF90cnVlKHdpbGxWYWxpZGF0ZUluQ29uc3RydWN0b3IpOwotICAgIGFzc2VydF9m
YWxzZShtYXRjaGVzRGlzYWJsZWRJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0
Y2hlc0VuYWJsZWRJbkNvbnN0cnVjdG9yKTsKLSAgICBhc3NlcnRfZmFsc2UobWF0Y2hlc1ZhbGlk
SW5Db25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2ZhbHNlKG1hdGNoZXNJbnZhbGlkSW5Db25zdHJ1
Y3Rvcik7Ci0KLSAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLndpbGxWYWxpZGF0ZSk7Ci0gICAg
YXNzZXJ0X3RydWUoZWwubWF0Y2hlcygiOmRpc2FibGVkIikpOwotICAgIGFzc2VydF9mYWxzZShl
bC5tYXRjaGVzKCI6ZW5hYmxlZCIpKTsKLSAgICBhc3NlcnRfZmFsc2UoZWwubWF0Y2hlcygiOnZh
bGlkIikpOwotICAgIGFzc2VydF9mYWxzZShlbC5tYXRjaGVzKCI6aW52YWxpZCIpKTsKLQotICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbGJhY2tIaXN0b3J5LCBbImZvcm1Bc3NvY2lhdGVkQ2Fs
bGJhY2s6IHRoZUZvcm0iLCAiZm9ybURpc2FibGVkQ2FsbGJhY2s6IHRydWUiXSk7Ci19KTsKLTwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jdXN0b20tZWxlbWVudHMvZm9ybS1hc3NvY2lhdGVkL3VwZ3JhZGluZy9pbnNpZGUt
bGFiZWwudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRp
bmcvaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxOWJhNmE2ZmE0OC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNz
b2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBGb3JtLWFzc29jaWF0ZWQgY3VzdG9t
IGVsZW1lbnRzIGFyZW4ndCBjb25zaWRlcmVkIGxhYmVscycgY29udHJvbHMgaW4gcHJlY3VzdG9t
aXplZCBzdGF0ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2lu
c2lkZS1sYWJlbC50ZW50YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcv
aW5zaWRlLWxhYmVsLnRlbnRhdGl2ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmOWE2MDZjNjQxZDAuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBn
cmFkaW5nL2luc2lkZS1sYWJlbC50ZW50YXRpdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PkZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudHMgYXJlbid0IGNvbnNpZGVyZWQgbGFiZWxz
JyBjb250cm9scyBpbiBwcmVjdXN0b21pemVkIHN0YXRlPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLQotPGxhYmVsIGlkPSJ0aGVMYWJl
bCI+Ci0gICAgPHgtZm9vPjwveC1mb28+Ci08L2xhYmVsPgotCi08c2NyaXB0PgotdGVzdCgoKSA9
PiB7Ci0gICAgY29uc3QgY2FsbGJhY2tIaXN0b3J5ID0gW107Ci0KLSAgICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoIngtZm9vIiwgY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7Ci0gICAgICAgIHN0
YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7Ci0KLSAgICAgICAgY29uc3RydWN0b3IoKSB7Ci0g
ICAgICAgICAgICBzdXBlcigpOwotCi0gICAgICAgICAgICB3aW5kb3cuZWwgPSB0aGlzOwotICAg
ICAgICAgICAgd2luZG93LmludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7Ci0KLSAg
ICAgICAgICAgIHdpbmRvdy5jb250cm9sSW5Db25zdHJ1Y3RvciA9IHRoZUxhYmVsLmNvbnRyb2w7
Ci0gICAgICAgICAgICB3aW5kb3cubGFiZWxzSW5Db25zdHJ1Y3RvciA9IGludGVybmFscy5sYWJl
bHM7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGFzc2VydF9lcXVhbHMoY29udHJvbEluQ29u
c3RydWN0b3IsIG51bGwpOwotICAgIGFzc2VydF9lcXVhbHMobGFiZWxzSW5Db25zdHJ1Y3Rvciwg
bnVsbCk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKHRoZUxhYmVsLmNvbnRyb2wsIGVsKTsKLSAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGludGVybmFscy5sYWJlbHMsIFt0aGVMYWJlbF0pOwotfSk7Ci08
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDJlNTAzOTgwMzNiZS4uYWY2ZWM2NWIxODBmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
ZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTQzNTEsMTUgKzQzNTEsMTUgQEAgUEFTUyBFbGVtZW50SW50ZXJuYWxzIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUK
IFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkK
IFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkK
IFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzaGFkb3dSb290Ci1Q
QVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0Rm9ybVZhbHVlKChG
aWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/LCBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJp
bmcgb3IgRm9ybURhdGEpPykKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBmb3JtCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0
VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZsYWdzLCBvcHRpb25hbCBET01TdHJpbmcs
IG9wdGlvbmFsIEhUTUxFbGVtZW50KQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTog
YXR0cmlidXRlIHdpbGxWYWxpZGF0ZQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTog
YXR0cmlidXRlIHZhbGlkaXR5Ci1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0eSgpCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNl
OiBvcGVyYXRpb24gc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/
LCBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPykgYXNzZXJ0X293bl9w
cm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9w
ZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2V0Rm9ybVZhbHVlIiBtaXNzaW5nCitGQUlMIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZm9ybSBhc3NlcnRfdHJ1ZTogVGhl
IHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImZvcm0iIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2V0VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZsYWdzLCBvcHRpb25hbCBET01TdHJp
bmcsIG9wdGlvbmFsIEhUTUxFbGVtZW50KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHBy
b3BlcnR5ICJzZXRWYWxpZGl0eSIgbWlzc2luZworRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIHdpbGxWYWxpZGF0ZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBv
YmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIndpbGxWYWxpZGF0ZSIgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxp
ZGl0eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVy
dHkgInZhbGlkaXR5IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBFbGVtZW50SW50ZXJu
YWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkYXRpb25NZXNzYWdlIGFzc2VydF90cnVlOiBU
aGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidmFsaWRhdGlvbk1lc3Nh
Z2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY2hlY2tWYWxpZGl0eSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0
ZWQgcHJvcGVydHkgImNoZWNrVmFsaWRpdHkiIG1pc3NpbmcKK0ZBSUwgRWxlbWVudEludGVybmFs
cyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0eSgpIGFzc2VydF9vd25fcHJvcGVy
dHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRp
b24gZXhwZWN0ZWQgcHJvcGVydHkgInJlcG9ydFZhbGlkaXR5IiBtaXNzaW5nCitGQUlMIEVsZW1l
bnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzIGFzc2VydF90cnVlOiBUaGUg
cHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAibGFiZWxzIiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgRGF0YVRyYW5zZmVyIGludGVyZmFjZSBvYmplY3QgbmFt
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9jb21waWxlLWV2ZW50LWhhbmRsZXIt
bGV4aWNhbC1zY29wZXMtZm9ybS1vd25lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZl
bnRzL2NvbXBpbGUtZXZlbnQtaGFuZGxlci1sZXhpY2FsLXNjb3Blcy1mb3JtLW93bmVyLWV4cGVj
dGVkLnR4dAppbmRleCA0NjZjM2EyNzFmNDAuLmM5MzE2MWQyODgwMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
c2NyaXB0aW5nL2V2ZW50cy9jb21waWxlLWV2ZW50LWhhbmRsZXItbGV4aWNhbC1zY29wZXMtZm9y
bS1vd25lci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cy9jb21waWxlLWV2
ZW50LWhhbmRsZXItbGV4aWNhbC1zY29wZXMtZm9ybS1vd25lci1leHBlY3RlZC50eHQKQEAgLTUs
NSArNSw1IEBAIHgtZm9vCiBQQVNTIDxpbnB1dD4gaGFzIGEgZm9ybSBvd25lcgogUEFTUyA8aW1n
PiBoYXMgYSBmb3JtIG93bmVyCiBQQVNTIDxkaXY+IGRvZXNuJ3QgaGF2ZSBhIGZvcm0gb3duZXIK
LVBBU1MgZm9ybS1hc3NvY2lhdGVkIDx4LWZvbz4gaGFzIGEgZm9ybSBvd25lcgorRkFJTCBmb3Jt
LWFzc29jaWF0ZWQgPHgtZm9vPiBoYXMgYSBmb3JtIG93bmVyIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChvYmplY3QpIG9iamVjdCAiW29iamVjdCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbl0i
IGJ1dCBnb3QgKHN0cmluZykgImdsb2JhbF9lbGVtZW50cyIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3MjYyMzg5NDJlMDMuLjE1OGQ0Yzc5YjYyMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQzNTEsMTUgKzQzNTEsMTUgQEAg
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
IEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBzaGFkb3dSb290Ci1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBv
cGVyYXRpb24gc2V0Rm9ybVZhbHVlKChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/LCBv
cHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPykKLVBBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0ZUZs
YWdzLCBvcHRpb25hbCBET01TdHJpbmcsIG9wdGlvbmFsIEhUTUxFbGVtZW50KQotUEFTUyBFbGVt
ZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHdpbGxWYWxpZGF0ZQotUEFTUyBFbGVt
ZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkaXR5Ci1QQVNTIEVsZW1lbnRJ
bnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UKLVBBU1MgRWxl
bWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkKLVBBU1Mg
RWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBvcnRWYWxpZGl0eSgpCi1Q
QVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFiZWxzCitGQUlMIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0Rm9ybVZhbHVlKChGaWxlIG9y
IFVTVlN0cmluZyBvciBGb3JtRGF0YSk/LCBvcHRpb25hbCAoRmlsZSBvciBVU1ZTdHJpbmcgb3Ig
Rm9ybURhdGEpPykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2V0Rm9y
bVZhbHVlIiBtaXNzaW5nCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgZm9ybSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJv
cGVydHkgImZvcm0iIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0VmFsaWRpdHkob3B0aW9uYWwgVmFsaWRpdHlTdGF0
ZUZsYWdzLCBvcHRpb25hbCBET01TdHJpbmcsIG9wdGlvbmFsIEhUTUxFbGVtZW50KSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0
aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRWYWxpZGl0eSIgbWlzc2luZworRkFJ
TCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHdpbGxWYWxpZGF0ZSBhc3Nl
cnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIndpbGxW
YWxpZGF0ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVybmFscyBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGl0eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBv
YmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInZhbGlkaXR5IiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkYXRp
b25NZXNzYWdlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBw
cm9wZXJ0eSAidmFsaWRhdGlvbk1lc3NhZ2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlM
IEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2hlY2tWYWxpZGl0eSgpIGFz
c2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9u
LXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImNoZWNrVmFsaWRpdHkiIG1pc3Np
bmcKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXBvcnRWYWxp
ZGl0eSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1p
c3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInJlcG9ydFZhbGlk
aXR5IiBtaXNzaW5nCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bGFiZWxzIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9w
ZXJ0eSAibGFiZWxzIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBEYXRhVHJhbnNmZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAog
UEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgRGF0YVRyYW5z
ZmVyIGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9mb3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvbGFiZWwtZGVsZWdhdGVzRm9jdXMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMWI4ZmZmN2U4ZTMuLjAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9sYWJl
bC1kZWxlZ2F0ZXNGb2N1cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAg
QEAKLWxhYmVsCi0KLUZBSUwgQ2xpY2tpbmcgb24gYSBsYWJlbCBmb3IgYSBmb3JtIGFzc29jaWF0
ZWQgY3VzdG9tIGVsZW1lbnQgd2l0aCBkZWxlZ2F0ZXNGb2N1cyBzaG91bGQgZm9jdXMgdGhlIGN1
c3RvbSBlbGVtZW50J3MgZm9jdXMgZGVsZWdhdGUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIEVs
ZW1lbnQgbm9kZSA8bXktY3VzdG9tLWVsZW1lbnQgaWQ9ImN1c3RvbSI+PC9teS1jdXN0b20tZWxl
bWVudD4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJvZHk+PGZvcm0+Ci0gIDxsYWJlbCBmb3I9ImN1
c3RvbSI+bGFiZWw8L2xhYmVsPgotICA8bXktY3UuLi4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
ZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5l
c3MuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGYwYmJkNzk0MWVmZi4uMTI1N2E4Mjg5ZWQ2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00MzQxLDE1
ICs0MzQxLDE1IEBAIFBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlCiBQQVNTIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CiBQQVNTIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CiBQQVNTIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2hhZG93Um9vdAotUEFTUyBFbGVtZW50SW50ZXJuYWxz
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldEZvcm1WYWx1ZSgoRmlsZSBvciBVU1ZTdHJpbmcgb3Ig
Rm9ybURhdGEpPywgb3B0aW9uYWwgKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8pCi1Q
QVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZm9ybQotUEFTUyBFbGVt
ZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldFZhbGlkaXR5KG9wdGlvbmFsIFZh
bGlkaXR5U3RhdGVGbGFncywgb3B0aW9uYWwgRE9NU3RyaW5nLCBvcHRpb25hbCBIVE1MRWxlbWVu
dCkKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3aWxsVmFsaWRh
dGUKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGl0eQot
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkYXRpb25NZXNz
YWdlCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2hlY2tWYWxp
ZGl0eSgpCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVwb3J0
VmFsaWRpdHkoKQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIGxh
YmVscworRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldEZvcm1W
YWx1ZSgoRmlsZSBvciBVU1ZTdHJpbmcgb3IgRm9ybURhdGEpPywgb3B0aW9uYWwgKEZpbGUgb3Ig
VVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8pIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJv
cGVydHkgInNldEZvcm1WYWx1ZSIgbWlzc2luZworRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIGZvcm0gYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11
c3QgaGF2ZSBhIHByb3BlcnR5ICJmb3JtIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBF
bGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHNldFZhbGlkaXR5KG9wdGlvbmFs
IFZhbGlkaXR5U3RhdGVGbGFncywgb3B0aW9uYWwgRE9NU3RyaW5nLCBvcHRpb25hbCBIVE1MRWxl
bWVudCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlz
c2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2V0VmFsaWRpdHki
IG1pc3NpbmcKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3aWxs
VmFsaWRhdGUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHBy
b3BlcnR5ICJ3aWxsVmFsaWRhdGUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEVsZW1l
bnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRpdHkgYXNzZXJ0X3RydWU6IFRo
ZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ2YWxpZGl0eSIgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB2YWxpZGF0aW9uTWVzc2FnZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgInZhbGlkYXRpb25NZXNzYWdlIiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIGNoZWNr
VmFsaWRpdHkoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJjaGVja1Zh
bGlkaXR5IiBtaXNzaW5nCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBvcGVyYXRp
b24gcmVwb3J0VmFsaWRpdHkoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5
ICJyZXBvcnRWYWxpZGl0eSIgbWlzc2luZworRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFj
ZTogYXR0cmlidXRlIGxhYmVscyBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgImxhYmVscyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1Mg
RGF0YVRyYW5zZmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKIFBBU1MgRGF0YVRyYW5zZmVyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQ
QVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lwYWQvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lwYWQvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNz
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmMTVmYjZmZDgzZDguLjI5MWQ2MDI3NzNhMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBhZC9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lwYWQvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNDM1MSwxNSArNDM1MSwx
NSBAQCBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIHNoYWRvd1Jvb3QKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRh
KT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/KQotUEFTUyBFbGVt
ZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIGZvcm0KLVBBU1MgRWxlbWVudEludGVy
bmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0
YXRlRmxhZ3MsIG9wdGlvbmFsIERPTVN0cmluZywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpCi1QQVNT
IEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRlCi1QQVNT
IEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRpdHkKLVBBU1MgRWxl
bWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGF0aW9uTWVzc2FnZQotUEFT
UyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIGNoZWNrVmFsaWRpdHkoKQot
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5
KCkKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMKK0ZB
SUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZp
bGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmlu
ZyBvciBGb3JtRGF0YSk/KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJz
ZXRGb3JtVmFsdWUiIG1pc3NpbmcKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBmb3JtIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUg
YSBwcm9wZXJ0eSAiZm9ybSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0
eVN0YXRlRmxhZ3MsIG9wdGlvbmFsIERPTVN0cmluZywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpIGFz
c2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9u
LXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInNldFZhbGlkaXR5IiBtaXNzaW5n
CitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRl
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
d2lsbFZhbGlkYXRlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBFbGVtZW50SW50ZXJu
YWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlkaXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90
eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidmFsaWRpdHkiIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFs
aWRhdGlvbk1lc3NhZ2UgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2
ZSBhIHByb3BlcnR5ICJ2YWxpZGF0aW9uTWVzc2FnZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5
KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2lu
ZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY2hlY2tWYWxpZGl0eSIg
bWlzc2luZworRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9y
dFZhbGlkaXR5KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAicmVwb3J0
VmFsaWRpdHkiIG1pc3NpbmcKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBsYWJlbHMgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBh
IHByb3BlcnR5ICJsYWJlbHMiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIERhdGFUcmFu
c2ZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBEYXRh
VHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVs
ZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC9FbGVtZW50SW50ZXJuYWxzLXZhbGlkYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVy
bmFscy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzMyMGFjZWE1NjhhLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9m
b3JtLWFzc29jaWF0ZWQvRWxlbWVudEludGVybmFscy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogQW4gaW52YWxp
ZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lPScnIGlzIG5vdCBmb2N1c2FibGUuCi1DT05TT0xFIE1F
U1NBR0U6IEFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGggbmFtZT0nJyBpcyBub3QgZm9jdXNh
YmxlLgotQ09OU09MRSBNRVNTQUdFOiBBbiBpbnZhbGlkIGZvcm0gY29udHJvbCB3aXRoIG5hbWU9
JycgaXMgbm90IGZvY3VzYWJsZS4KLQotCi1GQUlMIHdpbGxWYWxpZGF0ZSBhc3NlcnRfZmFsc2U6
IGZhbHNlIGluIERBVEFMSVNUIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIHdpbGxWYWxp
ZGF0ZSBhZnRlciB1cGdyYWRlIGFzc2VydF9mYWxzZTogaW4gZGF0YWxpc3QgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKLVBBU1Mgd2lsbFZhbGlkYXRlIGFmdGVyIHVwZ3JhZGUgKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQpCi1QQVNTIHdpbGxWYWxpZGF0ZSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVk
RXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0
b20gZWxlbWVudAotUEFTUyB2YWxpZGl0eSBhbmQgc2V0VmFsaWRpdHkoKQotUEFTUyAiYW5jaG9y
IiBhcmd1bWVudCBvZiBzZXRWYWxpZGl0eSgpCi1QQVNTIGNoZWNrVmFsaWRpdHkoKSBzaG91bGQg
dGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIG5vdCBhIGZv
cm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudAotUEFTUyBjaGVja1ZhbGlkaXR5KCkKLVBBU1Mg
cmVwb3J0VmFsaWRpdHkoKSBzaG91bGQgdGhyb3cgTm90U3VwcG9ydGVkRXJyb3IgaWYgdGhlIHRh
cmdldCBlbGVtZW50IGlzIG5vdCBhIGZvcm0tYXNzb2NpYXRlZCBjdXN0b20gZWxlbWVudAotUEFT
UyByZXBvcnRWYWxpZGl0eSgpCi1QQVNTIEN1c3RvbSBjb250cm9sIGFmZmVjdHMgdmFsaWRhdGlv
biBhdCB0aGUgb3duZXIgZm9ybQotUEFTUyBDdXN0b20gY29udHJvbCBhZmZlY3RzIDp2YWxpZCA6
aW52YWxpZCBmb3IgRk9STSBhbmQgRklFTERTRVQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBncmFkaW5nL2luc2lkZS1kYXRhbGlzdC50ZW50YXRp
dmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9mb3JtLWFzc29jaWF0ZWQvdXBn
cmFkaW5nL2luc2lkZS1kYXRhbGlzdC50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMzllMTU4NTFlMTguLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL2Zvcm0tYXNzb2NpYXRlZC91cGdyYWRpbmcvaW5zaWRlLWRhdGFsaXN0
LnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
RkFJTCBkYXRhbGlzdCBhbmNlc3RvciBkb2Vzbid0IGFmZmVjdCBjb25zdHJhaW50IHZhbGlkYXRp
b24gaW4gcHJlY3VzdG9taXplZCBzdGF0ZSBhc3NlcnRfZmFsc2U6IGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCA1M2IwODk4Zjg5ZTcuLjQyNGFjZGUwMTgyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lk
bGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNz
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNDM1MSwxNSArNDM1MSwxNSBAQCBQQVNTIEVsZW1lbnRJ
bnRlcm5hbHMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eQogUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHNo
YWRvd1Jvb3QKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRG
b3JtVmFsdWUoKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8sIG9wdGlvbmFsIChGaWxl
IG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/KQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVy
ZmFjZTogYXR0cmlidXRlIGZvcm0KLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBzZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9wdGlvbmFs
IERPTVN0cmluZywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRlCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRpdHkKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSB2YWxpZGF0aW9uTWVzc2FnZQotUEFTUyBFbGVtZW50SW50ZXJuYWxz
IGludGVyZmFjZTogb3BlcmF0aW9uIGNoZWNrVmFsaWRpdHkoKQotUEFTUyBFbGVtZW50SW50ZXJu
YWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkKLVBBU1MgRWxlbWVudElu
dGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMKK0ZBSUwgRWxlbWVudEludGVybmFs
cyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZpbGUgb3IgVVNWU3RyaW5nIG9y
IEZvcm1EYXRhKT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/KSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRGb3JtVmFsdWUiIG1pc3Np
bmcKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtIGFzc2Vy
dF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZm9ybSIg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9wdGlv
bmFsIERPTVN0cmluZywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpIGFzc2VydF9vd25fcHJvcGVydHk6
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24g
ZXhwZWN0ZWQgcHJvcGVydHkgInNldFZhbGlkaXR5IiBtaXNzaW5nCitGQUlMIEVsZW1lbnRJbnRl
cm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRlIGFzc2VydF90cnVlOiBUaGUg
cHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAid2lsbFZhbGlkYXRlIiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0
cmlidXRlIHZhbGlkaXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhh
dmUgYSBwcm9wZXJ0eSAidmFsaWRpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEVs
ZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UgYXNz
ZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ2YWxp
ZGF0aW9uTWVzc2FnZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVy
bmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJh
dGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiY2hlY2tWYWxpZGl0eSIgbWlzc2luZworRkFJTCBFbGVt
ZW50SW50ZXJuYWxzIGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkgYXNzZXJ0
X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3Rh
dGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAicmVwb3J0VmFsaWRpdHkiIG1pc3NpbmcK
K0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJsYWJlbHMi
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIERhdGFUcmFu
c2ZlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNl
IG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDli
NWE1ZjhiMGQzMC4uMzJkNzljYzMzZTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNz
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtNDM1MSwxNSArNDM1MSwxNSBAQCBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZQog
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQog
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQog
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHNoYWRvd1Jvb3QKLVBB
U1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZp
bGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8sIG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmlu
ZyBvciBGb3JtRGF0YSk/KQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmli
dXRlIGZvcm0KLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRW
YWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9wdGlvbmFsIERPTVN0cmluZywg
b3B0aW9uYWwgSFRNTEVsZW1lbnQpCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgd2lsbFZhbGlkYXRlCi1QQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgdmFsaWRpdHkKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSB2YWxpZGF0aW9uTWVzc2FnZQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTog
b3BlcmF0aW9uIGNoZWNrVmFsaWRpdHkoKQotUEFTUyBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFj
ZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkKLVBBU1MgRWxlbWVudEludGVybmFscyBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzZXRGb3JtVmFsdWUoKEZpbGUgb3IgVVNWU3RyaW5nIG9yIEZvcm1EYXRhKT8s
IG9wdGlvbmFsIChGaWxlIG9yIFVTVlN0cmluZyBvciBGb3JtRGF0YSk/KSBhc3NlcnRfb3duX3By
b3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3Bl
cmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRGb3JtVmFsdWUiIG1pc3NpbmcKK0ZBSUwgRWxl
bWVudEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb3JtIGFzc2VydF90cnVlOiBUaGUg
cHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZm9ybSIgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
ZXRWYWxpZGl0eShvcHRpb25hbCBWYWxpZGl0eVN0YXRlRmxhZ3MsIG9wdGlvbmFsIERPTVN0cmlu
Zywgb3B0aW9uYWwgSFRNTEVsZW1lbnQpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJv
cGVydHkgInNldFZhbGlkaXR5IiBtaXNzaW5nCitGQUlMIEVsZW1lbnRJbnRlcm5hbHMgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgd2lsbFZhbGlkYXRlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9i
amVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAid2lsbFZhbGlkYXRlIiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBFbGVtZW50SW50ZXJuYWxzIGludGVyZmFjZTogYXR0cmlidXRlIHZhbGlk
aXR5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0
eSAidmFsaWRpdHkiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEVsZW1lbnRJbnRlcm5h
bHMgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdmFsaWRhdGlvbk1lc3NhZ2UgYXNzZXJ0X3RydWU6IFRo
ZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ2YWxpZGF0aW9uTWVzc2Fn
ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgRWxlbWVudEludGVybmFscyBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBjaGVja1ZhbGlkaXR5KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiY2hlY2tWYWxpZGl0eSIgbWlzc2luZworRkFJTCBFbGVtZW50SW50ZXJuYWxz
IGludGVyZmFjZTogb3BlcmF0aW9uIHJlcG9ydFZhbGlkaXR5KCkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlv
biBleHBlY3RlZCBwcm9wZXJ0eSAicmVwb3J0VmFsaWRpdHkiIG1pc3NpbmcKK0ZBSUwgRWxlbWVu
dEludGVybmFscyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYWJlbHMgYXNzZXJ0X3RydWU6IFRoZSBw
cm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJsYWJlbHMiIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIERhdGFUcmFuc2ZlciBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1l
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>