<?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>230269</bug_id>
          
          <creation_ts>2021-09-14 09:45:25 -0700</creation_ts>
          <short_desc>Add violations reporting support for Cross-Origin-Embedder-Policy</short_desc>
          <delta_ts>2021-09-16 14:58:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>228755</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mkwst</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1793344</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-14 09:45:25 -0700</bug_when>
    <thetext>Add violations reporting support for Cross-Origin-Embedder-Policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793431</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-14 14:09:14 -0700</bug_when>
    <thetext>Add to fix a WPT test to run within WebKit infra:
https://github.com/web-platform-tests/wpt/pull/30785</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793441</commentid>
    <comment_count>2</comment_count>
      <attachid>438174</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-14 14:28:59 -0700</bug_when>
    <thetext>Created attachment 438174
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793442</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-14 14:29:39 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793444</commentid>
    <comment_count>4</comment_count>
      <attachid>438175</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-14 14:34:00 -0700</bug_when>
    <thetext>Created attachment 438175
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793449</commentid>
    <comment_count>5</comment_count>
      <attachid>438176</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-14 14:52:22 -0700</bug_when>
    <thetext>Created attachment 438176
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793502</commentid>
    <comment_count>6</comment_count>
      <attachid>438188</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-14 16:36:57 -0700</bug_when>
    <thetext>Created attachment 438188
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793698</commentid>
    <comment_count>7</comment_count>
      <attachid>438244</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-15 07:35:25 -0700</bug_when>
    <thetext>Created attachment 438244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793699</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-15 07:35:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/83150069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793972</commentid>
    <comment_count>9</comment_count>
      <attachid>438244</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-16 00:51:48 -0700</bug_when>
    <thetext>Comment on attachment 438244
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=438244&amp;action=review

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:803
&gt; +        return frame.isMainFrame() ? FetchOptions::Destination::Document : FetchOptions::Destination::Iframe;

We could differentiate SVGDocumentResource from MainResource so that only MainResource checks for Document vs. Iframe.

&gt; Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:166
&gt; +        return WTFMove(*error);

Why not just returning error here?

&gt; Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:177
&gt; +            return WTFMove(*error);

Why not just returning error here?

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:647
&gt;              return true;

Are we sure this return true is correct?
It seems we should return true if ownerPolicy&apos;s value is &quot;unsafe-none&quot; OR policy&apos;s value is &quot;require-corp&quot;, but we do an if (AND) above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794041</commentid>
    <comment_count>10</comment_count>
      <attachid>438244</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-16 07:21:42 -0700</bug_when>
    <thetext>Comment on attachment 438244
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=438244&amp;action=review

&gt;&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:803
&gt;&gt; +        return frame.isMainFrame() ? FetchOptions::Destination::Document : FetchOptions::Destination::Iframe;
&gt; 
&gt; We could differentiate SVGDocumentResource from MainResource so that only MainResource checks for Document vs. Iframe.

Ok, will do.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:166
&gt;&gt; +        return WTFMove(*error);
&gt; 
&gt; Why not just returning error here?

Will update.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:177
&gt;&gt; +            return WTFMove(*error);
&gt; 
&gt; Why not just returning error here?

Will update.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:647
&gt;&gt;              return true;
&gt; 
&gt; Are we sure this return true is correct?
&gt; It seems we should return true if ownerPolicy&apos;s value is &quot;unsafe-none&quot; OR policy&apos;s value is &quot;require-corp&quot;, but we do an if (AND) above.

The function is named &quot;shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy&quot; so `return true` means we interrupt the load.

The spec says:
&quot;If ownerPolicy&apos;s value is &quot;unsafe-none&quot; or policy&apos;s value is &quot;require-corp&quot;, then return true.&quot;

But this is to determine if we should let the load continue.

Given that our code is about interrupting the load, I believe it should be the opposite:
&quot;If ownerPolicy&apos;s value is NOT &quot;unsafe-none&quot; (thus it is &quot;require-corp&quot;) AND policy&apos;s value is NOT &quot;require-corp&quot; (thus it is &quot;unsafe-none&quot;), then return true.&quot;

My code looks correct to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794042</commentid>
    <comment_count>11</comment_count>
      <attachid>438347</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-16 07:22:59 -0700</bug_when>
    <thetext>Created attachment 438347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794078</commentid>
    <comment_count>12</comment_count>
      <attachid>438362</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-16 10:05:19 -0700</bug_when>
    <thetext>Created attachment 438362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794220</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-16 14:58:40 -0700</bug_when>
    <thetext>Committed r282604 (241765@main): &lt;https://commits.webkit.org/241765@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438362.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438174</attachid>
            <date>2021-09-14 14:28:59 -0700</date>
            <delta_ts>2021-09-14 14:34:00 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>COEP_reporting_wip.patch</filename>
            <type>text/plain</type>
            <size>48745</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyMWIxOTY5NmQzOS4uNDZkZjUyZmU5ODMxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTQwNyw2ICs0MDcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3NhbmRib3hpbmcv
c2FuZGJveC1kaXNhbGxvdy1wb3B1cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9hbm9ueW1vdXMtaWZyYW1lL3JlcXVpcmUtY29ycC1lbWJlZC1hbm9ueW1vdXMt
aWZyYW1lLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L2Jsb2IuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCitp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVM
b2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZnJhbWUtb3duZXIuaHR0cHMuaHRt
bCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG8tYWJvdXRi
bGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9uYXZp
Z2F0ZS10b3AtdG8tYWJvdXRibGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KQEAgLTczNiw4ICs3MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9uby1zZWN1cmUtY29udAogIyBvdXIg
bGF5b3V0IHRlc3RzLiBXZSBtYWludGFpbiBvdXIgb3duIHZlcnNpb24gb2YgdGhpcyB0ZXN0IGlu
IGh0dHAvd3B0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
IyBXZSBkbyBub3Qgc3VwcG9ydCBDT0VQIHJlcG9ydGluZy4KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10
by1lbmRwb2ludC5odHRwcy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KKyMgV2UgZG8gbm90IHN1cHBv
cnQgcmVwb3J0aW5nIEpTIEFQSSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZykuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9tdWx0aS1nbG9iYWxzL3dvcmtlcnMtY29lcC1yZXBvcnQuaHR0cHMuaHRtbCBbIFNr
aXAgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSBjcmFzaGluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDNkZTU3Nzg2ZGY1MC4uMWI0N2YwZjRiZDBkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1l
bmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsNyBAQAotQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0
LXBsYWluLnR4dD81NzcwYzQ1MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJl
c3BvbnNlIGhlYWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQt
NDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09O
U09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2LThlNDAtMDg5MTcyOTZjNGIxJyBp
biBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4KLUNPTlNP
TEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5ICdodHRwczovL2xvY2FsaG9zdDo5NDQzL2Nv
bW1vbi9ibGFuay5odG1sPzk5ZTZlY2VkLWJiMDItNDE4YS1iOTg4LTIzMzkxODlhMTZhMicgaW4g
YSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kuCi1DT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSAnaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21t
b24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4NS1mM2I0NTgxZGU4NmEnIGluIGEg
ZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LgogCi1GQUlMIHN1
YnJlc291cmNlIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVS
TCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0LXBsYWluLnR4dD81NzcwYzQ1
MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9z
dDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0
aW5nLWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRv
PSUyMnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotRkFJTCBuYXZpZ2F0aW9uIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBv
cnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFu
ay5odG1sPzYxY2Y4OTFjLWY0ODAtNDMzNi04ZTQwLTA4OTE3Mjk2YzRiMSBhbmQgdXJsIGlzIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jl
c291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRlcihjcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIyZW5kcG9pbnQlMjIp
fGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1vbmx5LHJlcXVpcmUt
Y29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlzIG5vdCBmb3VuZC4g
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBm
cmFtZSBuYXZpZ2F0aW9uIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRV
UkwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD85OWU2ZWNlZC1i
YjAyLTQxOGEtYjk4OC0yMzM5MTg5YTE2YTIgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5
NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5n
LWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUy
MnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQotRkFJTCBUd28gQ09FUCBoZWFkZXJzLCBzcGxpdCBpbnNpZGUgcmVwb3J0LXRvIHZh
bHVlIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRVUkwgaXMgaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4
NS1mM2I0NTgxZGU4NmEgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5nLWVtcHR5LWZyYW1l
LW11bHRpcGxlLWhlYWRlcnMuaHRtbC5hc2lzIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCitQQVNTIHN1YnJlc291cmNlIENPUlAKK1BBU1MgbmF2aWdhdGlvbiBDT1JQCitQ
QVNTIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBmcmFtZSBuYXZpZ2F0aW9uCitQQVNTIFR3byBD
T0VQIGhlYWRlcnMsIHNwbGl0IGluc2lkZSByZXBvcnQtdG8gdmFsdWUKK0ZBSUwgU2hhcmVkIHdv
cmtlciBmZXRjaCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVh
dGluZyAnbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlNoYXJlZFdvcmtlcihXT1JLRVJfVVJMKScp
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGlu
Zy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzCmluZGV4IGNkYTZhYjIyNzJmYy4u
Y2Y1OTM4YzY3NjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmct
dG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycwpAQCAtMSAr
MSBAQAotcmVwb3J0LXRvOiB7ICJncm91cCI6ICJlbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0
MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJj
ZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVuZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQt
b25seS1lbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJs
IjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PXJl
cG9ydC1vbmx5LWVuZHBvaW50IiB9XSB9CityZXBvcnQtdG86IHsgImdyb3VwIjogImVuZHBvaW50
IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwgImVuZHBvaW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVu
ZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQtb25seS1lbmRwb2ludCIsICJtYXhfYWdl
IjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogIi9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBvcnQtb25seS1l
bmRwb2ludCIgfV0gfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaWRsCmluZGV4IDQ5YzQ1NGYzNTAzNC4uYzhlODljN2JjYmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0yNiw3ICsyNiw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLWVudW0gRmV0Y2hSZXF1ZXN0RGVzdGluYXRpb24geyAiIiwg
ImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJlbWJlZCIsICJmb250IiwgImlt
YWdlIiwgIm1hbmlmZXN0IiwgIm1vZGVsIiwgIm9iamVjdCIsICJwYWludHdvcmtsZXQiLCAicmVw
b3J0IiwgInNjcmlwdCIsICJzZXJ2aWNld29ya2VyIiwgInNoYXJlZHdvcmtlciIsICJzdHlsZSIs
ICJ0cmFjayIsICJ2aWRlbyIsICJ3b3JrZXIiLCAieHNsdCIgfTsKK2VudW0gRmV0Y2hSZXF1ZXN0
RGVzdGluYXRpb24geyAiIiwgImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJl
bWJlZCIsICJmb250IiwgImltYWdlIiwgImlmcmFtZSIsICJtYW5pZmVzdCIsICJtb2RlbCIsICJv
YmplY3QiLCAicGFpbnR3b3JrbGV0IiwgInJlcG9ydCIsICJzY3JpcHQiLCAic2VydmljZXdvcmtl
ciIsICJzaGFyZWR3b3JrZXIiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwg
InhzbHQiIH07CiAKIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJ
bmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeS5jcHAKaW5kZXggMTkyOTJhZDYzYjYyLi41MjJmZTI4OWIxNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCisjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTk0LDQgKzk1LDk0IEBAIHZvaWQgYWRkQ3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeUhlYWRlcnMoUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IENyb3NzCiAgICAgfQogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1hLWNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kt
aW5oZXJpdGFuY2UtdmlvbGF0aW9uCit2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9s
YXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHBh
cmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAg
ICBXVEZMb2dBbHdheXMoIkNIUklTOiBzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9u
KCkgZW5kcG9pbnQ6ICVzLCB0eXBlOiAlcywgYmxvY2tlZFVSTDogJXMiLCBlbmRwb2ludC51dGY4
KCkuZGF0YSgpLCB0eXBlLnV0ZjgoKS5kYXRhKCksIGJsb2NrZWRVUkwuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVw
b3J0VVJMID0gZnJhbWUuZG9jdW1lbnQoKSA/IGZyYW1lLmRvY3VtZW50KCktPnVybCgpIDogVVJM
KCk7CisgICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91bGRJbmhlcml0U2VjdXJpdHlPcmlnaW5G
cm9tT3duZXIocmVwb3J0VVJMKSkgeworICAgICAgICBpZiAoYXV0byogcGFyZW50RnJhbWUgPSBm
cmFtZS50cmVlKCkucGFyZW50KCk7IHBhcmVudEZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAg
ICAgcmVwb3J0VVJMID0gcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnVybCgpOworICAgICAgICBl
bHNlIGlmIChhdXRvKiBvcGVuZXJGcmFtZSA9IGZyYW1lLmxvYWRlcigpLm9wZW5lcigpOyBvcGVu
ZXJGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJlcG9ydFVSTCA9IG9wZW5lckZyYW1l
LT5kb2N1bWVudCgpLT51cmwoKTsKKyAgICB9CisKKyAgICBQaW5nTG9hZGVyOjpzZW5kUmVwb3J0
VG9FbmRwb2ludChmcmFtZSwgcGFyZW50T3JpZ2luLCBlbmRwb2ludCwgImNvZXAiX3MsIHJlcG9y
dFVSTCwgZnJhbWUubG9hZGVyKCkudXNlckFnZW50KGJsb2NrZWRVUkwpLCBbJl0oYXV0byYgYm9k
eSkgeworICAgICAgICBib2R5LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9u
ID09IENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNl
Il9zKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoInR5cGUiX3MsIHR5cGUpOworICAgICAgICBi
b2R5LnNldFN0cmluZygiYmxvY2tlZFVSTCJfcywgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JS
ZXBvcnQoYmxvY2tlZFVSTCkpOworICAgIH0pOworfQorCisvLyAic2VydmljZXdvcmtlciIsICJz
aGFyZWR3b3JrZXIiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwgInhzbHQi
IH07CitzdGF0aWMgU3RyaW5nIGZldGNoRGVzdGluYXRpb25Ub1N0cmluZyhGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQoreworICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkF1ZGlvOgorICAgICAgICByZXR1
cm4gImF1ZGlvIl9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6QXVkaW93
b3JrbGV0OgorICAgICAgICByZXR1cm4gImF1ZGlvd29ya2xldCJfczsKKyAgICBjYXNlIEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50OgorICAgICAgICByZXR1cm4gImRvY3VtZW50
Il9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQ6CisgICAgICAg
IHJldHVybiAiZW1iZWQiX3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpG
b250OgorICAgICAgICByZXR1cm4gImZvbnQiX3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpJbWFnZToKKyAgICAgICAgcmV0dXJuICJpbWFnZSJfczsKKyAgICBjYXNlIEZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZToKKyAgICAgICAgcmV0dXJuICJpZnJhbWUi
X3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNYW5pZmVzdDoKKyAgICAg
ICAgcmV0dXJuICJtYW5pZmVzdCJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246Ok1vZGVsOgorICAgICAgICByZXR1cm4gIm1vZGVsIl9zOworICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6T2JqZWN0OgorICAgICAgICByZXR1cm4gIm9iamVjdCJfczsKKyAg
ICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlBhaW50d29ya2xldDoKKyAgICAgICAg
cmV0dXJuICJwYWludHdvcmtsZXQiX3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpSZXBvcnQ6CisgICAgICAgIHJldHVybiAicmVwb3J0Il9zOworICAgIGNhc2UgRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6U2NyaXB0OgorICAgICAgICByZXR1cm4gInNjcmlwdCJfczsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXI6CisgICAg
ICAgIHJldHVybiAic2VydmljZXdvcmtlciJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OlNoYXJlZHdvcmtlcjoKKyAgICAgICAgcmV0dXJuICJzaGFyZWR3b3JrZXIiX3M7
CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTdHlsZToKKyAgICAgICAgcmV0
dXJuICJzdHlsZSJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlRyYWNr
OgorICAgICAgICByZXR1cm4gInRyYWNrIl9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6VmlkZW86CisgICAgICAgIHJldHVybiAidmlkZW8iX3M7CisgICAgY2FzZSBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI6CisgICAgICAgIHJldHVybiAid29ya2VyIl9z
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6WHNsdDoKKyAgICAgICAgcmV0
dXJuICJ4c2x0Il9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1wdHlT
dHJpbmc6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
K30KKworLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3F1ZXVlLWEtY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1jb3JwLXZpb2xhdGlvbi1yZXBvcnQKK3ZvaWQgc2VuZENPRVBD
T1JQVmlvbGF0aW9uKEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJl
ZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBjb25zdCBVUkwm
IGJsb2NrZWRVUkwpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1
dG8gcmVwb3J0VVJMID0gZnJhbWUuZG9jdW1lbnQoKSA/IGZyYW1lLmRvY3VtZW50KCktPnVybCgp
IDogVVJMKCk7CisgICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91bGRJbmhlcml0U2VjdXJpdHlP
cmlnaW5Gcm9tT3duZXIocmVwb3J0VVJMKSkgeworICAgICAgICBpZiAoYXV0byogcGFyZW50RnJh
bWUgPSBmcmFtZS50cmVlKCkucGFyZW50KCk7IHBhcmVudEZyYW1lLT5kb2N1bWVudCgpKQorICAg
ICAgICAgICAgcmVwb3J0VVJMID0gcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnVybCgpOworICAg
ICAgICBlbHNlIGlmIChhdXRvKiBvcGVuZXJGcmFtZSA9IGZyYW1lLmxvYWRlcigpLm9wZW5lcigp
OyBvcGVuZXJGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJlcG9ydFVSTCA9IG9wZW5l
ckZyYW1lLT5kb2N1bWVudCgpLT51cmwoKTsKKyAgICB9CisKKyAgICBQaW5nTG9hZGVyOjpzZW5k
UmVwb3J0VG9FbmRwb2ludChmcmFtZSwgZW1iZWRkZXJPcmlnaW4sIGVuZHBvaW50LCAiY29lcCJf
cywgcmVwb3J0VVJMLCBmcmFtZS5sb2FkZXIoKS51c2VyQWdlbnQoYmxvY2tlZFVSTCksIFsmXShh
dXRvJiBib2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlz
cG9zaXRpb24gPT0gQ09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDog
ImVuZm9yY2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgImNvcnAiKTsK
KyAgICAgICAgYm9keS5zZXRTdHJpbmcoImJsb2NrZWRVUkwiX3MsIFBpbmdMb2FkZXI6OnNhbml0
aXplVVJMRm9yUmVwb3J0KGJsb2NrZWRVUkwpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRl
c3RpbmF0aW9uIl9zLCBmZXRjaERlc3RpbmF0aW9uVG9TdHJpbmcoZGVzdGluYXRpb24pKTsKKyAg
ICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmgKaW5kZXggNzQ5ZjBjNzlmYjNiLi42
ZjlkMmEwMjAzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuaApAQCAtMjUsMTMgKzI1LDE3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRnJhbWU7CiBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAorc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKKwogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
b3JpZ2luLmh0bWwjZW1iZWRkZXItcG9saWN5LXZhbHVlCiBlbnVtIGNsYXNzIENyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3lWYWx1ZSA6IGJvb2wgewogICAgIFVuc2FmZU5vbmUsCkBAIC05Myw3ICs5
NywxMSBAQCBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3k+IENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3k6OmRlY29kZShEZWNvZAogICAgIH19OwogfQogCitlbnVtIGNsYXNz
IENPRVBEaXNwb3NpdGlvbiA6IGJvb2wgeyBSZXBvcnRpbmcgLCBFbmZvcmNlIH07CisKIFdFQkNP
UkVfRVhQT1JUIENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kgb2J0YWluQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5SGVhZGVycyhSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeSYpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlv
bGF0aW9uKEZyYW1lJiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBwYXJlbnRPcmlnaW4sIGNv
bnN0IFN0cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kQ09FUENP
UlBWaW9sYXRpb24oRnJhbWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24sIEZldGNoT3B0aW9u
czo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kuY3BwCmluZGV4IDkwOWM3YzUxYWYyYi4uMTQ2YzY1Yjg2MmM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3ku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5j
cHAKQEAgLTMwLDIyICszMCwxMiBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgotI2luY2x1ZGUg
IlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvSlNP
TlZhbHVlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nhbml0aXplLXVybC1yZXBvcnQKLXN0
YXRpYyBTdHJpbmcgc2FuaXRpemVSZWZlcnJlckZvclVSTFJlcG9ydChjb25zdCBVUkwmIHJlZmVy
cmVyKQotewotICAgIFVSTCBzYW5pdGl6ZWRSZWZlcnJlciA9IHJlZmVycmVyOwotICAgIHNhbml0
aXplZFJlZmVycmVyLnJlbW92ZUNyZWRlbnRpYWxzKCk7Ci0gICAgc2FuaXRpemVkUmVmZXJyZXIu
cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIHNhbml0aXplZFJlZmVycmVy
LnN0cmluZygpOwotfQotCiBzdGF0aWMgQVNDSUlMaXRlcmFsIGNyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5VG9TdHJpbmcoY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZSYgY29vcCkKIHsK
ICAgICBzd2l0Y2ggKGNvb3ApIHsKQEAgLTEzNiw0NCArMTI2LDE3IEBAIHZvaWQgYWRkQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25z
dCBDcm9zc09yCiAgICAgfQogfQogCi0vLyBodHRwczovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5n
LyN0cnktZGVsaXZlcnkKLXN0YXRpYyB2b2lkIHNlbmRDT09QVmlvbGF0aW9uUmVwb3J0KEZyYW1l
JiBmcmFtZSwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRp
c3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29w
T3JpZ2luLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRnVuY3Rpb248dm9pZChKU09OOjpPYmpl
Y3QmKT4mJiBwb3B1bGF0ZUJvZHkpCi17Ci0gICAgYXV0byYgcmVwb3J0aW5nRW5kcG9pbnQgPSBk
aXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25s
eVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBvcnRpbmdFbmRwb2ludDsKLSAgICBpZiAocmVw
b3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIHJl
cG9ydGluZ0VuZHBvaW50c0NhY2hlID0gZnJhbWUucGFnZSgpID8gZnJhbWUucGFnZSgpLT5yZXBv
cnRpbmdFbmRwb2ludHNDYWNoZSgpIDogbnVsbHB0cjsKLSAgICBpZiAoIXJlcG9ydGluZ0VuZHBv
aW50c0NhY2hlKQotICAgICAgICByZXR1cm47Ci0gICAgYXV0byBlbmRwb2ludFVSTCA9IHJlcG9y
dGluZ0VuZHBvaW50c0NhY2hlLT5lbmRwb2ludFVSTChjb29wT3JpZ2luLmRhdGEoKSwgcmVwb3J0
aW5nRW5kcG9pbnQpOwotICAgIGlmICghZW5kcG9pbnRVUkwuaXNWYWxpZCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBhdXRvIGJvZHkgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGJv
ZHktPnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3Np
dGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKLSAgICBib2R5
LT5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJfcywgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lW
YWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlv
bjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5VmFsdWUgOiBjb29wLnZhbHVlKSk7Ci0gICAg
cG9wdWxhdGVCb2R5KGJvZHkpOwotCi0gICAgYXV0byByZXBvcnRPYmplY3QgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwotICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ0eXBlIl9zLCAiY29v
cCJfcyk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVybCJfcywgY29vcFVSTC5zdHJp
bmcoKSk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdlbnQiLCB1c2VyQWdl
bnQpOwotICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7IC8vIFdlIGN1cnJl
bnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KLSAgICByZXBvcnRPYmplY3Qt
PnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7Ci0KLSAgICBhdXRvIHJlcG9ydExp
c3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7Ci0gICAgcmVwb3J0TGlzdC0+cHVzaE9iamVjdChy
ZXBvcnRPYmplY3QpOwotCi0gICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9y
dExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7Ci0gICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xh
dGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9u
UmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRpb24pOwotfQotCiAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjb29wLXZpb2xh
dGlvbi1uYXZpZ2F0aW9uLXRvCiB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGlu
Z1RvQ09PUFJlc3BvbnNlKEZyYW1lJiBmcmFtZSwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29v
cCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0
IFVSTCYgcHJldmlvdXNSZXNwb25zZVVSTCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNvb3BPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBwcmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKIHsKLSAgICBzZW5kQ09P
UFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29vcCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIGNvb3BP
cmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsKLSAgICAgICAgYm9keS5zZXRTdHJp
bmcoInByZXZpb3VzUmVzcG9uc2VVUkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMocHJl
dmlvdXNSZXNwb25zZU9yaWdpbikgPyBzYW5pdGl6ZVJlZmVycmVyRm9yVVJMUmVwb3J0KHByZXZp
b3VzUmVzcG9uc2VVUkwpIDogU3RyaW5nKCkpOworICAgIGF1dG8mIGVuZHBvaW50ID0gZGlzcG9z
aXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9ydE9ubHlSZXBv
cnRpbmdFbmRwb2ludCA6IGNvb3AucmVwb3J0aW5nRW5kcG9pbnQ7CisgICAgaWYgKGVuZHBvaW50
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9y
dFRvRW5kcG9pbnQoZnJhbWUsIGNvb3BPcmlnaW4uZGF0YSgpLCBlbmRwb2ludCwgImNvb3AiX3Ms
IGNvb3BVUkwsIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsKKyAgICAgICAgYm9keS5zZXRT
dHJpbmcoImRpc3Bvc2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJl
cG9ydGluZyA/ICJyZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7CisgICAgICAgIGJvZHkuc2V0
U3RyaW5nKCJlZmZlY3RpdmVQb2xpY3kiX3MsIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWVU
b0VmZmVjdGl2ZVBvbGljeVN0cmluZyhkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJl
cG9ydGluZyA/IGNvb3AucmVwb3J0T25seVZhbHVlIDogY29vcC52YWx1ZSkpOworICAgICAgICBi
b2R5LnNldFN0cmluZygicHJldmlvdXNSZXNwb25zZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVP
cmlnaW5BcyhwcmV2aW91c1Jlc3BvbnNlT3JpZ2luKSA/IFBpbmdMb2FkZXI6OnNhbml0aXplVVJM
Rm9yUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwpIDogU3RyaW5nKCkpOwogICAgICAgICBib2R5
LnNldFN0cmluZygidHlwZSJfcywgIm5hdmlnYXRpb24tdG8tcmVzcG9uc2UiX3MpOwogICAgICAg
ICBib2R5LnNldFN0cmluZygicmVmZXJyZXIiX3MsIHJlZmVycmVyKTsKICAgICB9KTsKQEAgLTE4
Miw4ICsxNDUsMTQgQEAgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NP
T1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENyb3NzT3JpZ2luT3AKIC8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI2Nvb3AtdmlvbGF0aW9uLW5hdmln
YXRpb24tZnJvbQogdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJv
bUNPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3As
IENPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBV
UkwmIG5leHRSZXNwb25zZVVSTCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9u
c2VOYXZpZ2F0aW9uU291cmNlLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKIHsKLSAgICBzZW5k
Q09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29vcCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIGNv
b3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsKLSAgICAgICAgYm9keS5zZXRT
dHJpbmcoIm5leHRSZXNwb25zZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhuZXh0
UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSA/IHNhbml0
aXplUmVmZXJyZXJGb3JVUkxSZXBvcnQobmV4dFJlc3BvbnNlVVJMKSA6IFN0cmluZygpKTsKKyAg
ICBhdXRvJiBlbmRwb2ludCA9IGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0
aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQgOiBjb29wLnJlcG9ydGluZ0Vu
ZHBvaW50OworICAgIGlmIChlbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBjb29wT3JpZ2luLmRh
dGEoKSwgZW5kcG9pbnQsICJjb29wIl9zLCBjb29wVVJMLCB1c2VyQWdlbnQsIFsmXShhdXRvJiBi
b2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRp
b24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9y
Y2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmluZygiZWZmZWN0aXZlUG9saWN5Il9zLCBjcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZlY3RpdmVQb2xpY3lTdHJpbmcoZGlzcG9zaXRp
b24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9ydE9ubHlWYWx1ZSA6
IGNvb3AudmFsdWUpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoIm5leHRSZXNwb25zZVVSTCJf
cywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhuZXh0UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09P
UFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSA/IFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVw
b3J0KG5leHRSZXNwb25zZVVSTCkgOiBTdHJpbmcoKSk7CiAgICAgICAgIGJvZHkuc2V0U3RyaW5n
KCJ0eXBlIl9zLCAibmF2aWdhdGlvbi1mcm9tLXJlc3BvbnNlIl9zKTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaAppbmRleCBjN2YzMTM4NDJlMTQuLjI3Yjk4YTkz
MjMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaApAQCAtMzYsNyArMzYsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgRmV0Y2hPcHRpb25zIHsKLSAgICBlbnVt
IGNsYXNzIERlc3RpbmF0aW9uIDogdWludDhfdCB7IEVtcHR5U3RyaW5nLCBBdWRpbywgQXVkaW93
b3JrbGV0LCBEb2N1bWVudCwgRW1iZWQsIEZvbnQsIEltYWdlLCBNYW5pZmVzdCwgTW9kZWwsIE9i
amVjdCwgUGFpbnR3b3JrbGV0LCBSZXBvcnQsIFNjcmlwdCwgU2VydmljZXdvcmtlciwgU2hhcmVk
d29ya2VyLCBTdHlsZSwgVHJhY2ssIFZpZGVvLCBXb3JrZXIsIFhzbHQgfTsKKyAgICBlbnVtIGNs
YXNzIERlc3RpbmF0aW9uIDogdWludDhfdCB7IEVtcHR5U3RyaW5nLCBBdWRpbywgQXVkaW93b3Jr
bGV0LCBEb2N1bWVudCwgRW1iZWQsIEZvbnQsIEltYWdlLCBJZnJhbWUsIE1hbmlmZXN0LCBNb2Rl
bCwgT2JqZWN0LCBQYWludHdvcmtsZXQsIFJlcG9ydCwgU2NyaXB0LCBTZXJ2aWNld29ya2VyLCBT
aGFyZWR3b3JrZXIsIFN0eWxlLCBUcmFjaywgVmlkZW8sIFdvcmtlciwgWHNsdCB9OwogICAgIGVu
dW0gY2xhc3MgTW9kZSA6IHVpbnQ4X3QgeyBOYXZpZ2F0ZSwgU2FtZU9yaWdpbiwgTm9Db3JzLCBD
b3JzIH07CiAgICAgZW51bSBjbGFzcyBDcmVkZW50aWFscyA6IHVpbnQ4X3QgeyBPbWl0LCBTYW1l
T3JpZ2luLCBJbmNsdWRlIH07CiAgICAgZW51bSBjbGFzcyBDYWNoZSA6IHVpbnQ4X3QgeyBEZWZh
dWx0LCBOb1N0b3JlLCBSZWxvYWQsIE5vQ2FjaGUsIEZvcmNlQ2FjaGUsIE9ubHlJZkNhY2hlZCB9
OwpAQCAtODAsOSArODAsMTEgQEAgaW5saW5lIGJvb2wgaXNQb3RlbnRpYWxOYXZpZ2F0aW9uT3JT
dWJyZXNvdXJjZVJlcXVlc3QoRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbgogICAgICAgICB8fCBk
ZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbWJlZDsKIH0KIAorLy8g
aHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI25vbi1zdWJyZXNvdXJjZS1yZXF1ZXN0CiBp
bmxpbmUgYm9vbCBpc05vblN1YnJlc291cmNlUmVxdWVzdChGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uIGRlc3RpbmF0aW9uKQogewogICAgIHJldHVybiBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudAorICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUKICAgICAgICAgfHwgZGVzdGluYXRpb24gPT0g
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6UmVwb3J0CiAgICAgICAgIHx8IGRlc3RpbmF0aW9u
ID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXIKICAgICAgICAgfHwg
ZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2hhcmVkd29ya2VyCkBA
IC0xMTIsNiArMTE0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6OkZldGNoT3B0aW9u
czo6RGVzdGluYXRpb246OkVtYmVkLAogICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpGb250LAogICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpJbWFnZSwKKyAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
SWZyYW1lLAogICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNYW5p
ZmVzdCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TW9kZWws
CiAgICAgICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok9iamVjdCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCBiODBhN2Y5YmY1MTAuLjQyN2U0NzM4
MmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAtNDksNiArNDksNyBA
QAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNp
bmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZXBvcnRpbmdFbmRwb2ludHND
YWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZEluZm8uaCIKQEAgLTIzOSw4ICsyNDAsNDcg
QEAgdm9pZCBQaW5nTG9hZGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBIVFRQSGVhZGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IFdURkxvZ0Fsd2F5cygiQ0hSSVM6IFNlbmRpbmcgcGluZyBsb2FkIHRvICVzIiwgcmVxdWVzdC51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHsgUmVzb3VyY2VSZXF1ZXN0IHsgcmVxdWVzdCB9LCBvcHRp
b25zIH07CiAgICAgZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1
ZXN0UGluZ1Jlc291cmNlKFdURk1vdmUoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKKy8v
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nh
bml0aXplLXVybC1yZXBvcnQKK1N0cmluZyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9y
dChjb25zdCBVUkwmIHVybCkKK3sKKyAgICBVUkwgc2FuaXRpemVkVVJMID0gdXJsOworICAgIHNh
bml0aXplZFVSTC5yZW1vdmVDcmVkZW50aWFscygpOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVG
cmFnbWVudElkZW50aWZpZXIoKTsKKyAgICByZXR1cm4gc2FuaXRpemVkVVJMLnN0cmluZygpOwog
fQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKK3Zv
aWQgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJv
ZHkpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVwb3J0
aW5nRW5kcG9pbnRzQ2FjaGUgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGlu
Z0VuZHBvaW50c0NhY2hlKCkgOiBudWxscHRyOworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5n
RW5kcG9pbnRzQ2FjaGUtPmVuZHBvaW50VVJMKG9yaWdpbiwgZW5kcG9pbnQpOworICAgIGlmICgh
ZW5kcG9pbnRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJvZHkg
PSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIHBvcHVsYXRlUmVwb3J0Qm9keShib2R5KTsK
KworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBy
ZXBvcnRPYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgdHlwZSk7CisgICAgaWYgKHJlcG9ydFVS
TC5pc1ZhbGlkKCkpCisgICAgICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIHJl
cG9ydFVSTC5zdHJpbmcoKSk7CisgICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdl
bnQiLCB1c2VyQWdlbnQpOworICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7
IC8vIFdlIGN1cnJlbnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KKyAgICBy
ZXBvcnRPYmplY3QtPnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7CisKKyAgICBh
dXRvIHJlcG9ydExpc3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAgcmVwb3J0TGlzdC0+
cHVzaE9iamVjdChyZXBvcnRPYmplY3QpOworCisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6
Y3JlYXRlKHJlcG9ydExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgc2VuZFZpb2xh
dGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9u
UmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRpb24pOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCA1ZWNhOThj
NzFlZTcuLjRjZTQ5MzVlNzIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC01
Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNv
bnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVS
TCYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBl
KTsKIAorICAgIHN0YXRpYyBTdHJpbmcgc2FuaXRpemVVUkxGb3JSZXBvcnQoY29uc3QgVVJMJik7
CisgICAgc3RhdGljIHZvaWQgc2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
RnVuY3Rpb248dm9pZChKU09OOjpPYmplY3QmKT4mIHBvcHVsYXRlUmVwb3J0Qm9keSk7CisKIHBy
aXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xsb3dSZWRpcmVjdHMgeyBObywgWWVzIH07
CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYs
IEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBTaG91bGRGb2xsb3dSZWRp
cmVjdHMsIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24sIFJlZmVycmVyUG9saWN5LCBz
dGQ6Om9wdGlvbmFsPFZpb2xhdGlvblJlcG9ydFR5cGU+ID0gc3RkOjpudWxsb3B0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IGMyYmQwN2UxODIyOC4uZGE2M2VmZDI3ZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc5NSwxMiAr
Nzk1LDEyIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUhUVFBSZXF1ZXN0SGVh
ZGVycyhGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIENhCiAgICAgcmVxdWVzdC51cGRhdGVBY2Nl
cHRFbmNvZGluZ0hlYWRlcigpOwogfQogCi1zdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKK3N0YXRpYyBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uRm9yVHlwZShDYWNoZWRSZXNvdXJj
ZTo6VHlwZSB0eXBlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6TWFpblJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlR5cGU6OlNWR0RvY3VtZW50UmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudDsKKyAgICAgICAgcmV0dXJuIGZyYW1lLmlz
TWFpbkZyYW1lKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCA6IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpU
eXBlOjpJbWFnZVJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Okljb246
CiAgICAgICAgIHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJbWFnZTsKQEAgLTg2
OCw3ICs4NjgsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgTE9HKFJlc291cmNl
TG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyUuMjU1cycs
IGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nQ2Vu
dGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQo
KS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSA/IHN0YXRpY19jYXN0PGludD4o
cmVxdWVzdC5wcmlvcml0eSgpLnZhbHVlKCkpIDogLTEsIGZvclByZWxvYWQgPT0gRm9yUHJlbG9h
ZDo6WWVzKTsKIAotICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0aW5hdGlv
bkZvclR5cGUodHlwZSkpOworICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0
aW5hdGlvbkZvclR5cGUodHlwZSwgZnJhbWUpKTsKIAogICAgIC8vIEVudHJ5IHBvaW50IHRvIGh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZldGNoLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZXNvdXJjZVJlcXVlc3Q+IG9yaWdpbmFsUmVxdWVzdDsKQEAgLTg4MCw3ICs4ODAsNyBA
QCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgcHJlcGFyZUZldGNoKHR5cGUsIHJlcXVl
c3QpOwogCi0gICAgaWYgKHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50KSB7CisgICAgaWYgKHJlcXVlc3Qub3B0aW9ucygp
LmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50IHx8IHJl
cXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OklmcmFtZSkgewogICAgICAgICAvLyBGSVhNRTogSWRlbnRpZnkgSFNUUyBjYXNlcyBhbmQgYXZv
aWQgYWRkaW5nIHRoZSBoZWFkZXIuIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU3ODg1PgogICAgICAgICBpZiAoIXVybC5wcm90b2NvbElzKCJodHRwcyIpKQogICAg
ICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OlVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzLCAiMSJfcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXgg
MGEzMDcwNzM5MWJmLi5hOWRhNzYwMjU1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTY2hlbWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaD4KQEAgLTE1OCw2ICsxNTksMjcgQEAg
dm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXEKICAgICB9KTsKIH0KIAorLy8gaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3ktY2hlY2sKK3N0YXRp
YyBzdGQ6Om9wdGlvbmFsPFJlc291cmNlRXJyb3I+IHBlcmZvcm1DT1JQQ2hlY2soY29uc3QgQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSYgZW1iZWRkZXJDT0VQLCBjb25zdCBTZWN1cml0eU9yaWdp
biYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgRm9yTmF2aWdhdGlvbiBmb3JOYXZpZ2F0aW9uLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIq
IGxvYWRlcikKK3sKKyAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNv
dXJjZVBvbGljeShDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUsIGVt
YmVkZGVyT3JpZ2luLCB1cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAg
ICByZXR1cm4gV1RGTW92ZSgqZXJyb3IpOworCisgICAgaWYgKGVtYmVkZGVyQ09FUC5yZXBvcnRP
bmx5VmFsdWUgPT0gQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCAm
JiAhZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkgJiYg
bG9hZGVyKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJl
c291cmNlUG9saWN5KGVtYmVkZGVyQ09FUC5yZXBvcnRPbmx5VmFsdWUsIGVtYmVkZGVyT3JpZ2lu
LCB1cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgbG9hZGVy
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXIt
PmZyYW1lSUQoKSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0T25s
eVJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZywgbG9hZGVyLT5w
YXJhbWV0ZXJzKCkub3B0aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJM
KCkgfSwgbG9hZGVyLT5wYWdlSUQoKSk7CisgICAgfQorCisgICAgaWYgKGVtYmVkZGVyQ09FUC52
YWx1ZSA9PSBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7Cisg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJlc291cmNlUG9saWN5
KGVtYmVkZGVyQ09FUC52YWx1ZSwgZW1iZWRkZXJPcmlnaW4sIHVybCwgcmVzcG9uc2UsIEZvck5h
dmlnYXRpb246OlllcykpIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIgJiYgIWVtYmVkZGVyQ09F
UC5yZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbG9hZGVyLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXItPmZy
YW1lSUQoKSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0aW5nRW5k
cG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwgbG9hZGVyLT5wYXJhbWV0ZXJzKCkub3B0
aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJMKCkgfSwgbG9hZGVyLT5w
YWdlSUQoKSk7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgqZXJyb3IpOworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIFJlc291cmNlRXJyb3IgTmV0
d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fcmVkaXJl
Y3RDb3VudCkKQEAgLTE3MCw3ICsxOTIsNyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hl
Y2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogCiAg
ICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgfHwg
bV9pc1NhbWVPcmlnaW5SZXF1ZXN0KSB7CiAgICAgICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlICYmIG1fcGFyZW50T3JpZ2luKSB7Ci0gICAgICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeSht
X3BhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUsICptX3BhcmVudE9yaWdpbiwg
bV91cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBwZXJmb3JtQ09SUENoZWNrKG1fcGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeSwgKm1fcGFyZW50T3JpZ2luLCBtX3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246Olll
cywgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVy
biBXVEZNb3ZlKCplcnJvcik7CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRp
bmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6OkJhc2ljKTsKQEAgLTE4MSw3ICsyMDMsNyBA
QCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICByZXNwb25zZS5zZXRBc1JhbmdlUmVx
dWVzdGVkKCk7CiAKICAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOb0NvcnMpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2lu
UmVzb3VyY2VQb2xpY3kobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlLCAqbV9vcmln
aW4sIG1fdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8pKQorICAgICAgICBpZiAoYXV0
byBlcnJvciA9IHBlcmZvcm1DT1JQQ2hlY2sobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCAq
bV9vcmlnaW4sIG1fdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8sIG1fbmV0d29ya1Jl
c291cmNlTG9hZGVyLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7
CiAKICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRp
bmc6Ok9wYXF1ZSk7CkBAIC0yODEsNiArMzAzLDcgQEAgYm9vbCBOZXR3b3JrTG9hZENoZWNrZXI6
OmlzQWxsb3dlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYK
ICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtYmVkOgogICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6Rm9udDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OkltYWdlOgorICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZy
YW1lOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3Q6CiAgICAg
Y2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbDoKICAgICBjYXNlIEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246Ok9iamVjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyM2Q5NDg3NWUyYzEu
Ljg3MjU5ZjI5MzNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzkyLDYgKzM5Miw3IEBAIFJlc291cmNl
TG9hZEluZm8gTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXNvdXJjZUxvYWRJbmZvKCkKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ6
CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkSW5mbzo6VHlwZTo6T3RoZXI7CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQ6Cisg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lOgog
ICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZEluZm86OlR5cGU6OkRvY3VtZW50OwogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtYmVkOgogICAg
ICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZEluZm86OlR5cGU6Ok9iamVjdDsKQEAgLTYwNiwz
MCArNjA3LDQ3IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRO
YXZpZ2F0aW9uRm9yQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljCiAgICAgQVNTRVJUKGlzTWFpblJl
c291cmNlKCkpOwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvb3JpZ2luLmh0bWwjY2hlY2stYS1uYXZpZ2F0aW9uLXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRv
LWl0cy1lbWJlZGRlci1wb2xpY3kKLSAgICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeVZhbHVlOjpVbnNhZmVOb25lICYmIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKKyAg
ICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUg
PT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCB8
fCBtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5
VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJl
Q09SUCkgewogICAgICAgICBhdXRvIHJlc3BvbnNlQ09FUCA9IFdlYkNvcmU6Om9idGFpbkNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3kocmVzcG9uc2UsIG51bGxwdHIpOwotICAgICAgICBpZiAocmVz
cG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1
ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQICYmIHJlc3BvbnNlQ09FUC52YWx1ZSAh
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7
CisgICAgICAgICAgICBpZiAoYXV0byBwYXJlbnRPcmlnaW4gPSBtX3BhcmFtZXRlcnMucGFyZW50
T3JpZ2luKCk7IHBhcmVudE9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVy
aXRlbmNlVmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmVudE9yaWdpbi0+
ZGF0YSgpLCBtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBv
cnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCAibmF2
aWdhdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiByZXNwb25zZUNPRVAudmFsdWUgIT0gV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAgICAgICAg
U3RyaW5nIGVycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlZnVzZWQgdG8gZGlzcGxheSAnIiwg
cmVzcG9uc2UudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCksICInIGluIGEg
ZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LiIpOwogICAgICAg
ICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QWRkQ29uc29sZU1lc3NhZ2UgeyBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgIE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBlcnJvck1lc3NhZ2UsIGNvcmVJZGVudGlmaWVyKCkgfSwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCk7CisgICAgICAgICAgICBpZiAoYXV0byBwYXJlbnRPcmlnaW4gPSBtX3BhcmFtZXRl
cnMucGFyZW50T3JpZ2luKCk7IHBhcmVudE9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLnBhcmVudENy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJp
dGVuY2VWaW9sYXRpb24geyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyZW50T3JpZ2luLT5k
YXRhKCksIG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9y
dGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OkVuZm9yY2UsICJuYXZpZ2F0aW9uIl9zLCBt
X2ZpcnN0UmVzcG9uc2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwj
Y2hlY2stYS1nbG9iYWwtb2JqZWN0J3MtZW1iZWRkZXItcG9saWN5CiBib29sIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0V29ya2VyTG9hZEZvckNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1f
cGFyYW1ldGVycy5vcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246OldvcmtlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fcGFyYW1ldGVy
cy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiBtX3BhcmFtZXRlcnMuc291cmNlT3Jp
Z2luKSB7CisgICAgaWYgKG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZh
bHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNP
UlAgfHwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVZh
bHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNP
UlApIHsKICAgICAgICAgYXV0byByZXNwb25zZUNPRVAgPSBXZWJDb3JlOjpvYnRhaW5Dcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5KHJlc3BvbnNlLCBudWxscHRyKTsKLSAgICAgICAgaWYgKHJlc3Bv
bnNlQ09FUC52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6
OlJlcXVpcmVDT1JQKSB7CisgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCAmJiByZXNwb25zZUNPRVAudmFsdWUgPT0gV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lKSB7CisgICAgICAg
ICAgICBpZiAobV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLmNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGlj
eUluaGVyaXRlbmNlVmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5zb3VyY2VPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJl
cG9ydGluZywgIndvcmtlciBpbml0aWFsaXphdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0s
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcGFy
YW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlID09IFdlYkNvcmU6OkNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgcmVzcG9uc2VDT0VQLnZh
bHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9u
ZSkgewogICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlZnVz
ZWQgdG8gbG9hZCAnIiwgcmVzcG9uc2UudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVu
Z3RoKCksICInIHdvcmtlciBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3ku
Iik7CiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBZGRDb25zb2xlTWVzc2Fn
ZSB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCAgTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZSwgY29yZUlkZW50aWZpZXIoKSB9LCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKTsKKyAgICAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuc291cmNl
T3JpZ2luICYmICFtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRp
bmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVy
cy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9z
aXRpb246OkVuZm9yY2UsICJ3b3JrZXIgaW5pdGlhbGl6YXRpb24iX3MsIG1fZmlyc3RSZXNwb25z
ZVVSTCB9LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC02NDEsNiAr
NjU5LDExIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgICAgIGRpZFJlY2VpdmVNYWlu
UmVzb3VyY2VSZXNwb25zZShyZWNlaXZlZFJlc3BvbnNlKTsKIAogICAgIG1fcmVzcG9uc2UgPSBX
VEZNb3ZlKHJlY2VpdmVkUmVzcG9uc2UpOworICAgIGlmICghbV9maXJzdFJlc3BvbnNlVVJMLmlz
VmFsaWQoKSkKKyAgICAgICAgbV9maXJzdFJlc3BvbnNlVVJMID0gbV9yZXNwb25zZS51cmwoKTsK
KworICAgIGlmIChtX3BhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUpCisgICAgICAgIFdURkxv
Z0Fsd2F5cygiQ0hSSVM6IGRpZFJlY2VpdmVSZXNwb25zZSBmb3IgUGluZ0xvYWQgdG8gJXMsIHN0
YXR1c19jb2RlOiAlZCIsIG9yaWdpbmFsUmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCksIG1fcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKICAgICBpZiAoc2hvdWxkQ2Fw
dHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgJiYgbV9uZXR3b3JrTG9hZENoZWNrZXIpIHsK
ICAgICAgICAgYXV0byBpbmZvcm1hdGlvbiA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT50YWtlTmV0
d29ya0xvYWRJbmZvcm1hdGlvbigpOwpAQCAtNjkwLDYgKzcxMywxOCBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNl
aXZlZFJlc3BvbgogICAgIGlmIChtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKQogICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpVc2UpOwogCisgICAgaWYgKG1f
bmV0d29ya0xvYWRDaGVja2VyKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBtX25ldHdvcmtMb2Fk
Q2hlY2tlci0+dmFsaWRhdGVSZXNwb25zZShtX25ldHdvcmtMb2FkID8gbV9uZXR3b3JrTG9hZC0+
Y3VycmVudFJlcXVlc3QoKSA6IG9yaWdpbmFsUmVxdWVzdCgpLCBtX3Jlc3BvbnNlKTsKKyAgICAg
ICAgaWYgKCFlcnJvci5pc051bGwoKSkgeworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9H
X0VSUk9SKCJkaWRSZWNlaXZlUmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVS
ZXNwb25zZSByZXR1cm5lZCBhbiBlcnJvciAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RS
SU5HICIsIGVycm9yLmNvZGU9JWQpIiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJy
b3IuZXJyb3JDb2RlKCkpOworICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcildIHsK
KyAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9uZXR3b3JrTG9hZCkKKyAgICAg
ICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5
QWN0aW9uOjpJZ25vcmUpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKGlzTWFpblJlc291
cmNlKCkgJiYgc2hvdWxkSW50ZXJydXB0TG9hZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVP
cHRpb25zKG1fcmVzcG9uc2UpKSB7CiAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigi
ZGlkUmVjZWl2ZVJlc3BvbnNlOiBJbnRlcnJ1cHRpbmcgbWFpbiByZXNvdXJjZSBsb2FkIGR1ZSB0
byBDU1AgZnJhbWUtYW5jZXN0b3JzIG9yIFgtRnJhbWUtT3B0aW9ucyIpOwogICAgICAgICBhdXRv
IHJlc3BvbnNlID0gc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25zZSB7
IG1fcmVzcG9uc2UgfSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NP
cmlnaW5TYWZlKTsKQEAgLTcwNywxOCArNzQyLDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24K
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsK
ICAgICB9CiAKLSAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAgYXV0byBl
cnJvciA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT52YWxpZGF0ZVJlc3BvbnNlKG1fbmV0d29ya0xv
YWQgPyBtX25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpIDogb3JpZ2luYWxSZXF1ZXN0KCks
IG1fcmVzcG9uc2UpOwotICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBMT0FERVJfUkVMRUFTRV9MT0dfRVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogTmV0d29ya0xv
YWRDaGVja2VyOjp2YWxpZGF0ZVJlc3BvbnNlIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21h
aW49JSIgUFVCTElDX0xPR19TVFJJTkcgIiwgZXJyb3IuY29kZT0lZCkiLCBlcnJvci5kb21haW4o
KS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7Ci0gICAgICAgICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3Ig
PSBXVEZNb3ZlKGVycm9yKV0gewotICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5t
X25ldHdvcmtMb2FkKQotICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWls
TG9hZGluZyhlcnJvcik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
ICAgICBhdXRvIHJlc3BvbnNlID0gc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VS
ZXNwb25zZSB7IG1fcmVzcG9uc2UgfSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlw
ZTo6Q3Jvc3NPcmlnaW5TYWZlKTsKICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAg
IExPQURFUl9SRUxFQVNFX0xPRygiZGlkUmVjZWl2ZVJlc3BvbnNlOiBVc2luZyByZXNwb25zZSBm
b3Igc3luY2hyb25vdXMgbG9hZCIpOwpAQCAtODM5LDYgKzg2Miw5IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
ICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAg
IG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0d29ya0xvYWRJbmZvcm1hdGlvbihjb3JlSWRlbnRpZmll
cigpKTsKIAorICAgIGlmIChtX3BhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUpCisgICAgICAg
IFdURkxvZ0Fsd2F5cygiQ0hSSVM6IFBpbmcgbG9hZCB0byAlcyBmYWlsZWQ6ICVzIiwgb3JpZ2lu
YWxSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKwogICAgIEFTU0VSVCghZXJyb3IuaXNOdWxs
KCkpOwogCiAgICAgbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbiA9IG51bGxwdHI7CkBAIC05MDIs
NiArOTI4LDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3Rl
ZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBMT0FERVJfUkVMRUFTRV9M
T0coIndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Q6Iik7CiAgICAgKyttX3JlZGlyZWN0Q291bnQ7
CiAgICAgbV9yZWRpcmVjdFJlc3BvbnNlID0gcmVkaXJlY3RSZXNwb25zZTsKKyAgICBpZiAoIW1f
Zmlyc3RSZXNwb25zZVVSTC5pc1ZhbGlkKCkpCisgICAgICAgIG1fZmlyc3RSZXNwb25zZVVSTCA9
IHJlZGlyZWN0UmVzcG9uc2UudXJsKCk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgaWYgKCFzZXNzaW9uSUQo
KS5pc0VwaGVtZXJhbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA3ZmY2MWViMWJlODIuLmI0ODkzYzRmMzk2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQ7IH0KICAgICBjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogICAgIE5ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZElE
OyB9CisgICAgY29uc3QgVVJMJiBmaXJzdFJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9m
aXJzdFJlc3BvbnNlVVJMOyB9CiAKICAgICBOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZ2xv
YmFsRnJhbWVJRCgpIHsgcmV0dXJuIHsgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBwYWdl
SUQoKSwgZnJhbWVJRCgpIH07IH0KIApAQCAtMjU1LDYgKzI1Niw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX3Jlc291cmNlTG9hZElEOwog
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZWRpcmVjdFJlc3BvbnNlOworICAgIFVS
TCBtX2ZpcnN0UmVzcG9uc2VVUkw7IC8vIEZpcnN0IFVSTCBpbiByZXNwb25zZSdzIFVSTCBsaXN0
IChodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXNwb25zZS11cmwtbGlz
dCkuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IDNkMTE2ZGJjNmJjYS4uZGM3NjNiZjFlODM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTY4OCw2ICs2ODgsNyBAQCBk
ZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8
cGFsL1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdz
JzogWyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24nOiBbJzxXZWJDb3Jl
L0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkNyZWF0
ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9BcHBIaWdobGlnaHQuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxXZWJDb3JlL0RPTVBh
c3RlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2Un
OiBbJzxXZWJDb3JlL0NvbG9yU3BhY2UuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTQ1NGY5NjM3NmNkLi42NzMwNzdjNzFlYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNjEs
NiArMTYxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Db250YWN0c1JlcXVlc3REYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EYXRhVHJhbnNmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlTWFuYWdlci5o
PgpAQCAtNDMyNCw2ICs0MzI1LDE4IEBAIHZvaWQgV2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJl
cG9ydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVCiAgICAgICAg
IFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLT5jb3JlRnJhbWUoKSwgcmVw
b3J0VVJMLCByZXBvcnQucmVsZWFzZU5vbk51bGwoKSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29u
dGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZW5kQ09FUFBvbGljeUlu
aGVyaXRlbmNlVmlvbGF0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIHBhcmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERp
c3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxv
Y2tlZFVSTCkKK3sKKyAgICBpZiAoYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJGcmFtZShmcmFtZUlEKTsgZnJhbWUtPmNvcmVGcmFtZSgpKQorICAgICAgICBXZWJDb3Jl
OjpzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCks
IHBhcmVudE9yaWdpbiwgZW5kcG9pbnQsIGRpc3Bvc2l0aW9uLCB0eXBlLCBibG9ja2VkVVJMKTsK
K30KKwordm9pZCBXZWJQYWdlOjpzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0
IFN0cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKQorewor
ICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZy
YW1lSUQpOyBmcmFtZS0+Y29yZUZyYW1lKCkpCisgICAgICAgIFdlYkNvcmU6OnNlbmRDT0VQQ09S
UFZpb2xhdGlvbigqZnJhbWUtPmNvcmVGcmFtZSgpLCBlbWJlZGRlck9yaWdpbiwgZW5kcG9pbnQs
IGRpc3Bvc2l0aW9uLCBkZXN0aW5hdGlvbiwgYmxvY2tlZFVSTCk7Cit9CisKIHZvaWQgV2ViUGFn
ZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7
CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFt
ZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAx
ZWMyODE3ZDM2OTcuLjY1MmI1NGY1NzU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjIwLDYgKzIyMCw3IEBAIGNsYXNzIEhUTUxNb2RlbEVsZW1l
bnQ7CiAjZW5kaWYKIAogZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNs
YXNzIENPRVBEaXNwb3NpdGlvbiA6IGJvb2w7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9y
SGlnaGxpZ2h0IDogYm9vbDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERyYWdBcHBsaWNhdGlvbkZsYWdzIDogdWludDhfdDsKQEAgLTQz
OCw2ICs0MzksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsKICAgICB2b2lkIHNlbmRDU1BWaW9sYXRp
b25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsKKyAgICB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJp
dGVuY2VWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHBhcmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwg
V2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYg
YmxvY2tlZFVSTCk7CisgICAgdm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVy
T3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24s
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVS
TCk7CiAgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggNTk2YjRmN2Y2MDIyLi4xZWFhY2VlODgzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjks
OCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIEFkZENvbnNv
bGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBlbnVtOnVpbnQ4X3Qg
SlNDOjpNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3Nh
Z2VMZXZlbCBtZXNzYWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQp
CiAgICAgU2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgVVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQor
ICAgIFNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgcGFyZW50
T3JpZ2luLCBTdHJpbmcgZW5kcG9pbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRp
b24gZGlzcG9zaXRpb24sIFN0cmluZyB0eXBlLCBVUkwgYmxvY2tlZFVSTCkKKyAgICBTZW5kQ09F
UENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4sIFN0cmluZyBlbmRwb2lu
dCwgZW51bTpib29sIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgZW51bTp1
aW50OF90IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIFVS
TCBibG9ja2VkVVJMKQogICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5
bmNocm9ub3VzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438175</attachid>
            <date>2021-09-14 14:34:00 -0700</date>
            <delta_ts>2021-09-14 14:52:22 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>230269_COEP_reporting_wip.patch</filename>
            <type>text/plain</type>
            <size>47650</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyMWIxOTY5NmQzOS4uNDZkZjUyZmU5ODMxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTQwNyw2ICs0MDcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3NhbmRib3hpbmcv
c2FuZGJveC1kaXNhbGxvdy1wb3B1cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9hbm9ueW1vdXMtaWZyYW1lL3JlcXVpcmUtY29ycC1lbWJlZC1hbm9ueW1vdXMt
aWZyYW1lLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L2Jsb2IuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCitp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVM
b2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZnJhbWUtb3duZXIuaHR0cHMuaHRt
bCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG8tYWJvdXRi
bGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9uYXZp
Z2F0ZS10b3AtdG8tYWJvdXRibGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KQEAgLTczNiw4ICs3MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9uby1zZWN1cmUtY29udAogIyBvdXIg
bGF5b3V0IHRlc3RzLiBXZSBtYWludGFpbiBvdXIgb3duIHZlcnNpb24gb2YgdGhpcyB0ZXN0IGlu
IGh0dHAvd3B0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
IyBXZSBkbyBub3Qgc3VwcG9ydCBDT0VQIHJlcG9ydGluZy4KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10
by1lbmRwb2ludC5odHRwcy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KKyMgV2UgZG8gbm90IHN1cHBv
cnQgcmVwb3J0aW5nIEpTIEFQSSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZykuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9tdWx0aS1nbG9iYWxzL3dvcmtlcnMtY29lcC1yZXBvcnQuaHR0cHMuaHRtbCBbIFNr
aXAgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSBjcmFzaGluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDNkZTU3Nzg2ZGY1MC4uMWI0N2YwZjRiZDBkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1l
bmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsNyBAQAotQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0
LXBsYWluLnR4dD81NzcwYzQ1MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJl
c3BvbnNlIGhlYWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQt
NDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09O
U09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2LThlNDAtMDg5MTcyOTZjNGIxJyBp
biBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4KLUNPTlNP
TEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5ICdodHRwczovL2xvY2FsaG9zdDo5NDQzL2Nv
bW1vbi9ibGFuay5odG1sPzk5ZTZlY2VkLWJiMDItNDE4YS1iOTg4LTIzMzkxODlhMTZhMicgaW4g
YSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kuCi1DT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSAnaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21t
b24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4NS1mM2I0NTgxZGU4NmEnIGluIGEg
ZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LgogCi1GQUlMIHN1
YnJlc291cmNlIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVS
TCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0LXBsYWluLnR4dD81NzcwYzQ1
MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9z
dDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0
aW5nLWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRv
PSUyMnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotRkFJTCBuYXZpZ2F0aW9uIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBv
cnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFu
ay5odG1sPzYxY2Y4OTFjLWY0ODAtNDMzNi04ZTQwLTA4OTE3Mjk2YzRiMSBhbmQgdXJsIGlzIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jl
c291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRlcihjcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIyZW5kcG9pbnQlMjIp
fGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1vbmx5LHJlcXVpcmUt
Y29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlzIG5vdCBmb3VuZC4g
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBm
cmFtZSBuYXZpZ2F0aW9uIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRV
UkwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD85OWU2ZWNlZC1i
YjAyLTQxOGEtYjk4OC0yMzM5MTg5YTE2YTIgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5
NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5n
LWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUy
MnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQotRkFJTCBUd28gQ09FUCBoZWFkZXJzLCBzcGxpdCBpbnNpZGUgcmVwb3J0LXRvIHZh
bHVlIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRVUkwgaXMgaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4
NS1mM2I0NTgxZGU4NmEgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5nLWVtcHR5LWZyYW1l
LW11bHRpcGxlLWhlYWRlcnMuaHRtbC5hc2lzIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCitQQVNTIHN1YnJlc291cmNlIENPUlAKK1BBU1MgbmF2aWdhdGlvbiBDT1JQCitQ
QVNTIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBmcmFtZSBuYXZpZ2F0aW9uCitQQVNTIFR3byBD
T0VQIGhlYWRlcnMsIHNwbGl0IGluc2lkZSByZXBvcnQtdG8gdmFsdWUKK0ZBSUwgU2hhcmVkIHdv
cmtlciBmZXRjaCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVh
dGluZyAnbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlNoYXJlZFdvcmtlcihXT1JLRVJfVVJMKScp
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGlu
Zy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzCmluZGV4IGNkYTZhYjIyNzJmYy4u
Y2Y1OTM4YzY3NjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmct
dG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycwpAQCAtMSAr
MSBAQAotcmVwb3J0LXRvOiB7ICJncm91cCI6ICJlbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0
MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJj
ZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVuZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQt
b25seS1lbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJs
IjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PXJl
cG9ydC1vbmx5LWVuZHBvaW50IiB9XSB9CityZXBvcnQtdG86IHsgImdyb3VwIjogImVuZHBvaW50
IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwgImVuZHBvaW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVu
ZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQtb25seS1lbmRwb2ludCIsICJtYXhfYWdl
IjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogIi9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBvcnQtb25seS1l
bmRwb2ludCIgfV0gfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaWRsCmluZGV4IDQ5YzQ1NGYzNTAzNC4uYzhlODljN2JjYmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0yNiw3ICsyNiw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLWVudW0gRmV0Y2hSZXF1ZXN0RGVzdGluYXRpb24geyAiIiwg
ImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJlbWJlZCIsICJmb250IiwgImlt
YWdlIiwgIm1hbmlmZXN0IiwgIm1vZGVsIiwgIm9iamVjdCIsICJwYWludHdvcmtsZXQiLCAicmVw
b3J0IiwgInNjcmlwdCIsICJzZXJ2aWNld29ya2VyIiwgInNoYXJlZHdvcmtlciIsICJzdHlsZSIs
ICJ0cmFjayIsICJ2aWRlbyIsICJ3b3JrZXIiLCAieHNsdCIgfTsKK2VudW0gRmV0Y2hSZXF1ZXN0
RGVzdGluYXRpb24geyAiIiwgImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJl
bWJlZCIsICJmb250IiwgImltYWdlIiwgImlmcmFtZSIsICJtYW5pZmVzdCIsICJtb2RlbCIsICJv
YmplY3QiLCAicGFpbnR3b3JrbGV0IiwgInJlcG9ydCIsICJzY3JpcHQiLCAic2VydmljZXdvcmtl
ciIsICJzaGFyZWR3b3JrZXIiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwg
InhzbHQiIH07CiAKIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJ
bmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeS5jcHAKaW5kZXggMTkyOTJhZDYzYjYyLi44NmVjOTA5MGQwZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUg
IkhUVFBQYXJzZXJzLmgiCisjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTk0LDQgKzk1LDkzIEBAIHZvaWQgYWRkQ3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeUhlYWRlcnMoUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IENyb3NzCiAgICAgfQogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1hLWNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kt
aW5oZXJpdGFuY2UtdmlvbGF0aW9uCit2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9s
YXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHBh
cmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAg
ICBBU1NFUlQoIWVuZHBvaW50LmlzRW1wdHkoKSk7CisgICAgYXV0byByZXBvcnRVUkwgPSBmcmFt
ZS5kb2N1bWVudCgpID8gZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkgOiBVUkwoKTsKKyAgICBpZiAo
U2VjdXJpdHlQb2xpY3k6OnNob3VsZEluaGVyaXRTZWN1cml0eU9yaWdpbkZyb21Pd25lcihyZXBv
cnRVUkwpKSB7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRGcmFtZSA9IGZyYW1lLnRyZWUoKS5w
YXJlbnQoKTsgcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICByZXBvcnRVUkwg
PSBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgICAgIGVsc2UgaWYgKGF1dG8q
IG9wZW5lckZyYW1lID0gZnJhbWUubG9hZGVyKCkub3BlbmVyKCk7IG9wZW5lckZyYW1lLT5kb2N1
bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gb3BlbmVyRnJhbWUtPmRvY3VtZW50KCkt
PnVybCgpOworICAgIH0KKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZy
YW1lLCBwYXJlbnRPcmlnaW4sIGVuZHBvaW50LCAiY29lcCJfcywgcmVwb3J0VVJMLCBmcmFtZS5s
b2FkZXIoKS51c2VyQWdlbnQoYmxvY2tlZFVSTCksIFsmXShhdXRvJiBib2R5KSB7CisgICAgICAg
IGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24gPT0gQ09FUERpc3Bv
c2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2UiX3MpOworICAgICAg
ICBib2R5LnNldFN0cmluZygidHlwZSJfcywgdHlwZSk7CisgICAgICAgIGJvZHkuc2V0U3RyaW5n
KCJibG9ja2VkVVJMIl9zLCBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChibG9ja2Vk
VVJMKSk7CisgICAgfSk7Cit9CisKKy8vICJzZXJ2aWNld29ya2VyIiwgInNoYXJlZHdvcmtlciIs
ICJzdHlsZSIsICJ0cmFjayIsICJ2aWRlbyIsICJ3b3JrZXIiLCAieHNsdCIgfTsKK3N0YXRpYyBT
dHJpbmcgZmV0Y2hEZXN0aW5hdGlvblRvU3RyaW5nKEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24g
ZGVzdGluYXRpb24pCit7CisgICAgc3dpdGNoIChkZXN0aW5hdGlvbikgeworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6QXVkaW86CisgICAgICAgIHJldHVybiAiYXVkaW8iX3M7
CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ6CisgICAg
ICAgIHJldHVybiAiYXVkaW93b3JrbGV0Il9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6RG9jdW1lbnQ6CisgICAgICAgIHJldHVybiAiZG9jdW1lbnQiX3M7CisgICAgY2Fz
ZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbWJlZDoKKyAgICAgICAgcmV0dXJuICJlbWJl
ZCJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkZvbnQ6CisgICAgICAg
IHJldHVybiAiZm9udCJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Oklt
YWdlOgorICAgICAgICByZXR1cm4gImltYWdlIl9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpE
ZXN0aW5hdGlvbjo6SWZyYW1lOgorICAgICAgICByZXR1cm4gImlmcmFtZSJfczsKKyAgICBjYXNl
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1hbmlmZXN0OgorICAgICAgICByZXR1cm4gIm1h
bmlmZXN0Il9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TW9kZWw6Cisg
ICAgICAgIHJldHVybiAibW9kZWwiX3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpPYmplY3Q6CisgICAgICAgIHJldHVybiAib2JqZWN0Il9zOworICAgIGNhc2UgRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6UGFpbnR3b3JrbGV0OgorICAgICAgICByZXR1cm4gInBhaW50
d29ya2xldCJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlJlcG9ydDoK
KyAgICAgICAgcmV0dXJuICJyZXBvcnQiX3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpTY3JpcHQ6CisgICAgICAgIHJldHVybiAic2NyaXB0Il9zOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlcjoKKyAgICAgICAgcmV0dXJuICJz
ZXJ2aWNld29ya2VyIl9zOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2hh
cmVkd29ya2VyOgorICAgICAgICByZXR1cm4gInNoYXJlZHdvcmtlciJfczsKKyAgICBjYXNlIEZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb246OlN0eWxlOgorICAgICAgICByZXR1cm4gInN0eWxlIl9z
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6VHJhY2s6CisgICAgICAgIHJl
dHVybiAidHJhY2siX3M7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpWaWRl
bzoKKyAgICAgICAgcmV0dXJuICJ2aWRlbyJfczsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OldvcmtlcjoKKyAgICAgICAgcmV0dXJuICJ3b3JrZXIiX3M7CisgICAgY2FzZSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpYc2x0OgorICAgICAgICByZXR1cm4gInhzbHQiX3M7
CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZzoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCisvLyBodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcXVldWUtYS1jcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9ydAordm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24o
RnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBj
b25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkK
K3sKKyAgICBBU1NFUlQoIWVuZHBvaW50LmlzRW1wdHkoKSk7CisgICAgYXV0byByZXBvcnRVUkwg
PSBmcmFtZS5kb2N1bWVudCgpID8gZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkgOiBVUkwoKTsKKyAg
ICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEluaGVyaXRTZWN1cml0eU9yaWdpbkZyb21Pd25l
cihyZXBvcnRVUkwpKSB7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRGcmFtZSA9IGZyYW1lLnRy
ZWUoKS5wYXJlbnQoKTsgcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICByZXBv
cnRVUkwgPSBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgICAgIGVsc2UgaWYg
KGF1dG8qIG9wZW5lckZyYW1lID0gZnJhbWUubG9hZGVyKCkub3BlbmVyKCk7IG9wZW5lckZyYW1l
LT5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gb3BlbmVyRnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpOworICAgIH0KKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBv
aW50KGZyYW1lLCBlbWJlZGRlck9yaWdpbiwgZW5kcG9pbnQsICJjb2VwIl9zLCByZXBvcnRVUkws
IGZyYW1lLmxvYWRlcigpLnVzZXJBZ2VudChibG9ja2VkVVJMKSwgWyZdKGF1dG8mIGJvZHkpIHsK
KyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRpc3Bvc2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBD
T0VQRGlzcG9zaXRpb246OlJlcG9ydGluZyA/ICJyZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7
CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJ0eXBlIl9zLCAiY29ycCIpOworICAgICAgICBib2R5
LnNldFN0cmluZygiYmxvY2tlZFVSTCJfcywgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBv
cnQoYmxvY2tlZFVSTCkpOworICAgICAgICBib2R5LnNldFN0cmluZygiZGVzdGluYXRpb24iX3Ms
IGZldGNoRGVzdGluYXRpb25Ub1N0cmluZyhkZXN0aW5hdGlvbikpOworICAgIH0pOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3kuaAppbmRleCA3NDlmMGM3OWZiM2IuLmNiOGYyYThkMTRjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGlj
eS5oCkBAIC0yNSwxMyArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGZXRj
aE9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwor
CiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNl
bWJlZGRlci1wb2xpY3ktdmFsdWUKIGVudW0gY2xhc3MgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGlj
eVZhbHVlIDogYm9vbCB7CiAgICAgVW5zYWZlTm9uZSwKQEAgLTkzLDcgKzk3LDExIEBAIHN0ZDo6
b3B0aW9uYWw8Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeT4gQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeTo6ZGVjb2RlKERlY29kCiAgICAgfX07CiB9CiAKK2VudW0gY2xhc3MgQ09FUERpc3Bvc2l0
aW9uIDogYm9vbCB7IFJlcG9ydGluZyAsIEVuZm9yY2UgfTsKKwogV0VCQ09SRV9FWFBPUlQgQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lIZWFkZXJzKFJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Jik7CitXRUJD
T1JFX0VYUE9SVCB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oRnJhbWUm
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHBhcmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBl
bmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYg
YmxvY2tlZFVSTCk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRDT0VQQ09SUFZpb2xhdGlvbihG
cmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiwgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biwgY29uc3QgVVJMJiBibG9ja2VkVVJMKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHAKaW5k
ZXggOTA5YzdjNTFhZjJiLi4xNDZjNjViODYyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcApAQCAtMzAsMjIgKzMwLDEyIEBACiAj
aW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNp
bmNsdWRlICJQaW5nTG9hZGVyLmgiCi0jaW5jbHVkZSAiUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3Jp
Z2luLmh0bWwjc2FuaXRpemUtdXJsLXJlcG9ydAotc3RhdGljIFN0cmluZyBzYW5pdGl6ZVJlZmVy
cmVyRm9yVVJMUmVwb3J0KGNvbnN0IFVSTCYgcmVmZXJyZXIpCi17Ci0gICAgVVJMIHNhbml0aXpl
ZFJlZmVycmVyID0gcmVmZXJyZXI7Ci0gICAgc2FuaXRpemVkUmVmZXJyZXIucmVtb3ZlQ3JlZGVu
dGlhbHMoKTsKLSAgICBzYW5pdGl6ZWRSZWZlcnJlci5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIo
KTsKLSAgICByZXR1cm4gc2FuaXRpemVkUmVmZXJyZXIuc3RyaW5nKCk7Ci19Ci0KIHN0YXRpYyBB
U0NJSUxpdGVyYWwgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lUb1N0cmluZyhjb25zdCBDcm9zc09y
aWdpbk9wZW5lclBvbGljeVZhbHVlJiBjb29wKQogewogICAgIHN3aXRjaCAoY29vcCkgewpAQCAt
MTM2LDQ0ICsxMjYsMTcgQEAgdm9pZCBhZGRDcm9zc09yaWdpbk9wZW5lclBvbGljeUhlYWRlcnMo
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IENyb3NzT3IKICAgICB9CiB9CiAKLS8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9yZXBvcnRpbmcvI3RyeS1kZWxpdmVyeQotc3RhdGljIHZv
aWQgc2VuZENPT1BWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBDcm9zc09yaWdpbk9wZW5l
clBvbGljeSBjb29wLCBDT09QRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29v
cFVSTCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBGdW5jdGlvbjx2b2lkKEpTT046Ok9iamVjdCYpPiYmIHBvcHVsYXRlQm9keSkKLXsK
LSAgICBhdXRvJiByZXBvcnRpbmdFbmRwb2ludCA9IGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3Np
dGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQgOiBjb29w
LnJlcG9ydGluZ0VuZHBvaW50OwotICAgIGlmIChyZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUgPSBm
cmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKCkgOiBu
dWxscHRyOwotICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUpCi0gICAgICAgIHJldHVy
bjsKLSAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUtPmVuZHBv
aW50VVJMKGNvb3BPcmlnaW4uZGF0YSgpLCByZXBvcnRpbmdFbmRwb2ludCk7Ci0gICAgaWYgKCFl
bmRwb2ludFVSTC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gYm9keSA9
IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgYm9keS0+c2V0U3RyaW5nKCJkaXNwb3NpdGlv
biJfcywgZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0
aW5nIl9zIDogImVuZm9yY2UiX3MpOwotICAgIGJvZHktPnNldFN0cmluZygiZWZmZWN0aXZlUG9s
aWN5Il9zLCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZlY3RpdmVQb2xpY3lTdHJp
bmcoZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9y
dE9ubHlWYWx1ZSA6IGNvb3AudmFsdWUpKTsKLSAgICBwb3B1bGF0ZUJvZHkoYm9keSk7Ci0KLSAg
ICBhdXRvIHJlcG9ydE9iamVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgcmVwb3J0
T2JqZWN0LT5zZXRTdHJpbmcoInR5cGUiX3MsICJjb29wIl9zKTsKLSAgICByZXBvcnRPYmplY3Qt
PnNldFN0cmluZygidXJsIl9zLCBjb29wVVJMLnN0cmluZygpKTsKLSAgICByZXBvcnRPYmplY3Qt
PnNldFN0cmluZygidXNlcl9hZ2VudCIsIHVzZXJBZ2VudCk7Ci0gICAgcmVwb3J0T2JqZWN0LT5z
ZXRJbnRlZ2VyKCJhZ2UiLCAwKTsgLy8gV2UgY3VycmVudGx5IGRvIG5vdCBkZWxheSBzZW5kaW5n
IHRoZSByZXBvcnRzLgotICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0KCJib2R5Il9zLCBXVEZN
b3ZlKGJvZHkpKTsKLQotICAgIGF1dG8gcmVwb3J0TGlzdCA9IEpTT046OkFycmF5OjpjcmVhdGUo
KTsKLSAgICByZXBvcnRMaXN0LT5wdXNoT2JqZWN0KHJlcG9ydE9iamVjdCk7Ci0KLSAgICBhdXRv
IHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVhdGUocmVwb3J0TGlzdC0+dG9KU09OU3RyaW5nKCkudXRm
OCgpKTsKLSAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KGZyYW1lLCBlbmRwb2lu
dFVSTCwgV1RGTW92ZShyZXBvcnQpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpTdGFuZGFyZFJlcG9y
dGluZ0FQSVZpb2xhdGlvbik7Ci19Ci0KIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL29yaWdpbi5odG1sI2Nvb3AtdmlvbGF0aW9uLW5hdmlnYXRpb24tdG8KIHZvaWQg
c2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2UoRnJhbWUmIGZy
YW1lLCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb29wLCBDT09QRGlzcG9zaXRpb24gZGlzcG9z
aXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBwcmV2aW91c1Jlc3BvbnNlVVJM
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgY29vcE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHByZXZpb3VzUmVzcG9uc2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50KQogewotICAgIHNlbmRDT09QVmlvbGF0aW9uUmVwb3J0KGZyYW1lLCBj
b29wLCBkaXNwb3NpdGlvbiwgY29vcFVSTCwgY29vcE9yaWdpbiwgdXNlckFnZW50LCBbJl0oYXV0
byYgYm9keSkgewotICAgICAgICBib2R5LnNldFN0cmluZygicHJldmlvdXNSZXNwb25zZVVSTCJf
cywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhwcmV2aW91c1Jlc3BvbnNlT3JpZ2luKSA/IHNh
bml0aXplUmVmZXJyZXJGb3JVUkxSZXBvcnQocHJldmlvdXNSZXNwb25zZVVSTCkgOiBTdHJpbmco
KSk7CisgICAgYXV0byYgZW5kcG9pbnQgPSBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246
OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBv
cnRpbmdFbmRwb2ludDsKKyAgICBpZiAoZW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBQaW5nTG9hZGVyOjpzZW5kUmVwb3J0VG9FbmRwb2ludChmcmFtZSwgY29vcE9y
aWdpbi5kYXRhKCksIGVuZHBvaW50LCAiY29vcCJfcywgY29vcFVSTCwgdXNlckFnZW50LCBbJl0o
YXV0byYgYm9keSkgeworICAgICAgICBib2R5LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRp
c3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6
ICJlbmZvcmNlIl9zKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJf
cywgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRp
c3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5
VmFsdWUgOiBjb29wLnZhbHVlKSk7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJwcmV2aW91c1Jl
c3BvbnNlVVJMIl9zLCBjb29wT3JpZ2luLmlzU2FtZU9yaWdpbkFzKHByZXZpb3VzUmVzcG9uc2VP
cmlnaW4pID8gUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQocHJldmlvdXNSZXNwb25z
ZVVSTCkgOiBTdHJpbmcoKSk7CiAgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJ0eXBlIl9zLCAibmF2
aWdhdGlvbi10by1yZXNwb25zZSJfcyk7CiAgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJyZWZlcnJl
ciJfcywgcmVmZXJyZXIpOwogICAgIH0pOwpAQCAtMTgyLDggKzE0NSwxNCBAQCB2b2lkIHNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKEZyYW1lJiBmcmFtZSwg
Q3Jvc3NPcmlnaW5PcAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
b3JpZ2luLmh0bWwjY29vcC12aW9sYXRpb24tbmF2aWdhdGlvbi1mcm9tCiB2b2lkIHNlbmRWaW9s
YXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKEZyYW1lJiBmcmFt
ZSwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0
aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgbmV4dFJlc3BvbnNlVVJMLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgY29vcE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG5leHRS
ZXNwb25zZU9yaWdpbiwgYm9vbCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2UsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50KQogewotICAgIHNlbmRDT09QVmlvbGF0aW9uUmVwb3J0KGZyYW1l
LCBjb29wLCBkaXNwb3NpdGlvbiwgY29vcFVSTCwgY29vcE9yaWdpbiwgdXNlckFnZW50LCBbJl0o
YXV0byYgYm9keSkgewotICAgICAgICBib2R5LnNldFN0cmluZygibmV4dFJlc3BvbnNlVVJMIl9z
LCBjb29wT3JpZ2luLmlzU2FtZU9yaWdpbkFzKG5leHRSZXNwb25zZU9yaWdpbikgfHwgaXNDT09Q
UmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlID8gc2FuaXRpemVSZWZlcnJlckZvclVSTFJlcG9ydChu
ZXh0UmVzcG9uc2VVUkwpIDogU3RyaW5nKCkpOworICAgIGF1dG8mIGVuZHBvaW50ID0gZGlzcG9z
aXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9ydE9ubHlSZXBv
cnRpbmdFbmRwb2ludCA6IGNvb3AucmVwb3J0aW5nRW5kcG9pbnQ7CisgICAgaWYgKGVuZHBvaW50
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9y
dFRvRW5kcG9pbnQoZnJhbWUsIGNvb3BPcmlnaW4uZGF0YSgpLCBlbmRwb2ludCwgImNvb3AiX3Ms
IGNvb3BVUkwsIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsKKyAgICAgICAgYm9keS5zZXRT
dHJpbmcoImRpc3Bvc2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJl
cG9ydGluZyA/ICJyZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7CisgICAgICAgIGJvZHkuc2V0
U3RyaW5nKCJlZmZlY3RpdmVQb2xpY3kiX3MsIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWVU
b0VmZmVjdGl2ZVBvbGljeVN0cmluZyhkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJl
cG9ydGluZyA/IGNvb3AucmVwb3J0T25seVZhbHVlIDogY29vcC52YWx1ZSkpOworICAgICAgICBi
b2R5LnNldFN0cmluZygibmV4dFJlc3BvbnNlVVJMIl9zLCBjb29wT3JpZ2luLmlzU2FtZU9yaWdp
bkFzKG5leHRSZXNwb25zZU9yaWdpbikgfHwgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNl
ID8gUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQobmV4dFJlc3BvbnNlVVJMKSA6IFN0
cmluZygpKTsKICAgICAgICAgYm9keS5zZXRTdHJpbmcoInR5cGUiX3MsICJuYXZpZ2F0aW9uLWZy
b20tcmVzcG9uc2UiX3MpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZldGNoT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9u
cy5oCmluZGV4IGM3ZjMxMzg0MmUxNC4uMjdiOThhOTMyMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZldGNoT3B0aW9ucy5oCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0cnVjdCBGZXRjaE9wdGlvbnMgewotICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50
OF90IHsgRW1wdHlTdHJpbmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwg
Rm9udCwgSW1hZ2UsIE1hbmlmZXN0LCBNb2RlbCwgT2JqZWN0LCBQYWludHdvcmtsZXQsIFJlcG9y
dCwgU2NyaXB0LCBTZXJ2aWNld29ya2VyLCBTaGFyZWR3b3JrZXIsIFN0eWxlLCBUcmFjaywgVmlk
ZW8sIFdvcmtlciwgWHNsdCB9OworICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90
IHsgRW1wdHlTdHJpbmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9u
dCwgSW1hZ2UsIElmcmFtZSwgTWFuaWZlc3QsIE1vZGVsLCBPYmplY3QsIFBhaW50d29ya2xldCwg
UmVwb3J0LCBTY3JpcHQsIFNlcnZpY2V3b3JrZXIsIFNoYXJlZHdvcmtlciwgU3R5bGUsIFRyYWNr
LCBWaWRlbywgV29ya2VyLCBYc2x0IH07CiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7
IE5hdmlnYXRlLCBTYW1lT3JpZ2luLCBOb0NvcnMsIENvcnMgfTsKICAgICBlbnVtIGNsYXNzIENy
ZWRlbnRpYWxzIDogdWludDhfdCB7IE9taXQsIFNhbWVPcmlnaW4sIEluY2x1ZGUgfTsKICAgICBl
bnVtIGNsYXNzIENhY2hlIDogdWludDhfdCB7IERlZmF1bHQsIE5vU3RvcmUsIFJlbG9hZCwgTm9D
YWNoZSwgRm9yY2VDYWNoZSwgT25seUlmQ2FjaGVkIH07CkBAIC04MCw5ICs4MCwxMSBAQCBpbmxp
bmUgYm9vbCBpc1BvdGVudGlhbE5hdmlnYXRpb25PclN1YnJlc291cmNlUmVxdWVzdChGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9u
czo6RGVzdGluYXRpb246OkVtYmVkOwogfQogCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jbm9uLXN1YnJlc291cmNlLXJlcXVlc3QKIGlubGluZSBib29sIGlzTm9uU3VicmVzb3Vy
Y2VSZXF1ZXN0KEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAgICAg
cmV0dXJuIGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50
CisgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Oklm
cmFtZQogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9u
OjpSZXBvcnQKICAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6U2VydmljZXdvcmtlcgogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpTaGFyZWR3b3JrZXIKQEAgLTExMiw2ICsxMTQsNyBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24+
IHsKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQsCiAg
ICAgICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkZvbnQsCiAgICAgICAg
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlLAorICAgICAgICBXZWJD
b3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUsCiAgICAgICAgIFdlYkNvcmU6
OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1hbmlmZXN0LAogICAgICAgICBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6T2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIu
Y3BwCmluZGV4IGI4MGE3ZjliZjUxMC4uM2VjM2M1MThjNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgorI2luY2x1ZGUgIlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkSW5mby5oIgpAQCAtMjQzLDQgKzI0NCw0MiBAQCB2b2lkIFBpbmdMb2FkZXI6OnN0YXJ0
UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEhUVFBIZWFk
ZQogICAgIGZyYW1lLmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFBp
bmdSZXNvdXJjZShXVEZNb3ZlKGNhY2hlZFJlc291cmNlUmVxdWVzdCkpOwogfQogCisvLyAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNzYW5pdGl6
ZS11cmwtcmVwb3J0CitTdHJpbmcgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQoY29u
c3QgVVJMJiB1cmwpCit7CisgICAgVVJMIHNhbml0aXplZFVSTCA9IHVybDsKKyAgICBzYW5pdGl6
ZWRVUkwucmVtb3ZlQ3JlZGVudGlhbHMoKTsKKyAgICBzYW5pdGl6ZWRVUkwucmVtb3ZlRnJhZ21l
bnRJZGVudGlmaWVyKCk7CisgICAgcmV0dXJuIHNhbml0aXplZFVSTC5zdHJpbmcoKTsKIH0KKwor
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZy8jdHJ5LWRlbGl2ZXJ5Cit2b2lkIFBp
bmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIGNvbnN0IFN0cmlu
ZyYgdHlwZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBGdW5jdGlvbjx2b2lkKEpTT046Ok9iamVjdCYpPiYgcG9wdWxhdGVSZXBvcnRCb2R5KQor
eworICAgIEFTU0VSVCghZW5kcG9pbnQuaXNFbXB0eSgpKTsKKyAgICBhdXRvIHJlcG9ydGluZ0Vu
ZHBvaW50c0NhY2hlID0gZnJhbWUucGFnZSgpID8gZnJhbWUucGFnZSgpLT5yZXBvcnRpbmdFbmRw
b2ludHNDYWNoZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIXJlcG9ydGluZ0VuZHBvaW50c0NhY2hl
KQorICAgICAgICByZXR1cm47CisgICAgYXV0byBlbmRwb2ludFVSTCA9IHJlcG9ydGluZ0VuZHBv
aW50c0NhY2hlLT5lbmRwb2ludFVSTChvcmlnaW4sIGVuZHBvaW50KTsKKyAgICBpZiAoIWVuZHBv
aW50VVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBib2R5ID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBwb3B1bGF0ZVJlcG9ydEJvZHkoYm9keSk7CisKKyAg
ICBhdXRvIHJlcG9ydE9iamVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVwb3J0
T2JqZWN0LT5zZXRTdHJpbmcoInR5cGUiX3MsIHR5cGUpOworICAgIGlmIChyZXBvcnRVUkwuaXNW
YWxpZCgpKQorICAgICAgICByZXBvcnRPYmplY3QtPnNldFN0cmluZygidXJsIl9zLCByZXBvcnRV
Ukwuc3RyaW5nKCkpOworICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1c2VyX2FnZW50Iiwg
dXNlckFnZW50KTsKKyAgICByZXBvcnRPYmplY3QtPnNldEludGVnZXIoImFnZSIsIDApOyAvLyBX
ZSBjdXJyZW50bHkgZG8gbm90IGRlbGF5IHNlbmRpbmcgdGhlIHJlcG9ydHMuCisgICAgcmVwb3J0
T2JqZWN0LT5zZXRPYmplY3QoImJvZHkiX3MsIFdURk1vdmUoYm9keSkpOworCisgICAgYXV0byBy
ZXBvcnRMaXN0ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOworICAgIHJlcG9ydExpc3QtPnB1c2hP
YmplY3QocmVwb3J0T2JqZWN0KTsKKworICAgIGF1dG8gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0
ZShyZXBvcnRMaXN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkpOworICAgIHNlbmRWaW9sYXRpb25S
ZXBvcnQoZnJhbWUsIGVuZHBvaW50VVJMLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJlcG9y
dFR5cGU6OlN0YW5kYXJkUmVwb3J0aW5nQVBJVmlvbGF0aW9uKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggNWVjYTk4YzcxZWU3
Li40Y2U0OTM1ZTcyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNTcsNiAr
NTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2VuZFBpbmcoRnJhbWUmLCBjb25zdCBV
UkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmLCBjb25zdCBVUkwmIHJl
cG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSk7CiAK
KyAgICBzdGF0aWMgU3RyaW5nIHNhbml0aXplVVJMRm9yUmVwb3J0KGNvbnN0IFVSTCYpOworICAg
IHN0YXRpYyB2b2lkIHNlbmRSZXBvcnRUb0VuZHBvaW50KEZyYW1lJiwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEZ1bmN0
aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJvZHkpOworCiBwcml2YXRl
OgogICAgIGVudW0gY2xhc3MgU2hvdWxkRm9sbG93UmVkaXJlY3RzIHsgTm8sIFllcyB9OwogICAg
IHN0YXRpYyB2b2lkIHN0YXJ0UGluZ0xvYWQoRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBIVFRQ
SGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgU2hvdWxkRm9sbG93UmVkaXJlY3Rz
LCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uLCBSZWZlcnJlclBvbGljeSwgc3RkOjpv
cHRpb25hbDxWaW9sYXRpb25SZXBvcnRUeXBlPiA9IHN0ZDo6bnVsbG9wdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCBjMmJkMDdlMTgyMjguLmRhNjNlZmQyN2UyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03OTUsMTIgKzc5NSwx
MiBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMo
RnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCBDYQogICAgIHJlcXVlc3QudXBkYXRlQWNjZXB0RW5j
b2RpbmdIZWFkZXIoKTsKIH0KIAotc3RhdGljIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVz
dGluYXRpb25Gb3JUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCitzdGF0aWMgRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5
cGUgdHlwZSwgRnJhbWUmIGZyYW1lKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpUeXBlOjpTVkdEb2N1bWVudFJlc291cmNlOgotICAgICAgICByZXR1cm4gRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQ7CisgICAgICAgIHJldHVybiBmcmFtZS5pc01haW5G
cmFtZSgpID8gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQgOiBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpJZnJhbWU7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6
SW1hZ2VSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpJY29uOgogICAg
ICAgICByZXR1cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SW1hZ2U7CkBAIC04NjgsNyAr
ODY4LDcgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKIAogICAgIExPRyhSZXNvdXJjZUxvYWRp
bmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclLjI1NXMnLCBjaGFy
c2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZ0NlbnRlckVs
bGlwc2l6ZWRUb0xlbmd0aCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFyc2V0KCkubGF0
aW4xKCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCkgPyBzdGF0aWNfY2FzdDxpbnQ+KHJlcXVl
c3QucHJpb3JpdHkoKS52YWx1ZSgpKSA6IC0xLCBmb3JQcmVsb2FkID09IEZvclByZWxvYWQ6Olll
cyk7CiAKLSAgICByZXF1ZXN0LnNldERlc3RpbmF0aW9uSWZOb3RTZXQoZGVzdGluYXRpb25Gb3JU
eXBlKHR5cGUpKTsKKyAgICByZXF1ZXN0LnNldERlc3RpbmF0aW9uSWZOb3RTZXQoZGVzdGluYXRp
b25Gb3JUeXBlKHR5cGUsIGZyYW1lKSk7CiAKICAgICAvLyBFbnRyeSBwb2ludCB0byBodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbWFpbi1mZXRjaC4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVzb3VyY2VSZXF1ZXN0PiBvcmlnaW5hbFJlcXVlc3Q7CkBAIC04ODAsNyArODgwLDcgQEAgUmVz
b3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXUKIAogICAgIHByZXBhcmVGZXRjaCh0eXBlLCByZXF1ZXN0KTsK
IAotICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMoKS5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpEb2N1bWVudCkgeworICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMoKS5kZXN0
aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCB8fCByZXF1ZXN0
Lm9wdGlvbnMoKS5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJh
bWUpIHsKICAgICAgICAgLy8gRklYTUU6IElkZW50aWZ5IEhTVFMgY2FzZXMgYW5kIGF2b2lkIGFk
ZGluZyB0aGUgaGVhZGVyLiA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1Nzg4NT4KICAgICAgICAgaWYgKCF1cmwucHJvdG9jb2xJcygiaHR0cHMiKSkKICAgICAgICAg
ICAgIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFk
ZXJOYW1lOjpVcGdyYWRlSW5zZWN1cmVSZXF1ZXN0cywgIjEiX3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDBhMzA3
MDczOTFiZi4uYTlkYTc2MDI1NWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU2NoZW1lUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVz
c2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmg+CkBAIC0xNTgsNiArMTU5LDI3IEBAIHZvaWQg
TmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlZGlyZWN0aW9uKFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFJlc291cmNlUmVxCiAgICAgfSk7CiB9CiAKKy8vIGh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNjcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5LWNoZWNrCitzdGF0aWMgc3Rk
OjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiBwZXJmb3JtQ09SUENoZWNrKGNvbnN0IENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kmIGVtYmVkZGVyQ09FUCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIGVt
YmVkZGVyT3JpZ2luLCBjb25zdCBVUkwmIHVybCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IEZvck5hdmlnYXRpb24gZm9yTmF2aWdhdGlvbiwgTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2Fk
ZXIpCit7CisgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQ
b2xpY3koQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lLCBlbWJlZGRl
ck9yaWdpbiwgdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6WWVzKSkKKyAgICAgICAgcmV0
dXJuIFdURk1vdmUoKmVycm9yKTsKKworICAgIGlmIChlbWJlZGRlckNPRVAucmVwb3J0T25seVZh
bHVlID09IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgIWVt
YmVkZGVyQ09FUC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpICYmIGxvYWRl
cikgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJj
ZVBvbGljeShlbWJlZGRlckNPRVAucmVwb3J0T25seVZhbHVlLCBlbWJlZGRlck9yaWdpbiwgdXJs
LCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6WWVzKSkKKyAgICAgICAgICAgIGxvYWRlci0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6U2VuZENPRVBDT1JQVmlvbGF0aW9uIHsgbG9hZGVyLT5mcmFt
ZUlEKCksIGVtYmVkZGVyT3JpZ2luLmRhdGEoKSwgZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlSZXBv
cnRpbmdFbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcsIGxvYWRlci0+cGFyYW1l
dGVycygpLm9wdGlvbnMuZGVzdGluYXRpb24sIGxvYWRlci0+Zmlyc3RSZXNwb25zZVVSTCgpIH0s
IGxvYWRlci0+cGFnZUlEKCkpOworICAgIH0KKworICAgIGlmIChlbWJlZGRlckNPRVAudmFsdWUg
PT0gQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgeworICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShlbWJl
ZGRlckNPRVAudmFsdWUsIGVtYmVkZGVyT3JpZ2luLCB1cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0
aW9uOjpZZXMpKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyICYmICFlbWJlZGRlckNPRVAucmVw
b3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGxvYWRlci0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2VuZENPRVBDT1JQVmlvbGF0aW9uIHsgbG9hZGVyLT5mcmFtZUlE
KCksIGVtYmVkZGVyT3JpZ2luLmRhdGEoKSwgZW1iZWRkZXJDT0VQLnJlcG9ydGluZ0VuZHBvaW50
LCBDT0VQRGlzcG9zaXRpb246OkVuZm9yY2UsIGxvYWRlci0+cGFyYW1ldGVycygpLm9wdGlvbnMu
ZGVzdGluYXRpb24sIGxvYWRlci0+Zmlyc3RSZXNwb25zZVVSTCgpIH0sIGxvYWRlci0+cGFnZUlE
KCkpOworICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoKmVycm9yKTsKKyAgICAgICAgfQorICAg
IH0KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiBSZXNvdXJjZUVycm9yIE5ldHdvcmtM
b2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmIChtX3JlZGlyZWN0Q291
bnQpCkBAIC0xNzAsNyArMTkyLDcgQEAgUmVzb3VyY2VFcnJvciBOZXR3b3JrTG9hZENoZWNrZXI6
OnZhbGlkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXMKIAogICAgIGlm
IChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlIHx8IG1faXNT
YW1lT3JpZ2luUmVxdWVzdCkgewogICAgICAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSAmJiBtX3BhcmVudE9yaWdpbikgewotICAgICAgICAgICAg
aWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kobV9wYXJl
bnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlLCAqbV9wYXJlbnRPcmlnaW4sIG1fdXJs
LCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6WWVzKSkKKyAgICAgICAgICAgIGlmIChhdXRvIGVy
cm9yID0gcGVyZm9ybUNPUlBDaGVjayhtX3BhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3ks
ICptX3BhcmVudE9yaWdpbiwgbV91cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMsIG1f
bmV0d29ya1Jlc291cmNlTG9hZGVyLmdldCgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gV1RG
TW92ZSgqZXJyb3IpOwogICAgICAgICB9CiAgICAgICAgIHJlc3BvbnNlLnNldFRhaW50aW5nKFJl
c291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpCYXNpYyk7CkBAIC0xODEsNyArMjAzLDcgQEAgUmVz
b3VyY2VFcnJvciBOZXR3b3JrTG9hZENoZWNrZXI6OnZhbGlkYXRlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXMKICAgICAgICAgcmVzcG9uc2Uuc2V0QXNSYW5nZVJlcXVlc3Rl
ZCgpOwogCiAgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9D
b3JzKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJlc291
cmNlUG9saWN5KG1fY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSwgKm1fb3JpZ2luLCBt
X3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246Ok5vKSkKKyAgICAgICAgaWYgKGF1dG8gZXJy
b3IgPSBwZXJmb3JtQ09SUENoZWNrKG1fY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgKm1fb3Jp
Z2luLCBtX3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246Ok5vLCBtX25ldHdvcmtSZXNvdXJj
ZUxvYWRlci5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgqZXJyb3IpOwogCiAg
ICAgICAgIHJlc3BvbnNlLnNldFRhaW50aW5nKFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpP
cGFxdWUpOwpAQCAtMjgxLDYgKzMwMyw3IEBAIGJvb2wgTmV0d29ya0xvYWRDaGVja2VyOjppc0Fs
bG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmCiAgICAg
Y2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbWJlZDoKICAgICBjYXNlIEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkZvbnQ6CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpJbWFnZToKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZToK
ICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1hbmlmZXN0OgogICAgIGNhc2Ug
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TW9kZWw6CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpPYmplY3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMjNkOTQ4NzVlMmMxLi42ZWNm
NTcwNDkwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM5Miw2ICszOTIsNyBAQCBSZXNvdXJjZUxvYWRJ
bmZvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VMb2FkSW5mbygpCiAgICAgICAgIGNh
c2UgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6QXVkaW93b3JrbGV0OgogICAg
ICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZEluZm86OlR5cGU6Ok90aGVyOwogICAgICAgICBj
YXNlIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50OgorICAgICAg
ICBjYXNlIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZToKICAgICAg
ICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRJbmZvOjpUeXBlOjpEb2N1bWVudDsKICAgICAgICAg
Y2FzZSBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbWJlZDoKICAgICAgICAg
ICAgIHJldHVybiBSZXNvdXJjZUxvYWRJbmZvOjpUeXBlOjpPYmplY3Q7CkBAIC02MDYsMzAgKzYw
Nyw0NyBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0TmF2aWdh
dGlvbkZvckNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpYwogICAgIEFTU0VSVChpc01haW5SZXNvdXJj
ZSgpKTsKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29y
aWdpbi5odG1sI2NoZWNrLWEtbmF2aWdhdGlvbi1yZXNwb25zZSdzLWFkaGVyZW5jZS10by1pdHMt
ZW1iZWRkZXItcG9saWN5Ci0gICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lW
YWx1ZTo6VW5zYWZlTm9uZSAmJiBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luKSB7CisgICAgaWYg
KG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlID09IFdl
YkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgfHwgbV9w
YXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVZhbHVl
ID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAp
IHsKICAgICAgICAgYXV0byByZXNwb25zZUNPRVAgPSBXZWJDb3JlOjpvYnRhaW5Dcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5KHJlc3BvbnNlLCBudWxscHRyKTsKLSAgICAgICAgaWYgKHJlc3BvbnNl
Q09FUC52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJl
cXVpcmVDT1JQKSB7CisgICAgICAgIGlmIChtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCAmJiByZXNwb25zZUNPRVAudmFsdWUgIT0gV2Vi
Q29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgeworICAg
ICAgICAgICAgaWYgKGF1dG8gcGFyZW50T3JpZ2luID0gbV9wYXJhbWV0ZXJzLnBhcmVudE9yaWdp
bigpOyBwYXJlbnRPcmlnaW4gJiYgIW1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5LnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VuZENPRVBQb2xpY3lJbmhlcml0ZW5j
ZVZpb2xhdGlvbiB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJlbnRPcmlnaW4tPmRhdGEo
KSwgbV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25s
eVJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZywgIm5hdmlnYXRp
b24iX3MsIG1fZmlyc3RSZXNwb25zZVVSTCB9LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFs
dWU6OlVuc2FmZU5vbmUgJiYgcmVzcG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKICAgICAgICAgICAgIFN0cmlu
ZyBlcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJSZWZ1c2VkIHRvIGRpc3BsYXkgJyIsIHJlc3Bv
bnNlLnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLCAiJyBpbiBhIGZyYW1l
IGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4iKTsKICAgICAgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlIHsgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsICBNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgZXJyb3JNZXNzYWdlLCBjb3JlSWRlbnRpZmllcigpIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQpOworICAgICAgICAgICAgaWYgKGF1dG8gcGFyZW50T3JpZ2luID0gbV9wYXJhbWV0ZXJzLnBh
cmVudE9yaWdpbigpOyBwYXJlbnRPcmlnaW4gJiYgIW1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVyaXRlbmNl
VmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmVudE9yaWdpbi0+ZGF0YSgp
LCBtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRpbmdF
bmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uOjpFbmZvcmNlLCAibmF2aWdhdGlvbiJfcywgbV9maXJz
dFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKy8v
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI2NoZWNr
LWEtZ2xvYmFsLW9iamVjdCdzLWVtYmVkZGVyLXBvbGljeQogYm9vbCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnNob3VsZEludGVycnVwdFdvcmtlckxvYWRGb3JDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmIChtX3BhcmFt
ZXRlcnMub3B0aW9ucy5kZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpX
b3JrZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX3BhcmFtZXRlcnMuY3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikg
eworICAgIGlmIChtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSA9
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQIHx8
IG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7
CiAgICAgICAgIGF1dG8gcmVzcG9uc2VDT0VQID0gV2ViQ29yZTo6b2J0YWluQ3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeShyZXNwb25zZSwgbnVsbHB0cik7Ci0gICAgICAgIGlmIChyZXNwb25zZUNP
RVAudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1
aXJlQ09SUCkgeworICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQ
b2xpY3kucmVwb3J0T25seVZhbHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgcmVzcG9uc2VDT0VQLnZhbHVlID09IFdlYkNvcmU6OkNy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSkgeworICAgICAgICAgICAg
aWYgKG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gJiYgIW1fcGFyYW1ldGVycy5jcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VuZENPRVBQb2xpY3lJbmhl
cml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
c291cmNlT3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5LnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uOjpSZXBvcnRp
bmcsICJ3b3JrZXIgaW5pdGlhbGl6YXRpb24iX3MsIG1fZmlyc3RSZXNwb25zZVVSTCB9LCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3BhcmFtZXRl
cnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQICYmIHJlc3BvbnNlQ09FUC52YWx1ZSA9
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUpIHsK
ICAgICAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJSZWZ1c2VkIHRv
IGxvYWQgJyIsIHJlc3BvbnNlLnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
LCAiJyB3b3JrZXIgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LiIpOwog
ICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QWRkQ29uc29sZU1lc3NhZ2UgeyBt
X3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgIE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBlcnJvck1lc3NhZ2UsIGNvcmVJZGVudGlmaWVyKCkgfSwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRCk7CisgICAgICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdp
biAmJiAhbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5k
cG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi0+ZGF0YSgpLCBtX3BhcmFtZXRlcnMuY3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRpbmdFbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9u
OjpFbmZvcmNlLCAid29ya2VyIGluaXRpYWxpemF0aW9uIl9zLCBtX2ZpcnN0UmVzcG9uc2VVUkwg
fSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNjQxLDYgKzY1OSw4
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgICAgIGRpZFJlY2VpdmVNYWluUmVzb3Vy
Y2VSZXNwb25zZShyZWNlaXZlZFJlc3BvbnNlKTsKIAogICAgIG1fcmVzcG9uc2UgPSBXVEZNb3Zl
KHJlY2VpdmVkUmVzcG9uc2UpOworICAgIGlmICghbV9maXJzdFJlc3BvbnNlVVJMLmlzVmFsaWQo
KSkKKyAgICAgICAgbV9maXJzdFJlc3BvbnNlVVJMID0gbV9yZXNwb25zZS51cmwoKTsKIAogICAg
IGlmIChzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSAmJiBtX25ldHdvcmtM
b2FkQ2hlY2tlcikgewogICAgICAgICBhdXRvIGluZm9ybWF0aW9uID0gbV9uZXR3b3JrTG9hZENo
ZWNrZXItPnRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uKCk7CkBAIC02OTAsNiArNzEwLDE4IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VS
ZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgaWYgKG1fY2FjaGVFbnRyeUZvclZhbGlkYXRp
b24pCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246OlVzZSk7
CiAKKyAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKKyAgICAgICAgYXV0byBlcnJvciA9
IG1fbmV0d29ya0xvYWRDaGVja2VyLT52YWxpZGF0ZVJlc3BvbnNlKG1fbmV0d29ya0xvYWQgPyBt
X25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpIDogb3JpZ2luYWxSZXF1ZXN0KCksIG1fcmVz
cG9uc2UpOworICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBMT0FE
RVJfUkVMRUFTRV9MT0dfRVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogTmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21haW49JSIg
UFVCTElDX0xPR19TVFJJTkcgIiwgZXJyb3IuY29kZT0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4
KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3IgPSBXVEZN
b3ZlKGVycm9yKV0geworICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX25ldHdv
cmtMb2FkKQorICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWlsTG9hZGlu
ZyhlcnJvcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBp
ZiAoaXNNYWluUmVzb3VyY2UoKSAmJiBzaG91bGRJbnRlcnJ1cHRMb2FkRm9yQ1NQRnJhbWVBbmNl
c3RvcnNPclhGcmFtZU9wdGlvbnMobV9yZXNwb25zZSkpIHsKICAgICAgICAgTE9BREVSX1JFTEVB
U0VfTE9HX0VSUk9SKCJkaWRSZWNlaXZlUmVzcG9uc2U6IEludGVycnVwdGluZyBtYWluIHJlc291
cmNlIGxvYWQgZHVlIHRvIENTUCBmcmFtZS1hbmNlc3RvcnMgb3IgWC1GcmFtZS1PcHRpb25zIik7
CiAgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShSZXNv
dXJjZVJlc3BvbnNlIHsgbV9yZXNwb25zZSB9LCBSZXNvdXJjZVJlc3BvbnNlOjpTYW5pdGl6YXRp
b25UeXBlOjpDcm9zc09yaWdpblNhZmUpOwpAQCAtNzA3LDE4ICs3MzksNiBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiBy
ZWNlaXZlZFJlc3BvbgogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0
aW9uOjpJZ25vcmUpOwogICAgIH0KIAotICAgIGlmIChtX25ldHdvcmtMb2FkQ2hlY2tlcikgewot
ICAgICAgICBhdXRvIGVycm9yID0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnZhbGlkYXRlUmVzcG9u
c2UobV9uZXR3b3JrTG9hZCA/IG1fbmV0d29ya0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkgOiBvcmln
aW5hbFJlcXVlc3QoKSwgbV9yZXNwb25zZSk7Ci0gICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkp
IHsKLSAgICAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigiZGlkUmVjZWl2ZVJlc3Bv
bnNlOiBOZXR3b3JrTG9hZENoZWNrZXI6OnZhbGlkYXRlUmVzcG9uc2UgcmV0dXJuZWQgYW4gZXJy
b3IgKGVycm9yLmRvbWFpbj0lIiBQVUJMSUNfTE9HX1NUUklORyAiLCBlcnJvci5jb2RlPSVkKSIs
IGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKLSAgICAg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBlcnJvciA9IFdURk1vdmUoZXJyb3IpXSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBy
b3RlY3RlZFRoaXMtPm1fbmV0d29ya0xvYWQpCi0gICAgICAgICAgICAgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPmRpZEZhaWxMb2FkaW5nKGVycm9yKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsKLSAgICAg
ICAgfQotICAgIH0KLQogICAgIGF1dG8gcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3Nz
aWJsZShSZXNvdXJjZVJlc3BvbnNlIHsgbV9yZXNwb25zZSB9LCBSZXNvdXJjZVJlc3BvbnNlOjpT
YW5pdGl6YXRpb25UeXBlOjpDcm9zc09yaWdpblNhZmUpOwogICAgIGlmIChpc1N5bmNocm9ub3Vz
KCkpIHsKICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlUmVzcG9uc2U6IFVz
aW5nIHJlc3BvbnNlIGZvciBzeW5jaHJvbm91cyBsb2FkIik7CkBAIC05MDIsNiArOTIyLDggQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBMT0FERVJfUkVMRUFTRV9MT0coIndpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3Q6Iik7CiAgICAgKyttX3JlZGlyZWN0Q291bnQ7CiAgICAgbV9yZWRp
cmVjdFJlc3BvbnNlID0gcmVkaXJlY3RSZXNwb25zZTsKKyAgICBpZiAoIW1fZmlyc3RSZXNwb25z
ZVVSTC5pc1ZhbGlkKCkpCisgICAgICAgIG1fZmlyc3RSZXNwb25zZVVSTCA9IHJlZGlyZWN0UmVz
cG9uc2UudXJsKCk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgaWYgKCFzZXNzaW9uSUQoKS5pc0VwaGVtZXJh
bCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAppbmRleCA3ZmY2MWViMWJlODIuLmI0ODkzYzRmMzk2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KICAgICBj
b25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycygpIGNvbnN0IHsg
cmV0dXJuIG1fcGFyYW1ldGVyczsgfQogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZElEOyB9CisgICAgY29u
c3QgVVJMJiBmaXJzdFJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFJlc3BvbnNl
VVJMOyB9CiAKICAgICBOZXR3b3JrQ2FjaGU6Okdsb2JhbEZyYW1lSUQgZ2xvYmFsRnJhbWVJRCgp
IHsgcmV0dXJuIHsgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBwYWdlSUQoKSwgZnJhbWVJ
RCgpIH07IH0KIApAQCAtMjU1LDYgKzI1Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBOZXR3
b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX3Jlc291cmNlTG9hZElEOwogICAgIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgbV9yZWRpcmVjdFJlc3BvbnNlOworICAgIFVSTCBtX2ZpcnN0UmVz
cG9uc2VVUkw7IC8vIEZpcnN0IFVSTCBpbiByZXNwb25zZSdzIFVSTCBsaXN0IChodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXNwb25zZS11cmwtbGlzdCkuCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CmluZGV4IDNkMTE2ZGJjNmJjYS4uZGM3NjNiZjFlODM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTY4OCw2ICs2ODgsNyBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25J
RC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2ViQ29y
ZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaERlY2lzaW9uJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCisg
ICAgICAgICdXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24nOiBbJzxXZWJDb3JlL0Nyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkNyZWF0ZU5ld0dyb3VwRm9y
SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9BcHBIaWdobGlnaHQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UnOiBbJzxXZWJDb3Jl
L0NvbG9yU3BhY2UuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZTQ1NGY5NjM3NmNkLi42NzMwNzdjNzFlYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNjEsNiArMTYxLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250YWN0
c1JlcXVlc3REYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhVHJh
bnNmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlTWFuYWdlci5oPgpAQCAtNDMyNCw2
ICs0MzI1LDE4IEBAIHZvaWQgV2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydChGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVCiAgICAgICAgIFBpbmdMb2FkZXI6
OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLT5jb3JlRnJhbWUoKSwgcmVwb3J0VVJMLCByZXBv
cnQucmVsZWFzZU5vbk51bGwoKSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29udGVudFNlY3VyaXR5
UG9saWN5KTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlv
bGF0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IHBhcmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRp
c3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sK
KyAgICBpZiAoYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShm
cmFtZUlEKTsgZnJhbWUtPmNvcmVGcmFtZSgpKQorICAgICAgICBXZWJDb3JlOjpzZW5kQ09FUFBv
bGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCksIHBhcmVudE9yaWdp
biwgZW5kcG9pbnQsIGRpc3Bvc2l0aW9uLCB0eXBlLCBibG9ja2VkVVJMKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5k
cG9pbnQsIENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbiBkZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKQoreworICAgIGlmIChhdXRv
KiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOyBmcmFt
ZS0+Y29yZUZyYW1lKCkpCisgICAgICAgIFdlYkNvcmU6OnNlbmRDT0VQQ09SUFZpb2xhdGlvbigq
ZnJhbWUtPmNvcmVGcmFtZSgpLCBlbWJlZGRlck9yaWdpbiwgZW5kcG9pbnQsIGRpc3Bvc2l0aW9u
LCBkZXN0aW5hdGlvbiwgYmxvY2tlZFVSTCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byog
ZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWMyODE3ZDM2OTcu
LjY1MmI1NGY1NzU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMjIwLDYgKzIyMCw3IEBAIGNsYXNzIEhUTUxNb2RlbEVsZW1lbnQ7CiAjZW5kaWYK
IAogZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNsYXNzIENPRVBEaXNw
b3NpdGlvbiA6IGJvb2w7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IDog
Ym9vbDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIERyYWdBcHBsaWNhdGlvbkZsYWdzIDogdWludDhfdDsKQEAgLTQzOCw2ICs0MzksOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50
NjRfdCByZXF1ZXN0SUQgPSAwKTsKICAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmKTsKKyAgICB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRp
b24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHBhcmVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09F
UERpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7
CisgICAgdm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25z
dCBTdHJpbmcmIGVuZHBvaW50LCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24sIFdlYkNvcmU6OkZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAgICAgdm9p
ZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CiAK
ICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNTk2YjRm
N2Y2MDIyLi4xZWFhY2VlODgzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksOCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIEFkZENvbnNvbGVNZXNzYWdlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdl
U291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNz
YWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCiAgICAgU2VuZENT
UFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMIHJl
cG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQorICAgIFNlbmRDT0VQ
UG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgcGFyZW50T3JpZ2luLCBTdHJp
bmcgZW5kcG9pbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRp
b24sIFN0cmluZyB0eXBlLCBVUkwgYmxvY2tlZFVSTCkKKyAgICBTZW5kQ09FUENPUlBWaW9sYXRp
b24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4sIFN0cmluZyBlbmRwb2ludCwgZW51bTpib29s
IFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgZW51bTp1aW50OF90IFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIFVSTCBibG9ja2VkVVJM
KQogICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
OjpJbml0IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438176</attachid>
            <date>2021-09-14 14:52:22 -0700</date>
            <delta_ts>2021-09-14 16:36:57 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>230269_COEP_reporting_wip.patch</filename>
            <type>text/plain</type>
            <size>45782</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyMWIxOTY5NmQzOS4uNDZkZjUyZmU5ODMxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTQwNyw2ICs0MDcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3NhbmRib3hpbmcv
c2FuZGJveC1kaXNhbGxvdy1wb3B1cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9hbm9ueW1vdXMtaWZyYW1lL3JlcXVpcmUtY29ycC1lbWJlZC1hbm9ueW1vdXMt
aWZyYW1lLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L2Jsb2IuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCitp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVM
b2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZnJhbWUtb3duZXIuaHR0cHMuaHRt
bCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG8tYWJvdXRi
bGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9uYXZp
Z2F0ZS10b3AtdG8tYWJvdXRibGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KQEAgLTczNiw4ICs3MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9uby1zZWN1cmUtY29udAogIyBvdXIg
bGF5b3V0IHRlc3RzLiBXZSBtYWludGFpbiBvdXIgb3duIHZlcnNpb24gb2YgdGhpcyB0ZXN0IGlu
IGh0dHAvd3B0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
IyBXZSBkbyBub3Qgc3VwcG9ydCBDT0VQIHJlcG9ydGluZy4KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10
by1lbmRwb2ludC5odHRwcy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KKyMgV2UgZG8gbm90IHN1cHBv
cnQgcmVwb3J0aW5nIEpTIEFQSSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZykuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9tdWx0aS1nbG9iYWxzL3dvcmtlcnMtY29lcC1yZXBvcnQuaHR0cHMuaHRtbCBbIFNr
aXAgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSBjcmFzaGluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDNkZTU3Nzg2ZGY1MC4uMWI0N2YwZjRiZDBkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1l
bmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsNyBAQAotQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0
LXBsYWluLnR4dD81NzcwYzQ1MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJl
c3BvbnNlIGhlYWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQt
NDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09O
U09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2LThlNDAtMDg5MTcyOTZjNGIxJyBp
biBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4KLUNPTlNP
TEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5ICdodHRwczovL2xvY2FsaG9zdDo5NDQzL2Nv
bW1vbi9ibGFuay5odG1sPzk5ZTZlY2VkLWJiMDItNDE4YS1iOTg4LTIzMzkxODlhMTZhMicgaW4g
YSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kuCi1DT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSAnaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21t
b24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4NS1mM2I0NTgxZGU4NmEnIGluIGEg
ZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LgogCi1GQUlMIHN1
YnJlc291cmNlIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVS
TCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0LXBsYWluLnR4dD81NzcwYzQ1
MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9z
dDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0
aW5nLWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRv
PSUyMnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotRkFJTCBuYXZpZ2F0aW9uIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBv
cnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFu
ay5odG1sPzYxY2Y4OTFjLWY0ODAtNDMzNi04ZTQwLTA4OTE3Mjk2YzRiMSBhbmQgdXJsIGlzIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jl
c291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRlcihjcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIyZW5kcG9pbnQlMjIp
fGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1vbmx5LHJlcXVpcmUt
Y29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlzIG5vdCBmb3VuZC4g
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBm
cmFtZSBuYXZpZ2F0aW9uIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRV
UkwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD85OWU2ZWNlZC1i
YjAyLTQxOGEtYjk4OC0yMzM5MTg5YTE2YTIgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5
NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5n
LWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUy
MnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQotRkFJTCBUd28gQ09FUCBoZWFkZXJzLCBzcGxpdCBpbnNpZGUgcmVwb3J0LXRvIHZh
bHVlIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRVUkwgaXMgaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4
NS1mM2I0NTgxZGU4NmEgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5nLWVtcHR5LWZyYW1l
LW11bHRpcGxlLWhlYWRlcnMuaHRtbC5hc2lzIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCitQQVNTIHN1YnJlc291cmNlIENPUlAKK1BBU1MgbmF2aWdhdGlvbiBDT1JQCitQ
QVNTIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBmcmFtZSBuYXZpZ2F0aW9uCitQQVNTIFR3byBD
T0VQIGhlYWRlcnMsIHNwbGl0IGluc2lkZSByZXBvcnQtdG8gdmFsdWUKK0ZBSUwgU2hhcmVkIHdv
cmtlciBmZXRjaCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVh
dGluZyAnbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlNoYXJlZFdvcmtlcihXT1JLRVJfVVJMKScp
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGlu
Zy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzCmluZGV4IGNkYTZhYjIyNzJmYy4u
Y2Y1OTM4YzY3NjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmct
dG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycwpAQCAtMSAr
MSBAQAotcmVwb3J0LXRvOiB7ICJncm91cCI6ICJlbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0
MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJj
ZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVuZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQt
b25seS1lbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJs
IjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PXJl
cG9ydC1vbmx5LWVuZHBvaW50IiB9XSB9CityZXBvcnQtdG86IHsgImdyb3VwIjogImVuZHBvaW50
IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwgImVuZHBvaW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVu
ZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQtb25seS1lbmRwb2ludCIsICJtYXhfYWdl
IjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogIi9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBvcnQtb25seS1l
bmRwb2ludCIgfV0gfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaWRsCmluZGV4IDQ5YzQ1NGYzNTAzNC4uYzhlODljN2JjYmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0yNiw3ICsyNiw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLWVudW0gRmV0Y2hSZXF1ZXN0RGVzdGluYXRpb24geyAiIiwg
ImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJlbWJlZCIsICJmb250IiwgImlt
YWdlIiwgIm1hbmlmZXN0IiwgIm1vZGVsIiwgIm9iamVjdCIsICJwYWludHdvcmtsZXQiLCAicmVw
b3J0IiwgInNjcmlwdCIsICJzZXJ2aWNld29ya2VyIiwgInNoYXJlZHdvcmtlciIsICJzdHlsZSIs
ICJ0cmFjayIsICJ2aWRlbyIsICJ3b3JrZXIiLCAieHNsdCIgfTsKK2VudW0gRmV0Y2hSZXF1ZXN0
RGVzdGluYXRpb24geyAiIiwgImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJl
bWJlZCIsICJmb250IiwgImltYWdlIiwgImlmcmFtZSIsICJtYW5pZmVzdCIsICJtb2RlbCIsICJv
YmplY3QiLCAicGFpbnR3b3JrbGV0IiwgInJlcG9ydCIsICJzY3JpcHQiLCAic2VydmljZXdvcmtl
ciIsICJzaGFyZWR3b3JrZXIiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwg
InhzbHQiIH07CiAKIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJ
bmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeS5jcHAKaW5kZXggMTkyOTJhZDYzYjYyLi5lODRiNDQ1ZTEyMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKQEAg
LTI4LDEyICsyOCwyNiBAQAogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJKU0ZldGNoUmVxdWVzdC5oIgorI2luY2x1ZGUg
IlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFVSTCBjb250ZXh0VVJMRm9yUmVwb3J0KEZy
YW1lJiBmcmFtZSkKK3sKKyAgICBhdXRvIHJlcG9ydFVSTCA9IGZyYW1lLmRvY3VtZW50KCkgPyBm
cmFtZS5kb2N1bWVudCgpLT51cmwoKSA6IGFib3V0QmxhbmtVUkwoKTsKKyAgICBpZiAocmVwb3J0
VVJMLmlzQWJvdXRCbGFuaygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRGcmFtZSA9IGZy
YW1lLnRyZWUoKS5wYXJlbnQoKTsgcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAg
ICByZXBvcnRVUkwgPSBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgICAgIGVs
c2UgaWYgKGF1dG8qIG9wZW5lckZyYW1lID0gZnJhbWUubG9hZGVyKCkub3BlbmVyKCk7IG9wZW5l
ckZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gb3BlbmVyRnJhbWUt
PmRvY3VtZW50KCktPnVybCgpOworICAgIH0KKyAgICByZXR1cm4gcmVwb3J0VVJMOworfQorCiAv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNvYnRh
aW4tYW4tZW1iZWRkZXItcG9saWN5CiBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5IG9idGFpbkNy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CkBAIC05NCw0ICsxMDgs
MjcgQEAgdm9pZCBhZGRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5SGVhZGVycyhSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ3Jvc3MKICAgICB9CiB9CiAKKy8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3F1ZXVlLWEtY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1pbmhlcml0YW5jZS12aW9sYXRpb24KK3ZvaWQgc2VuZENPRVBQ
b2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQs
IENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBV
UkwmIGJsb2NrZWRVUkwpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAg
IFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBlbWJlZGRlck9yaWdpbiwg
ZW5kcG9pbnQsICJjb2VwIl9zLCBjb250ZXh0VVJMRm9yUmVwb3J0KGZyYW1lKSwgZnJhbWUubG9h
ZGVyKCkudXNlckFnZW50KGJsb2NrZWRVUkwpLCBbJl0oYXV0byYgYm9keSkgeworICAgICAgICBi
b2R5LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPRVBEaXNwb3Np
dGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAgICAg
Ym9keS5zZXRTdHJpbmcoInR5cGUiX3MsIHR5cGUpOworICAgICAgICBib2R5LnNldFN0cmluZygi
YmxvY2tlZFVSTCJfcywgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQoYmxvY2tlZFVS
TCkpOworICAgIH0pOworfQorCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcXVl
dWUtYS1jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9ydAor
dm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlz
cG9zaXRpb24gZGlzcG9zaXRpb24sIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRp
b24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBBU1NFUlQoIWVuZHBvaW50LmlzRW1w
dHkoKSk7CisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGVtYmVk
ZGVyT3JpZ2luLCBlbmRwb2ludCwgImNvZXAiX3MsIGNvbnRleHRVUkxGb3JSZXBvcnQoZnJhbWUp
LCBmcmFtZS5sb2FkZXIoKS51c2VyQWdlbnQoYmxvY2tlZFVSTCksIFsmXShhdXRvJiBib2R5KSB7
CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24gPT0g
Q09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2UiX3Mp
OworICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgImNvcnAiKTsKKyAgICAgICAgYm9k
eS5zZXRTdHJpbmcoImJsb2NrZWRVUkwiX3MsIFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVw
b3J0KGJsb2NrZWRVUkwpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRlc3RpbmF0aW9uIl9z
LCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhkZXN0aW5hdGlvbikpOworICAgIH0pOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaAppbmRleCA3NDlmMGM3OWZiM2IuLjEzYWZiZjUyMmI4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQ
b2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeS5oCkBAIC0yNSwxMyArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJG
ZXRjaE9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRt
bCNlbWJlZGRlci1wb2xpY3ktdmFsdWUKIGVudW0gY2xhc3MgQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeVZhbHVlIDogYm9vbCB7CiAgICAgVW5zYWZlTm9uZSwKQEAgLTkzLDcgKzk3LDExIEBAIHN0
ZDo6b3B0aW9uYWw8Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeT4gQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeTo6ZGVjb2RlKERlY29kCiAgICAgfX07CiB9CiAKK2VudW0gY2xhc3MgQ09FUERpc3Bv
c2l0aW9uIDogYm9vbCB7IFJlcG9ydGluZyAsIEVuZm9yY2UgfTsKKwogV0VCQ09SRV9FWFBPUlQg
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lIZWFkZXJz
KFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Jik7CitX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oRnJh
bWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJp
bmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
VVJMJiBibG9ja2VkVVJMKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0
aW9uKEZyYW1lJiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29u
c3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNw
cAppbmRleCA5MDljN2M1MWFmMmIuLjE0NmM2NWI4NjJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuY3BwCkBAIC0zMCwyMiArMzAsMTIg
QEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5o
IgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKLSNpbmNsdWRlICJSZXBvcnRpbmdFbmRwb2ludHND
YWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS9vcmlnaW4uaHRtbCNzYW5pdGl6ZS11cmwtcmVwb3J0Ci1zdGF0aWMgU3RyaW5nIHNhbml0aXpl
UmVmZXJyZXJGb3JVUkxSZXBvcnQoY29uc3QgVVJMJiByZWZlcnJlcikKLXsKLSAgICBVUkwgc2Fu
aXRpemVkUmVmZXJyZXIgPSByZWZlcnJlcjsKLSAgICBzYW5pdGl6ZWRSZWZlcnJlci5yZW1vdmVD
cmVkZW50aWFscygpOwotICAgIHNhbml0aXplZFJlZmVycmVyLnJlbW92ZUZyYWdtZW50SWRlbnRp
ZmllcigpOwotICAgIHJldHVybiBzYW5pdGl6ZWRSZWZlcnJlci5zdHJpbmcoKTsKLX0KLQogc3Rh
dGljIEFTQ0lJTGl0ZXJhbCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVRvU3RyaW5nKGNvbnN0IENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWUmIGNvb3ApCiB7CiAgICAgc3dpdGNoIChjb29wKSB7
CkBAIC0xMzYsNDQgKzEyNiwxNyBAQCB2b2lkIGFkZENyb3NzT3JpZ2luT3BlbmVyUG9saWN5SGVh
ZGVycyhSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ3Jvc3NPcgogICAgIH0KIH0K
IAotLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZy8jdHJ5LWRlbGl2ZXJ5Ci1zdGF0
aWMgdm9pZCBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgVVJM
JiBjb29wVVJMLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgY29vcE9yaWdpbiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIEZ1bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiYgcG9wdWxhdGVCb2R5
KQotewotICAgIGF1dG8mIHJlcG9ydGluZ0VuZHBvaW50ID0gZGlzcG9zaXRpb24gPT0gQ09PUERp
c3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCA6
IGNvb3AucmVwb3J0aW5nRW5kcG9pbnQ7Ci0gICAgaWYgKHJlcG9ydGluZ0VuZHBvaW50LmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byByZXBvcnRpbmdFbmRwb2ludHNDYWNo
ZSA9IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+cmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUo
KSA6IG51bGxwdHI7Ci0gICAgaWYgKCFyZXBvcnRpbmdFbmRwb2ludHNDYWNoZSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGF1dG8gZW5kcG9pbnRVUkwgPSByZXBvcnRpbmdFbmRwb2ludHNDYWNoZS0+
ZW5kcG9pbnRVUkwoY29vcE9yaWdpbi5kYXRhKCksIHJlcG9ydGluZ0VuZHBvaW50KTsKLSAgICBp
ZiAoIWVuZHBvaW50VVJMLmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBi
b2R5ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBib2R5LT5zZXRTdHJpbmcoImRpc3Bv
c2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/ICJy
ZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7Ci0gICAgYm9keS0+c2V0U3RyaW5nKCJlZmZlY3Rp
dmVQb2xpY3kiX3MsIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWVUb0VmZmVjdGl2ZVBvbGlj
eVN0cmluZyhkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3Au
cmVwb3J0T25seVZhbHVlIDogY29vcC52YWx1ZSkpOwotICAgIHBvcHVsYXRlQm9keShib2R5KTsK
LQotICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBy
ZXBvcnRPYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgImNvb3AiX3MpOwotICAgIHJlcG9ydE9i
amVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIGNvb3BVUkwuc3RyaW5nKCkpOwotICAgIHJlcG9ydE9i
amVjdC0+c2V0U3RyaW5nKCJ1c2VyX2FnZW50IiwgdXNlckFnZW50KTsKLSAgICByZXBvcnRPYmpl
Y3QtPnNldEludGVnZXIoImFnZSIsIDApOyAvLyBXZSBjdXJyZW50bHkgZG8gbm90IGRlbGF5IHNl
bmRpbmcgdGhlIHJlcG9ydHMuCi0gICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoImJvZHkiX3Ms
IFdURk1vdmUoYm9keSkpOwotCi0gICAgYXV0byByZXBvcnRMaXN0ID0gSlNPTjo6QXJyYXk6OmNy
ZWF0ZSgpOwotICAgIHJlcG9ydExpc3QtPnB1c2hPYmplY3QocmVwb3J0T2JqZWN0KTsKLQotICAg
IGF1dG8gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRMaXN0LT50b0pTT05TdHJpbmco
KS51dGY4KCkpOwotICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoZnJhbWUsIGVu
ZHBvaW50VVJMLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OlN0YW5kYXJk
UmVwb3J0aW5nQVBJVmlvbGF0aW9uKTsKLX0KLQogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY29vcC12aW9sYXRpb24tbmF2aWdhdGlvbi10bwog
dm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShGcmFt
ZSYgZnJhbWUsIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBk
aXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwmIHByZXZpb3VzUmVzcG9u
c2VVUkwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7Ci0gICAgc2VuZENPT1BWaW9sYXRpb25SZXBvcnQoZnJh
bWUsIGNvb3AsIGRpc3Bvc2l0aW9uLCBjb29wVVJMLCBjb29wT3JpZ2luLCB1c2VyQWdlbnQsIFsm
XShhdXRvJiBib2R5KSB7Ci0gICAgICAgIGJvZHkuc2V0U3RyaW5nKCJwcmV2aW91c1Jlc3BvbnNl
VVJMIl9zLCBjb29wT3JpZ2luLmlzU2FtZU9yaWdpbkFzKHByZXZpb3VzUmVzcG9uc2VPcmlnaW4p
ID8gc2FuaXRpemVSZWZlcnJlckZvclVSTFJlcG9ydChwcmV2aW91c1Jlc3BvbnNlVVJMKSA6IFN0
cmluZygpKTsKKyAgICBhdXRvJiBlbmRwb2ludCA9IGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3Np
dGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQgOiBjb29w
LnJlcG9ydGluZ0VuZHBvaW50OworICAgIGlmIChlbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBj
b29wT3JpZ2luLmRhdGEoKSwgZW5kcG9pbnQsICJjb29wIl9zLCBjb29wVVJMLCB1c2VyQWdlbnQs
IFsmXShhdXRvJiBib2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJf
cywgZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5n
Il9zIDogImVuZm9yY2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmluZygiZWZmZWN0aXZlUG9s
aWN5Il9zLCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZlY3RpdmVQb2xpY3lTdHJp
bmcoZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9y
dE9ubHlWYWx1ZSA6IGNvb3AudmFsdWUpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoInByZXZp
b3VzUmVzcG9uc2VVUkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMocHJldmlvdXNSZXNw
b25zZU9yaWdpbikgPyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChwcmV2aW91c1Jl
c3BvbnNlVVJMKSA6IFN0cmluZygpKTsKICAgICAgICAgYm9keS5zZXRTdHJpbmcoInR5cGUiX3Ms
ICJuYXZpZ2F0aW9uLXRvLXJlc3BvbnNlIl9zKTsKICAgICAgICAgYm9keS5zZXRTdHJpbmcoInJl
ZmVycmVyIl9zLCByZWZlcnJlcik7CiAgICAgfSk7CkBAIC0xODIsOCArMTQ1LDE0IEBAIHZvaWQg
c2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2UoRnJhbWUmIGZy
YW1lLCBDcm9zc09yaWdpbk9wCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9vcmlnaW4uaHRtbCNjb29wLXZpb2xhdGlvbi1uYXZpZ2F0aW9uLWZyb20KIHZvaWQgc2Vu
ZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoRnJhbWUm
IGZyYW1lLCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb29wLCBDT09QRGlzcG9zaXRpb24gZGlz
cG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBuZXh0UmVzcG9uc2VVUkws
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
bmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7Ci0gICAgc2VuZENPT1BWaW9sYXRpb25SZXBvcnQo
ZnJhbWUsIGNvb3AsIGRpc3Bvc2l0aW9uLCBjb29wVVJMLCBjb29wT3JpZ2luLCB1c2VyQWdlbnQs
IFsmXShhdXRvJiBib2R5KSB7Ci0gICAgICAgIGJvZHkuc2V0U3RyaW5nKCJuZXh0UmVzcG9uc2VV
UkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMobmV4dFJlc3BvbnNlT3JpZ2luKSB8fCBp
c0NPT1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2UgPyBzYW5pdGl6ZVJlZmVycmVyRm9yVVJMUmVw
b3J0KG5leHRSZXNwb25zZVVSTCkgOiBTdHJpbmcoKSk7CisgICAgYXV0byYgZW5kcG9pbnQgPSBk
aXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25s
eVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBvcnRpbmdFbmRwb2ludDsKKyAgICBpZiAoZW5k
cG9pbnQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBQaW5nTG9hZGVyOjpzZW5k
UmVwb3J0VG9FbmRwb2ludChmcmFtZSwgY29vcE9yaWdpbi5kYXRhKCksIGVuZHBvaW50LCAiY29v
cCJfcywgY29vcFVSTCwgdXNlckFnZW50LCBbJl0oYXV0byYgYm9keSkgeworICAgICAgICBib2R5
LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlv
bjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAgICAgYm9k
eS5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJfcywgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lW
YWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlv
bjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5VmFsdWUgOiBjb29wLnZhbHVlKSk7CisgICAg
ICAgIGJvZHkuc2V0U3RyaW5nKCJuZXh0UmVzcG9uc2VVUkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1l
T3JpZ2luQXMobmV4dFJlc3BvbnNlT3JpZ2luKSB8fCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25T
b3VyY2UgPyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChuZXh0UmVzcG9uc2VVUkwp
IDogU3RyaW5nKCkpOwogICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgIm5hdmlnYXRp
b24tZnJvbS1yZXNwb25zZSJfcyk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hP
cHRpb25zLmgKaW5kZXggYzdmMzEzODQyZTE0Li4yN2I5OGE5MzIzMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRmV0Y2hPcHRpb25zLmgKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEZldGNoT3B0aW9ucyB7Ci0gICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6
IHVpbnQ4X3QgeyBFbXB0eVN0cmluZywgQXVkaW8sIEF1ZGlvd29ya2xldCwgRG9jdW1lbnQsIEVt
YmVkLCBGb250LCBJbWFnZSwgTWFuaWZlc3QsIE1vZGVsLCBPYmplY3QsIFBhaW50d29ya2xldCwg
UmVwb3J0LCBTY3JpcHQsIFNlcnZpY2V3b3JrZXIsIFNoYXJlZHdvcmtlciwgU3R5bGUsIFRyYWNr
LCBWaWRlbywgV29ya2VyLCBYc2x0IH07CisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVp
bnQ4X3QgeyBFbXB0eVN0cmluZywgQXVkaW8sIEF1ZGlvd29ya2xldCwgRG9jdW1lbnQsIEVtYmVk
LCBGb250LCBJbWFnZSwgSWZyYW1lLCBNYW5pZmVzdCwgTW9kZWwsIE9iamVjdCwgUGFpbnR3b3Jr
bGV0LCBSZXBvcnQsIFNjcmlwdCwgU2VydmljZXdvcmtlciwgU2hhcmVkd29ya2VyLCBTdHlsZSwg
VHJhY2ssIFZpZGVvLCBXb3JrZXIsIFhzbHQgfTsKICAgICBlbnVtIGNsYXNzIE1vZGUgOiB1aW50
OF90IHsgTmF2aWdhdGUsIFNhbWVPcmlnaW4sIE5vQ29ycywgQ29ycyB9OwogICAgIGVudW0gY2xh
c3MgQ3JlZGVudGlhbHMgOiB1aW50OF90IHsgT21pdCwgU2FtZU9yaWdpbiwgSW5jbHVkZSB9Owog
ICAgIGVudW0gY2xhc3MgQ2FjaGUgOiB1aW50OF90IHsgRGVmYXVsdCwgTm9TdG9yZSwgUmVsb2Fk
LCBOb0NhY2hlLCBGb3JjZUNhY2hlLCBPbmx5SWZDYWNoZWQgfTsKQEAgLTgwLDkgKzgwLDExIEBA
IGlubGluZSBib29sIGlzUG90ZW50aWFsTmF2aWdhdGlvbk9yU3VicmVzb3VyY2VSZXF1ZXN0KEZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb24KICAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQ7CiB9CiAKKy8vIGh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNub24tc3VicmVzb3VyY2UtcmVxdWVzdAogaW5saW5lIGJvb2wgaXNOb25TdWJy
ZXNvdXJjZVJlcXVlc3QoRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKIHsK
ICAgICByZXR1cm4gZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9j
dW1lbnQKKyAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6SWZyYW1lCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb246OlJlcG9ydAogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OlNoYXJlZHdvcmtlcgpAQCAtMTEyLDYgKzExNCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbj4gewogICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbWJl
ZCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6Rm9udCwKICAg
ICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SW1hZ2UsCisgICAgICAg
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZSwKICAgICAgICAgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3QsCiAgICAgICAgIFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1vZGVsLAogICAgICAgICBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpPYmplY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAKaW5kZXggYjgwYTdmOWJmNTEwLi4zZWMzYzUxOGM3ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFj
a2VyLmgiCisjaW5jbHVkZSAiUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUxvYWRJbmZvLmgiCkBAIC0yNDMsNCArMjQ0LDQyIEBAIHZvaWQgUGluZ0xvYWRlcjo6
c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSFRU
UEhlYWRlCiAgICAgZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1
ZXN0UGluZ1Jlc291cmNlKFdURk1vdmUoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKKy8v
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nh
bml0aXplLXVybC1yZXBvcnQKK1N0cmluZyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9y
dChjb25zdCBVUkwmIHVybCkKK3sKKyAgICBVUkwgc2FuaXRpemVkVVJMID0gdXJsOworICAgIHNh
bml0aXplZFVSTC5yZW1vdmVDcmVkZW50aWFscygpOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVG
cmFnbWVudElkZW50aWZpZXIoKTsKKyAgICByZXR1cm4gc2FuaXRpemVkVVJMLnN0cmluZygpOwog
fQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKK3Zv
aWQgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJv
ZHkpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVwb3J0
aW5nRW5kcG9pbnRzQ2FjaGUgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGlu
Z0VuZHBvaW50c0NhY2hlKCkgOiBudWxscHRyOworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5n
RW5kcG9pbnRzQ2FjaGUtPmVuZHBvaW50VVJMKG9yaWdpbiwgZW5kcG9pbnQpOworICAgIGlmICgh
ZW5kcG9pbnRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJvZHkg
PSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIHBvcHVsYXRlUmVwb3J0Qm9keShib2R5KTsK
KworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBy
ZXBvcnRPYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgdHlwZSk7CisgICAgaWYgKHJlcG9ydFVS
TC5pc1ZhbGlkKCkpCisgICAgICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIHJl
cG9ydFVSTC5zdHJpbmcoKSk7CisgICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdl
bnQiLCB1c2VyQWdlbnQpOworICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7
IC8vIFdlIGN1cnJlbnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KKyAgICBy
ZXBvcnRPYmplY3QtPnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7CisKKyAgICBh
dXRvIHJlcG9ydExpc3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAgcmVwb3J0TGlzdC0+
cHVzaE9iamVjdChyZXBvcnRPYmplY3QpOworCisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6
Y3JlYXRlKHJlcG9ydExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgc2VuZFZpb2xh
dGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9u
UmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRpb24pOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCA1ZWNhOThj
NzFlZTcuLjRjZTQ5MzVlNzIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC01
Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNv
bnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVS
TCYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBl
KTsKIAorICAgIHN0YXRpYyBTdHJpbmcgc2FuaXRpemVVUkxGb3JSZXBvcnQoY29uc3QgVVJMJik7
CisgICAgc3RhdGljIHZvaWQgc2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
RnVuY3Rpb248dm9pZChKU09OOjpPYmplY3QmKT4mIHBvcHVsYXRlUmVwb3J0Qm9keSk7CisKIHBy
aXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xsb3dSZWRpcmVjdHMgeyBObywgWWVzIH07
CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYs
IEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBTaG91bGRGb2xsb3dSZWRp
cmVjdHMsIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24sIFJlZmVycmVyUG9saWN5LCBz
dGQ6Om9wdGlvbmFsPFZpb2xhdGlvblJlcG9ydFR5cGU+ID0gc3RkOjpudWxsb3B0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IGMyYmQwN2UxODIyOC4uZGE2M2VmZDI3ZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc5NSwxMiAr
Nzk1LDEyIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUhUVFBSZXF1ZXN0SGVh
ZGVycyhGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIENhCiAgICAgcmVxdWVzdC51cGRhdGVBY2Nl
cHRFbmNvZGluZ0hlYWRlcigpOwogfQogCi1zdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKK3N0YXRpYyBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uRm9yVHlwZShDYWNoZWRSZXNvdXJj
ZTo6VHlwZSB0eXBlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6TWFpblJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlR5cGU6OlNWR0RvY3VtZW50UmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudDsKKyAgICAgICAgcmV0dXJuIGZyYW1lLmlz
TWFpbkZyYW1lKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCA6IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpU
eXBlOjpJbWFnZVJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Okljb246
CiAgICAgICAgIHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJbWFnZTsKQEAgLTg2
OCw3ICs4NjgsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgTE9HKFJlc291cmNl
TG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyUuMjU1cycs
IGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nQ2Vu
dGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQo
KS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSA/IHN0YXRpY19jYXN0PGludD4o
cmVxdWVzdC5wcmlvcml0eSgpLnZhbHVlKCkpIDogLTEsIGZvclByZWxvYWQgPT0gRm9yUHJlbG9h
ZDo6WWVzKTsKIAotICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0aW5hdGlv
bkZvclR5cGUodHlwZSkpOworICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0
aW5hdGlvbkZvclR5cGUodHlwZSwgZnJhbWUpKTsKIAogICAgIC8vIEVudHJ5IHBvaW50IHRvIGh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZldGNoLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZXNvdXJjZVJlcXVlc3Q+IG9yaWdpbmFsUmVxdWVzdDsKQEAgLTg4MCw3ICs4ODAsNyBA
QCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgcHJlcGFyZUZldGNoKHR5cGUsIHJlcXVl
c3QpOwogCi0gICAgaWYgKHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50KSB7CisgICAgaWYgKHJlcXVlc3Qub3B0aW9ucygp
LmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50IHx8IHJl
cXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OklmcmFtZSkgewogICAgICAgICAvLyBGSVhNRTogSWRlbnRpZnkgSFNUUyBjYXNlcyBhbmQgYXZv
aWQgYWRkaW5nIHRoZSBoZWFkZXIuIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU3ODg1PgogICAgICAgICBpZiAoIXVybC5wcm90b2NvbElzKCJodHRwcyIpKQogICAg
ICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OlVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzLCAiMSJfcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXgg
MGEzMDcwNzM5MWJmLi5hOWRhNzYwMjU1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTY2hlbWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaD4KQEAgLTE1OCw2ICsxNTksMjcgQEAg
dm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXEKICAgICB9KTsKIH0KIAorLy8gaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3ktY2hlY2sKK3N0YXRp
YyBzdGQ6Om9wdGlvbmFsPFJlc291cmNlRXJyb3I+IHBlcmZvcm1DT1JQQ2hlY2soY29uc3QgQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSYgZW1iZWRkZXJDT0VQLCBjb25zdCBTZWN1cml0eU9yaWdp
biYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgRm9yTmF2aWdhdGlvbiBmb3JOYXZpZ2F0aW9uLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIq
IGxvYWRlcikKK3sKKyAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNv
dXJjZVBvbGljeShDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUsIGVt
YmVkZGVyT3JpZ2luLCB1cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAg
ICByZXR1cm4gV1RGTW92ZSgqZXJyb3IpOworCisgICAgaWYgKGVtYmVkZGVyQ09FUC5yZXBvcnRP
bmx5VmFsdWUgPT0gQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCAm
JiAhZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkgJiYg
bG9hZGVyKSB7CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJl
c291cmNlUG9saWN5KGVtYmVkZGVyQ09FUC5yZXBvcnRPbmx5VmFsdWUsIGVtYmVkZGVyT3JpZ2lu
LCB1cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgbG9hZGVy
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXIt
PmZyYW1lSUQoKSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0T25s
eVJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZywgbG9hZGVyLT5w
YXJhbWV0ZXJzKCkub3B0aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJM
KCkgfSwgbG9hZGVyLT5wYWdlSUQoKSk7CisgICAgfQorCisgICAgaWYgKGVtYmVkZGVyQ09FUC52
YWx1ZSA9PSBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7Cisg
ICAgICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJlc291cmNlUG9saWN5
KGVtYmVkZGVyQ09FUC52YWx1ZSwgZW1iZWRkZXJPcmlnaW4sIHVybCwgcmVzcG9uc2UsIEZvck5h
dmlnYXRpb246OlllcykpIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIgJiYgIWVtYmVkZGVyQ09F
UC5yZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbG9hZGVyLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXItPmZy
YW1lSUQoKSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0aW5nRW5k
cG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwgbG9hZGVyLT5wYXJhbWV0ZXJzKCkub3B0
aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJMKCkgfSwgbG9hZGVyLT5w
YWdlSUQoKSk7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgqZXJyb3IpOworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIFJlc291cmNlRXJyb3IgTmV0
d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fcmVkaXJl
Y3RDb3VudCkKQEAgLTE3MCw3ICsxOTIsNyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hl
Y2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogCiAg
ICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgfHwg
bV9pc1NhbWVPcmlnaW5SZXF1ZXN0KSB7CiAgICAgICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlICYmIG1fcGFyZW50T3JpZ2luKSB7Ci0gICAgICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeSht
X3BhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUsICptX3BhcmVudE9yaWdpbiwg
bV91cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSBwZXJmb3JtQ09SUENoZWNrKG1fcGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeSwgKm1fcGFyZW50T3JpZ2luLCBtX3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246Olll
cywgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVy
biBXVEZNb3ZlKCplcnJvcik7CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRp
bmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6OkJhc2ljKTsKQEAgLTE4MSw3ICsyMDMsNyBA
QCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICByZXNwb25zZS5zZXRBc1JhbmdlUmVx
dWVzdGVkKCk7CiAKICAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOb0NvcnMpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2lu
UmVzb3VyY2VQb2xpY3kobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlLCAqbV9vcmln
aW4sIG1fdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8pKQorICAgICAgICBpZiAoYXV0
byBlcnJvciA9IHBlcmZvcm1DT1JQQ2hlY2sobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCAq
bV9vcmlnaW4sIG1fdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8sIG1fbmV0d29ya1Jl
c291cmNlTG9hZGVyLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7
CiAKICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRp
bmc6Ok9wYXF1ZSk7CkBAIC0yODEsNiArMzAzLDcgQEAgYm9vbCBOZXR3b3JrTG9hZENoZWNrZXI6
OmlzQWxsb3dlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYK
ICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtYmVkOgogICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6Rm9udDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OkltYWdlOgorICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZy
YW1lOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3Q6CiAgICAg
Y2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbDoKICAgICBjYXNlIEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246Ok9iamVjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyM2Q5NDg3NWUyYzEu
LjZlY2Y1NzA0OTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzkyLDYgKzM5Miw3IEBAIFJlc291cmNl
TG9hZEluZm8gTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXNvdXJjZUxvYWRJbmZvKCkKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ6
CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkSW5mbzo6VHlwZTo6T3RoZXI7CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQ6Cisg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lOgog
ICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZEluZm86OlR5cGU6OkRvY3VtZW50OwogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtYmVkOgogICAg
ICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZEluZm86OlR5cGU6Ok9iamVjdDsKQEAgLTYwNiwz
MCArNjA3LDQ3IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRO
YXZpZ2F0aW9uRm9yQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljCiAgICAgQVNTRVJUKGlzTWFpblJl
c291cmNlKCkpOwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvb3JpZ2luLmh0bWwjY2hlY2stYS1uYXZpZ2F0aW9uLXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRv
LWl0cy1lbWJlZGRlci1wb2xpY3kKLSAgICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeVZhbHVlOjpVbnNhZmVOb25lICYmIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKKyAg
ICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUg
PT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCB8
fCBtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5
VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJl
Q09SUCkgewogICAgICAgICBhdXRvIHJlc3BvbnNlQ09FUCA9IFdlYkNvcmU6Om9idGFpbkNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3kocmVzcG9uc2UsIG51bGxwdHIpOwotICAgICAgICBpZiAocmVz
cG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1
ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQICYmIHJlc3BvbnNlQ09FUC52YWx1ZSAh
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7
CisgICAgICAgICAgICBpZiAoYXV0byBwYXJlbnRPcmlnaW4gPSBtX3BhcmFtZXRlcnMucGFyZW50
T3JpZ2luKCk7IHBhcmVudE9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVy
aXRlbmNlVmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmVudE9yaWdpbi0+
ZGF0YSgpLCBtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBv
cnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCAibmF2
aWdhdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiByZXNwb25zZUNPRVAudmFsdWUgIT0gV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAgICAgICAg
U3RyaW5nIGVycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlZnVzZWQgdG8gZGlzcGxheSAnIiwg
cmVzcG9uc2UudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCksICInIGluIGEg
ZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LiIpOwogICAgICAg
ICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QWRkQ29uc29sZU1lc3NhZ2UgeyBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgIE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBlcnJvck1lc3NhZ2UsIGNvcmVJZGVudGlmaWVyKCkgfSwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCk7CisgICAgICAgICAgICBpZiAoYXV0byBwYXJlbnRPcmlnaW4gPSBtX3BhcmFtZXRl
cnMucGFyZW50T3JpZ2luKCk7IHBhcmVudE9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLnBhcmVudENy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJp
dGVuY2VWaW9sYXRpb24geyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyZW50T3JpZ2luLT5k
YXRhKCksIG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9y
dGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OkVuZm9yY2UsICJuYXZpZ2F0aW9uIl9zLCBt
X2ZpcnN0UmVzcG9uc2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwj
Y2hlY2stYS1nbG9iYWwtb2JqZWN0J3MtZW1iZWRkZXItcG9saWN5CiBib29sIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0V29ya2VyTG9hZEZvckNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1f
cGFyYW1ldGVycy5vcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246OldvcmtlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fcGFyYW1ldGVy
cy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiBtX3BhcmFtZXRlcnMuc291cmNlT3Jp
Z2luKSB7CisgICAgaWYgKG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZh
bHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNP
UlAgfHwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVZh
bHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNP
UlApIHsKICAgICAgICAgYXV0byByZXNwb25zZUNPRVAgPSBXZWJDb3JlOjpvYnRhaW5Dcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5KHJlc3BvbnNlLCBudWxscHRyKTsKLSAgICAgICAgaWYgKHJlc3Bv
bnNlQ09FUC52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6
OlJlcXVpcmVDT1JQKSB7CisgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCAmJiByZXNwb25zZUNPRVAudmFsdWUgPT0gV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lKSB7CisgICAgICAg
ICAgICBpZiAobV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLmNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGlj
eUluaGVyaXRlbmNlVmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5zb3VyY2VPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJl
cG9ydGluZywgIndvcmtlciBpbml0aWFsaXphdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0s
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcGFy
YW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlID09IFdlYkNvcmU6OkNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgcmVzcG9uc2VDT0VQLnZh
bHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9u
ZSkgewogICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlZnVz
ZWQgdG8gbG9hZCAnIiwgcmVzcG9uc2UudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVu
Z3RoKCksICInIHdvcmtlciBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3ku
Iik7CiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBZGRDb25zb2xlTWVzc2Fn
ZSB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCAgTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZSwgY29yZUlkZW50aWZpZXIoKSB9LCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKTsKKyAgICAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuc291cmNl
T3JpZ2luICYmICFtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRp
bmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVy
cy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9z
aXRpb246OkVuZm9yY2UsICJ3b3JrZXIgaW5pdGlhbGl6YXRpb24iX3MsIG1fZmlyc3RSZXNwb25z
ZVVSTCB9LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC02NDEsNiAr
NjU5LDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAgICAgZGlkUmVjZWl2ZU1haW5S
ZXNvdXJjZVJlc3BvbnNlKHJlY2VpdmVkUmVzcG9uc2UpOwogCiAgICAgbV9yZXNwb25zZSA9IFdU
Rk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CisgICAgaWYgKCFtX2ZpcnN0UmVzcG9uc2VVUkwuaXNW
YWxpZCgpKQorICAgICAgICBtX2ZpcnN0UmVzcG9uc2VVUkwgPSBtX3Jlc3BvbnNlLnVybCgpOwog
CiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpICYmIG1fbmV0
d29ya0xvYWRDaGVja2VyKSB7CiAgICAgICAgIGF1dG8gaW5mb3JtYXRpb24gPSBtX25ldHdvcmtM
b2FkQ2hlY2tlci0+dGFrZU5ldHdvcmtMb2FkSW5mb3JtYXRpb24oKTsKQEAgLTY5MCw2ICs3MTAs
MTggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICBpZiAobV9jYWNoZUVudHJ5Rm9yVmFs
aWRhdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6
VXNlKTsKIAorICAgIGlmIChtX25ldHdvcmtMb2FkQ2hlY2tlcikgeworICAgICAgICBhdXRvIGVy
cm9yID0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnZhbGlkYXRlUmVzcG9uc2UobV9uZXR3b3JrTG9h
ZCA/IG1fbmV0d29ya0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkgOiBvcmlnaW5hbFJlcXVlc3QoKSwg
bV9yZXNwb25zZSk7CisgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyAgICAgICAgICAg
IExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigiZGlkUmVjZWl2ZVJlc3BvbnNlOiBOZXR3b3JrTG9h
ZENoZWNrZXI6OnZhbGlkYXRlUmVzcG9uc2UgcmV0dXJuZWQgYW4gZXJyb3IgKGVycm9yLmRvbWFp
bj0lIiBQVUJMSUNfTE9HX1NUUklORyAiLCBlcnJvci5jb2RlPSVkKSIsIGVycm9yLmRvbWFpbigp
LnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvciA9
IFdURk1vdmUoZXJyb3IpXSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1f
bmV0d29ya0xvYWQpCisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEZhaWxM
b2FkaW5nKGVycm9yKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGlmIChpc01haW5SZXNvdXJjZSgpICYmIHNob3VsZEludGVycnVwdExvYWRGb3JDU1BGcmFt
ZUFuY2VzdG9yc09yWEZyYW1lT3B0aW9ucyhtX3Jlc3BvbnNlKSkgewogICAgICAgICBMT0FERVJf
UkVMRUFTRV9MT0dfRVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogSW50ZXJydXB0aW5nIG1haW4g
cmVzb3VyY2UgbG9hZCBkdWUgdG8gQ1NQIGZyYW1lLWFuY2VzdG9ycyBvciBYLUZyYW1lLU9wdGlv
bnMiKTsKICAgICAgICAgYXV0byByZXNwb25zZSA9IHNhbml0aXplUmVzcG9uc2VJZlBvc3NpYmxl
KFJlc291cmNlUmVzcG9uc2UgeyBtX3Jlc3BvbnNlIH0sIFJlc291cmNlUmVzcG9uc2U6OlNhbml0
aXphdGlvblR5cGU6OkNyb3NzT3JpZ2luU2FmZSk7CkBAIC03MDcsMTggKzczOSw2IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xp
Y3lBY3Rpb246Oklnbm9yZSk7CiAgICAgfQogCi0gICAgaWYgKG1fbmV0d29ya0xvYWRDaGVja2Vy
KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+dmFsaWRhdGVS
ZXNwb25zZShtX25ldHdvcmtMb2FkID8gbV9uZXR3b3JrTG9hZC0+Y3VycmVudFJlcXVlc3QoKSA6
IG9yaWdpbmFsUmVxdWVzdCgpLCBtX3Jlc3BvbnNlKTsKLSAgICAgICAgaWYgKCFlcnJvci5pc051
bGwoKSkgewotICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SKCJkaWRSZWNlaXZl
UmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSByZXR1cm5lZCBh
biBlcnJvciAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGVycm9yLmNvZGU9
JWQpIiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwot
ICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcildIHsKLSAgICAgICAgICAgICAgICBp
ZiAocHJvdGVjdGVkVGhpcy0+bV9uZXR3b3JrTG9hZCkKLSAgICAgICAgICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUpOwot
ICAgICAgICB9Ci0gICAgfQotCiAgICAgYXV0byByZXNwb25zZSA9IHNhbml0aXplUmVzcG9uc2VJ
ZlBvc3NpYmxlKFJlc291cmNlUmVzcG9uc2UgeyBtX3Jlc3BvbnNlIH0sIFJlc291cmNlUmVzcG9u
c2U6OlNhbml0aXphdGlvblR5cGU6OkNyb3NzT3JpZ2luU2FmZSk7CiAgICAgaWYgKGlzU3luY2hy
b25vdXMoKSkgewogICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVSZXNwb25z
ZTogVXNpbmcgcmVzcG9uc2UgZm9yIHN5bmNocm9ub3VzIGxvYWQiKTsKQEAgLTkwMiw2ICs5MjIs
OCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIExPQURFUl9SRUxFQVNFX0xPRygid2ls
bFNlbmRSZWRpcmVjdGVkUmVxdWVzdDoiKTsKICAgICArK21fcmVkaXJlY3RDb3VudDsKICAgICBt
X3JlZGlyZWN0UmVzcG9uc2UgPSByZWRpcmVjdFJlc3BvbnNlOworICAgIGlmICghbV9maXJzdFJl
c3BvbnNlVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgbV9maXJzdFJlc3BvbnNlVVJMID0gcmVkaXJl
Y3RSZXNwb25zZS51cmwoKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IHByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBpZiAoIXNlc3Npb25JRCgpLmlzRXBo
ZW1lcmFsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDdmZjYxZWIxYmU4Mi4uYjQ4OTNjNGYzOTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQog
ICAgIGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgY29u
c3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzOyB9CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZElkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkSUQ7IH0KKyAg
ICBjb25zdCBVUkwmIGZpcnN0UmVzcG9uc2VVUkwoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0UmVz
cG9uc2VVUkw7IH0KIAogICAgIE5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBnbG9iYWxGcmFt
ZUlEKCkgeyByZXR1cm4geyBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIHBhZ2VJRCgpLCBm
cmFtZUlEKCkgfTsgfQogCkBAIC0yNTUsNiArMjU2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAg
IE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyIG1fcmVzb3VyY2VMb2FkSUQ7CiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3JlZGlyZWN0UmVzcG9uc2U7CisgICAgVVJMIG1fZmly
c3RSZXNwb25zZVVSTDsgLy8gRmlyc3QgVVJMIGluIHJlc3BvbnNlJ3MgVVJMIGxpc3QgKGh0dHBz
Oi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXJlc3BvbnNlLXVybC1saXN0KS4KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggM2QxMTZkYmM2YmNhLi5kYzc2M2JmMWU4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNjg4LDYgKzY4OCw3IEBAIGRlZiBoZWFk
ZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vz
c2lvbklELmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxX
ZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoRGVjaXNpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4n
XSwKKyAgICAgICAgJ1dlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbic6IFsnPFdlYkNvcmUvQ3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3Jv
dXBGb3JIaWdobGlnaHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nl
c3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdl
YkNvcmUvQ29sb3JTcGFjZS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBlNDU0Zjk2Mzc2Y2QuLjE5OTMyOTU1ODczZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE2MSw2ICsxNjEs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ29tbW9uVk0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
bnRhY3RzUmVxdWVzdERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRNZW51Q29udHJv
bGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rh
dGFUcmFuc2Zlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VNYW5hZ2VyLmg+CkBAIC00
MzI0LDYgKzQzMjUsMTggQEAgdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFUKICAgICAgICAgUGluZ0xv
YWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqZnJhbWUtPmNvcmVGcmFtZSgpLCByZXBvcnRVUkws
IHJlcG9ydC5yZWxlYXNlTm9uTnVsbCgpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3kpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNlbmRDT0VQUG9saWN5SW5oZXJpdGVu
Y2VWaW9sYXRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3Np
dGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBVUkwmIGJsb2NrZWRV
UkwpCit7CisgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCk7IGZyYW1lLT5jb3JlRnJhbWUoKSkKKyAgICAgICAgV2ViQ29yZTo6c2Vu
ZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbigqZnJhbWUtPmNvcmVGcmFtZSgpLCBlbWJl
ZGRlck9yaWdpbiwgZW5kcG9pbnQsIGRpc3Bvc2l0aW9uLCB0eXBlLCBibG9ja2VkVVJMKTsKK30K
Kwordm9pZCBXZWJQYWdlOjpzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKQoreworICAg
IGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpOyBmcmFtZS0+Y29yZUZyYW1lKCkpCisgICAgICAgIFdlYkNvcmU6OnNlbmRDT0VQQ09SUFZp
b2xhdGlvbigqZnJhbWUtPmNvcmVGcmFtZSgpLCBlbWJlZGRlck9yaWdpbiwgZW5kcG9pbnQsIGRp
c3Bvc2l0aW9uLCBkZXN0aW5hdGlvbiwgYmxvY2tlZFVSTCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6
ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7CiAg
ICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWMy
ODE3ZDM2OTcuLjVjOTQwYzdlMWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtMjIwLDYgKzIyMCw3IEBAIGNsYXNzIEhUTUxNb2RlbEVsZW1lbnQ7
CiAjZW5kaWYKIAogZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNsYXNz
IENPRVBEaXNwb3NpdGlvbiA6IGJvb2w7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGln
aGxpZ2h0IDogYm9vbDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIERyYWdBcHBsaWNhdGlvbkZsYWdzIDogdWludDhfdDsKQEAgLTQzOCw2
ICs0MzksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsKICAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25S
ZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsKKyAgICB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVu
Y2VWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBX
ZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJMJiBi
bG9ja2VkVVJMKTsKKyAgICB2b2lkIHNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJP
cmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJM
KTsKICAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdCYmKTsKIAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCA1OTZiNGY3ZjYwMjIuLjdhMjg2ZDM5ZWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw4
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQWRkQ29uc29s
ZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBK
U0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2Fn
ZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkK
ICAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisg
ICAgU2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRl
ck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0
aW9uIGRpc3Bvc2l0aW9uLCBTdHJpbmcgdHlwZSwgVVJMIGJsb2NrZWRVUkwpCisgICAgU2VuZENP
RVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGVtYmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5kcG9p
bnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGVudW06
dWludDhfdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBV
UkwgYmxvY2tlZFVSTCkKICAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBT
eW5jaHJvbm91cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438188</attachid>
            <date>2021-09-14 16:36:57 -0700</date>
            <delta_ts>2021-09-15 07:35:23 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>230269_COEP_reporting_wip.patch</filename>
            <type>text/plain</type>
            <size>45767</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyMWIxOTY5NmQzOS4uNDZkZjUyZmU5ODMxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTQwNyw2ICs0MDcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3NhbmRib3hpbmcv
c2FuZGJveC1kaXNhbGxvdy1wb3B1cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9hbm9ueW1vdXMtaWZyYW1lL3JlcXVpcmUtY29ycC1lbWJlZC1hbm9ueW1vdXMt
aWZyYW1lLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L2Jsb2IuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCitp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVM
b2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZnJhbWUtb3duZXIuaHR0cHMuaHRt
bCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG8tYWJvdXRi
bGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9uYXZp
Z2F0ZS10b3AtdG8tYWJvdXRibGFuay5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KQEAgLTczNiw4ICs3MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9uby1zZWN1cmUtY29udAogIyBvdXIg
bGF5b3V0IHRlc3RzLiBXZSBtYWludGFpbiBvdXIgb3duIHZlcnNpb24gb2YgdGhpcyB0ZXN0IGlu
IGh0dHAvd3B0LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
IyBXZSBkbyBub3Qgc3VwcG9ydCBDT0VQIHJlcG9ydGluZy4KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10
by1lbmRwb2ludC5odHRwcy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KKyMgV2UgZG8gbm90IHN1cHBv
cnQgcmVwb3J0aW5nIEpTIEFQSSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZykuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9tdWx0aS1nbG9iYWxzL3dvcmtlcnMtY29lcC1yZXBvcnQuaHR0cHMuaHRtbCBbIFNr
aXAgXQogCiAjIE5ld2x5IGltcG9ydGVkIFdQVCB0ZXN0cyB0aGF0IGFyZSBjcmFzaGluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDNkZTU3Nzg2ZGY1MC4uMWI0N2YwZjRiZDBkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1l
bmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsNyBAQAotQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0
LXBsYWluLnR4dD81NzcwYzQ1MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJl
c3BvbnNlIGhlYWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQt
NDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09O
U09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2LThlNDAtMDg5MTcyOTZjNGIxJyBp
biBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4KLUNPTlNP
TEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5ICdodHRwczovL2xvY2FsaG9zdDo5NDQzL2Nv
bW1vbi9ibGFuay5odG1sPzk5ZTZlY2VkLWJiMDItNDE4YS1iOTg4LTIzMzkxODlhMTZhMicgaW4g
YSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kuCi1DT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSAnaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21t
b24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4NS1mM2I0NTgxZGU4NmEnIGluIGEg
ZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LgogCi1GQUlMIHN1
YnJlc291cmNlIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVS
TCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90ZXh0LXBsYWluLnR4dD81NzcwYzQ1
MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9z
dDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0
aW5nLWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRv
PSUyMnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotRkFJTCBuYXZpZ2F0aW9uIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBv
cnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFu
ay5odG1sPzYxY2Y4OTFjLWY0ODAtNDMzNi04ZTQwLTA4OTE3Mjk2YzRiMSBhbmQgdXJsIGlzIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jl
c291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRlcihjcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIyZW5kcG9pbnQlMjIp
fGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1vbmx5LHJlcXVpcmUt
Y29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlzIG5vdCBmb3VuZC4g
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBm
cmFtZSBuYXZpZ2F0aW9uIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRV
UkwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD85OWU2ZWNlZC1i
YjAyLTQxOGEtYjk4OC0yMzM5MTg5YTE2YTIgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5
NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5n
LWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50JTIyKXxoZWFkZXIoY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUy
MnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91bmQuIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQotRkFJTCBUd28gQ09FUCBoZWFkZXJzLCBzcGxpdCBpbnNpZGUgcmVwb3J0LXRvIHZh
bHVlIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3NlIGJsb2NrZWRVUkwgaXMgaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4
NS1mM2I0NTgxZGU4NmEgYW5kIHVybCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0aW5nLWVtcHR5LWZyYW1l
LW11bHRpcGxlLWhlYWRlcnMuaHRtbC5hc2lzIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCitQQVNTIHN1YnJlc291cmNlIENPUlAKK1BBU1MgbmF2aWdhdGlvbiBDT1JQCitQ
QVNTIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBmcmFtZSBuYXZpZ2F0aW9uCitQQVNTIFR3byBD
T0VQIGhlYWRlcnMsIHNwbGl0IGluc2lkZSByZXBvcnQtdG8gdmFsdWUKK0ZBSUwgU2hhcmVkIHdv
cmtlciBmZXRjaCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVh
dGluZyAnbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlNoYXJlZFdvcmtlcihXT1JLRVJfVVJMKScp
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9p
bnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGlu
Zy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzCmluZGV4IGNkYTZhYjIyNzJmYy4u
Y2Y1OTM4YzY3NjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmct
dG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycwpAQCAtMSAr
MSBAQAotcmVwb3J0LXRvOiB7ICJncm91cCI6ICJlbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0
MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJj
ZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVuZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQt
b25seS1lbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJs
IjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PXJl
cG9ydC1vbmx5LWVuZHBvaW50IiB9XSB9CityZXBvcnQtdG86IHsgImdyb3VwIjogImVuZHBvaW50
IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwgImVuZHBvaW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVu
ZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQtb25seS1lbmRwb2ludCIsICJtYXhfYWdl
IjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogIi9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBvcnQtb25seS1l
bmRwb2ludCIgfV0gfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaWRsCmluZGV4IDQ5YzQ1NGYzNTAzNC4uYzhlODljN2JjYmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0yNiw3ICsyNiw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLWVudW0gRmV0Y2hSZXF1ZXN0RGVzdGluYXRpb24geyAiIiwg
ImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJlbWJlZCIsICJmb250IiwgImlt
YWdlIiwgIm1hbmlmZXN0IiwgIm1vZGVsIiwgIm9iamVjdCIsICJwYWludHdvcmtsZXQiLCAicmVw
b3J0IiwgInNjcmlwdCIsICJzZXJ2aWNld29ya2VyIiwgInNoYXJlZHdvcmtlciIsICJzdHlsZSIs
ICJ0cmFjayIsICJ2aWRlbyIsICJ3b3JrZXIiLCAieHNsdCIgfTsKK2VudW0gRmV0Y2hSZXF1ZXN0
RGVzdGluYXRpb24geyAiIiwgImF1ZGlvIiwgImF1ZGlvd29ya2xldCIsICJkb2N1bWVudCIsICJl
bWJlZCIsICJmb250IiwgImltYWdlIiwgImlmcmFtZSIsICJtYW5pZmVzdCIsICJtb2RlbCIsICJv
YmplY3QiLCAicGFpbnR3b3JrbGV0IiwgInJlcG9ydCIsICJzY3JpcHQiLCAic2VydmljZXdvcmtl
ciIsICJzaGFyZWR3b3JrZXIiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwg
InhzbHQiIH07CiAKIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJ
bmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeS5jcHAKaW5kZXggMTkyOTJhZDYzYjYyLi5lODRiNDQ1ZTEyMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKQEAg
LTI4LDEyICsyOCwyNiBAQAogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJKU0ZldGNoUmVxdWVzdC5oIgorI2luY2x1ZGUg
IlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFVSTCBjb250ZXh0VVJMRm9yUmVwb3J0KEZy
YW1lJiBmcmFtZSkKK3sKKyAgICBhdXRvIHJlcG9ydFVSTCA9IGZyYW1lLmRvY3VtZW50KCkgPyBm
cmFtZS5kb2N1bWVudCgpLT51cmwoKSA6IGFib3V0QmxhbmtVUkwoKTsKKyAgICBpZiAocmVwb3J0
VVJMLmlzQWJvdXRCbGFuaygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRGcmFtZSA9IGZy
YW1lLnRyZWUoKS5wYXJlbnQoKTsgcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAg
ICByZXBvcnRVUkwgPSBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgICAgIGVs
c2UgaWYgKGF1dG8qIG9wZW5lckZyYW1lID0gZnJhbWUubG9hZGVyKCkub3BlbmVyKCk7IG9wZW5l
ckZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gb3BlbmVyRnJhbWUt
PmRvY3VtZW50KCktPnVybCgpOworICAgIH0KKyAgICByZXR1cm4gcmVwb3J0VVJMOworfQorCiAv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNvYnRh
aW4tYW4tZW1iZWRkZXItcG9saWN5CiBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5IG9idGFpbkNy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CkBAIC05NCw0ICsxMDgs
MjcgQEAgdm9pZCBhZGRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5SGVhZGVycyhSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ3Jvc3MKICAgICB9CiB9CiAKKy8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3F1ZXVlLWEtY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1pbmhlcml0YW5jZS12aW9sYXRpb24KK3ZvaWQgc2VuZENPRVBQ
b2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQs
IENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBV
UkwmIGJsb2NrZWRVUkwpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAg
IFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBlbWJlZGRlck9yaWdpbiwg
ZW5kcG9pbnQsICJjb2VwIl9zLCBjb250ZXh0VVJMRm9yUmVwb3J0KGZyYW1lKSwgZnJhbWUubG9h
ZGVyKCkudXNlckFnZW50KGJsb2NrZWRVUkwpLCBbJl0oYXV0byYgYm9keSkgeworICAgICAgICBi
b2R5LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPRVBEaXNwb3Np
dGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAgICAg
Ym9keS5zZXRTdHJpbmcoInR5cGUiX3MsIHR5cGUpOworICAgICAgICBib2R5LnNldFN0cmluZygi
YmxvY2tlZFVSTCJfcywgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQoYmxvY2tlZFVS
TCkpOworICAgIH0pOworfQorCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcXVl
dWUtYS1jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9ydAor
dm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlz
cG9zaXRpb24gZGlzcG9zaXRpb24sIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRp
b24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBBU1NFUlQoIWVuZHBvaW50LmlzRW1w
dHkoKSk7CisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGVtYmVk
ZGVyT3JpZ2luLCBlbmRwb2ludCwgImNvZXAiX3MsIGNvbnRleHRVUkxGb3JSZXBvcnQoZnJhbWUp
LCBmcmFtZS5sb2FkZXIoKS51c2VyQWdlbnQoYmxvY2tlZFVSTCksIFsmXShhdXRvJiBib2R5KSB7
CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24gPT0g
Q09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2UiX3Mp
OworICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgImNvcnAiKTsKKyAgICAgICAgYm9k
eS5zZXRTdHJpbmcoImJsb2NrZWRVUkwiX3MsIFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVw
b3J0KGJsb2NrZWRVUkwpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRlc3RpbmF0aW9uIl9z
LCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhkZXN0aW5hdGlvbikpOworICAgIH0pOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaAppbmRleCA3NDlmMGM3OWZiM2IuLjEzYWZiZjUyMmI4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQ
b2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeS5oCkBAIC0yNSwxMyArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJG
ZXRjaE9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRt
bCNlbWJlZGRlci1wb2xpY3ktdmFsdWUKIGVudW0gY2xhc3MgQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeVZhbHVlIDogYm9vbCB7CiAgICAgVW5zYWZlTm9uZSwKQEAgLTkzLDcgKzk3LDExIEBAIHN0
ZDo6b3B0aW9uYWw8Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeT4gQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeTo6ZGVjb2RlKERlY29kCiAgICAgfX07CiB9CiAKK2VudW0gY2xhc3MgQ09FUERpc3Bv
c2l0aW9uIDogYm9vbCB7IFJlcG9ydGluZyAsIEVuZm9yY2UgfTsKKwogV0VCQ09SRV9FWFBPUlQg
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lIZWFkZXJz
KFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Jik7CitX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oRnJh
bWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJp
bmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
VVJMJiBibG9ja2VkVVJMKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0
aW9uKEZyYW1lJiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29u
c3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNw
cAppbmRleCA5MDljN2M1MWFmMmIuLjE0NmM2NWI4NjJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuY3BwCkBAIC0zMCwyMiArMzAsMTIg
QEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5o
IgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKLSNpbmNsdWRlICJSZXBvcnRpbmdFbmRwb2ludHND
YWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS9vcmlnaW4uaHRtbCNzYW5pdGl6ZS11cmwtcmVwb3J0Ci1zdGF0aWMgU3RyaW5nIHNhbml0aXpl
UmVmZXJyZXJGb3JVUkxSZXBvcnQoY29uc3QgVVJMJiByZWZlcnJlcikKLXsKLSAgICBVUkwgc2Fu
aXRpemVkUmVmZXJyZXIgPSByZWZlcnJlcjsKLSAgICBzYW5pdGl6ZWRSZWZlcnJlci5yZW1vdmVD
cmVkZW50aWFscygpOwotICAgIHNhbml0aXplZFJlZmVycmVyLnJlbW92ZUZyYWdtZW50SWRlbnRp
ZmllcigpOwotICAgIHJldHVybiBzYW5pdGl6ZWRSZWZlcnJlci5zdHJpbmcoKTsKLX0KLQogc3Rh
dGljIEFTQ0lJTGl0ZXJhbCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVRvU3RyaW5nKGNvbnN0IENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWUmIGNvb3ApCiB7CiAgICAgc3dpdGNoIChjb29wKSB7
CkBAIC0xMzYsNDQgKzEyNiwxNyBAQCB2b2lkIGFkZENyb3NzT3JpZ2luT3BlbmVyUG9saWN5SGVh
ZGVycyhSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ3Jvc3NPcgogICAgIH0KIH0K
IAotLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3JlcG9ydGluZy8jdHJ5LWRlbGl2ZXJ5Ci1zdGF0
aWMgdm9pZCBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgVVJM
JiBjb29wVVJMLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgY29vcE9yaWdpbiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIEZ1bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiYgcG9wdWxhdGVCb2R5
KQotewotICAgIGF1dG8mIHJlcG9ydGluZ0VuZHBvaW50ID0gZGlzcG9zaXRpb24gPT0gQ09PUERp
c3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCA6
IGNvb3AucmVwb3J0aW5nRW5kcG9pbnQ7Ci0gICAgaWYgKHJlcG9ydGluZ0VuZHBvaW50LmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byByZXBvcnRpbmdFbmRwb2ludHNDYWNo
ZSA9IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+cmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUo
KSA6IG51bGxwdHI7Ci0gICAgaWYgKCFyZXBvcnRpbmdFbmRwb2ludHNDYWNoZSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGF1dG8gZW5kcG9pbnRVUkwgPSByZXBvcnRpbmdFbmRwb2ludHNDYWNoZS0+
ZW5kcG9pbnRVUkwoY29vcE9yaWdpbi5kYXRhKCksIHJlcG9ydGluZ0VuZHBvaW50KTsKLSAgICBp
ZiAoIWVuZHBvaW50VVJMLmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBi
b2R5ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBib2R5LT5zZXRTdHJpbmcoImRpc3Bv
c2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/ICJy
ZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7Ci0gICAgYm9keS0+c2V0U3RyaW5nKCJlZmZlY3Rp
dmVQb2xpY3kiX3MsIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWVUb0VmZmVjdGl2ZVBvbGlj
eVN0cmluZyhkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3Au
cmVwb3J0T25seVZhbHVlIDogY29vcC52YWx1ZSkpOwotICAgIHBvcHVsYXRlQm9keShib2R5KTsK
LQotICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBy
ZXBvcnRPYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgImNvb3AiX3MpOwotICAgIHJlcG9ydE9i
amVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIGNvb3BVUkwuc3RyaW5nKCkpOwotICAgIHJlcG9ydE9i
amVjdC0+c2V0U3RyaW5nKCJ1c2VyX2FnZW50IiwgdXNlckFnZW50KTsKLSAgICByZXBvcnRPYmpl
Y3QtPnNldEludGVnZXIoImFnZSIsIDApOyAvLyBXZSBjdXJyZW50bHkgZG8gbm90IGRlbGF5IHNl
bmRpbmcgdGhlIHJlcG9ydHMuCi0gICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoImJvZHkiX3Ms
IFdURk1vdmUoYm9keSkpOwotCi0gICAgYXV0byByZXBvcnRMaXN0ID0gSlNPTjo6QXJyYXk6OmNy
ZWF0ZSgpOwotICAgIHJlcG9ydExpc3QtPnB1c2hPYmplY3QocmVwb3J0T2JqZWN0KTsKLQotICAg
IGF1dG8gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRMaXN0LT50b0pTT05TdHJpbmco
KS51dGY4KCkpOwotICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoZnJhbWUsIGVu
ZHBvaW50VVJMLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OlN0YW5kYXJk
UmVwb3J0aW5nQVBJVmlvbGF0aW9uKTsKLX0KLQogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY29vcC12aW9sYXRpb24tbmF2aWdhdGlvbi10bwog
dm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShGcmFt
ZSYgZnJhbWUsIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBk
aXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwmIHByZXZpb3VzUmVzcG9u
c2VVUkwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7Ci0gICAgc2VuZENPT1BWaW9sYXRpb25SZXBvcnQoZnJh
bWUsIGNvb3AsIGRpc3Bvc2l0aW9uLCBjb29wVVJMLCBjb29wT3JpZ2luLCB1c2VyQWdlbnQsIFsm
XShhdXRvJiBib2R5KSB7Ci0gICAgICAgIGJvZHkuc2V0U3RyaW5nKCJwcmV2aW91c1Jlc3BvbnNl
VVJMIl9zLCBjb29wT3JpZ2luLmlzU2FtZU9yaWdpbkFzKHByZXZpb3VzUmVzcG9uc2VPcmlnaW4p
ID8gc2FuaXRpemVSZWZlcnJlckZvclVSTFJlcG9ydChwcmV2aW91c1Jlc3BvbnNlVVJMKSA6IFN0
cmluZygpKTsKKyAgICBhdXRvJiBlbmRwb2ludCA9IGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3Np
dGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQgOiBjb29w
LnJlcG9ydGluZ0VuZHBvaW50OworICAgIGlmIChlbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBj
b29wT3JpZ2luLmRhdGEoKSwgZW5kcG9pbnQsICJjb29wIl9zLCBjb29wVVJMLCB1c2VyQWdlbnQs
IFsmXShhdXRvJiBib2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJf
cywgZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5n
Il9zIDogImVuZm9yY2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmluZygiZWZmZWN0aXZlUG9s
aWN5Il9zLCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZlY3RpdmVQb2xpY3lTdHJp
bmcoZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29wLnJlcG9y
dE9ubHlWYWx1ZSA6IGNvb3AudmFsdWUpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoInByZXZp
b3VzUmVzcG9uc2VVUkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMocHJldmlvdXNSZXNw
b25zZU9yaWdpbikgPyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChwcmV2aW91c1Jl
c3BvbnNlVVJMKSA6IFN0cmluZygpKTsKICAgICAgICAgYm9keS5zZXRTdHJpbmcoInR5cGUiX3Ms
ICJuYXZpZ2F0aW9uLXRvLXJlc3BvbnNlIl9zKTsKICAgICAgICAgYm9keS5zZXRTdHJpbmcoInJl
ZmVycmVyIl9zLCByZWZlcnJlcik7CiAgICAgfSk7CkBAIC0xODIsOCArMTQ1LDE0IEBAIHZvaWQg
c2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2UoRnJhbWUmIGZy
YW1lLCBDcm9zc09yaWdpbk9wCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9vcmlnaW4uaHRtbCNjb29wLXZpb2xhdGlvbi1uYXZpZ2F0aW9uLWZyb20KIHZvaWQgc2Vu
ZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoRnJhbWUm
IGZyYW1lLCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb29wLCBDT09QRGlzcG9zaXRpb24gZGlz
cG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBuZXh0UmVzcG9uc2VVUkws
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
bmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7Ci0gICAgc2VuZENPT1BWaW9sYXRpb25SZXBvcnQo
ZnJhbWUsIGNvb3AsIGRpc3Bvc2l0aW9uLCBjb29wVVJMLCBjb29wT3JpZ2luLCB1c2VyQWdlbnQs
IFsmXShhdXRvJiBib2R5KSB7Ci0gICAgICAgIGJvZHkuc2V0U3RyaW5nKCJuZXh0UmVzcG9uc2VV
UkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMobmV4dFJlc3BvbnNlT3JpZ2luKSB8fCBp
c0NPT1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2UgPyBzYW5pdGl6ZVJlZmVycmVyRm9yVVJMUmVw
b3J0KG5leHRSZXNwb25zZVVSTCkgOiBTdHJpbmcoKSk7CisgICAgYXV0byYgZW5kcG9pbnQgPSBk
aXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25s
eVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBvcnRpbmdFbmRwb2ludDsKKyAgICBpZiAoZW5k
cG9pbnQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBQaW5nTG9hZGVyOjpzZW5k
UmVwb3J0VG9FbmRwb2ludChmcmFtZSwgY29vcE9yaWdpbi5kYXRhKCksIGVuZHBvaW50LCAiY29v
cCJfcywgY29vcFVSTCwgdXNlckFnZW50LCBbJl0oYXV0byYgYm9keSkgeworICAgICAgICBib2R5
LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlv
bjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAgICAgYm9k
eS5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJfcywgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lW
YWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlv
bjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5VmFsdWUgOiBjb29wLnZhbHVlKSk7CisgICAg
ICAgIGJvZHkuc2V0U3RyaW5nKCJuZXh0UmVzcG9uc2VVUkwiX3MsIGNvb3BPcmlnaW4uaXNTYW1l
T3JpZ2luQXMobmV4dFJlc3BvbnNlT3JpZ2luKSB8fCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25T
b3VyY2UgPyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChuZXh0UmVzcG9uc2VVUkwp
IDogU3RyaW5nKCkpOwogICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgIm5hdmlnYXRp
b24tZnJvbS1yZXNwb25zZSJfcyk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hP
cHRpb25zLmgKaW5kZXggYzdmMzEzODQyZTE0Li4yN2I5OGE5MzIzMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRmV0Y2hPcHRpb25zLmgKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEZldGNoT3B0aW9ucyB7Ci0gICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6
IHVpbnQ4X3QgeyBFbXB0eVN0cmluZywgQXVkaW8sIEF1ZGlvd29ya2xldCwgRG9jdW1lbnQsIEVt
YmVkLCBGb250LCBJbWFnZSwgTWFuaWZlc3QsIE1vZGVsLCBPYmplY3QsIFBhaW50d29ya2xldCwg
UmVwb3J0LCBTY3JpcHQsIFNlcnZpY2V3b3JrZXIsIFNoYXJlZHdvcmtlciwgU3R5bGUsIFRyYWNr
LCBWaWRlbywgV29ya2VyLCBYc2x0IH07CisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVp
bnQ4X3QgeyBFbXB0eVN0cmluZywgQXVkaW8sIEF1ZGlvd29ya2xldCwgRG9jdW1lbnQsIEVtYmVk
LCBGb250LCBJbWFnZSwgSWZyYW1lLCBNYW5pZmVzdCwgTW9kZWwsIE9iamVjdCwgUGFpbnR3b3Jr
bGV0LCBSZXBvcnQsIFNjcmlwdCwgU2VydmljZXdvcmtlciwgU2hhcmVkd29ya2VyLCBTdHlsZSwg
VHJhY2ssIFZpZGVvLCBXb3JrZXIsIFhzbHQgfTsKICAgICBlbnVtIGNsYXNzIE1vZGUgOiB1aW50
OF90IHsgTmF2aWdhdGUsIFNhbWVPcmlnaW4sIE5vQ29ycywgQ29ycyB9OwogICAgIGVudW0gY2xh
c3MgQ3JlZGVudGlhbHMgOiB1aW50OF90IHsgT21pdCwgU2FtZU9yaWdpbiwgSW5jbHVkZSB9Owog
ICAgIGVudW0gY2xhc3MgQ2FjaGUgOiB1aW50OF90IHsgRGVmYXVsdCwgTm9TdG9yZSwgUmVsb2Fk
LCBOb0NhY2hlLCBGb3JjZUNhY2hlLCBPbmx5SWZDYWNoZWQgfTsKQEAgLTgwLDkgKzgwLDExIEBA
IGlubGluZSBib29sIGlzUG90ZW50aWFsTmF2aWdhdGlvbk9yU3VicmVzb3VyY2VSZXF1ZXN0KEZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb24KICAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQ7CiB9CiAKKy8vIGh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNub24tc3VicmVzb3VyY2UtcmVxdWVzdAogaW5saW5lIGJvb2wgaXNOb25TdWJy
ZXNvdXJjZVJlcXVlc3QoRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKIHsK
ICAgICByZXR1cm4gZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9j
dW1lbnQKKyAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6SWZyYW1lCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb246OlJlcG9ydAogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OlNoYXJlZHdvcmtlcgpAQCAtMTEyLDYgKzExNCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbj4gewogICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbWJl
ZCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6Rm9udCwKICAg
ICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SW1hZ2UsCisgICAgICAg
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZSwKICAgICAgICAgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3QsCiAgICAgICAgIFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1vZGVsLAogICAgICAgICBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpPYmplY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAKaW5kZXggYjgwYTdmOWJmNTEwLi4zZWMzYzUxOGM3ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFj
a2VyLmgiCisjaW5jbHVkZSAiUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUxvYWRJbmZvLmgiCkBAIC0yNDMsNCArMjQ0LDQyIEBAIHZvaWQgUGluZ0xvYWRlcjo6
c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSFRU
UEhlYWRlCiAgICAgZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1
ZXN0UGluZ1Jlc291cmNlKFdURk1vdmUoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKKy8v
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nh
bml0aXplLXVybC1yZXBvcnQKK1N0cmluZyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9y
dChjb25zdCBVUkwmIHVybCkKK3sKKyAgICBVUkwgc2FuaXRpemVkVVJMID0gdXJsOworICAgIHNh
bml0aXplZFVSTC5yZW1vdmVDcmVkZW50aWFscygpOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVG
cmFnbWVudElkZW50aWZpZXIoKTsKKyAgICByZXR1cm4gc2FuaXRpemVkVVJMLnN0cmluZygpOwog
fQorCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKK3Zv
aWQgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJv
ZHkpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVwb3J0
aW5nRW5kcG9pbnRzQ2FjaGUgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGlu
Z0VuZHBvaW50c0NhY2hlKCkgOiBudWxscHRyOworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5n
RW5kcG9pbnRzQ2FjaGUtPmVuZHBvaW50VVJMKG9yaWdpbiwgZW5kcG9pbnQpOworICAgIGlmICgh
ZW5kcG9pbnRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJvZHkg
PSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIHBvcHVsYXRlUmVwb3J0Qm9keShib2R5KTsK
KworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBy
ZXBvcnRPYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgdHlwZSk7CisgICAgaWYgKHJlcG9ydFVS
TC5pc1ZhbGlkKCkpCisgICAgICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIHJl
cG9ydFVSTC5zdHJpbmcoKSk7CisgICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdl
bnQiLCB1c2VyQWdlbnQpOworICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7
IC8vIFdlIGN1cnJlbnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KKyAgICBy
ZXBvcnRPYmplY3QtPnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7CisKKyAgICBh
dXRvIHJlcG9ydExpc3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAgcmVwb3J0TGlzdC0+
cHVzaE9iamVjdChyZXBvcnRPYmplY3QpOworCisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6
Y3JlYXRlKHJlcG9ydExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgc2VuZFZpb2xh
dGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9u
UmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRpb24pOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCA1ZWNhOThj
NzFlZTcuLjRjZTQ5MzVlNzIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC01
Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNv
bnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVS
TCYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBl
KTsKIAorICAgIHN0YXRpYyBTdHJpbmcgc2FuaXRpemVVUkxGb3JSZXBvcnQoY29uc3QgVVJMJik7
CisgICAgc3RhdGljIHZvaWQgc2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
RnVuY3Rpb248dm9pZChKU09OOjpPYmplY3QmKT4mIHBvcHVsYXRlUmVwb3J0Qm9keSk7CisKIHBy
aXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xsb3dSZWRpcmVjdHMgeyBObywgWWVzIH07
CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYs
IEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBTaG91bGRGb2xsb3dSZWRp
cmVjdHMsIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24sIFJlZmVycmVyUG9saWN5LCBz
dGQ6Om9wdGlvbmFsPFZpb2xhdGlvblJlcG9ydFR5cGU+ID0gc3RkOjpudWxsb3B0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IGMyYmQwN2UxODIyOC4uZGE2M2VmZDI3ZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc5NSwxMiAr
Nzk1LDEyIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUhUVFBSZXF1ZXN0SGVh
ZGVycyhGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIENhCiAgICAgcmVxdWVzdC51cGRhdGVBY2Nl
cHRFbmNvZGluZ0hlYWRlcigpOwogfQogCi1zdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKK3N0YXRpYyBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uRm9yVHlwZShDYWNoZWRSZXNvdXJj
ZTo6VHlwZSB0eXBlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6TWFpblJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlR5cGU6OlNWR0RvY3VtZW50UmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudDsKKyAgICAgICAgcmV0dXJuIGZyYW1lLmlz
TWFpbkZyYW1lKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCA6IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpU
eXBlOjpJbWFnZVJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Okljb246
CiAgICAgICAgIHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJbWFnZTsKQEAgLTg2
OCw3ICs4NjgsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgTE9HKFJlc291cmNl
TG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyUuMjU1cycs
IGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nQ2Vu
dGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQo
KS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSA/IHN0YXRpY19jYXN0PGludD4o
cmVxdWVzdC5wcmlvcml0eSgpLnZhbHVlKCkpIDogLTEsIGZvclByZWxvYWQgPT0gRm9yUHJlbG9h
ZDo6WWVzKTsKIAotICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0aW5hdGlv
bkZvclR5cGUodHlwZSkpOworICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0
aW5hdGlvbkZvclR5cGUodHlwZSwgZnJhbWUpKTsKIAogICAgIC8vIEVudHJ5IHBvaW50IHRvIGh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZldGNoLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZXNvdXJjZVJlcXVlc3Q+IG9yaWdpbmFsUmVxdWVzdDsKQEAgLTg4MCw3ICs4ODAsNyBA
QCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgcHJlcGFyZUZldGNoKHR5cGUsIHJlcXVl
c3QpOwogCi0gICAgaWYgKHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50KSB7CisgICAgaWYgKHJlcXVlc3Qub3B0aW9ucygp
LmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50IHx8IHJl
cXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OklmcmFtZSkgewogICAgICAgICAvLyBGSVhNRTogSWRlbnRpZnkgSFNUUyBjYXNlcyBhbmQgYXZv
aWQgYWRkaW5nIHRoZSBoZWFkZXIuIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU3ODg1PgogICAgICAgICBpZiAoIXVybC5wcm90b2NvbElzKCJodHRwcyIpKQogICAg
ICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OlVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzLCAiMSJfcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXgg
MGEzMDcwNzM5MWJmLi42NGZjN2ZiOGQyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTY2hlbWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaD4KQEAgLTE1OCw2ICsxNTksMjcgQEAg
dm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXEKICAgICB9KTsKIH0KIAorLy8gaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3ktY2hlY2sKK3N0YXRp
YyBzdGQ6Om9wdGlvbmFsPFJlc291cmNlRXJyb3I+IHBlcmZvcm1DT1JQQ2hlY2soY29uc3QgQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSYgZW1iZWRkZXJDT0VQLCBjb25zdCBTZWN1cml0eU9yaWdp
biYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgRm9yTmF2aWdhdGlvbiBmb3JOYXZpZ2F0aW9uLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIq
IGxvYWRlcikKK3sKKyAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNv
dXJjZVBvbGljeShDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUsIGVt
YmVkZGVyT3JpZ2luLCB1cmwsIHJlc3BvbnNlLCBmb3JOYXZpZ2F0aW9uKSkKKyAgICAgICAgcmV0
dXJuIFdURk1vdmUoKmVycm9yKTsKKworICAgIGlmIChlbWJlZGRlckNPRVAucmVwb3J0T25seVZh
bHVlID09IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgIWVt
YmVkZGVyQ09FUC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpICYmIGxvYWRl
cikgeworICAgICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJj
ZVBvbGljeShlbWJlZGRlckNPRVAucmVwb3J0T25seVZhbHVlLCBlbWJlZGRlck9yaWdpbiwgdXJs
LCByZXNwb25zZSwgZm9yTmF2aWdhdGlvbikpCisgICAgICAgICAgICBsb2FkZXItPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQQ09SUFZpb2xhdGlvbiB7IGxvYWRlci0+ZnJhbWVJRCgp
LCBlbWJlZGRlck9yaWdpbi5kYXRhKCksIGVtYmVkZGVyQ09FUC5yZXBvcnRPbmx5UmVwb3J0aW5n
RW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCBsb2FkZXItPnBhcmFtZXRlcnMo
KS5vcHRpb25zLmRlc3RpbmF0aW9uLCBsb2FkZXItPmZpcnN0UmVzcG9uc2VVUkwoKSB9LCBsb2Fk
ZXItPnBhZ2VJRCgpKTsKKyAgICB9CisKKyAgICBpZiAoZW1iZWRkZXJDT0VQLnZhbHVlID09IENy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3koZW1iZWRkZXJD
T0VQLnZhbHVlLCBlbWJlZGRlck9yaWdpbiwgdXJsLCByZXNwb25zZSwgZm9yTmF2aWdhdGlvbikp
IHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIgJiYgIWVtYmVkZGVyQ09FUC5yZXBvcnRpbmdFbmRw
b2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbG9hZGVyLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXItPmZyYW1lSUQoKSwgZW1iZWRk
ZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNw
b3NpdGlvbjo6RW5mb3JjZSwgbG9hZGVyLT5wYXJhbWV0ZXJzKCkub3B0aW9ucy5kZXN0aW5hdGlv
biwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJMKCkgfSwgbG9hZGVyLT5wYWdlSUQoKSk7CisgICAg
ICAgICAgICByZXR1cm4gV1RGTW92ZSgqZXJyb3IpOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIFJlc291cmNlRXJyb3IgTmV0d29ya0xvYWRDaGVja2Vy
Ojp2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fcmVkaXJlY3RDb3VudCkKQEAgLTE3
MCw3ICsxOTIsNyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogCiAgICAgaWYgKG1fb3B0aW9u
cy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgfHwgbV9pc1NhbWVPcmlnaW5S
ZXF1ZXN0KSB7CiAgICAgICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlICYmIG1fcGFyZW50T3JpZ2luKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBl
cnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShtX3BhcmVudENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kudmFsdWUsICptX3BhcmVudE9yaWdpbiwgbV91cmwsIHJlc3BvbnNl
LCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBwZXJm
b3JtQ09SUENoZWNrKG1fcGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgKm1fcGFyZW50
T3JpZ2luLCBtX3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246OlllcywgbV9uZXR3b3JrUmVz
b3VyY2VMb2FkZXIuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJv
cik7CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNw
b25zZTo6VGFpbnRpbmc6OkJhc2ljKTsKQEAgLTE4MSw3ICsyMDMsNyBAQCBSZXNvdXJjZUVycm9y
IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlcwogICAgICAgICByZXNwb25zZS5zZXRBc1JhbmdlUmVxdWVzdGVkKCk7CiAKICAg
ICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKLSAg
ICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3ko
bV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlLCAqbV9vcmlnaW4sIG1fdXJsLCByZXNw
b25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8pKQorICAgICAgICBpZiAoYXV0byBlcnJvciA9IHBlcmZv
cm1DT1JQQ2hlY2sobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCAqbV9vcmlnaW4sIG1fdXJs
LCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8sIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyLmdl
dCgpKSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7CiAKICAgICAgICAgcmVz
cG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7CkBA
IC0yODEsNiArMzAzLDcgQEAgYm9vbCBOZXR3b3JrTG9hZENoZWNrZXI6OmlzQWxsb3dlZEJ5Q29u
dGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICBjYXNlIEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OkVtYmVkOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6Rm9udDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdl
OgorICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lOgogICAgIGNhc2Ug
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3Q6CiAgICAgY2FzZSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpNb2RlbDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246Ok9iamVjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyM2Q5NDg3NWUyYzEuLjZlY2Y1NzA0OTBiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtMzkyLDYgKzM5Miw3IEBAIFJlc291cmNlTG9hZEluZm8gTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpyZXNvdXJjZUxvYWRJbmZvKCkKICAgICAgICAgY2FzZSBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ6CiAgICAgICAgICAgICBy
ZXR1cm4gUmVzb3VyY2VMb2FkSW5mbzo6VHlwZTo6T3RoZXI7CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQ6CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lOgogICAgICAgICAgICAgcmV0
dXJuIFJlc291cmNlTG9hZEluZm86OlR5cGU6OkRvY3VtZW50OwogICAgICAgICBjYXNlIFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVtYmVkOgogICAgICAgICAgICAgcmV0dXJu
IFJlc291cmNlTG9hZEluZm86OlR5cGU6Ok9iamVjdDsKQEAgLTYwNiwzMCArNjA3LDQ3IEBAIGJv
b2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHROYXZpZ2F0aW9uRm9yQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljCiAgICAgQVNTRVJUKGlzTWFpblJlc291cmNlKCkpOwogCiAg
ICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwj
Y2hlY2stYS1uYXZpZ2F0aW9uLXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRvLWl0cy1lbWJlZGRlci1w
b2xpY3kKLSAgICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNh
ZmVOb25lICYmIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKKyAgICBpZiAobV9wYXJhbWV0
ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgPT0gV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCB8fCBtX3BhcmFtZXRlcnMu
cGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAg
ICBhdXRvIHJlc3BvbnNlQ09FUCA9IFdlYkNvcmU6Om9idGFpbkNyb3NzT3JpZ2luRW1iZWRkZXJQ
b2xpY3kocmVzcG9uc2UsIG51bGxwdHIpOwotICAgICAgICBpZiAocmVzcG9uc2VDT0VQLnZhbHVl
ICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAp
IHsKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
VmFsdWU6OlJlcXVpcmVDT1JQICYmIHJlc3BvbnNlQ09FUC52YWx1ZSAhPSBXZWJDb3JlOjpDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byBwYXJlbnRPcmlnaW4gPSBtX3BhcmFtZXRlcnMucGFyZW50T3JpZ2luKCk7IHBhcmVu
dE9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3ku
cmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9u
IHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIHBhcmVudE9yaWdpbi0+ZGF0YSgpLCBtX3BhcmFt
ZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5UmVwb3J0aW5n
RW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCAibmF2aWdhdGlvbiJfcywgbV9m
aXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZl
Tm9uZSAmJiByZXNwb25zZUNPRVAudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVz
c2FnZSA9IG1ha2VTdHJpbmcoIlJlZnVzZWQgdG8gZGlzcGxheSAnIiwgcmVzcG9uc2UudXJsKCku
c3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCksICInIGluIGEgZnJhbWUgYmVjYXVzZSBv
ZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5LiIpOwogICAgICAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6QWRkQ29uc29sZU1lc3NhZ2UgeyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgIE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBlcnJvck1l
c3NhZ2UsIGNvcmVJZGVudGlmaWVyKCkgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CisgICAg
ICAgICAgICBpZiAoYXV0byBwYXJlbnRPcmlnaW4gPSBtX3BhcmFtZXRlcnMucGFyZW50T3JpZ2lu
KCk7IHBhcmVudE9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kucmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24g
eyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyZW50T3JpZ2luLT5kYXRhKCksIG1fcGFyYW1l
dGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LCBD
T0VQRGlzcG9zaXRpb246OkVuZm9yY2UsICJuYXZpZ2F0aW9uIl9zLCBtX2ZpcnN0UmVzcG9uc2VV
UkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY2hlY2stYS1nbG9iYWwt
b2JqZWN0J3MtZW1iZWRkZXItcG9saWN5CiBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hv
dWxkSW50ZXJydXB0V29ya2VyTG9hZEZvckNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fcGFyYW1ldGVycy5vcHRp
b25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lW
YWx1ZTo6VW5zYWZlTm9uZSAmJiBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luKSB7CisgICAgaWYg
KG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlID09IFdlYkNvcmU6
OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgfHwgbV9wYXJhbWV0
ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVZhbHVlID09IFdlYkNvcmU6
OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKICAgICAgICAg
YXV0byByZXNwb25zZUNPRVAgPSBXZWJDb3JlOjpvYnRhaW5Dcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5KHJlc3BvbnNlLCBudWxscHRyKTsKLSAgICAgICAgaWYgKHJlc3BvbnNlQ09FUC52YWx1ZSAh
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7
CisgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBv
cnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpS
ZXF1aXJlQ09SUCAmJiByZXNwb25zZUNPRVAudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lKSB7CisgICAgICAgICAgICBpZiAobV9wYXJh
bWV0ZXJzLnNvdXJjZU9yaWdpbiAmJiAhbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQ
b2xpY3kucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlv
bGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5zb3VyY2VPcmln
aW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0
T25seVJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZywgIndvcmtl
ciBpbml0aWFsaXphdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5jcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQ
b2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgcmVzcG9uc2VDT0VQLnZhbHVlID09IFdlYkNvcmU6
OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSkgewogICAgICAgICAg
ICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlZnVzZWQgdG8gbG9hZCAnIiwg
cmVzcG9uc2UudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCksICInIHdvcmtl
ciBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kuIik7CiAgICAgICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBZGRDb25zb2xlTWVzc2FnZSB7IG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCAgTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsIGVycm9yTWVzc2FnZSwgY29yZUlkZW50aWZpZXIoKSB9LCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlEKTsKKyAgICAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luICYmICFtX3Bh
cmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRpbmdFbmRwb2ludC5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VuZENPRVBQ
b2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuc291cmNlT3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OkVuZm9yY2Us
ICJ3b3JrZXIgaW5pdGlhbGl6YXRpb24iX3MsIG1fZmlyc3RSZXNwb25zZVVSTCB9LCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlEKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC02NDEsNiArNjU5LDggQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
JiYgcmVjZWl2ZWRSZXNwb24KICAgICAgICAgZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJlc3BvbnNl
KHJlY2VpdmVkUmVzcG9uc2UpOwogCiAgICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVjZWl2ZWRS
ZXNwb25zZSk7CisgICAgaWYgKCFtX2ZpcnN0UmVzcG9uc2VVUkwuaXNWYWxpZCgpKQorICAgICAg
ICBtX2ZpcnN0UmVzcG9uc2VVUkwgPSBtX3Jlc3BvbnNlLnVybCgpOwogCiAgICAgaWYgKHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpICYmIG1fbmV0d29ya0xvYWRDaGVja2Vy
KSB7CiAgICAgICAgIGF1dG8gaW5mb3JtYXRpb24gPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+dGFr
ZU5ldHdvcmtMb2FkSW5mb3JtYXRpb24oKTsKQEAgLTY5MCw2ICs3MTAsMTggQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYg
cmVjZWl2ZWRSZXNwb24KICAgICBpZiAobV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbikKICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6VXNlKTsKIAorICAgIGlm
IChtX25ldHdvcmtMb2FkQ2hlY2tlcikgeworICAgICAgICBhdXRvIGVycm9yID0gbV9uZXR3b3Jr
TG9hZENoZWNrZXItPnZhbGlkYXRlUmVzcG9uc2UobV9uZXR3b3JrTG9hZCA/IG1fbmV0d29ya0xv
YWQtPmN1cnJlbnRSZXF1ZXN0KCkgOiBvcmlnaW5hbFJlcXVlc3QoKSwgbV9yZXNwb25zZSk7Cisg
ICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIExPQURFUl9SRUxFQVNF
X0xPR19FUlJPUigiZGlkUmVjZWl2ZVJlc3BvbnNlOiBOZXR3b3JrTG9hZENoZWNrZXI6OnZhbGlk
YXRlUmVzcG9uc2UgcmV0dXJuZWQgYW4gZXJyb3IgKGVycm9yLmRvbWFpbj0lIiBQVUJMSUNfTE9H
X1NUUklORyAiLCBlcnJvci5jb2RlPSVkKSIsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvciA9IFdURk1vdmUoZXJyb3Ip
XSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fbmV0d29ya0xvYWQpCisg
ICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEZhaWxMb2FkaW5nKGVycm9yKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBv
bGljeUFjdGlvbjo6SWdub3JlKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChpc01haW5S
ZXNvdXJjZSgpICYmIHNob3VsZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZy
YW1lT3B0aW9ucyhtX3Jlc3BvbnNlKSkgewogICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0dfRVJS
T1IoImRpZFJlY2VpdmVSZXNwb25zZTogSW50ZXJydXB0aW5nIG1haW4gcmVzb3VyY2UgbG9hZCBk
dWUgdG8gQ1NQIGZyYW1lLWFuY2VzdG9ycyBvciBYLUZyYW1lLU9wdGlvbnMiKTsKICAgICAgICAg
YXV0byByZXNwb25zZSA9IHNhbml0aXplUmVzcG9uc2VJZlBvc3NpYmxlKFJlc291cmNlUmVzcG9u
c2UgeyBtX3Jlc3BvbnNlIH0sIFJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlvblR5cGU6OkNy
b3NzT3JpZ2luU2FmZSk7CkBAIC03MDcsMTggKzczOSw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVz
cG9uCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9y
ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fbmV0d29ya0xvYWRDaGVja2VyKSB7Ci0gICAgICAgIGF1
dG8gZXJyb3IgPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+dmFsaWRhdGVSZXNwb25zZShtX25ldHdv
cmtMb2FkID8gbV9uZXR3b3JrTG9hZC0+Y3VycmVudFJlcXVlc3QoKSA6IG9yaWdpbmFsUmVxdWVz
dCgpLCBtX3Jlc3BvbnNlKTsKLSAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkgewotICAgICAg
ICAgICAgTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SKCJkaWRSZWNlaXZlUmVzcG9uc2U6IE5ldHdv
cmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSByZXR1cm5lZCBhbiBlcnJvciAoZXJyb3Iu
ZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGVycm9yLmNvZGU9JWQpIiwgZXJyb3IuZG9t
YWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwotICAgICAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVy
cm9yID0gV1RGTW92ZShlcnJvcildIHsKLSAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhp
cy0+bV9uZXR3b3JrTG9hZCkKLSAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlk
RmFpbExvYWRpbmcoZXJyb3IpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUpOwotICAgICAgICB9Ci0gICAg
fQotCiAgICAgYXV0byByZXNwb25zZSA9IHNhbml0aXplUmVzcG9uc2VJZlBvc3NpYmxlKFJlc291
cmNlUmVzcG9uc2UgeyBtX3Jlc3BvbnNlIH0sIFJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlv
blR5cGU6OkNyb3NzT3JpZ2luU2FmZSk7CiAgICAgaWYgKGlzU3luY2hyb25vdXMoKSkgewogICAg
ICAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVSZXNwb25zZTogVXNpbmcgcmVzcG9u
c2UgZm9yIHN5bmNocm9ub3VzIGxvYWQiKTsKQEAgLTkwMiw2ICs5MjIsOCBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LAogICAgIExPQURFUl9SRUxFQVNFX0xPRygid2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdDoiKTsKICAgICArK21fcmVkaXJlY3RDb3VudDsKICAgICBtX3JlZGlyZWN0UmVzcG9u
c2UgPSByZWRpcmVjdFJlc3BvbnNlOworICAgIGlmICghbV9maXJzdFJlc3BvbnNlVVJMLmlzVmFs
aWQoKSkKKyAgICAgICAgbV9maXJzdFJlc3BvbnNlVVJMID0gcmVkaXJlY3RSZXNwb25zZS51cmwo
KTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UcmlnZ2VyRGF0YTsKICAgICBpZiAoIXNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oCmluZGV4IDdmZjYxZWIxYmU4Mi4uYjQ4OTNjNGYzOTY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTEwMiw2
ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQogICAgIGNvbnN0IE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9w
YXJhbWV0ZXJzOyB9CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkSUQ7IH0KKyAgICBjb25zdCBVUkwmIGZp
cnN0UmVzcG9uc2VVUkwoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0UmVzcG9uc2VVUkw7IH0KIAog
ICAgIE5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBnbG9iYWxGcmFtZUlEKCkgeyByZXR1cm4g
eyBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIHBhZ2VJRCgpLCBmcmFtZUlEKCkgfTsgfQog
CkBAIC0yNTUsNiArMjU2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIE5ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyIG1fcmVzb3VyY2VMb2FkSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSBtX3JlZGlyZWN0UmVzcG9uc2U7CisgICAgVVJMIG1fZmlyc3RSZXNwb25zZVVSTDsg
Ly8gRmlyc3QgVVJMIGluIHJlc3BvbnNlJ3MgVVJMIGxpc3QgKGh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNjb25jZXB0LXJlc3BvbnNlLXVybC1saXN0KS4KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXgg
M2QxMTZkYmM2YmNhLi5kYzc2M2JmMWU4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQpAQCAtNjg4LDYgKzY4OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpOgogICAgICAgICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5
RXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
RGVjaXNpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OkNPRVBEaXNwb3NpdGlvbic6IFsnPFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQn
OiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFj
ZS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBlNDU0Zjk2Mzc2Y2QuLjE5OTMyOTU1ODczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE2MSw2ICsxNjEsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQ29tbW9uVk0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRhY3RzUmVxdWVzdERh
dGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRNZW51Q29udHJvbGxlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFUcmFuc2Zlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VNYW5hZ2VyLmg+CkBAIC00MzI0LDYgKzQzMjUsMTgg
QEAgdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFUKICAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xh
dGlvblJlcG9ydCgqZnJhbWUtPmNvcmVGcmFtZSgpLCByZXBvcnRVUkwsIHJlcG9ydC5yZWxlYXNl
Tm9uTnVsbCgpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kpOwog
fQogCit2b2lkIFdlYlBhZ2U6OnNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJP
cmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlv
biwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpCit7CisgICAgaWYg
KGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
IGZyYW1lLT5jb3JlRnJhbWUoKSkKKyAgICAgICAgV2ViQ29yZTo6c2VuZENPRVBQb2xpY3lJbmhl
cml0ZW5jZVZpb2xhdGlvbigqZnJhbWUtPmNvcmVGcmFtZSgpLCBlbWJlZGRlck9yaWdpbiwgZW5k
cG9pbnQsIGRpc3Bvc2l0aW9uLCB0eXBlLCBibG9ja2VkVVJMKTsKK30KKwordm9pZCBXZWJQYWdl
OjpzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQs
IENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKQoreworICAgIGlmIChhdXRvKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOyBmcmFtZS0+Y29y
ZUZyYW1lKCkpCisgICAgICAgIFdlYkNvcmU6OnNlbmRDT0VQQ09SUFZpb2xhdGlvbigqZnJhbWUt
PmNvcmVGcmFtZSgpLCBlbWJlZGRlck9yaWdpbiwgZW5kcG9pbnQsIGRpc3Bvc2l0aW9uLCBkZXN0
aW5hdGlvbiwgYmxvY2tlZFVSTCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWMyODE3ZDM2OTcuLjVjOTQw
YzdlMWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMjIwLDYgKzIyMCw3IEBAIGNsYXNzIEhUTUxNb2RlbEVsZW1lbnQ7CiAjZW5kaWYKIAogZW51
bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNsYXNzIENPRVBEaXNwb3NpdGlv
biA6IGJvb2w7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IDogYm9vbDsK
IGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IERyYWdBcHBsaWNhdGlvbkZsYWdzIDogdWludDhfdDsKQEAgLTQzOCw2ICs0MzksOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCBy
ZXF1ZXN0SUQgPSAwKTsKICAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmKTsKKyAgICB2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBXZWJDb3JlOjpDT0VQRGlz
cG9zaXRpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJMJiBibG9ja2VkVVJMKTsKKyAg
ICB2b2lkIHNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZW5kcG9pbnQsIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKTsKICAgICB2b2lkIGVu
cXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKTsKIAogICAg
IC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA1OTZiNGY3ZjYw
MjIuLjdhMjg2ZDM5ZWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw4IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3Vy
Y2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VM
ZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICBTZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0
VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgU2VuZENPRVBQb2xp
Y3lJbmhlcml0ZW5jZVZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5n
IGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9u
LCBTdHJpbmcgdHlwZSwgVVJMIGJsb2NrZWRVUkwpCisgICAgU2VuZENPRVBDT1JQVmlvbGF0aW9u
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGVtYmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5kcG9pbnQsIGVudW06Ym9vbCBX
ZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGVudW06dWludDhfdCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBVUkwgYmxvY2tlZFVSTCkK
ICAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438244</attachid>
            <date>2021-09-15 07:35:25 -0700</date>
            <delta_ts>2021-09-16 07:22:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230269-20210915073524.patch</filename>
            <type>text/plain</type>
            <size>55859</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uZjk3MjM3OGE0ZjY2YzBkOWMwOWJiMGQ5OWMwZmZi
NmIyY2I2YmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA5LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHZpb2xhdGlvbnMgcmVw
b3J0aW5nIHN1cHBvcnQgZm9yIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBD
T0VQIGluaGVyaXRhbmNlIHZpb2xhdGlvbiByZXBvcnRpbmc6CisgICAgICAgIC0gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY2hlY2stYS1uYXZpZ2F0
aW9uLXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRvLWl0cy1lbWJlZGRlci1wb2xpY3kKKyAgICAgICAg
LSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVj
ay1hLWdsb2JhbC1vYmplY3Qncy1lbWJlZGRlci1wb2xpY3kKKyAgICAgICAgLSBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1hLWNyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3ktaW5oZXJpdGFuY2UtdmlvbGF0aW9uCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIENPRVAgQ09SUCB2aW9sYXRpb24gcmVwb3J0aW5nOgorICAgICAgICAtIGh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5
LWNoZWNrCisgICAgICAgIC0gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3F1ZXVlLWEt
Y3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS1jb3JwLXZpb2xhdGlvbi1yZXBvcnQKKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgRmV0Y2ggZGVzdGluYXRpb249ImlmcmFtZSIgYmVjYXVzZSB0
aGUgQ09FUCB0ZXN0IHJlbGllZCBvbiBpdDoKKyAgICAgICAgLSBodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jY29uY2VwdC1yZXF1ZXN0LWRlc3RpbmF0aW9uCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0VVJMRm9yUmVwb3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OnNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6c2VuZENPRVBDT1JQVmlvbGF0aW9uKToKKyAgICAgICAgKiBsb2Fk
ZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09y
aWdpbk9wZW5lclBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kVmlvbGF0aW9uUmVw
b3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpzZW5k
VmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL0ZldGNoT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNOb25TdWJy
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KToKKyAgICAgICAgKiBs
b2FkZXIvUGluZ0xvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXN0aW5hdGlvbkZvclR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisK
IDIwMjEtMDktMTQgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW0lGQ10gSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyIHNob3VsZCBub3Qgb3BlcmF0ZSBv
biB0aGUgZ2xvYmFsIGlubGluZSBydW4gbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhYmE3Mjk5NTNkM2RlMmM2
ODg3OTE3MjQxMGEzNDg5YzVkYjNkZGE3Li5iZTI2YjZiZDAwNjQwZjA3NjQ5MDMxN2I0Yzg5NGIz
YzUzNWY0NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTA5LTE1ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHZpb2xhdGlvbnMgcmVwb3J0
aW5nIHN1cHBvcnQgZm9yIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI2OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBDT0VQ
IGluaGVyaXRhbmNlIHZpb2xhdGlvbiByZXBvcnRpbmc6CisgICAgICAgIC0gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY2hlY2stYS1uYXZpZ2F0aW9u
LXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRvLWl0cy1lbWJlZGRlci1wb2xpY3kKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1h
LWdsb2JhbC1vYmplY3Qncy1lbWJlZGRlci1wb2xpY3kKKyAgICAgICAgLSBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1hLWNyb3NzLW9yaWdp
bi1lbWJlZGRlci1wb2xpY3ktaW5oZXJpdGFuY2UtdmlvbGF0aW9uCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIENPRVAgQ09SUCB2aW9sYXRpb24gcmVwb3J0aW5nOgorICAgICAgICAtIGh0dHBz
Oi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5LWNo
ZWNrCisgICAgICAgIC0gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3F1ZXVlLWEtY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS1jb3JwLXZpb2xhdGlvbi1yZXBvcnQKKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgRmV0Y2ggZGVzdGluYXRpb249ImlmcmFtZSIgYmVjYXVzZSB0aGUg
Q09FUCB0ZXN0IHJlbGllZCBvbiBpdDoKKyAgICAgICAgLSBodHRwczovL2ZldGNoLnNwZWMud2hh
dHdnLm9yZy8jY29uY2VwdC1yZXF1ZXN0LWRlc3RpbmF0aW9uCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpwZXJmb3Jt
Q09SUENoZWNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjppc0FsbG93
ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZGVyOjpyZXNvdXJjZUxvYWRJbmZvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHROYXZpZ2F0aW9uRm9yQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxk
SW50ZXJydXB0V29ya2VyTG9hZEZvckNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFk
ZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9s
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ09FUENPUlBWaW9sYXRpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMDktMTQgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjI3NDkyOSk6IFtDb29yZGluYXRlZEdyYXBoaWNzXSBEcmF3aW5nQXJlYUNvb3JkaW5hdGVk
R3JhcGhpY3M6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBpcyBubyBsb25nZXIgdXNlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCmluZGV4IDQ5
YzQ1NGYzNTAzNDBkZjE0NDU5NzhlYTgyZDYwYTA1MDFmMDliODEuLmM4ZTg5YzdiY2JkNGYwMDMw
NTZkZmMyNmIwMTNlMzgwNzljMWY4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5pZGwKQEAgLTI2LDcgKzI2LDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotZW51bSBGZXRjaFJlcXVlc3REZXN0aW5hdGlvbiB7ICIiLCAiYXVkaW8iLCAiYXVkaW93
b3JrbGV0IiwgImRvY3VtZW50IiwgImVtYmVkIiwgImZvbnQiLCAiaW1hZ2UiLCAibWFuaWZlc3Qi
LCAibW9kZWwiLCAib2JqZWN0IiwgInBhaW50d29ya2xldCIsICJyZXBvcnQiLCAic2NyaXB0Iiwg
InNlcnZpY2V3b3JrZXIiLCAic2hhcmVkd29ya2VyIiwgInN0eWxlIiwgInRyYWNrIiwgInZpZGVv
IiwgIndvcmtlciIsICJ4c2x0IiB9OworZW51bSBGZXRjaFJlcXVlc3REZXN0aW5hdGlvbiB7ICIi
LCAiYXVkaW8iLCAiYXVkaW93b3JrbGV0IiwgImRvY3VtZW50IiwgImVtYmVkIiwgImZvbnQiLCAi
aW1hZ2UiLCAiaWZyYW1lIiwgIm1hbmlmZXN0IiwgIm1vZGVsIiwgIm9iamVjdCIsICJwYWludHdv
cmtsZXQiLCAicmVwb3J0IiwgInNjcmlwdCIsICJzZXJ2aWNld29ya2VyIiwgInNoYXJlZHdvcmtl
ciIsICJzdHlsZSIsICJ0cmFjayIsICJ2aWRlbyIsICJ3b3JrZXIiLCAieHNsdCIgfTsKIAogdHlw
ZWRlZiAoRmV0Y2hSZXF1ZXN0IG9yIFVTVlN0cmluZykgUmVxdWVzdEluZm87CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAppbmRl
eCAxOTI5MmFkNjNiNjJiOTc1MTc1NjkxYjhiODY0ZDRkOWZkOGQ1MDBhLi5lODRiNDQ1ZTEyMWQ2
ZDYzYmFhZTc5MzRkYWE1ZTIwY2IxODM5ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwCkBAIC0yOCwxMiArMjgsMjYgQEAK
IAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgi
CisjaW5jbHVkZSAiSlNGZXRjaFJlcXVlc3QuaCIKKyNpbmNsdWRlICJQaW5nTG9hZGVyLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3N0YXRpYyBVUkwgY29udGV4dFVSTEZvclJlcG9ydChGcmFtZSYgZnJhbWUpCit7Cisg
ICAgYXV0byByZXBvcnRVUkwgPSBmcmFtZS5kb2N1bWVudCgpID8gZnJhbWUuZG9jdW1lbnQoKS0+
dXJsKCkgOiBhYm91dEJsYW5rVVJMKCk7CisgICAgaWYgKHJlcG9ydFVSTC5pc0Fib3V0Qmxhbmso
KSkgeworICAgICAgICBpZiAoYXV0byogcGFyZW50RnJhbWUgPSBmcmFtZS50cmVlKCkucGFyZW50
KCk7IHBhcmVudEZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gcGFy
ZW50RnJhbWUtPmRvY3VtZW50KCktPnVybCgpOworICAgICAgICBlbHNlIGlmIChhdXRvKiBvcGVu
ZXJGcmFtZSA9IGZyYW1lLmxvYWRlcigpLm9wZW5lcigpOyBvcGVuZXJGcmFtZS0+ZG9jdW1lbnQo
KSkKKyAgICAgICAgICAgIHJlcG9ydFVSTCA9IG9wZW5lckZyYW1lLT5kb2N1bWVudCgpLT51cmwo
KTsKKyAgICB9CisgICAgcmV0dXJuIHJlcG9ydFVSTDsKK30KKwogLy8gaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjb2J0YWluLWFuLWVtYmVkZGVyLXBv
bGljeQogQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQogewpAQCAtOTQsNCArMTA4LDI3IEBAIHZvaWQgYWRkQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeUhlYWRlcnMoUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IENyb3NzCiAgICAgfQogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1hLWNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xp
Y3ktaW5oZXJpdGFuY2UtdmlvbGF0aW9uCit2b2lkIHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VW
aW9sYXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24g
ZGlzcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJMJiBibG9ja2VkVVJMKQor
eworICAgIEFTU0VSVCghZW5kcG9pbnQuaXNFbXB0eSgpKTsKKyAgICBQaW5nTG9hZGVyOjpzZW5k
UmVwb3J0VG9FbmRwb2ludChmcmFtZSwgZW1iZWRkZXJPcmlnaW4sIGVuZHBvaW50LCAiY29lcCJf
cywgY29udGV4dFVSTEZvclJlcG9ydChmcmFtZSksIGZyYW1lLmxvYWRlcigpLnVzZXJBZ2VudChi
bG9ja2VkVVJMKSwgWyZdKGF1dG8mIGJvZHkpIHsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRp
c3Bvc2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZyA/
ICJyZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJ0
eXBlIl9zLCB0eXBlKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImJsb2NrZWRVUkwiX3MsIFBp
bmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KGJsb2NrZWRVUkwpKTsKKyAgICB9KTsKK30K
KworLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3F1ZXVlLWEtY3Jvc3Mtb3JpZ2lu
LWVtYmVkZGVyLXBvbGljeS1jb3JwLXZpb2xhdGlvbi1yZXBvcnQKK3ZvaWQgc2VuZENPRVBDT1JQ
VmlvbGF0aW9uKEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRl
ck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0
aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJs
b2NrZWRVUkwpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIFBpbmdM
b2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBlbWJlZGRlck9yaWdpbiwgZW5kcG9p
bnQsICJjb2VwIl9zLCBjb250ZXh0VVJMRm9yUmVwb3J0KGZyYW1lKSwgZnJhbWUubG9hZGVyKCku
dXNlckFnZW50KGJsb2NrZWRVUkwpLCBbJl0oYXV0byYgYm9keSkgeworICAgICAgICBib2R5LnNl
dFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPRVBEaXNwb3NpdGlvbjo6
UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAgICAgYm9keS5z
ZXRTdHJpbmcoInR5cGUiX3MsICJjb3JwIik7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJibG9j
a2VkVVJMIl9zLCBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChibG9ja2VkVVJMKSk7
CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkZXN0aW5hdGlvbiJfcywgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoZGVzdGluYXRpb24pKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5LmgKaW5kZXggNzQ5ZjBjNzlmYjNiYWM1YWZkOTBhZWE2MWY5ZGRkYWJhMTZlN2MyNi4u
MTNhZmJmNTIyYjgyNDBiNTNmYzY5Y2EwZGNkN2RkNGRlNWFiOGFlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oCkBAIC0yNSwxMyAr
MjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGZXRjaE9wdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogCitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCiAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNlbWJlZGRlci1wb2xpY3kt
dmFsdWUKIGVudW0gY2xhc3MgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlIDogYm9vbCB7
CiAgICAgVW5zYWZlTm9uZSwKQEAgLTkzLDcgKzk3LDExIEBAIHN0ZDo6b3B0aW9uYWw8Q3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeT4gQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeTo6ZGVjb2RlKERl
Y29kCiAgICAgfX07CiB9CiAKK2VudW0gY2xhc3MgQ09FUERpc3Bvc2l0aW9uIDogYm9vbCB7IFJl
cG9ydGluZyAsIEVuZm9yY2UgfTsKKwogV0VCQ09SRV9FWFBPUlQgQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiBXRUJDT1JFX0VYUE9SVCB2
b2lkIGFkZENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lIZWFkZXJzKFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Jik7CitXRUJDT1JFX0VYUE9SVCB2b2lk
IHNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oRnJhbWUmLCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQ
RGlzcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJMJiBibG9ja2VkVVJMKTsK
K1dFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0aW9uKEZyYW1lJiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2lu
dCwgQ09FUERpc3Bvc2l0aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25zdCBVUkwm
IGJsb2NrZWRVUkwpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcAppbmRleCA5MDljN2M1MWFm
MmJkOWJlMWQzMjA3OWUwMDY0OTNmNTA1MzA4MzM2Li4xNDZjNjViODYyYzU3NGI4YjRmYWZkYjU2
ZDQxNDA2YzY2Y2YzYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpbk9wZW5lclBvbGljeS5jcHAKQEAgLTMwLDIyICszMCwxMiBAQAogI2luY2x1ZGUgIkhUVFBI
ZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiUGluZ0xv
YWRlci5oIgotI2luY2x1ZGUgIlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8v
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nhbml0
aXplLXVybC1yZXBvcnQKLXN0YXRpYyBTdHJpbmcgc2FuaXRpemVSZWZlcnJlckZvclVSTFJlcG9y
dChjb25zdCBVUkwmIHJlZmVycmVyKQotewotICAgIFVSTCBzYW5pdGl6ZWRSZWZlcnJlciA9IHJl
ZmVycmVyOwotICAgIHNhbml0aXplZFJlZmVycmVyLnJlbW92ZUNyZWRlbnRpYWxzKCk7Ci0gICAg
c2FuaXRpemVkUmVmZXJyZXIucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJu
IHNhbml0aXplZFJlZmVycmVyLnN0cmluZygpOwotfQotCiBzdGF0aWMgQVNDSUlMaXRlcmFsIGNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3lWYWx1ZSYgY29vcCkKIHsKICAgICBzd2l0Y2ggKGNvb3ApIHsKQEAgLTEzNiw0NCArMTI2LDE3
IEBAIHZvaWQgYWRkQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBDcm9zc09yCiAgICAgfQogfQogCi0vLyBodHRwczovL3d3dy53
My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKLXN0YXRpYyB2b2lkIHNlbmRDT09QVmlv
bGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwg
Q09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRnVuY3Rp
b248dm9pZChKU09OOjpPYmplY3QmKT4mJiBwb3B1bGF0ZUJvZHkpCi17Ci0gICAgYXV0byYgcmVw
b3J0aW5nRW5kcG9pbnQgPSBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGlu
ZyA/IGNvb3AucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBvcnRpbmdFbmRw
b2ludDsKLSAgICBpZiAocmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBhdXRvIHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlID0gZnJhbWUucGFnZSgpID8g
ZnJhbWUucGFnZSgpLT5yZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIDogbnVsbHB0cjsKLSAgICBp
ZiAoIXJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKQotICAgICAgICByZXR1cm47Ci0gICAgYXV0byBl
bmRwb2ludFVSTCA9IHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLT5lbmRwb2ludFVSTChjb29wT3Jp
Z2luLmRhdGEoKSwgcmVwb3J0aW5nRW5kcG9pbnQpOwotICAgIGlmICghZW5kcG9pbnRVUkwuaXNW
YWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGJvZHkgPSBKU09OOjpPYmplY3Q6
OmNyZWF0ZSgpOwotICAgIGJvZHktPnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0
aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZv
cmNlIl9zKTsKLSAgICBib2R5LT5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJfcywgY3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3lWYWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRpc3Bvc2l0aW9u
ID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5VmFsdWUgOiBj
b29wLnZhbHVlKSk7Ci0gICAgcG9wdWxhdGVCb2R5KGJvZHkpOwotCi0gICAgYXV0byByZXBvcnRP
YmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIHJlcG9ydE9iamVjdC0+c2V0U3Ry
aW5nKCJ0eXBlIl9zLCAiY29vcCJfcyk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVy
bCJfcywgY29vcFVSTC5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVz
ZXJfYWdlbnQiLCB1c2VyQWdlbnQpOwotICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdl
IiwgMCk7IC8vIFdlIGN1cnJlbnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4K
LSAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7Ci0K
LSAgICBhdXRvIHJlcG9ydExpc3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7Ci0gICAgcmVwb3J0
TGlzdC0+cHVzaE9iamVjdChyZXBvcnRPYmplY3QpOwotCi0gICAgYXV0byByZXBvcnQgPSBGb3Jt
RGF0YTo6Y3JlYXRlKHJlcG9ydExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7Ci0gICAgUGlu
Z0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUo
cmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRp
b24pOwotfQotCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmln
aW4uaHRtbCNjb29wLXZpb2xhdGlvbi1uYXZpZ2F0aW9uLXRvCiB2b2lkIHNlbmRWaW9sYXRpb25S
ZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKEZyYW1lJiBmcmFtZSwgQ3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBV
UkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgcHJldmlvdXNSZXNwb25zZVVSTCwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBwcmV2aW91c1Jlc3Bv
bnNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCkKIHsKLSAgICBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29vcCwgZGlzcG9zaXRp
b24sIGNvb3BVUkwsIGNvb3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsKLSAg
ICAgICAgYm9keS5zZXRTdHJpbmcoInByZXZpb3VzUmVzcG9uc2VVUkwiX3MsIGNvb3BPcmlnaW4u
aXNTYW1lT3JpZ2luQXMocHJldmlvdXNSZXNwb25zZU9yaWdpbikgPyBzYW5pdGl6ZVJlZmVycmVy
Rm9yVVJMUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwpIDogU3RyaW5nKCkpOworICAgIGF1dG8m
IGVuZHBvaW50ID0gZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBj
b29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCA6IGNvb3AucmVwb3J0aW5nRW5kcG9pbnQ7
CisgICAgaWYgKGVuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGlu
Z0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGNvb3BPcmlnaW4uZGF0YSgpLCBl
bmRwb2ludCwgImNvb3AiX3MsIGNvb3BVUkwsIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsK
KyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRpc3Bvc2l0aW9uIl9zLCBkaXNwb3NpdGlvbiA9PSBD
T09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/ICJyZXBvcnRpbmciX3MgOiAiZW5mb3JjZSJfcyk7
CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJlZmZlY3RpdmVQb2xpY3kiX3MsIGNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5VmFsdWVUb0VmZmVjdGl2ZVBvbGljeVN0cmluZyhkaXNwb3NpdGlvbiA9PSBD
T09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25seVZhbHVlIDogY29vcC52
YWx1ZSkpOworICAgICAgICBib2R5LnNldFN0cmluZygicHJldmlvdXNSZXNwb25zZVVSTCJfcywg
Y29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhwcmV2aW91c1Jlc3BvbnNlT3JpZ2luKSA/IFBpbmdM
b2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwpIDogU3RyaW5n
KCkpOwogICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgIm5hdmlnYXRpb24tdG8tcmVz
cG9uc2UiX3MpOwogICAgICAgICBib2R5LnNldFN0cmluZygicmVmZXJyZXIiX3MsIHJlZmVycmVy
KTsKICAgICB9KTsKQEAgLTE4Miw4ICsxNDUsMTQgQEAgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0
V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENyb3NzT3JpZ2luT3AK
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI2Nv
b3AtdmlvbGF0aW9uLW5hdmlnYXRpb24tZnJvbQogdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hl
bk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgVVJM
JiBjb29wVVJMLCBjb25zdCBVUkwmIG5leHRSZXNwb25zZVVSTCwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIGNvb3BPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBuZXh0UmVzcG9uc2VPcmlnaW4s
IGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCkKIHsKLSAgICBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29vcCwgZGlzcG9z
aXRpb24sIGNvb3BVUkwsIGNvb3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJvZHkpIHsK
LSAgICAgICAgYm9keS5zZXRTdHJpbmcoIm5leHRSZXNwb25zZVVSTCJfcywgY29vcE9yaWdpbi5p
c1NhbWVPcmlnaW5BcyhuZXh0UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09PUFJlc3BvbnNlTmF2aWdh
dGlvblNvdXJjZSA/IHNhbml0aXplUmVmZXJyZXJGb3JVUkxSZXBvcnQobmV4dFJlc3BvbnNlVVJM
KSA6IFN0cmluZygpKTsKKyAgICBhdXRvJiBlbmRwb2ludCA9IGRpc3Bvc2l0aW9uID09IENPT1BE
aXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQg
OiBjb29wLnJlcG9ydGluZ0VuZHBvaW50OworICAgIGlmIChlbmRwb2ludC5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZy
YW1lLCBjb29wT3JpZ2luLmRhdGEoKSwgZW5kcG9pbnQsICJjb29wIl9zLCBjb29wVVJMLCB1c2Vy
QWdlbnQsIFsmXShhdXRvJiBib2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3Np
dGlvbiJfcywgZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVw
b3J0aW5nIl9zIDogImVuZm9yY2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmluZygiZWZmZWN0
aXZlUG9saWN5Il9zLCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZlY3RpdmVQb2xp
Y3lTdHJpbmcoZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyBjb29w
LnJlcG9ydE9ubHlWYWx1ZSA6IGNvb3AudmFsdWUpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmco
Im5leHRSZXNwb25zZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhuZXh0UmVzcG9u
c2VPcmlnaW4pIHx8IGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSA/IFBpbmdMb2FkZXI6
OnNhbml0aXplVVJMRm9yUmVwb3J0KG5leHRSZXNwb25zZVVSTCkgOiBTdHJpbmcoKSk7CiAgICAg
ICAgIGJvZHkuc2V0U3RyaW5nKCJ0eXBlIl9zLCAibmF2aWdhdGlvbi1mcm9tLXJlc3BvbnNlIl9z
KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaAppbmRleCBjN2Yz
MTM4NDJlMTRkM2RjZmM4M2UwNjJkOTg1NTc0ZGQ1ZmUwZDZjLi4yN2I5OGE5MzIzMDdmYzU4YzQ1
OWQ3MTVjMzE0Y2NjYTY3YzRkOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RmV0Y2hPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9ucy5o
CkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBGZXRjaE9w
dGlvbnMgewotICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90IHsgRW1wdHlTdHJp
bmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9udCwgSW1hZ2UsIE1h
bmlmZXN0LCBNb2RlbCwgT2JqZWN0LCBQYWludHdvcmtsZXQsIFJlcG9ydCwgU2NyaXB0LCBTZXJ2
aWNld29ya2VyLCBTaGFyZWR3b3JrZXIsIFN0eWxlLCBUcmFjaywgVmlkZW8sIFdvcmtlciwgWHNs
dCB9OworICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90IHsgRW1wdHlTdHJpbmcs
IEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9udCwgSW1hZ2UsIElmcmFt
ZSwgTWFuaWZlc3QsIE1vZGVsLCBPYmplY3QsIFBhaW50d29ya2xldCwgUmVwb3J0LCBTY3JpcHQs
IFNlcnZpY2V3b3JrZXIsIFNoYXJlZHdvcmtlciwgU3R5bGUsIFRyYWNrLCBWaWRlbywgV29ya2Vy
LCBYc2x0IH07CiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7IE5hdmlnYXRlLCBTYW1l
T3JpZ2luLCBOb0NvcnMsIENvcnMgfTsKICAgICBlbnVtIGNsYXNzIENyZWRlbnRpYWxzIDogdWlu
dDhfdCB7IE9taXQsIFNhbWVPcmlnaW4sIEluY2x1ZGUgfTsKICAgICBlbnVtIGNsYXNzIENhY2hl
IDogdWludDhfdCB7IERlZmF1bHQsIE5vU3RvcmUsIFJlbG9hZCwgTm9DYWNoZSwgRm9yY2VDYWNo
ZSwgT25seUlmQ2FjaGVkIH07CkBAIC04MCw5ICs4MCwxMSBAQCBpbmxpbmUgYm9vbCBpc1BvdGVu
dGlhbE5hdmlnYXRpb25PclN1YnJlc291cmNlUmVxdWVzdChGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OkVtYmVkOwogfQogCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbm9uLXN1YnJl
c291cmNlLXJlcXVlc3QKIGlubGluZSBib29sIGlzTm9uU3VicmVzb3VyY2VSZXF1ZXN0KEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAgICAgcmV0dXJuIGRlc3RpbmF0
aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50CisgICAgICAgIHx8IGRl
c3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZQogICAgICAgICB8
fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpSZXBvcnQKICAgICAg
ICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdv
cmtlcgogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9u
OjpTaGFyZWR3b3JrZXIKQEAgLTExMiw2ICsxMTQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24+IHsKICAgICAgICAgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQsCiAgICAgICAgIFdlYkNvcmU6
OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkZvbnQsCiAgICAgICAgIFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlLAorICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUsCiAgICAgICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6
RGVzdGluYXRpb246Ok1hbmlmZXN0LAogICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpNb2RlbCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6T2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4IGI4MGE3
ZjliZjUxMDc4MzRiNzU4YjM2ZjdjYzk5MDYzZGMzODVlMWUuLjNlYzNjNTE4Yzc4OGU1Y2MxZjVm
MTg4ZThjNzE1MzFmOTFkYjAzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
aW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAK
QEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVw
b3J0aW5nRW5kcG9pbnRzQ2FjaGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJbmZvLmgiCkBA
IC0yNDMsNCArMjQ0LDQyIEBAIHZvaWQgUGluZ0xvYWRlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYg
ZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSFRUUEhlYWRlCiAgICAgZnJhbWUuZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0UGluZ1Jlc291cmNlKFdURk1v
dmUoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKKy8vIC8vIGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nhbml0aXplLXVybC1yZXBvcnQKK1N0
cmluZyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChjb25zdCBVUkwmIHVybCkKK3sK
KyAgICBVUkwgc2FuaXRpemVkVVJMID0gdXJsOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVDcmVk
ZW50aWFscygpOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsK
KyAgICByZXR1cm4gc2FuaXRpemVkVVJMLnN0cmluZygpOwogfQorCisvLyBodHRwczovL3d3dy53
My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKK3ZvaWQgUGluZ0xvYWRlcjo6c2VuZFJl
cG9ydFRvRW5kcG9pbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBV
UkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJvZHkpCit7CisgICAgQVNTRVJUKCFl
bmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUgPSBm
cmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKCkgOiBu
dWxscHRyOworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUtPmVuZHBv
aW50VVJMKG9yaWdpbiwgZW5kcG9pbnQpOworICAgIGlmICghZW5kcG9pbnRVUkwuaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJvZHkgPSBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpOworICAgIHBvcHVsYXRlUmVwb3J0Qm9keShib2R5KTsKKworICAgIGF1dG8gcmVwb3J0T2Jq
ZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXBvcnRPYmplY3QtPnNldFN0cmlu
ZygidHlwZSJfcywgdHlwZSk7CisgICAgaWYgKHJlcG9ydFVSTC5pc1ZhbGlkKCkpCisgICAgICAg
IHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIHJlcG9ydFVSTC5zdHJpbmcoKSk7Cisg
ICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdlbnQiLCB1c2VyQWdlbnQpOworICAg
IHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7IC8vIFdlIGN1cnJlbnRseSBkbyBu
b3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KKyAgICByZXBvcnRPYmplY3QtPnNldE9iamVj
dCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7CisKKyAgICBhdXRvIHJlcG9ydExpc3QgPSBKU09O
OjpBcnJheTo6Y3JlYXRlKCk7CisgICAgcmVwb3J0TGlzdC0+cHVzaE9iamVjdChyZXBvcnRPYmpl
Y3QpOworCisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydExpc3QtPnRv
SlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgc2VuZFZpb2xhdGlvblJlcG9ydChmcmFtZSwgZW5k
cG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6U3RhbmRhcmRS
ZXBvcnRpbmdBUElWaW9sYXRpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCA1ZWNhOThjNzFlZTc4Mjg3ZThhMzZlNzAzZjc4
NzM3OWRhMTE5ODc3Li40Y2U0OTM1ZTcyMTZjY2NiYzU0NTFhODRhZTYyYzhmZjdkMWM5NTMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25z
dCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBz
ZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxGb3Jt
RGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCisgICAgc3RhdGljIFN0cmlu
ZyBzYW5pdGl6ZVVSTEZvclJlcG9ydChjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMgdm9pZCBzZW5k
UmVwb3J0VG9FbmRwb2ludChGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0
IFN0cmluZyYgZW5kcG9pbnQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJMJiByZXBvcnRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBGdW5jdGlvbjx2b2lkKEpTT046Ok9i
amVjdCYpPiYgcG9wdWxhdGVSZXBvcnRCb2R5KTsKKwogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNz
IFNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IE5vLCBZZXMgfTsKICAgICBzdGF0aWMgdm9pZCBzdGFy
dFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0JiwgSFRUUEhlYWRlck1hcCYmIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMsIFNob3VsZEZvbGxvd1JlZGlyZWN0cywgQ29udGVudFNlY3VyaXR5
UG9saWN5SW1wb3NpdGlvbiwgUmVmZXJyZXJQb2xpY3ksIHN0ZDo6b3B0aW9uYWw8VmlvbGF0aW9u
UmVwb3J0VHlwZT4gPSBzdGQ6Om51bGxvcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzJiZDA3ZTE4MjI4ODEx
NDFkMTVhMjNjNDNhYTA2ZGZkMTZiMGMxYS4uZGE2M2VmZDI3ZTIxYmQwYWI5Yjg3NWM2ODNhY2Q5
MzE5OGVjYTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03OTUsMTIgKzc5NSwxMiBAQCB2b2lkIENhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMoRnJhbWVMb2FkZXImIGZyYW1l
TG9hZGVyLCBDYQogICAgIHJlcXVlc3QudXBkYXRlQWNjZXB0RW5jb2RpbmdIZWFkZXIoKTsKIH0K
IAotc3RhdGljIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb25Gb3JUeXBlKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCitzdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgRnJhbWUmIGZy
YW1lKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5
cGU6Ok1haW5SZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpTVkdEb2N1
bWVudFJlc291cmNlOgotICAgICAgICByZXR1cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
RG9jdW1lbnQ7CisgICAgICAgIHJldHVybiBmcmFtZS5pc01haW5GcmFtZSgpID8gRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQgOiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJ
ZnJhbWU7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNvdXJjZToKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpJY29uOgogICAgICAgICByZXR1cm4gRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6SW1hZ2U7CkBAIC04NjgsNyArODY4LDcgQEAgUmVzb3VyY2VF
cnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXUKIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclLjI1NXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5
PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
LmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFyc2V0KCkubGF0aW4xKCkuZGF0YSgpLCByZXF1
ZXN0LnByaW9yaXR5KCkgPyBzdGF0aWNfY2FzdDxpbnQ+KHJlcXVlc3QucHJpb3JpdHkoKS52YWx1
ZSgpKSA6IC0xLCBmb3JQcmVsb2FkID09IEZvclByZWxvYWQ6Olllcyk7CiAKLSAgICByZXF1ZXN0
LnNldERlc3RpbmF0aW9uSWZOb3RTZXQoZGVzdGluYXRpb25Gb3JUeXBlKHR5cGUpKTsKKyAgICBy
ZXF1ZXN0LnNldERlc3RpbmF0aW9uSWZOb3RTZXQoZGVzdGluYXRpb25Gb3JUeXBlKHR5cGUsIGZy
YW1lKSk7CiAKICAgICAvLyBFbnRyeSBwb2ludCB0byBodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jbWFpbi1mZXRjaC4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VSZXF1ZXN0PiBv
cmlnaW5hbFJlcXVlc3Q7CkBAIC04ODAsNyArODgwLDcgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXUKIAogICAgIHByZXBhcmVGZXRjaCh0eXBlLCByZXF1ZXN0KTsKIAotICAgIGlmIChyZXF1ZXN0
Lm9wdGlvbnMoKS5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1
bWVudCkgeworICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMoKS5kZXN0aW5hdGlvbiA9PSBGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCB8fCByZXF1ZXN0Lm9wdGlvbnMoKS5kZXN0aW5h
dGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUpIHsKICAgICAgICAgLy8g
RklYTUU6IElkZW50aWZ5IEhTVFMgY2FzZXMgYW5kIGF2b2lkIGFkZGluZyB0aGUgaGVhZGVyLiA8
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzg4NT4KICAgICAgICAg
aWYgKCF1cmwucHJvdG9jb2xJcygiaHR0cHMiKSkKICAgICAgICAgICAgIHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpVcGdyYWRlSW5z
ZWN1cmVSZXF1ZXN0cywgIjEiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDBhMzA3MDczOTFiZmZmYzNhMGYwYzNl
MjljMmIwZjhhMGZiZGUzNTYuLjY0ZmM3ZmI4ZDI1NzRmZmU3YzI3Zjc4MWVlYTMzZjcwN2I3ZjRh
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtT
Y2hlbWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29u
dGVudFNlY3VyaXR5UG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaD4KQEAgLTE1OCw2ICsxNTksMjcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6
OmNoZWNrUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXEK
ICAgICB9KTsKIH0KIAorLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9y
aWdpbi1yZXNvdXJjZS1wb2xpY3ktY2hlY2sKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlc291cmNl
RXJyb3I+IHBlcmZvcm1DT1JQQ2hlY2soY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYg
ZW1iZWRkZXJDT0VQLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0
IFVSTCYgdXJsLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRm9yTmF2aWdhdGlvbiBmb3JO
YXZpZ2F0aW9uLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKK3sKKyAgICBpZiAoYXV0
byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUsIGVtYmVkZGVyT3JpZ2luLCB1cmwsIHJlc3Bv
bnNlLCBmb3JOYXZpZ2F0aW9uKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoKmVycm9yKTsKKwor
ICAgIGlmIChlbWJlZGRlckNPRVAucmVwb3J0T25seVZhbHVlID09IENyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgIWVtYmVkZGVyQ09FUC5yZXBvcnRPbmx5UmVw
b3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpICYmIGxvYWRlcikgeworICAgICAgICBpZiAoYXV0byBl
cnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShlbWJlZGRlckNPRVAucmVw
b3J0T25seVZhbHVlLCBlbWJlZGRlck9yaWdpbiwgdXJsLCByZXNwb25zZSwgZm9yTmF2aWdhdGlv
bikpCisgICAgICAgICAgICBsb2FkZXItPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQ
Q09SUFZpb2xhdGlvbiB7IGxvYWRlci0+ZnJhbWVJRCgpLCBlbWJlZGRlck9yaWdpbi5kYXRhKCks
IGVtYmVkZGVyQ09FUC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlv
bjo6UmVwb3J0aW5nLCBsb2FkZXItPnBhcmFtZXRlcnMoKS5vcHRpb25zLmRlc3RpbmF0aW9uLCBs
b2FkZXItPmZpcnN0UmVzcG9uc2VVUkwoKSB9LCBsb2FkZXItPnBhZ2VJRCgpKTsKKyAgICB9CisK
KyAgICBpZiAoZW1iZWRkZXJDT0VQLnZhbHVlID09IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lW
YWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNy
b3NzT3JpZ2luUmVzb3VyY2VQb2xpY3koZW1iZWRkZXJDT0VQLnZhbHVlLCBlbWJlZGRlck9yaWdp
biwgdXJsLCByZXNwb25zZSwgZm9yTmF2aWdhdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChsb2Fk
ZXIgJiYgIWVtYmVkZGVyQ09FUC5yZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgbG9hZGVyLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9s
YXRpb24geyBsb2FkZXItPmZyYW1lSUQoKSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRl
ckNPRVAucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwgbG9hZGVy
LT5wYXJhbWV0ZXJzKCkub3B0aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNl
VVJMKCkgfSwgbG9hZGVyLT5wYWdlSUQoKSk7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSgq
ZXJyb3IpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisK
IFJlc291cmNlRXJyb3IgTmV0d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7
CiAgICAgaWYgKG1fcmVkaXJlY3RDb3VudCkKQEAgLTE3MCw3ICsxOTIsNyBAQCBSZXNvdXJjZUVy
cm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlcwogCiAgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6TmF2aWdhdGUgfHwgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0KSB7CiAgICAgICAgIGlmICht
X29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlICYmIG1fcGFyZW50
T3JpZ2luKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlQ3Jvc3NPcmln
aW5SZXNvdXJjZVBvbGljeShtX3BhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUs
ICptX3BhcmVudE9yaWdpbiwgbV91cmwsIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uOjpZZXMpKQor
ICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBwZXJmb3JtQ09SUENoZWNrKG1fcGFyZW50Q3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSwgKm1fcGFyZW50T3JpZ2luLCBtX3VybCwgcmVzcG9uc2Us
IEZvck5hdmlnYXRpb246OlllcywgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIuZ2V0KCkpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7CiAgICAgICAgIH0KICAgICAgICAg
cmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6OkJhc2ljKTsK
QEAgLTE4MSw3ICsyMDMsNyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFs
aWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICByZXNw
b25zZS5zZXRBc1JhbmdlUmVxdWVzdGVkKCk7CiAKICAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKLSAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2
YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5LnZhbHVlLCAqbV9vcmlnaW4sIG1fdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlvbjo6Tm8p
KQorICAgICAgICBpZiAoYXV0byBlcnJvciA9IHBlcmZvcm1DT1JQQ2hlY2sobV9jcm9zc09yaWdp
bkVtYmVkZGVyUG9saWN5LCAqbV9vcmlnaW4sIG1fdXJsLCByZXNwb25zZSwgRm9yTmF2aWdhdGlv
bjo6Tm8sIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyLmdldCgpKSkKICAgICAgICAgICAgIHJldHVy
biBXVEZNb3ZlKCplcnJvcik7CiAKICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3Vy
Y2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7CkBAIC0yODEsNiArMzAzLDcgQEAgYm9vbCBO
ZXR3b3JrTG9hZENoZWNrZXI6OmlzQWxsb3dlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkVt
YmVkOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6Rm9udDoKICAgICBjYXNl
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlOgorICAgIGNhc2UgRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6SWZyYW1lOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6TWFuaWZlc3Q6CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbDoK
ICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok9iamVjdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApp
bmRleCAyM2Q5NDg3NWUyYzE1ODgyYWYyMThjOGRmZWFmNjEwMDAyYjkxNmFjLi42ZWNmNTcwNDkw
YmViMWNhMDdmOTA4YWNlOGFkM2IxY2ZhZWJmY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zOTIsNiAr
MzkyLDcgQEAgUmVzb3VyY2VMb2FkSW5mbyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJlc291cmNl
TG9hZEluZm8oKQogICAgICAgICBjYXNlIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246OkF1ZGlvd29ya2xldDoKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRJbmZvOjpU
eXBlOjpPdGhlcjsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpEb2N1bWVudDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpJZnJhbWU6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkSW5mbzo6VHlw
ZTo6RG9jdW1lbnQ7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6RW1iZWQ6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkSW5mbzo6VHlwZTo6
T2JqZWN0OwpAQCAtNjA2LDMwICs2MDcsNDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNob3VsZEludGVycnVwdE5hdmlnYXRpb25Gb3JDcm9zc09yaWdpbkVtYmVkZGVyUG9saWMKICAg
ICBBU1NFUlQoaXNNYWluUmVzb3VyY2UoKSk7CiAKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLW5hdmlnYXRpb24tcmVzcG9u
c2Uncy1hZGhlcmVuY2UtdG8taXRzLWVtYmVkZGVyLXBvbGljeQotICAgIGlmIChtX3BhcmFtZXRl
cnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSAhPSBXZWJDb3JlOjpDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYgbV9wYXJhbWV0ZXJzLnNv
dXJjZU9yaWdpbikgeworICAgIGlmIChtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJl
ZGRlclBvbGljeS52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFs
dWU6OlJlcXVpcmVDT1JQIHx8IG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7CiAgICAgICAgIGF1dG8gcmVzcG9uc2VDT0VQID0gV2Vi
Q29yZTo6b2J0YWluQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeShyZXNwb25zZSwgbnVsbHB0cik7
Ci0gICAgICAgIGlmIChyZXNwb25zZUNPRVAudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5F
bWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgeworICAgICAgICBpZiAobV9wYXJhbWV0
ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0T25seVZhbHVlID09IFdl
YkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlAgJiYgcmVz
cG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1
ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhcmVudE9yaWdpbiA9IG1f
cGFyYW1ldGVycy5wYXJlbnRPcmlnaW4oKTsgcGFyZW50T3JpZ2luICYmICFtX3BhcmFtZXRlcnMu
cGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9p
bnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNl
bmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgcGFyZW50T3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVycy5wYXJlbnRDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9u
OjpSZXBvcnRpbmcsICJuYXZpZ2F0aW9uIl9zLCBtX2ZpcnN0UmVzcG9uc2VVUkwgfSwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9wYXJhbWV0ZXJz
LnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIHJlc3BvbnNlQ09FUC52YWx1
ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQ
KSB7CiAgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNl
ZCB0byBkaXNwbGF5ICciLCByZXNwb25zZS51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9M
ZW5ndGgoKSwgIicgaW4gYSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kuIik7CiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBZGRDb25zb2xl
TWVzc2FnZSB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCAgTWVzc2FnZVNvdXJjZTo6U2VjdXJp
dHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZSwgY29yZUlkZW50aWZpZXIoKSB9
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhcmVudE9y
aWdpbiA9IG1fcGFyYW1ldGVycy5wYXJlbnRPcmlnaW4oKTsgcGFyZW50T3JpZ2luICYmICFtX3Bh
cmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRpbmdFbmRwb2lu
dC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2Vu
ZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBwYXJlbnRPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwg
Im5hdmlnYXRpb24iX3MsIG1fZmlyc3RSZXNwb25zZVVSTCB9LCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlEKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQorCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLWdsb2JhbC1vYmplY3Qncy1lbWJlZGRlci1wb2xpY3kK
IGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRXb3JrZXJMb2FkRm9y
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKIHsKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMuZGVzdGluYXRpb24gIT0gRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgIT0gV2Vi
Q29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIG1fcGFy
YW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKKyAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGlj
eVZhbHVlOjpSZXF1aXJlQ09SUCB8fCBtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBv
bGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGlj
eVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAgICBhdXRvIHJlc3BvbnNlQ09FUCA9IFdlYkNv
cmU6Om9idGFpbkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kocmVzcG9uc2UsIG51bGxwdHIpOwot
ICAgICAgICBpZiAocmVzcG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgaWYgKG1fcGFyYW1ldGVy
cy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpD
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQICYmIHJlc3BvbnNlQ09F
UC52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2Fm
ZU5vbmUpIHsKKyAgICAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luICYmICFt
X3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5UmVwb3J0aW5n
RW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi0+ZGF0YSgpLCBtX3BhcmFtZXRlcnMu
Y3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQsIENP
RVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCAid29ya2VyIGluaXRpYWxpemF0aW9uIl9zLCBtX2Zp
cnN0UmVzcG9uc2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUg
PT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCAm
JiByZXNwb25zZUNPRVAudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGlj
eVZhbHVlOjpVbnNhZmVOb25lKSB7CiAgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0g
bWFrZVN0cmluZygiUmVmdXNlZCB0byBsb2FkICciLCByZXNwb25zZS51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgIicgd29ya2VyIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeS4iKTsKICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkFkZENvbnNvbGVNZXNzYWdlIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsICBNZXNzYWdlU291
cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JNZXNzYWdlLCBjb3JlSWRl
bnRpZmllcigpIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOworICAgICAgICAgICAgaWYgKG1f
cGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gJiYgIW1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9u
IHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4tPmRh
dGEoKSwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5k
cG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwgIndvcmtlciBpbml0aWFsaXphdGlvbiJf
cywgbV9maXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKQEAgLTY0MSw2ICs2NTksOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbgogICAgICAg
ICBkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UocmVjZWl2ZWRSZXNwb25zZSk7CiAKICAg
ICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKKyAgICBpZiAoIW1fZmly
c3RSZXNwb25zZVVSTC5pc1ZhbGlkKCkpCisgICAgICAgIG1fZmlyc3RSZXNwb25zZVVSTCA9IG1f
cmVzcG9uc2UudXJsKCk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKCkgJiYgbV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKICAgICAgICAgYXV0byBpbmZvcm1h
dGlvbiA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT50YWtlTmV0d29ya0xvYWRJbmZvcm1hdGlvbigp
OwpAQCAtNjkwLDYgKzcxMCwxOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbgogICAgIGlmICht
X2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoUG9saWN5QWN0aW9uOjpVc2UpOwogCisgICAgaWYgKG1fbmV0d29ya0xvYWRDaGVja2VyKSB7
CisgICAgICAgIGF1dG8gZXJyb3IgPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+dmFsaWRhdGVSZXNw
b25zZShtX25ldHdvcmtMb2FkID8gbV9uZXR3b3JrTG9hZC0+Y3VycmVudFJlcXVlc3QoKSA6IG9y
aWdpbmFsUmVxdWVzdCgpLCBtX3Jlc3BvbnNlKTsKKyAgICAgICAgaWYgKCFlcnJvci5pc051bGwo
KSkgeworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SKCJkaWRSZWNlaXZlUmVz
cG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSByZXR1cm5lZCBhbiBl
cnJvciAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGVycm9yLmNvZGU9JWQp
IiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAg
ICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcildIHsKKyAgICAgICAgICAgICAgICBpZiAo
cHJvdGVjdGVkVGhpcy0+bV9uZXR3b3JrTG9hZCkKKyAgICAgICAgICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUpOworICAg
ICAgICB9CisgICAgfQorCiAgICAgaWYgKGlzTWFpblJlc291cmNlKCkgJiYgc2hvdWxkSW50ZXJy
dXB0TG9hZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpb25zKG1fcmVzcG9uc2UpKSB7
CiAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigiZGlkUmVjZWl2ZVJlc3BvbnNlOiBJ
bnRlcnJ1cHRpbmcgbWFpbiByZXNvdXJjZSBsb2FkIGR1ZSB0byBDU1AgZnJhbWUtYW5jZXN0b3Jz
IG9yIFgtRnJhbWUtT3B0aW9ucyIpOwogICAgICAgICBhdXRvIHJlc3BvbnNlID0gc2FuaXRpemVS
ZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25zZSB7IG1fcmVzcG9uc2UgfSwgUmVzb3Vy
Y2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NPcmlnaW5TYWZlKTsKQEAgLTcwNywx
OCArNzM5LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsKICAgICB9CiAKLSAgICBpZiAobV9u
ZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IG1fbmV0d29ya0xvYWRD
aGVja2VyLT52YWxpZGF0ZVJlc3BvbnNlKG1fbmV0d29ya0xvYWQgPyBtX25ldHdvcmtMb2FkLT5j
dXJyZW50UmVxdWVzdCgpIDogb3JpZ2luYWxSZXF1ZXN0KCksIG1fcmVzcG9uc2UpOwotICAgICAg
ICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0df
RVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogTmV0d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0ZVJl
c3BvbnNlIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21haW49JSIgUFVCTElDX0xPR19TVFJJ
TkcgIiwgZXJyb3IuY29kZT0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSk7Ci0gICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKV0gewot
ICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX25ldHdvcmtMb2FkKQotICAgICAg
ICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWlsTG9hZGluZyhlcnJvcik7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lB
Y3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBhdXRvIHJlc3BvbnNlID0g
c2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25zZSB7IG1fcmVzcG9uc2Ug
fSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NPcmlnaW5TYWZlKTsK
ICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygi
ZGlkUmVjZWl2ZVJlc3BvbnNlOiBVc2luZyByZXNwb25zZSBmb3Igc3luY2hyb25vdXMgbG9hZCIp
OwpAQCAtOTAyLDYgKzkyMiw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgTE9BREVS
X1JFTEVBU0VfTE9HKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiIpOwogICAgICsrbV9yZWRp
cmVjdENvdW50OwogICAgIG1fcmVkaXJlY3RSZXNwb25zZSA9IHJlZGlyZWN0UmVzcG9uc2U7Cisg
ICAgaWYgKCFtX2ZpcnN0UmVzcG9uc2VVUkwuaXNWYWxpZCgpKQorICAgICAgICBtX2ZpcnN0UmVz
cG9uc2VVUkwgPSByZWRpcmVjdFJlc3BvbnNlLnVybCgpOwogCiAgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4g
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIGlmICgh
c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggN2ZmNjFlYjFiZTgyNjcz
NTI4MWNkM2JjODFiMDU4YzBlMDZiMTYwNC4uYjQ4OTNjNGYzOTY3MzYxMTczZGJkNmU0ZmI3OWU1
Y2NmNjU1YjhiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQ7IH0KICAgICBjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYg
cGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Jlc291
cmNlTG9hZElEOyB9CisgICAgY29uc3QgVVJMJiBmaXJzdFJlc3BvbnNlVVJMKCkgY29uc3QgeyBy
ZXR1cm4gbV9maXJzdFJlc3BvbnNlVVJMOyB9CiAKICAgICBOZXR3b3JrQ2FjaGU6Okdsb2JhbEZy
YW1lSUQgZ2xvYmFsRnJhbWVJRCgpIHsgcmV0dXJuIHsgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94
eUlELCBwYWdlSUQoKSwgZnJhbWVJRCgpIH07IH0KIApAQCAtMjU1LDYgKzI1Niw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX3Jlc291cmNl
TG9hZElEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZWRpcmVjdFJlc3BvbnNl
OworICAgIFVSTCBtX2ZpcnN0UmVzcG9uc2VVUkw7IC8vIEZpcnN0IFVSTCBpbiByZXNwb25zZSdz
IFVSTCBsaXN0IChodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXNwb25z
ZS11cmwtbGlzdCkuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNkMTE2ZGJjNmJjYWI0NzU1NGVmYzI0NGMy
NzFiMWJjZWEzZjQxZjMuLmRjNzYzYmYxZTgzNDRiYjVmM2QxN2U2NDQ5OTc5Zjk2MWZmZWI2ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysr
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNjg4LDYgKzY4
OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnUEFMOjpTZXNzaW9u
SUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2
ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24nOiBbJzxXZWJDb3JlL0ZyYW1l
TG9hZGVyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbic6IFsn
PFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNv
cmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNDU0Zjk2Mzc2Y2RkYTkyYmRiMzNm
ZmRlZDdjZTBhZmNkYzQ0YmJiLi4xOTkzMjk1NTg3M2Q2MDJiNzliZWNiZjMwOTQ0N2QwY2MzZmVh
ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMTYxLDYgKzE2MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db21tb25WTS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1h
bmFnZXIuaD4KQEAgLTQzMjQsNiArNDMyNSwxOCBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9s
YXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VQog
ICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpmcmFtZS0+Y29yZUZyYW1l
KCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZpb2xhdGlvblJlcG9ydFR5
cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2VuZENPRVBQ
b2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2lu
dCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBpZiAoYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsgZnJhbWUtPmNvcmVGcmFtZSgpKQorICAgICAg
ICBXZWJDb3JlOjpzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKCpmcmFtZS0+Y29y
ZUZyYW1lKCksIGVtYmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgZGlzcG9zaXRpb24sIHR5cGUsIGJs
b2NrZWRVUkwpOworfQorCit2b2lkIFdlYlBhZ2U6OnNlbmRDT0VQQ09SUFZpb2xhdGlvbihGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9y
aWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9u
LCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJsb2Nr
ZWRVUkwpCit7CisgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCk7IGZyYW1lLT5jb3JlRnJhbWUoKSkKKyAgICAgICAgV2ViQ29yZTo6
c2VuZENPRVBDT1JQVmlvbGF0aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCksIGVtYmVkZGVyT3JpZ2lu
LCBlbmRwb2ludCwgZGlzcG9zaXRpb24sIGRlc3RpbmF0aW9uLCBibG9ja2VkVVJMKTsKK30KKwog
dm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2
ZW50SW5pdCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDFlYzI4MTdkMzY5N2MzNmEzYTIxYWM2MTYyZTg3ZjA5YzFiODZiODIuLjVjOTQw
YzdlMWY2MGI0NzdiNmM3ODlhOTNhMDJjZWIwODZhYjI0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyMCw2ICsyMjAsNyBAQCBjbGFzcyBIVE1M
TW9kZWxFbGVtZW50OwogI2VuZGlmCiAKIGVudW0gU3ludGhldGljQ2xpY2tUeXBlIDogaW50OF90
OworZW51bSBjbGFzcyBDT0VQRGlzcG9zaXRpb24gOiBib29sOwogZW51bSBjbGFzcyBDcmVhdGVO
ZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2w7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnQXBwbGljYXRpb25GbGFncyA6IHVpbnQ4
X3Q7CkBAIC00MzgsNiArNDM5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVz
c2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVxdWVzdElEID0gMCk7CiAgICAgdm9pZCBzZW5k
Q1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVVJMJiBy
ZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CisgICAgdm9pZCBzZW5kQ09FUFBv
bGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5n
JiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CisgICAgdm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBXZWJDb3JlOjpDT0VQ
RGlzcG9zaXRpb24sIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24sIGNvbnN0IFVS
TCYgYmxvY2tlZFVSTCk7CiAgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdB
cmVhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggNTk2YjRmN2Y2MDIyZjVhYWUzNDNhNmUzZjAwOWY5Zjk2YmJlODk4
NS4uN2EyODZkMzllZmZlNjA2ZDhjYTgxZjdhYzM0ZGVlNDNkMjA4OWI0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC0yOSw2ICsyOSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAg
ICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGVu
dW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90
IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90
IHJlcXVlc3RJRCkKICAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJl
cG9ydERhdGEpCisgICAgU2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6
Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBTdHJpbmcgdHlwZSwgVVJMIGJsb2NrZWRVUkwp
CisgICAgU2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGVtYmVkZGVyT3JpZ2luLCBT
dHJpbmcgZW5kcG9pbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24gZGlzcG9z
aXRpb24sIGVudW06dWludDhfdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRl
c3RpbmF0aW9uLCBVUkwgYmxvY2tlZFVSTCkKICAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9v
bCBoYW5kbGVkKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAzNTAzZjI1MGY4MzBmMGFhZjViYWJkZWU4
OGIyZTM3MDNkZDk2MGMuLjc3MTA5OWIwYjJjZjQxNTI3YjVlZmFjODliZTgxMDRiMjVlYzFkZDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB2aW9sYXRpb25zIHJlcG9ydGluZyBzdXBwb3J0IGZv
ciBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVuc2tp
cCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvbm8tY29ycy1jc3Mtd29ya2VyLmpzOgorICAgICAgICAoYXN5bmMgZG9GZXRjaCk6
CisgICAgICAgIEZpeCBleGlzdGluZyB0ZXN0IG5vdyB0aGF0IEkgYWRkZWQgc3VwcG9ydCBmb3Ig
RmV0Y2ggZGVzdGluYXRpb249ImlmcmFtZSIuCisKIDIwMjEtMDktMTQgIFhhYmllciBSb2RyaWd1
ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBF
bmFibGUgSDI2NSBjb2RlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNTVhODkw
NTM0MmYyMzE4YzViOWZhM2VkYmIzZWE4NWI0Njc5ZTE1MS4uZmI4ZTA5OTAxMThiMDM5YjJkMGI5
NDJkYjk0NWNjNTlmY2E5NDhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjEtMDktMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgdmlvbGF0aW9ucyByZXBvcnRpbmcgc3VwcG9ydCBmb3IgQ3Jvc3MtT3Jp
Z2luLUVtYmVkZGVyLVBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGlu
YXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgUmViYXNlbGluZSB0ZXN0IHRoYXQgaXMgcGFzc2luZyBub3cgdGhhdCB3ZSBzdXBwb3J0IEZl
dGNoIGRlc3RpbmF0aW9uPSJpZnJhbWUiLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIHRlc3QgdGhhdCBpcyBwYXNz
aW5nIG5vdyB0aGF0IHdlIHN1cHBvcnQgcmVwb3J0aW5nIGZvciBDT0VQIHZpb2xhdGlvbnMuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzOgorICAg
ICAgICBNZXJnZSBmaXggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9wdWxsLzMwNzg1IHNvIHRoYXQgdGhlIHRlc3QgY2FuIHJ1biB3aXRoaW4KKyAgICAgICAg
dGhlIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlLgorCiAyMDIxLTA5LTE0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRlIHNvbWUgV1BUIFdlYlJU
QyB0ZXN0cyBvdXIgb2YgbGVnYWN5IG9mZmVyVG9SZWNlaXZlIHBhcmFtZXRlcnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDEyMWIxOTY5NmQzOTkwZjczN2Y4ZWJlNjllZGQ0MTUzMTU2MjI5MjMuLjQ2
ZGY1MmZlOTgzMTY3YWE5OTE1MTk1OWZlYjM2NWQ0YTg5NDdiMzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNDA3LDYgKzQwNyw3IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3MtCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvc2FuZGJveGluZy9zYW5kYm94LWRp
c2FsbG93LXBvcHVwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
L2Fub255bW91cy1pZnJhbWUvcmVxdWlyZS1jb3JwLWVtYmVkLWFub255bW91cy1pZnJhbWUudGVu
dGF0aXZlLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kv
YmxvYi5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jl
cG9ydGluZy10by1lbmRwb2ludC5odHRwcy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1i
ZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1mcmFtZS1vd25lci5odHRwcy5odG1sIFsgRHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9uYXZpZ2F0ZS10by1hYm91dGJsYW5rLmh0dHBz
Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L25hdmlnYXRlLXRvcC10
by1hYm91dGJsYW5rLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpAQCAt
NzM2LDggKzczNyw3IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L25vLXNlY3VyZS1jb250CiAjIG91ciBsYXlvdXQgdGVz
dHMuIFdlIG1haW50YWluIG91ciBvd24gdmVyc2lvbiBvZiB0aGlzIHRlc3QgaW4gaHR0cC93cHQu
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIFdlIGRvIG5v
dCBzdXBwb3J0IENPRVAgcmVwb3J0aW5nLgotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50
Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorIyBXZSBkbyBub3Qgc3VwcG9ydCByZXBvcnRp
bmcgSlMgQVBJIChodHRwczovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nKS4KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L211
bHRpLWdsb2JhbHMvd29ya2Vycy1jb2VwLXJlcG9ydC5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMg
TmV3bHkgaW1wb3J0ZWQgV1BUIHRlc3RzIHRoYXQgYXJlIGNyYXNoaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25vLWNvcnMtY3NzLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uby1jb3JzLWNzcy13b3Jr
ZXIuanMKaW5kZXggMzIyNmI0ZDVmODU1M2I5ZTdmYjg4NzMyNTgyNTA5MTJjYTU5YTYxYy4uMzY0
ZTA5YzNmOTIzZDkxYmUwZjVmOTNiNWQwMzI0ODA5NmQ3NWJjNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25vLWNvcnMtY3NzLXdvcmtlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbm8tY29ycy1jc3Mtd29ya2Vy
LmpzCkBAIC0xMiw3ICsxMiw3IEBAIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdChldmVudCkKIAogYXN5
bmMgZnVuY3Rpb24gZG9GZXRjaChldmVudCkKIHsKLSAgICBpZiAoZXZlbnQucmVxdWVzdC5kZXN0
aW5hdGlvbiA9PT0gImRvY3VtZW50IikgeworICAgIGlmIChldmVudC5yZXF1ZXN0LmRlc3RpbmF0
aW9uID09PSAiZG9jdW1lbnQiIHx8IGV2ZW50LnJlcXVlc3QuZGVzdGluYXRpb24gPT09ICJpZnJh
bWUiKSB7CiAgICAgICAgIGNvbnN0IGxpbmsgPSBldmVudC5yZXF1ZXN0LnVybC5zdWJzdHJpbmco
ZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZignPycpICsgMSk7CiAgICAgICAgIGNvbnN0IHN0eWxl
ID0gJ2ZvbnQ6IDEycHggImFoZW0iJzsKICAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJl
c3BvbnNlKCI8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZGVyPjxsaW5rIGhyZWY9JyIgKyBsaW5r
ICsgIicgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2Nzcyc+PC9oZWFkZXI+PGJvZHk+PGRp
diBzdHlsZT0nIiArIHN0eWxlICsgIic+dGVzdDwvZGl2PjwvYm9keT48L2h0bWw+IiwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvZGVzdGluYXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1OGE2MjI2OTRiNjZlZWQxOTZhZDU3NGI0OTAwNGRkYmJk
MDVmNzVlLi40NjkzMWNmMTBkZmIxNGQ0MTc3MjI0MjRkNTRlNzNjNjNmMDMxNGQxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9uLWlmcmFtZS5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1pZnJhbWUu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNCBAQAogCi0KIFBBU1MgSW5pdGlhbGl6ZSBn
bG9iYWwgc3RhdGUKLUZBSUwgaWZyYW1lIGZldGNoZXMgd2l0aCBhICJpZnJhbWUiIFJlcXVlc3Qu
ZGVzdGluYXRpb24gYXNzZXJ0X3VucmVhY2hlZDogV3JvbmcgZGVzdGluYXRpb24uIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQorUEFTUyBpZnJhbWUgZmV0Y2hlcyB3aXRoIGEgImlmcmFtZSIgUmVx
dWVzdC5kZXN0aW5hdGlvbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBv
cnRpbmctdG8tZW5kcG9pbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xp
Y3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzZGU1Nzc4
NmRmNTBlMjQ2MGE0MDcyOWQ1ZTIwMGIxZThlMDg4NGI3Li4xYjQ3ZjBmNGJkMGQzMzExNTlhZjE4
OGI2NjM2ODE4NzA0M2FlNjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBv
cnRpbmctdG8tZW5kcG9pbnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEg
KzEsNyBAQAotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4w
LjAuMTo5NDQzL2NvbW1vbi90ZXh0LXBsYWluLnR4dD81NzcwYzQ1MS03NDk0LTQzM2ItOGMwOS1i
MzFmNmVlNGZmYzggYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1Pcmln
aW4tUmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhlYWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0
Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxh
aW4udHh0PzU3NzBjNDUxLTc0OTQtNDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBkdWUgdG8gYWNjZXNz
IGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2
LThlNDAtMDg5MTcyOTZjNGIxJyBpbiBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVt
YmVkZGVyLVBvbGljeS4KLUNPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5ICdodHRw
czovL2xvY2FsaG9zdDo5NDQzL2NvbW1vbi9ibGFuay5odG1sPzk5ZTZlY2VkLWJiMDItNDE4YS1i
OTg4LTIzMzkxODlhMTZhMicgaW4gYSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJl
ZGRlci1Qb2xpY3kuCi1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSAnaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD8wM2ZhM2FhNy0yNDMzLTRlNWQtYWY4
NS1mM2I0NTgxZGU4NmEnIGluIGEgZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRk
ZXItUG9saWN5LgogCi1GQUlMIHN1YnJlc291cmNlIENPUlAgYXNzZXJ0X3VucmVhY2hlZDogQSBy
ZXBvcnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi90
ZXh0LXBsYWluLnR4dD81NzcwYzQ1MS03NDk0LTQzM2ItOGMwOS1iMzFmNmVlNGZmYzggYW5kIHVy
bCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeS9yZXNvdXJjZXMvcmVwb3J0aW5nLWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBv
aW50JTIyKXxoZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxy
ZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3Qg
Zm91bmQuIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBuYXZpZ2F0aW9uIENPUlAgYXNz
ZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovLzEyNy4w
LjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sPzYxY2Y4OTFjLWY0ODAtNDMzNi04ZTQwLTA4OTE3
Mjk2YzRiMSBhbmQgdXJsIGlzIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L3Jlc291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9w
aXBlPWhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBv
cnQtdG89JTIyZW5kcG9pbnQlMjIpfGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
LXJlcG9ydC1vbmx5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9p
bnQlMjIpIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIENPRVAg
dmlvbGF0aW9uIG9uIG5lc3RlZCBmcmFtZSBuYXZpZ2F0aW9uIGFzc2VydF91bnJlYWNoZWQ6IEEg
cmVwb3J0IHdob3NlIGJsb2NrZWRVUkwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24v
YmxhbmsuaHRtbD85OWU2ZWNlZC1iYjAyLTQxOGEtYjk4OC0yMzM5MTg5YTE2YTIgYW5kIHVybCBp
cyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eS9yZXNvdXJjZXMvcmVwb3J0aW5nLWVtcHR5LWZyYW1lLmh0bWw/cGlwZT1oZWFkZXIoY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeSxyZXF1aXJlLWNvcnA7cmVwb3J0LXRvPSUyMmVuZHBvaW50
JTIyKXxoZWFkZXIoY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS1yZXBvcnQtb25seSxyZXF1
aXJlLWNvcnA7cmVwb3J0LXRvPSUyMnJlcG9ydC1vbmx5LWVuZHBvaW50JTIyKSBpcyBub3QgZm91
bmQuIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBUd28gQ09FUCBoZWFkZXJzLCBzcGxp
dCBpbnNpZGUgcmVwb3J0LXRvIHZhbHVlIGFzc2VydF91bnJlYWNoZWQ6IEEgcmVwb3J0IHdob3Nl
IGJsb2NrZWRVUkwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9jb21tb24vYmxhbmsuaHRtbD8w
M2ZhM2FhNy0yNDMzLTRlNWQtYWY4NS1mM2I0NTgxZGU4NmEgYW5kIHVybCBpcyBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMv
cmVwb3J0aW5nLWVtcHR5LWZyYW1lLW11bHRpcGxlLWhlYWRlcnMuaHRtbC5hc2lzIGlzIG5vdCBm
b3VuZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIHN1YnJlc291cmNlIENPUlAKK1BB
U1MgbmF2aWdhdGlvbiBDT1JQCitQQVNTIENPRVAgdmlvbGF0aW9uIG9uIG5lc3RlZCBmcmFtZSBu
YXZpZ2F0aW9uCitQQVNTIFR3byBDT0VQIGhlYWRlcnMsIHNwbGl0IGluc2lkZSByZXBvcnQtdG8g
dmFsdWUKK0ZBSUwgU2hhcmVkIHdvcmtlciBmZXRjaCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlNoYXJl
ZFdvcmtlcihXT1JLRVJfVVJMKScpIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5oZWFkZXJzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBzLmh0bWwuaGVhZGVycwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZjU5MzhjNjc2NGQ3ZWJiMGE3OGIyMDIyYTdkNDhkYTkzMmVjMmIyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBz
Lmh0bWwuaGVhZGVycwpAQCAtMCwwICsxIEBACityZXBvcnQtdG86IHsgImdyb3VwIjogImVuZHBv
aW50IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwgImVuZHBvaW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwv
Y3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50
PWVuZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBvcnQtb25seS1lbmRwb2ludCIsICJtYXhf
YWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogIi9odG1sL2Nyb3NzLW9yaWdp
bi1lbWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBvcnQtb25s
eS1lbmRwb2ludCIgfV0gfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0
aW5nLXRvLWVuZHBvaW50Lmh0dHBzLmh0bWwuc3ViLmhlYWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBv
bGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RhNmFiMjI3MmZjNDg1OGY4YmE0MTE5ZDEzY2EwNzEw
NGM3NjAxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIu
aGVhZGVycworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXJlcG9ydC10bzogeyAiZ3JvdXAi
OiAiZW5kcG9pbnQiLCAibWF4X2FnZSI6IDEwODg2NDAwLCAiZW5kcG9pbnRzIjogW3sgInVybCI6
ICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1lbmRw
b2ludCIgfV0gfSwgeyAiZ3JvdXAiOiAicmVwb3J0LW9ubHktZW5kcG9pbnQiLCAibWF4X2FnZSI6
IDEwODg2NDAwLCAiZW5kcG9pbnRzIjogW3sgInVybCI6ICJodHRwczovL3t7aG9zdHNbXVt3d3dd
fX06e3twb3J0c1todHRwc11bMF19fS9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kv
cmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBvcnQtb25seS1lbmRwb2ludCIgfV0gfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438347</attachid>
            <date>2021-09-16 07:22:59 -0700</date>
            <delta_ts>2021-09-16 10:05:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230269-20210916072258.patch</filename>
            <type>text/plain</type>
            <size>55786</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMyYWZjNTY3ZmNmYTQ4
NmIxNWJiZTUxZTFkZjhjZjg5MDQ0Yjg0Yy4uNzVhNzc3NDcyMjJjMjNkOTNkZjYxNzNlOWI4NTNj
ZjZhMTgzYjI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA5LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHZpb2xhdGlvbnMgcmVw
b3J0aW5nIHN1cHBvcnQgZm9yIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIENP
RVAgaW5oZXJpdGFuY2UgdmlvbGF0aW9uIHJlcG9ydGluZzoKKyAgICAgICAgLSBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLW5hdmlnYXRp
b24tcmVzcG9uc2Uncy1hZGhlcmVuY2UtdG8taXRzLWVtYmVkZGVyLXBvbGljeQorICAgICAgICAt
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI2NoZWNr
LWEtZ2xvYmFsLW9iamVjdCdzLWVtYmVkZGVyLXBvbGljeQorICAgICAgICAtIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3F1ZXVlLWEtY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1pbmhlcml0YW5jZS12aW9sYXRpb24KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgQ09FUCBDT1JQIHZpb2xhdGlvbiByZXBvcnRpbmc6CisgICAgICAgIC0gaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kt
Y2hlY2sKKyAgICAgICAgLSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcXVldWUtYS1j
cm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9ydAorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBGZXRjaCBkZXN0aW5hdGlvbj0iaWZyYW1lIiBiZWNhdXNlIHRo
ZSBDT0VQIHRlc3QgcmVsaWVkIG9uIGl0OgorICAgICAgICAtIGh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNjb25jZXB0LXJlcXVlc3QtZGVzdGluYXRpb24KKworICAgICAgICBObyBuZXcg
dGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlcXVlc3QuaWRsOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRVUkxGb3JSZXBvcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQ09FUENPUlBWaW9sYXRpb24pOgorICAgICAgICAqIGxvYWRl
ci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Lmg6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRWaW9sYXRpb25SZXBv
cnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKToKKyAgICAg
ICAgKiBsb2FkZXIvRmV0Y2hPcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjppc05vblN1YnJl
c291cmNlUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQpOgorICAgICAgICAqIGxv
YWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlc3RpbmF0aW9uRm9yVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKwog
MjAyMS0wOS0xNiAgVHlsZXIgV2lsY29jayA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+IGFuZCBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgZm9udC13
ZWlnaHQgc2hvdWxkIGFsd2F5cyBzZXJpYWxpemUgYXMgYSBudW1iZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjRk
ZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5MWZlMy4uOTZkOGZiMTIyYjk3YjRhNjg3
MWMxYmUwYTE5NGY2MjZhNzRjNjEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0w
OS0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB2aW9s
YXRpb25zIHJlcG9ydGluZyBzdXBwb3J0IGZvciBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNjkK
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBDT0VQIGluaGVyaXRhbmNlIHZpb2xhdGlvbiByZXBvcnRpbmc6CisgICAgICAgIC0g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY2hlY2st
YS1uYXZpZ2F0aW9uLXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRvLWl0cy1lbWJlZGRlci1wb2xpY3kK
KyAgICAgICAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4u
aHRtbCNjaGVjay1hLWdsb2JhbC1vYmplY3Qncy1lbWJlZGRlci1wb2xpY3kKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1h
LWNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3ktaW5oZXJpdGFuY2UtdmlvbGF0aW9uCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIENPRVAgQ09SUCB2aW9sYXRpb24gcmVwb3J0aW5nOgorICAg
ICAgICAtIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjcm9zcy1vcmlnaW4tcmVzb3Vy
Y2UtcG9saWN5LWNoZWNrCisgICAgICAgIC0gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3F1ZXVlLWEtY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS1jb3JwLXZpb2xhdGlvbi1yZXBv
cnQKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmV0Y2ggZGVzdGluYXRpb249ImlmcmFtZSIg
YmVjYXVzZSB0aGUgQ09FUCB0ZXN0IHJlbGllZCBvbiBpdDoKKyAgICAgICAgLSBodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXF1ZXN0LWRlc3RpbmF0aW9uCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpwZXJmb3JtQ09SUENoZWNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVj
a2VyOjppc0FsbG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpyZXNvdXJjZUxvYWRJbmZvKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHROYXZpZ2F0aW9uRm9yQ3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c2hvdWxkSW50ZXJydXB0V29ya2VyTG9hZEZvckNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6Cisg
ICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRDT0VQUG9saWN5SW5o
ZXJpdGVuY2VWaW9sYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ09FUENP
UlBWaW9sYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEt
MDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJpbmct
dXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVxdWVzdC5pZGwKaW5kZXggNDljNDU0ZjM1MDM0MGRmMTQ0NTk3OGVhODJkNjBhMDUwMWYwOWI4
MS4uYzhlODljN2JjYmQ0ZjAwMzA1NmRmYzI2YjAxM2UzODA3OWMxZjgwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbApAQCAtMjYsNyArMjYsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1lbnVtIEZldGNoUmVxdWVzdERlc3RpbmF0aW9uIHsg
IiIsICJhdWRpbyIsICJhdWRpb3dvcmtsZXQiLCAiZG9jdW1lbnQiLCAiZW1iZWQiLCAiZm9udCIs
ICJpbWFnZSIsICJtYW5pZmVzdCIsICJtb2RlbCIsICJvYmplY3QiLCAicGFpbnR3b3JrbGV0Iiwg
InJlcG9ydCIsICJzY3JpcHQiLCAic2VydmljZXdvcmtlciIsICJzaGFyZWR3b3JrZXIiLCAic3R5
bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwgInhzbHQiIH07CitlbnVtIEZldGNoUmVx
dWVzdERlc3RpbmF0aW9uIHsgIiIsICJhdWRpbyIsICJhdWRpb3dvcmtsZXQiLCAiZG9jdW1lbnQi
LCAiZW1iZWQiLCAiZm9udCIsICJpbWFnZSIsICJpZnJhbWUiLCAibWFuaWZlc3QiLCAibW9kZWwi
LCAib2JqZWN0IiwgInBhaW50d29ya2xldCIsICJyZXBvcnQiLCAic2NyaXB0IiwgInNlcnZpY2V3
b3JrZXIiLCAic2hhcmVkd29ya2VyIiwgInN0eWxlIiwgInRyYWNrIiwgInZpZGVvIiwgIndvcmtl
ciIsICJ4c2x0IiB9OwogCiB0eXBlZGVmIChGZXRjaFJlcXVlc3Qgb3IgVVNWU3RyaW5nKSBSZXF1
ZXN0SW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kuY3BwCmluZGV4IDE5MjkyYWQ2M2I2MmI5NzUxNzU2OTFiOGI4NjRkNGQ5ZmQ4
ZDUwMGEuLmU4NGI0NDVlMTIxZDZkNjNiYWFlNzkzNGRhYTVlMjBjYjE4MzlmYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAK
QEAgLTI4LDEyICsyOCwyNiBAQAogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJKU0ZldGNoUmVxdWVzdC5oIgorI2luY2x1
ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFVSTCBjb250ZXh0VVJMRm9yUmVwb3J0
KEZyYW1lJiBmcmFtZSkKK3sKKyAgICBhdXRvIHJlcG9ydFVSTCA9IGZyYW1lLmRvY3VtZW50KCkg
PyBmcmFtZS5kb2N1bWVudCgpLT51cmwoKSA6IGFib3V0QmxhbmtVUkwoKTsKKyAgICBpZiAocmVw
b3J0VVJMLmlzQWJvdXRCbGFuaygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRGcmFtZSA9
IGZyYW1lLnRyZWUoKS5wYXJlbnQoKTsgcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICByZXBvcnRVUkwgPSBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgICAg
IGVsc2UgaWYgKGF1dG8qIG9wZW5lckZyYW1lID0gZnJhbWUubG9hZGVyKCkub3BlbmVyKCk7IG9w
ZW5lckZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gb3BlbmVyRnJh
bWUtPmRvY3VtZW50KCktPnVybCgpOworICAgIH0KKyAgICByZXR1cm4gcmVwb3J0VVJMOworfQor
CiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNv
YnRhaW4tYW4tZW1iZWRkZXItcG9saWN5CiBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5IG9idGFp
bkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CkBAIC05NCw0ICsx
MDgsMjcgQEAgdm9pZCBhZGRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5SGVhZGVycyhSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ3Jvc3MKICAgICB9CiB9CiAKKy8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3F1ZXVlLWEtY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS1pbmhlcml0YW5jZS12aW9sYXRpb24KK3ZvaWQgc2VuZENP
RVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9p
bnQsIENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBVUkwmIGJsb2NrZWRVUkwpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOwor
ICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBlbWJlZGRlck9yaWdp
biwgZW5kcG9pbnQsICJjb2VwIl9zLCBjb250ZXh0VVJMRm9yUmVwb3J0KGZyYW1lKSwgZnJhbWUu
bG9hZGVyKCkudXNlckFnZW50KGJsb2NrZWRVUkwpLCBbJl0oYXV0byYgYm9keSkgeworICAgICAg
ICBib2R5LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPRVBEaXNw
b3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAg
ICAgYm9keS5zZXRTdHJpbmcoInR5cGUiX3MsIHR5cGUpOworICAgICAgICBib2R5LnNldFN0cmlu
ZygiYmxvY2tlZFVSTCJfcywgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQoYmxvY2tl
ZFVSTCkpOworICAgIH0pOworfQorCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
cXVldWUtYS1jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9y
dAordm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQ
RGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGlu
YXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBBU1NFUlQoIWVuZHBvaW50Lmlz
RW1wdHkoKSk7CisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGVt
YmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgImNvZXAiX3MsIGNvbnRleHRVUkxGb3JSZXBvcnQoZnJh
bWUpLCBmcmFtZS5sb2FkZXIoKS51c2VyQWdlbnQoYmxvY2tlZFVSTCksIFsmXShhdXRvJiBib2R5
KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24g
PT0gQ09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2Ui
X3MpOworICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgImNvcnAiKTsKKyAgICAgICAg
Ym9keS5zZXRTdHJpbmcoImJsb2NrZWRVUkwiX3MsIFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9y
UmVwb3J0KGJsb2NrZWRVUkwpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRlc3RpbmF0aW9u
Il9zLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhkZXN0aW5hdGlvbikpOworICAgIH0pOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaAppbmRleCA3NDlmMGM3OWZiM2JhYzVhZmQ5MGFl
YTYxZjlkZGRhYmExNmU3YzI2Li4xM2FmYmY1MjJiODI0MGI1M2ZjNjljYTBkY2Q3ZGQ0ZGU1YWI4
YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5LmgKQEAgLTI1LDEzICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkZldGNoT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZyYW1lOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRh
dGE7CisKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5o
dG1sI2VtYmVkZGVyLXBvbGljeS12YWx1ZQogZW51bSBjbGFzcyBDcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5VmFsdWUgOiBib29sIHsKICAgICBVbnNhZmVOb25lLApAQCAtOTMsNyArOTcsMTEgQEAg
c3RkOjpvcHRpb25hbDxDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5PiBDcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5OjpkZWNvZGUoRGVjb2QKICAgICB9fTsKIH0KIAorZW51bSBjbGFzcyBDT0VQRGlz
cG9zaXRpb24gOiBib29sIHsgUmVwb3J0aW5nICwgRW5mb3JjZSB9OworCiBXRUJDT1JFX0VYUE9S
VCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5IG9idGFpbkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeUhlYWRl
cnMoUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmKTsK
K1dFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihG
cmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBVUkwmIGJsb2NrZWRVUkwpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kQ09FUENPUlBWaW9s
YXRpb24oRnJhbWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBj
b25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24sIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBv
bGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3ku
Y3BwCmluZGV4IGU2MGNmOGM2MTIzZmM1NmMyZTQ3NDdjNjMwYzAyNTNlNmM5YmFkYjEuLmM2NWYx
YjIyZDU3MjhmNTJlODQwZTUwMmU0ZTcwMWRlOWVkMTEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcApAQCAtMzMsMjIgKzMzLDEy
IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGluZ0xvYWRlci5oIgotI2luY2x1ZGUgIlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5o
dG1sI3Nhbml0aXplLXVybC1yZXBvcnQKLXN0YXRpYyBTdHJpbmcgc2FuaXRpemVSZWZlcnJlckZv
clVSTFJlcG9ydChjb25zdCBVUkwmIHJlZmVycmVyKQotewotICAgIFVSTCBzYW5pdGl6ZWRSZWZl
cnJlciA9IHJlZmVycmVyOwotICAgIHNhbml0aXplZFJlZmVycmVyLnJlbW92ZUNyZWRlbnRpYWxz
KCk7Ci0gICAgc2FuaXRpemVkUmVmZXJyZXIucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0g
ICAgcmV0dXJuIHNhbml0aXplZFJlZmVycmVyLnN0cmluZygpOwotfQotCiBzdGF0aWMgQVNDSUlM
aXRlcmFsIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29uc3QgQ3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3lWYWx1ZSYgY29vcCkKIHsKICAgICBzd2l0Y2ggKGNvb3ApIHsKQEAgLTEzOSw0
NCArMTI5LDE3IEBAIHZvaWQgYWRkQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBDcm9zc09yCiAgICAgfQogfQogCi0vLyBodHRw
czovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKLXN0YXRpYyB2b2lkIHNl
bmRDT09QVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkws
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgRnVuY3Rpb248dm9pZChKU09OOjpPYmplY3QmKT4mJiBwb3B1bGF0ZUJvZHkpCi17Ci0gICAg
YXV0byYgcmVwb3J0aW5nRW5kcG9pbnQgPSBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246
OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBv
cnRpbmdFbmRwb2ludDsKLSAgICBpZiAocmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBhdXRvIHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlID0gZnJhbWUu
cGFnZSgpID8gZnJhbWUucGFnZSgpLT5yZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIDogbnVsbHB0
cjsKLSAgICBpZiAoIXJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKQotICAgICAgICByZXR1cm47Ci0g
ICAgYXV0byBlbmRwb2ludFVSTCA9IHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLT5lbmRwb2ludFVS
TChjb29wT3JpZ2luLmRhdGEoKSwgcmVwb3J0aW5nRW5kcG9pbnQpOwotICAgIGlmICghZW5kcG9p
bnRVUkwuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGJvZHkgPSBKU09O
OjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGJvZHktPnNldFN0cmluZygiZGlzcG9zaXRpb24iX3Ms
IGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJf
cyA6ICJlbmZvcmNlIl9zKTsKLSAgICBib2R5LT5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJf
cywgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRp
c3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5
VmFsdWUgOiBjb29wLnZhbHVlKSk7Ci0gICAgcG9wdWxhdGVCb2R5KGJvZHkpOwotCi0gICAgYXV0
byByZXBvcnRPYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIHJlcG9ydE9iamVj
dC0+c2V0U3RyaW5nKCJ0eXBlIl9zLCAiY29vcCJfcyk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRT
dHJpbmcoInVybCJfcywgY29vcFVSTC5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRT
dHJpbmcoInVzZXJfYWdlbnQiLCB1c2VyQWdlbnQpOwotICAgIHJlcG9ydE9iamVjdC0+c2V0SW50
ZWdlcigiYWdlIiwgMCk7IC8vIFdlIGN1cnJlbnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUg
cmVwb3J0cy4KLSAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShi
b2R5KSk7Ci0KLSAgICBhdXRvIHJlcG9ydExpc3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7Ci0g
ICAgcmVwb3J0TGlzdC0+cHVzaE9iamVjdChyZXBvcnRPYmplY3QpOwotCi0gICAgYXV0byByZXBv
cnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7
Ci0gICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkws
IFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdB
UElWaW9sYXRpb24pOwotfQotCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9vcmlnaW4uaHRtbCNjb29wLXZpb2xhdGlvbi1uYXZpZ2F0aW9uLXRvCiB2b2lkIHNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKEZyYW1lJiBmcmFtZSwg
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9u
LCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgcHJldmlvdXNSZXNwb25zZVVSTCwgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBwcmV2
aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCkKIHsKLSAgICBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29vcCwg
ZGlzcG9zaXRpb24sIGNvb3BVUkwsIGNvb3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJv
ZHkpIHsKLSAgICAgICAgYm9keS5zZXRTdHJpbmcoInByZXZpb3VzUmVzcG9uc2VVUkwiX3MsIGNv
b3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMocHJldmlvdXNSZXNwb25zZU9yaWdpbikgPyBzYW5pdGl6
ZVJlZmVycmVyRm9yVVJMUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwpIDogU3RyaW5nKCkpOwor
ICAgIGF1dG8mIGVuZHBvaW50ID0gZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBv
cnRpbmcgPyBjb29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCA6IGNvb3AucmVwb3J0aW5n
RW5kcG9pbnQ7CisgICAgaWYgKGVuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGNvb3BPcmlnaW4u
ZGF0YSgpLCBlbmRwb2ludCwgImNvb3AiX3MsIGNvb3BVUkwsIHVzZXJBZ2VudCwgWyZdKGF1dG8m
IGJvZHkpIHsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRpc3Bvc2l0aW9uIl9zLCBkaXNwb3Np
dGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/ICJyZXBvcnRpbmciX3MgOiAiZW5m
b3JjZSJfcyk7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJlZmZlY3RpdmVQb2xpY3kiX3MsIGNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWVUb0VmZmVjdGl2ZVBvbGljeVN0cmluZyhkaXNwb3Np
dGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25seVZhbHVl
IDogY29vcC52YWx1ZSkpOworICAgICAgICBib2R5LnNldFN0cmluZygicHJldmlvdXNSZXNwb25z
ZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhwcmV2aW91c1Jlc3BvbnNlT3JpZ2lu
KSA/IFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwp
IDogU3RyaW5nKCkpOwogICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgIm5hdmlnYXRp
b24tdG8tcmVzcG9uc2UiX3MpOwogICAgICAgICBib2R5LnNldFN0cmluZygicmVmZXJyZXIiX3Ms
IHJlZmVycmVyKTsKICAgICB9KTsKQEAgLTE4NSw4ICsxNDgsMTQgQEAgdm9pZCBzZW5kVmlvbGF0
aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENyb3Nz
T3JpZ2luT3AKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdp
bi5odG1sI2Nvb3AtdmlvbGF0aW9uLW5hdmlnYXRpb24tZnJvbQogdm9pZCBzZW5kVmlvbGF0aW9u
UmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwg
Y29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwmIG5leHRSZXNwb25zZVVSTCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBuZXh0UmVzcG9u
c2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCkKIHsKLSAgICBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29v
cCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIGNvb3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8m
IGJvZHkpIHsKLSAgICAgICAgYm9keS5zZXRTdHJpbmcoIm5leHRSZXNwb25zZVVSTCJfcywgY29v
cE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhuZXh0UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09PUFJlc3Bv
bnNlTmF2aWdhdGlvblNvdXJjZSA/IHNhbml0aXplUmVmZXJyZXJGb3JVUkxSZXBvcnQobmV4dFJl
c3BvbnNlVVJMKSA6IFN0cmluZygpKTsKKyAgICBhdXRvJiBlbmRwb2ludCA9IGRpc3Bvc2l0aW9u
ID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5n
RW5kcG9pbnQgOiBjb29wLnJlcG9ydGluZ0VuZHBvaW50OworICAgIGlmIChlbmRwb2ludC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0Vu
ZHBvaW50KGZyYW1lLCBjb29wT3JpZ2luLmRhdGEoKSwgZW5kcG9pbnQsICJjb29wIl9zLCBjb29w
VVJMLCB1c2VyQWdlbnQsIFsmXShhdXRvJiBib2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5n
KCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRp
bmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmlu
ZygiZWZmZWN0aXZlUG9saWN5Il9zLCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZl
Y3RpdmVQb2xpY3lTdHJpbmcoZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRp
bmcgPyBjb29wLnJlcG9ydE9ubHlWYWx1ZSA6IGNvb3AudmFsdWUpKTsKKyAgICAgICAgYm9keS5z
ZXRTdHJpbmcoIm5leHRSZXNwb25zZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhu
ZXh0UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSA/IFBp
bmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KG5leHRSZXNwb25zZVVSTCkgOiBTdHJpbmco
KSk7CiAgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJ0eXBlIl9zLCAibmF2aWdhdGlvbi1mcm9tLXJl
c3BvbnNlIl9zKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GZXRjaE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaApp
bmRleCBjN2YzMTM4NDJlMTRkM2RjZmM4M2UwNjJkOTg1NTc0ZGQ1ZmUwZDZjLi4yN2I5OGE5MzIz
MDdmYzU4YzQ1OWQ3MTVjMzE0Y2NjYTY3YzRkOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNo
T3B0aW9ucy5oCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVj
dCBGZXRjaE9wdGlvbnMgewotICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90IHsg
RW1wdHlTdHJpbmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9udCwg
SW1hZ2UsIE1hbmlmZXN0LCBNb2RlbCwgT2JqZWN0LCBQYWludHdvcmtsZXQsIFJlcG9ydCwgU2Ny
aXB0LCBTZXJ2aWNld29ya2VyLCBTaGFyZWR3b3JrZXIsIFN0eWxlLCBUcmFjaywgVmlkZW8sIFdv
cmtlciwgWHNsdCB9OworICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90IHsgRW1w
dHlTdHJpbmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9udCwgSW1h
Z2UsIElmcmFtZSwgTWFuaWZlc3QsIE1vZGVsLCBPYmplY3QsIFBhaW50d29ya2xldCwgUmVwb3J0
LCBTY3JpcHQsIFNlcnZpY2V3b3JrZXIsIFNoYXJlZHdvcmtlciwgU3R5bGUsIFRyYWNrLCBWaWRl
bywgV29ya2VyLCBYc2x0IH07CiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7IE5hdmln
YXRlLCBTYW1lT3JpZ2luLCBOb0NvcnMsIENvcnMgfTsKICAgICBlbnVtIGNsYXNzIENyZWRlbnRp
YWxzIDogdWludDhfdCB7IE9taXQsIFNhbWVPcmlnaW4sIEluY2x1ZGUgfTsKICAgICBlbnVtIGNs
YXNzIENhY2hlIDogdWludDhfdCB7IERlZmF1bHQsIE5vU3RvcmUsIFJlbG9hZCwgTm9DYWNoZSwg
Rm9yY2VDYWNoZSwgT25seUlmQ2FjaGVkIH07CkBAIC04MCw5ICs4MCwxMSBAQCBpbmxpbmUgYm9v
bCBpc1BvdGVudGlhbE5hdmlnYXRpb25PclN1YnJlc291cmNlUmVxdWVzdChGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OkVtYmVkOwogfQogCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
bm9uLXN1YnJlc291cmNlLXJlcXVlc3QKIGlubGluZSBib29sIGlzTm9uU3VicmVzb3VyY2VSZXF1
ZXN0KEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAgICAgcmV0dXJu
IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50CisgICAg
ICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZQog
ICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpSZXBv
cnQKICAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
U2VydmljZXdvcmtlcgogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpTaGFyZWR3b3JrZXIKQEAgLTExMiw2ICsxMTQsNyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24+IHsKICAg
ICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQsCiAgICAgICAg
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkZvbnQsCiAgICAgICAgIFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlLAorICAgICAgICBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUsCiAgICAgICAgIFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246Ok1hbmlmZXN0LAogICAgICAgICBXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6T2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmlu
ZGV4IGI4MGE3ZjliZjUxMDc4MzRiNzU4YjM2ZjdjYzk5MDYzZGMzODVlMWUuLjNlYzNjNTE4Yzc4
OGU1Y2MxZjVmMTg4ZThjNzE1MzFmOTFkYjAzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5j
bHVkZSAiUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9y
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJ
bmZvLmgiCkBAIC0yNDMsNCArMjQ0LDQyIEBAIHZvaWQgUGluZ0xvYWRlcjo6c3RhcnRQaW5nTG9h
ZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSFRUUEhlYWRlCiAgICAg
ZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0UGluZ1Jlc291
cmNlKFdURk1vdmUoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKKy8vIC8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nhbml0aXplLXVybC1y
ZXBvcnQKK1N0cmluZyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChjb25zdCBVUkwm
IHVybCkKK3sKKyAgICBVUkwgc2FuaXRpemVkVVJMID0gdXJsOworICAgIHNhbml0aXplZFVSTC5y
ZW1vdmVDcmVkZW50aWFscygpOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVGcmFnbWVudElkZW50
aWZpZXIoKTsKKyAgICByZXR1cm4gc2FuaXRpemVkVVJMLnN0cmluZygpOwogfQorCisvLyBodHRw
czovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKK3ZvaWQgUGluZ0xvYWRl
cjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEZ1
bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJvZHkpCit7CisgICAg
QVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGUgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGluZ0VuZHBvaW50c0Nh
Y2hlKCkgOiBudWxscHRyOworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUtPmVuZHBvaW50VVJMKG9yaWdpbiwgZW5kcG9pbnQpOworICAgIGlmICghZW5kcG9pbnRVUkwu
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJvZHkgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOworICAgIHBvcHVsYXRlUmVwb3J0Qm9keShib2R5KTsKKworICAgIGF1dG8g
cmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXBvcnRPYmplY3Qt
PnNldFN0cmluZygidHlwZSJfcywgdHlwZSk7CisgICAgaWYgKHJlcG9ydFVSTC5pc1ZhbGlkKCkp
CisgICAgICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIHJlcG9ydFVSTC5zdHJp
bmcoKSk7CisgICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdlbnQiLCB1c2VyQWdl
bnQpOworICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7IC8vIFdlIGN1cnJl
bnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KKyAgICByZXBvcnRPYmplY3Qt
PnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7CisKKyAgICBhdXRvIHJlcG9ydExp
c3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAgcmVwb3J0TGlzdC0+cHVzaE9iamVjdChy
ZXBvcnRPYmplY3QpOworCisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9y
dExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgc2VuZFZpb2xhdGlvblJlcG9ydChm
cmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6
U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCA1ZWNhOThjNzFlZTc4Mjg3ZThh
MzZlNzAzZjc4NzM3OWRhMTE5ODc3Li40Y2U0OTM1ZTcyMTZjY2NiYzU0NTFhODRhZTYyYzhmZjdk
MWM5NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKQEAgLTU3LDYgKzU3LDkgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5n
VVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkws
IFJlZjxGb3JtRGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCisgICAgc3Rh
dGljIFN0cmluZyBzYW5pdGl6ZVVSTEZvclJlcG9ydChjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMg
dm9pZCBzZW5kUmVwb3J0VG9FbmRwb2ludChGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJM
JiByZXBvcnRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBGdW5jdGlvbjx2b2lk
KEpTT046Ok9iamVjdCYpPiYgcG9wdWxhdGVSZXBvcnRCb2R5KTsKKwogcHJpdmF0ZToKICAgICBl
bnVtIGNsYXNzIFNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IE5vLCBZZXMgfTsKICAgICBzdGF0aWMg
dm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0JiwgSFRUUEhlYWRlck1h
cCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFNob3VsZEZvbGxvd1JlZGlyZWN0cywgQ29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwgUmVmZXJyZXJQb2xpY3ksIHN0ZDo6b3B0aW9uYWw8
VmlvbGF0aW9uUmVwb3J0VHlwZT4gPSBzdGQ6Om51bGxvcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTFkZGNk
ZGY1NTU4MGNjOTBiNTUwOTUxNGVlMDc3YzFlODNmNzAyMC4uZmM1NGFjNDZhNTJkMDYwZjcyZTdi
YjE4ZDY1NDgxMWRlZDQ5MGIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03OTUsMTAgKzc5NSwxMSBAQCB2b2lk
IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMoRnJhbWVMb2Fk
ZXImIGZyYW1lTG9hZGVyLCBDYQogICAgIHJlcXVlc3QudXBkYXRlQWNjZXB0RW5jb2RpbmdIZWFk
ZXIoKTsKIH0KIAotc3RhdGljIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb25G
b3JUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCitzdGF0aWMgRmV0Y2hPcHRpb25zOjpE
ZXN0aW5hdGlvbiBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwg
RnJhbWUmIGZyYW1lKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIGZyYW1lLmlzTWFpbkZy
YW1lKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCA6IEZldGNoT3B0aW9u
czo6RGVzdGluYXRpb246OklmcmFtZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpT
VkdEb2N1bWVudFJlc291cmNlOgogICAgICAgICByZXR1cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6RG9jdW1lbnQ7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNv
dXJjZToKQEAgLTg2OCw3ICs4NjksNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAg
TE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3Vy
Y2UgJyUuMjU1cycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1
cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1
ZXN0LmNoYXJzZXQoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSA/IHN0YXRp
Y19jYXN0PGludD4ocmVxdWVzdC5wcmlvcml0eSgpLnZhbHVlKCkpIDogLTEsIGZvclByZWxvYWQg
PT0gRm9yUHJlbG9hZDo6WWVzKTsKIAotICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNl
dChkZXN0aW5hdGlvbkZvclR5cGUodHlwZSkpOworICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25J
Zk5vdFNldChkZXN0aW5hdGlvbkZvclR5cGUodHlwZSwgZnJhbWUpKTsKIAogICAgIC8vIEVudHJ5
IHBvaW50IHRvIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZldGNoLgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVJlcXVlc3Q+IG9yaWdpbmFsUmVxdWVzdDsKQEAgLTg4
MCw3ICs4ODEsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgcHJlcGFyZUZldGNo
KHR5cGUsIHJlcXVlc3QpOwogCi0gICAgaWYgKHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9u
ID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50KSB7CisgICAgaWYgKHJlcXVl
c3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRv
Y3VtZW50IHx8IHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6
RGVzdGluYXRpb246OklmcmFtZSkgewogICAgICAgICAvLyBGSVhNRTogSWRlbnRpZnkgSFNUUyBj
YXNlcyBhbmQgYXZvaWQgYWRkaW5nIHRoZSBoZWFkZXIuIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODg1PgogICAgICAgICBpZiAoIXVybC5wcm90b2NvbElzKCJo
dHRwcyIpKQogICAgICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzLCAiMSJfcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKaW5kZXggMGEzMDcwNzM5MWJmZmZjM2EwZjBjM2UyOWMyYjBmOGEwZmJkZTM1Ni4uMmIy
MTY0MmFmMmEzOGIwYzNkMDY0YzUzYThiMTc3OTFmOGZjYWUwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1NjaGVtZVJlZ2lzdHJ5LmgiCisjaW5j
bHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50UnVsZUxp
c3RSZXN1bHRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oPgpAQCAtMTU4LDYg
KzE1OSwyNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZWRpcmVjdGlvbihSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcQogICAgIH0pOwogfQogCisvLyBodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeS1j
aGVjaworc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VFcnJvcj4gcGVyZm9ybUNPUlBDaGVj
ayhjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiBlbWJlZGRlckNPRVAsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uIGZvck5hdmlnYXRpb24sIE5ldHdvcmtSZXNv
dXJjZUxvYWRlciogbG9hZGVyKQoreworICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9z
c09yaWdpblJlc291cmNlUG9saWN5KENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5z
YWZlTm9uZSwgZW1iZWRkZXJPcmlnaW4sIHVybCwgcmVzcG9uc2UsIGZvck5hdmlnYXRpb24pKQor
ICAgICAgICByZXR1cm4gZXJyb3I7CisKKyAgICBpZiAoZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlW
YWx1ZSA9PSBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQICYmICFl
bWJlZGRlckNPRVAucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSAmJiBsb2Fk
ZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3Vy
Y2VQb2xpY3koZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlWYWx1ZSwgZW1iZWRkZXJPcmlnaW4sIHVy
bCwgcmVzcG9uc2UsIGZvck5hdmlnYXRpb24pKQorICAgICAgICAgICAgbG9hZGVyLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXItPmZyYW1lSUQo
KSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0T25seVJlcG9ydGlu
Z0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZywgbG9hZGVyLT5wYXJhbWV0ZXJz
KCkub3B0aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJMKCkgfSwgbG9h
ZGVyLT5wYWdlSUQoKSk7CisgICAgfQorCisgICAgaWYgKGVtYmVkZGVyQ09FUC52YWx1ZSA9PSBD
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7CisgICAgICAgIGlm
IChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJlc291cmNlUG9saWN5KGVtYmVkZGVy
Q09FUC52YWx1ZSwgZW1iZWRkZXJPcmlnaW4sIHVybCwgcmVzcG9uc2UsIGZvck5hdmlnYXRpb24p
KSB7CisgICAgICAgICAgICBpZiAobG9hZGVyICYmICFlbWJlZGRlckNPRVAucmVwb3J0aW5nRW5k
cG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGxvYWRlci0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2VuZENPRVBDT1JQVmlvbGF0aW9uIHsgbG9hZGVyLT5mcmFtZUlEKCksIGVtYmVk
ZGVyT3JpZ2luLmRhdGEoKSwgZW1iZWRkZXJDT0VQLnJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlz
cG9zaXRpb246OkVuZm9yY2UsIGxvYWRlci0+cGFyYW1ldGVycygpLm9wdGlvbnMuZGVzdGluYXRp
b24sIGxvYWRlci0+Zmlyc3RSZXNwb25zZVVSTCgpIH0sIGxvYWRlci0+cGFnZUlEKCkpOworICAg
ICAgICAgICAgcmV0dXJuIGVycm9yOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Cit9CisKIFJlc291cmNlRXJyb3IgTmV0d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fcmVkaXJlY3RDb3VudCkKQEAgLTE3MCw3ICsxOTIs
NyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogCiAgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgfHwgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0KSB7
CiAgICAgICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmln
YXRlICYmIG1fcGFyZW50T3JpZ2luKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IHZh
bGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShtX3BhcmVudENyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kudmFsdWUsICptX3BhcmVudE9yaWdpbiwgbV91cmwsIHJlc3BvbnNlLCBGb3JOYXZp
Z2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBwZXJmb3JtQ09SUENo
ZWNrKG1fcGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgKm1fcGFyZW50T3JpZ2luLCBt
X3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246OlllcywgbV9uZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7CiAgICAg
ICAgIH0KICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFp
bnRpbmc6OkJhc2ljKTsKQEAgLTE4MSw3ICsyMDMsNyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtM
b2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
cwogICAgICAgICByZXNwb25zZS5zZXRBc1JhbmdlUmVxdWVzdGVkKCk7CiAKICAgICBpZiAobV9v
cHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKLSAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kobV9jcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlLCAqbV9vcmlnaW4sIG1fdXJsLCByZXNwb25zZSwgRm9y
TmF2aWdhdGlvbjo6Tm8pKQorICAgICAgICBpZiAoYXV0byBlcnJvciA9IHBlcmZvcm1DT1JQQ2hl
Y2sobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCAqbV9vcmlnaW4sIG1fdXJsLCByZXNwb25z
ZSwgRm9yTmF2aWdhdGlvbjo6Tm8sIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyLmdldCgpKSkKICAg
ICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7CiAKICAgICAgICAgcmVzcG9uc2Uuc2V0
VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7CkBAIC0yODEsNiAr
MzAzLDcgQEAgYm9vbCBOZXR3b3JrTG9hZENoZWNrZXI6OmlzQWxsb3dlZEJ5Q29udGVudFNlY3Vy
aXR5UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICBjYXNlIEZldGNoT3B0aW9uczo6
RGVzdGluYXRpb246OkVtYmVkOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
Rm9udDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlOgorICAgIGNh
c2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lOgogICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3Q6CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpNb2RlbDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok9iamVj
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBkYzRkNTAyNzk3NDlhNTJmYTc5OTY3NjE4OGY5NThhYzdmMjM1
MDM1Li44M2U4M2JjZTg0ZTdmNDk4Mzg4ZTY5Mjg0ZTkwODEzMjJlYmI4YzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0zOTIsNiArMzkyLDcgQEAgUmVzb3VyY2VMb2FkSW5mbyBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnJlc291cmNlTG9hZEluZm8oKQogICAgICAgICBjYXNlIFdlYkNvcmU6OkZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkF1ZGlvd29ya2xldDoKICAgICAgICAgICAgIHJldHVybiBSZXNv
dXJjZUxvYWRJbmZvOjpUeXBlOjpPdGhlcjsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWU6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3Vy
Y2VMb2FkSW5mbzo6VHlwZTo6RG9jdW1lbnQ7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQ6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VM
b2FkSW5mbzo6VHlwZTo6T2JqZWN0OwpAQCAtNjA2LDMwICs2MDcsNDcgQEAgYm9vbCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnNob3VsZEludGVycnVwdE5hdmlnYXRpb25Gb3JDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWMKICAgICBBU1NFUlQoaXNNYWluUmVzb3VyY2UoKSk7CiAKICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLW5h
dmlnYXRpb24tcmVzcG9uc2Uncy1hZGhlcmVuY2UtdG8taXRzLWVtYmVkZGVyLXBvbGljeQotICAg
IGlmIChtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSAh
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYg
bV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgeworICAgIGlmIChtX3BhcmFtZXRlcnMucGFyZW50
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQIHx8IG1fcGFyYW1ldGVycy5wYXJlbnRDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7CiAgICAgICAgIGF1dG8gcmVz
cG9uc2VDT0VQID0gV2ViQ29yZTo6b2J0YWluQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeShyZXNw
b25zZSwgbnVsbHB0cik7Ci0gICAgICAgIGlmIChyZXNwb25zZUNPRVAudmFsdWUgIT0gV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgeworICAgICAg
ICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0
T25seVZhbHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVx
dWlyZUNPUlAgJiYgcmVzcG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBh
cmVudE9yaWdpbiA9IG1fcGFyYW1ldGVycy5wYXJlbnRPcmlnaW4oKTsgcGFyZW50T3JpZ2luICYm
ICFtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5
UmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgcGFyZW50T3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVycy5wYXJl
bnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCwg
Q09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcsICJuYXZpZ2F0aW9uIl9zLCBtX2ZpcnN0UmVzcG9u
c2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgIT0g
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIHJl
c3BvbnNlQ09FUC52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFs
dWU6OlJlcXVpcmVDT1JQKSB7CiAgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gbWFr
ZVN0cmluZygiUmVmdXNlZCB0byBkaXNwbGF5ICciLCByZXNwb25zZS51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgIicgaW4gYSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kuIik7CiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpBZGRDb25zb2xlTWVzc2FnZSB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCAgTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZSwgY29y
ZUlkZW50aWZpZXIoKSB9LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKKyAgICAgICAgICAgIGlm
IChhdXRvIHBhcmVudE9yaWdpbiA9IG1fcGFyYW1ldGVycy5wYXJlbnRPcmlnaW4oKTsgcGFyZW50
T3JpZ2luICYmICFtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5y
ZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBwYXJlbnRPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLnBhcmVu
dENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3Np
dGlvbjo6RW5mb3JjZSwgIm5hdmlnYXRpb24iX3MsIG1fZmlyc3RSZXNwb25zZVVSTCB9LCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLWdsb2JhbC1vYmplY3Qncy1l
bWJlZGRlci1wb2xpY3kKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1
cHRXb3JrZXJMb2FkRm9yQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMuZGVzdGlu
YXRpb24gIT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNh
ZmVOb25lICYmIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKKyAgICBpZiAobV9wYXJhbWV0
ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCB8fCBtX3BhcmFtZXRlcnMuY3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAgICBhdXRvIHJlc3Bv
bnNlQ09FUCA9IFdlYkNvcmU6Om9idGFpbkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kocmVzcG9u
c2UsIG51bGxwdHIpOwotICAgICAgICBpZiAocmVzcG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6
OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAg
aWYgKG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1
ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQ
ICYmIHJlc3BvbnNlQ09FUC52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5VmFsdWU6OlVuc2FmZU5vbmUpIHsKKyAgICAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuc291
cmNlT3JpZ2luICYmICFtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBv
cnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBt
X3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi0+ZGF0YSgp
LCBtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5UmVwb3J0
aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCAid29ya2VyIGluaXRpYWxp
emF0aW9uIl9zLCBtX2ZpcnN0UmVzcG9uc2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVl
OjpSZXF1aXJlQ09SUCAmJiByZXNwb25zZUNPRVAudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lKSB7CiAgICAgICAgICAgICBTdHJpbmcg
ZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNlZCB0byBsb2FkICciLCByZXNwb25zZS51
cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgIicgd29ya2VyIGJlY2F1c2Ug
b2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4iKTsKICAgICAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsICBNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JN
ZXNzYWdlLCBjb3JlSWRlbnRpZmllcigpIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOworICAg
ICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gJiYgIW1fcGFyYW1ldGVycy5j
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVy
aXRlbmNlVmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5z
b3VyY2VPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwgIndvcmtlciBp
bml0aWFsaXphdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTY0MSw2ICs2NTksOCBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZl
ZFJlc3BvbgogICAgICAgICBkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UocmVjZWl2ZWRS
ZXNwb25zZSk7CiAKICAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsK
KyAgICBpZiAoIW1fZmlyc3RSZXNwb25zZVVSTC5pc1ZhbGlkKCkpCisgICAgICAgIG1fZmlyc3RS
ZXNwb25zZVVSTCA9IG1fcmVzcG9uc2UudXJsKCk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgJiYgbV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKICAgICAg
ICAgYXV0byBpbmZvcm1hdGlvbiA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT50YWtlTmV0d29ya0xv
YWRJbmZvcm1hdGlvbigpOwpAQCAtNjkwLDYgKzcxMCwxOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJl
c3BvbgogICAgIGlmIChtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpVc2UpOwogCisgICAgaWYgKG1fbmV0d29y
a0xvYWRDaGVja2VyKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBtX25ldHdvcmtMb2FkQ2hlY2tl
ci0+dmFsaWRhdGVSZXNwb25zZShtX25ldHdvcmtMb2FkID8gbV9uZXR3b3JrTG9hZC0+Y3VycmVu
dFJlcXVlc3QoKSA6IG9yaWdpbmFsUmVxdWVzdCgpLCBtX3Jlc3BvbnNlKTsKKyAgICAgICAgaWYg
KCFlcnJvci5pc051bGwoKSkgeworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9S
KCJkaWRSZWNlaXZlUmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25z
ZSByZXR1cm5lZCBhbiBlcnJvciAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIs
IGVycm9yLmNvZGU9JWQpIiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOworICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcildIHsKKyAgICAg
ICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9uZXR3b3JrTG9hZCkKKyAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9u
OjpJZ25vcmUpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKGlzTWFpblJlc291cmNlKCkg
JiYgc2hvdWxkSW50ZXJydXB0TG9hZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpb25z
KG1fcmVzcG9uc2UpKSB7CiAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBJbnRlcnJ1cHRpbmcgbWFpbiByZXNvdXJjZSBsb2FkIGR1ZSB0byBDU1Ag
ZnJhbWUtYW5jZXN0b3JzIG9yIFgtRnJhbWUtT3B0aW9ucyIpOwogICAgICAgICBhdXRvIHJlc3Bv
bnNlID0gc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25zZSB7IG1fcmVz
cG9uc2UgfSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NPcmlnaW5T
YWZlKTsKQEAgLTcwNywxOCArNzM5LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsKICAgICB9
CiAKLSAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAgYXV0byBlcnJvciA9
IG1fbmV0d29ya0xvYWRDaGVja2VyLT52YWxpZGF0ZVJlc3BvbnNlKG1fbmV0d29ya0xvYWQgPyBt
X25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpIDogb3JpZ2luYWxSZXF1ZXN0KCksIG1fcmVz
cG9uc2UpOwotICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBMT0FE
RVJfUkVMRUFTRV9MT0dfRVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogTmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21haW49JSIg
UFVCTElDX0xPR19TVFJJTkcgIiwgZXJyb3IuY29kZT0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4
KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7Ci0gICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3IgPSBXVEZN
b3ZlKGVycm9yKV0gewotICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX25ldHdv
cmtMb2FkKQotICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWlsTG9hZGlu
ZyhlcnJvcik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBh
dXRvIHJlc3BvbnNlID0gc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25z
ZSB7IG1fcmVzcG9uc2UgfSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jv
c3NPcmlnaW5TYWZlKTsKICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIExPQURF
Ul9SRUxFQVNFX0xPRygiZGlkUmVjZWl2ZVJlc3BvbnNlOiBVc2luZyByZXNwb25zZSBmb3Igc3lu
Y2hyb25vdXMgbG9hZCIpOwpAQCAtOTAyLDYgKzkyMiw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsCiAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiIp
OwogICAgICsrbV9yZWRpcmVjdENvdW50OwogICAgIG1fcmVkaXJlY3RSZXNwb25zZSA9IHJlZGly
ZWN0UmVzcG9uc2U7CisgICAgaWYgKCFtX2ZpcnN0UmVzcG9uc2VVUkwuaXNWYWxpZCgpKQorICAg
ICAgICBtX2ZpcnN0UmVzcG9uc2VVUkwgPSByZWRpcmVjdFJlc3BvbnNlLnVybCgpOwogCiAgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YT4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXgg
NTZmOTJlNmQ3YTNjNzkzMWEwOGYyOWVlZjA1OTg1Y2QzNWViNDFkMS4uZmIxYmYwZTVjMWFkYjQ0
MTczMDVmODYzYTBmYjFjNTZjOGMxMjQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0xMDIsNiArMTAyLDcgQEAg
cHVibGljOgogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KICAgICBjb25zdCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsg
fQogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3Jlc291cmNlTG9hZElEOyB9CisgICAgY29uc3QgVVJMJiBmaXJzdFJlc3BvbnNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFJlc3BvbnNlVVJMOyB9CiAKICAgICBOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQgZ2xvYmFsRnJhbWVJRCgpIHsgcmV0dXJuIHsgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VQcm94eUlELCBwYWdlSUQoKSwgZnJhbWVJRCgpIH07IH0KIApAQCAtMjU1LDYg
KzI1Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciBtX3Jlc291cmNlTG9hZElEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9y
ZWRpcmVjdFJlc3BvbnNlOworICAgIFVSTCBtX2ZpcnN0UmVzcG9uc2VVUkw7IC8vIEZpcnN0IFVS
TCBpbiByZXNwb25zZSdzIFVSTCBsaXN0IChodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
Y29uY2VwdC1yZXNwb25zZS11cmwtbGlzdCkuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNkMTE2ZGJjNmJj
YWI0NzU1NGVmYzI0NGMyNzFiMWJjZWEzZjQxZjMuLmRjNzYzYmYxZTgzNDRiYjVmM2QxN2U2NDQ5
OTc5Zjk2MWZmZWI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtNjg4LDYgKzY4OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24nOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkNPRVBE
aXNwb3NpdGlvbic6IFsnPFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJDb3Jl
L0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxYWJkZjdl
MDQyNDg4ZTZjNWU5ODc0MDM1NGE1ZWZmOWE4ZWI4ZjQ1Li5kY2Q0NzVkOGQzYmRjZjUxNzgzMGU3
ZTU0YmQ0ZWE2Mzc2NmE0ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMTYxLDYgKzE2MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db21t
b25WTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVDb250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9D
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFj
Y2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KQEAgLTQzMzUsNiArNDMzNiwxOCBAQCB2b2lkIFdlYlBh
Z2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFVSTCYgcmVwb3J0VQogICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpm
cmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZp
b2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZTo6c2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBpZiAoYXV0byogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsgZnJhbWUtPmNvcmVG
cmFtZSgpKQorICAgICAgICBXZWJDb3JlOjpzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0
aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCksIGVtYmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgZGlzcG9z
aXRpb24sIHR5cGUsIGJsb2NrZWRVUkwpOworfQorCit2b2lkIFdlYlBhZ2U6OnNlbmRDT0VQQ09S
UFZpb2xhdGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0
aW9uIGRpc3Bvc2l0aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBj
b25zdCBVUkwmIGJsb2NrZWRVUkwpCit7CisgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7IGZyYW1lLT5jb3JlRnJhbWUoKSkKKyAg
ICAgICAgV2ViQ29yZTo6c2VuZENPRVBDT1JQVmlvbGF0aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCks
IGVtYmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgZGlzcG9zaXRpb24sIGRlc3RpbmF0aW9uLCBibG9j
a2VkVVJMKTsKK30KKwogdm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdmNjVkMmI0ODM1NGI4NGIwMDUyYjcwZjc0OGUyYTY0
YzliODVmNjcuLmEwYWU1ZDdhYWNmNGNiNTNiYWM2MjllNzM4NGY5NGUzMzI2MjFmOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyMCw2ICsyMjAs
NyBAQCBjbGFzcyBIVE1MTW9kZWxFbGVtZW50OwogI2VuZGlmCiAKIGVudW0gU3ludGhldGljQ2xp
Y2tUeXBlIDogaW50OF90OworZW51bSBjbGFzcyBDT0VQRGlzcG9zaXRpb24gOiBib29sOwogZW51
bSBjbGFzcyBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2w7CiBlbnVtIGNsYXNzIERP
TVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnQXBwbGljYXRp
b25GbGFncyA6IHVpbnQ4X3Q7CkBAIC00MzgsNiArNDM5LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVxdWVzdElEID0gMCk7
CiAgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CisgICAg
dm9pZCBzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdp
biwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CisgICAgdm9pZCBzZW5kQ09F
UENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50
LCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24sIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQg
YnkgdGhlIERyYXdpbmdBcmVhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMGM1OWM5MTMwZWEyNWI3YmQ2MGI1ZTg0
NWZkNWUzZTU1ZDBjZmE5MC4uMTI3MzM5NzhjZGI3ODkyMjAzMzliZGRhNGE1ZGI1MmY3OGYzMGE2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogCiAgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJj
ZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1l
c3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgU2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZp
b2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVt
OmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBTdHJpbmcgdHlwZSwg
VVJMIGJsb2NrZWRVUkwpCisgICAgU2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGVt
YmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5kcG9pbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlz
cG9zaXRpb24gZGlzcG9zaXRpb24sIGVudW06dWludDhfdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBVUkwgYmxvY2tlZFVSTCkKICAgICBFbnF1ZXVlU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQp
CiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJjOWQwNmVlM2E1
NTk3MmZlOWMwN2FkZmZmYmNjYjM1OWI4MTY2OGQuLjNiZTg2YzY1MTQzMjgyMzVkZGRlODRmNjI1
MDA0OWE5YzlhYzhlODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0xNSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB2aW9sYXRpb25zIHJlcG9y
dGluZyBzdXBwb3J0IGZvciBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgVW5za2lwIHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4KKworICAgICAgICAqIGh0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uby1jb3JzLWNzcy13b3JrZXIuanM6CisgICAgICAgIChh
c3luYyBkb0ZldGNoKToKKyAgICAgICAgRml4IGV4aXN0aW5nIHRlc3Qgbm93IHRoYXQgSSBhZGRl
ZCBzdXBwb3J0IGZvciBGZXRjaCBkZXN0aW5hdGlvbj0iaWZyYW1lIi4KKwogMjAyMS0wOS0xNiAg
VHlsZXIgV2lsY29jayA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+IGFuZCBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgZm9udC13ZWlnaHQgc2hvdWxk
IGFsd2F5cyBzZXJpYWxpemUgYXMgYSBudW1iZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDhiNWRhN2FjMzRhNDkwMDExY2E3MTJiNGMwMjBjYzY3YWE5MjlmZmIuLjc4ODJiZGQw
MGRmMWMwNjcxZTExZWJhMWQ5YTNjODJhMWIxNGI1MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA5LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHZpb2xhdGlvbnMgcmVwb3J0aW5nIHN1cHBvcnQg
Zm9yIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvZGVzdGluYXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgUmViYXNlbGluZSB0ZXN0IHRoYXQgaXMgcGFzc2luZyBub3cgdGhhdCB3
ZSBzdXBwb3J0IEZldGNoIGRlc3RpbmF0aW9uPSJpZnJhbWUiLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmct
dG8tZW5kcG9pbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIHRlc3Qg
dGhhdCBpcyBwYXNzaW5nIG5vdyB0aGF0IHdlIHN1cHBvcnQgcmVwb3J0aW5nIGZvciBDT0VQIHZp
b2xhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5o
ZWFkZXJzOgorICAgICAgICBNZXJnZSBmaXggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9wdWxsLzMwNzg1IHNvIHRoYXQgdGhlIHRlc3QgY2FuIHJ1biB3aXRo
aW4KKyAgICAgICAgdGhlIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlLgorCiAyMDIxLTA5LTE2
ICBUeWxlciBXaWxjb2NrIDx0d2lsY28ub0Bwcm90b25tYWlsLmNvbT4gYW5kIE15bGVzIEMuIE1h
eGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBmb250LXdlaWdodCBzaG91
bGQgYWx3YXlzIHNlcmlhbGl6ZSBhcyBhIG51bWJlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTE2
OGJkYWQ3YjgyNmNkMjE4ZTNkZjNhMTJlMjVkZTViYjJiMTU1Yy4uMzAzOWYyNzQ2MjM5YjMzYjk5
N2JkNjIxZGRkNDFjNWUwNGU4MmQ5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00MDcsNiArNDA3
LDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL29yaWdp
bi9jcm9zcy1vcmlnaW4tb2JqZWN0cy9jcm9zcy0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy9zYW5kYm94aW5nL3NhbmRib3gtZGlzYWxsb3ctcG9wdXBzLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvYW5vbnltb3VzLWlmcmFt
ZS9yZXF1aXJlLWNvcnAtZW1iZWQtYW5vbnltb3VzLWlmcmFtZS50ZW50YXRpdmUuaHR0cHMuaHRt
bCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9ibG9iLmh0dHBzLmh0bWwg
WyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBv
aW50Lmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVw
b3J0aW5nLXRvLWZyYW1lLW93bmVyLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L25hdmlnYXRlLXRvLWFib3V0YmxhbmsuaHR0cHMuaHRtbCBbIER1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG9wLXRvLWFib3V0YmxhbmsuaHR0
cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCkBAIC03MzYsOCArNzM3LDcgQEAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3kvbm8tc2VjdXJlLWNvbnQKICMgb3VyIGxheW91dCB0ZXN0cy4gV2UgbWFpbnRhaW4g
b3VyIG93biB2ZXJzaW9uIG9mIHRoaXMgdGVzdCBpbiBodHRwL3dwdC4KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcXVp
cmUtY29ycC5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgV2UgZG8gbm90IHN1cHBvcnQgQ09FUCBy
ZXBvcnRpbmcuCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCisjIFdlIGRvIG5vdCBzdXBwb3J0IHJlcG9ydGluZyBKUyBBUEkgKGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9yZXBvcnRpbmcpLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvbXVsdGktZ2xvYmFscy93b3Jr
ZXJzLWNvZXAtcmVwb3J0Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBOZXdseSBpbXBvcnRlZCBX
UFQgdGVzdHMgdGhhdCBhcmUgY3Jhc2hpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvbm8tY29ycy1jc3Mtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL25vLWNvcnMtY3NzLXdvcmtlci5qcwppbmRleCAzMjI2
YjRkNWY4NTUzYjllN2ZiODg3MzI1ODI1MDkxMmNhNTlhNjFjLi4zNjRlMDljM2Y5MjNkOTFiZTBm
NWY5M2I1ZDAzMjQ4MDk2ZDc1YmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvbm8tY29ycy1jc3Mtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uby1jb3JzLWNzcy13b3JrZXIuanMKQEAgLTEyLDcgKzEy
LDcgQEAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KGV2ZW50KQogCiBhc3luYyBmdW5jdGlvbiBkb0Zl
dGNoKGV2ZW50KQogewotICAgIGlmIChldmVudC5yZXF1ZXN0LmRlc3RpbmF0aW9uID09PSAiZG9j
dW1lbnQiKSB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QuZGVzdGluYXRpb24gPT09ICJkb2N1bWVu
dCIgfHwgZXZlbnQucmVxdWVzdC5kZXN0aW5hdGlvbiA9PT0gImlmcmFtZSIpIHsKICAgICAgICAg
Y29uc3QgbGluayA9IGV2ZW50LnJlcXVlc3QudXJsLnN1YnN0cmluZyhldmVudC5yZXF1ZXN0LnVy
bC5pbmRleE9mKCc/JykgKyAxKTsKICAgICAgICAgY29uc3Qgc3R5bGUgPSAnZm9udDogMTJweCAi
YWhlbSInOwogICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoIjwhRE9DVFlQ
RSBodG1sPjxodG1sPjxoZWFkZXI+PGxpbmsgaHJlZj0nIiArIGxpbmsgKyAiJyByZWw9J3N0eWxl
c2hlZXQnIHR5cGU9J3RleHQvY3NzJz48L2hlYWRlcj48Ym9keT48ZGl2IHN0eWxlPSciICsgc3R5
bGUgKyAiJz50ZXN0PC9kaXY+PC9ib2R5PjwvaHRtbD4iLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0
aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1pZnJhbWUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9kZXN0aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1pZnJhbWUuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDU4YTYyMjY5NGI2NmVlZDE5NmFkNTc0YjQ5MDA0ZGRiYmQwNWY3NWUuLjQ2OTMxY2Yx
MGRmYjE0ZDQxNzcyMjQyNGQ1NGU3M2M2M2YwMzE0ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGlu
YXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9uLWlmcmFtZS5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw0IEBACiAKLQogUEFTUyBJbml0aWFsaXplIGdsb2JhbCBzdGF0ZQotRkFJ
TCBpZnJhbWUgZmV0Y2hlcyB3aXRoIGEgImlmcmFtZSIgUmVxdWVzdC5kZXN0aW5hdGlvbiBhc3Nl
cnRfdW5yZWFjaGVkOiBXcm9uZyBkZXN0aW5hdGlvbi4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2Rl
CitQQVNTIGlmcmFtZSBmZXRjaGVzIHdpdGggYSAiaWZyYW1lIiBSZXF1ZXN0LmRlc3RpbmF0aW9u
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2lu
dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8t
ZW5kcG9pbnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDNkZTU3Nzg2ZGY1MGUyNDYwYTQwNzI5
ZDVlMjAwYjFlOGUwODg0YjcuLjFiNDdmMGY0YmQwZDMzMTE1OWFmMTg4YjY2MzY4MTg3MDQzYWU2
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2lu
dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5n
LXRvLWVuZHBvaW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMSArMSw3IEBACi1DT05TT0xF
IE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9u
L3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQtNDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBiZWNh
dXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xp
Y3kgcmVzcG9uc2UgaGVhZGVyLgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxv
YWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vdGV4dC1wbGFpbi50eHQ/NTc3MGM0NTEt
NzQ5NC00MzNiLThjMDktYjMxZjZlZTRmZmM4IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3Mu
Ci1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSAnaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0My9jb21tb24vYmxhbmsuaHRtbD82MWNmODkxYy1mNDgwLTQzMzYtOGU0MC0wODkxNzI5NmM0
YjEnIGluIGEgZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Lgot
Q09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgJ2h0dHBzOi8vbG9jYWxob3N0Ojk0
NDMvY29tbW9uL2JsYW5rLmh0bWw/OTllNmVjZWQtYmIwMi00MThhLWI5ODgtMjMzOTE4OWExNmEy
JyBpbiBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4KLUNP
TlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5ICdodHRwczovL2xvY2FsaG9zdDo5NDQz
L2NvbW1vbi9ibGFuay5odG1sPzAzZmEzYWE3LTI0MzMtNGU1ZC1hZjg1LWYzYjQ1ODFkZTg2YScg
aW4gYSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kuCiAKLUZB
SUwgc3VicmVzb3VyY2UgQ09SUCBhc3NlcnRfdW5yZWFjaGVkOiBBIHJlcG9ydCB3aG9zZSBibG9j
a2VkVVJMIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxhaW4udHh0PzU3
NzBjNDUxLTc0OTQtNDMzYi04YzA5LWIzMWY2ZWU0ZmZjOCBhbmQgdXJsIGlzIGh0dHBzOi8vbG9j
YWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jlc291cmNlcy9y
ZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIyZW5kcG9pbnQlMjIpfGhlYWRlcihj
cm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1vbmx5LHJlcXVpcmUtY29ycDtyZXBv
cnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCi1GQUlMIG5hdmlnYXRpb24gQ09SUCBhc3NlcnRfdW5yZWFjaGVkOiBB
IHJlcG9ydCB3aG9zZSBibG9ja2VkVVJMIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9u
L2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2LThlNDAtMDg5MTcyOTZjNGIxIGFuZCB1cmwg
aXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xp
Y3kvcmVzb3VyY2VzL3JlcG9ydGluZy1lbXB0eS1mcmFtZS5odG1sP3BpcGU9aGVhZGVyKGNyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kscmVxdWlyZS1jb3JwO3JlcG9ydC10bz0lMjJlbmRwb2lu
dCUyMil8aGVhZGVyKGNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3ktcmVwb3J0LW9ubHkscmVx
dWlyZS1jb3JwO3JlcG9ydC10bz0lMjJyZXBvcnQtb25seS1lbmRwb2ludCUyMikgaXMgbm90IGZv
dW5kLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgQ09FUCB2aW9sYXRpb24gb24gbmVz
dGVkIGZyYW1lIG5hdmlnYXRpb24gYXNzZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxv
Y2tlZFVSTCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2NvbW1vbi9ibGFuay5odG1sPzk5ZTZl
Y2VkLWJiMDItNDE4YS1iOTg4LTIzMzkxODlhMTZhMiBhbmQgdXJsIGlzIGh0dHBzOi8vbG9jYWxo
b3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jlc291cmNlcy9yZXBv
cnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIyZW5kcG9pbnQlMjIpfGhlYWRlcihjcm9z
cy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1vbmx5LHJlcXVpcmUtY29ycDtyZXBvcnQt
dG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJl
YWNoYWJsZSBjb2RlCi1GQUlMIFR3byBDT0VQIGhlYWRlcnMsIHNwbGl0IGluc2lkZSByZXBvcnQt
dG8gdmFsdWUgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBo
dHRwczovL2xvY2FsaG9zdDo5NDQzL2NvbW1vbi9ibGFuay5odG1sPzAzZmEzYWE3LTI0MzMtNGU1
ZC1hZjg1LWYzYjQ1ODFkZTg2YSBhbmQgdXJsIGlzIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRt
bC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jlc291cmNlcy9yZXBvcnRpbmctZW1wdHkt
ZnJhbWUtbXVsdGlwbGUtaGVhZGVycy5odG1sLmFzaXMgaXMgbm90IGZvdW5kLiBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKK1BBU1Mgc3VicmVzb3VyY2UgQ09SUAorUEFTUyBuYXZpZ2F0aW9uIENP
UlAKK1BBU1MgQ09FUCB2aW9sYXRpb24gb24gbmVzdGVkIGZyYW1lIG5hdmlnYXRpb24KK1BBU1Mg
VHdvIENPRVAgaGVhZGVycywgc3BsaXQgaW5zaWRlIHJlcG9ydC10byB2YWx1ZQorRkFJTCBTaGFy
ZWQgd29ya2VyIGZldGNoIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChl
dmFsdWF0aW5nICduZXcgaWZyYW1lLmNvbnRlbnRXaW5kb3cuU2hhcmVkV29ya2VyKFdPUktFUl9V
UkwpJykiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1l
bmRwb2ludC5odHRwcy5odG1sLmhlYWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRp
bmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5oZWFkZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmNTkzOGM2NzY0
ZDdlYmIwYTc4YjIwMjJhN2Q0OGRhOTMyZWMyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVt
YmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRtbC5oZWFkZXJzCkBA
IC0wLDAgKzEgQEAKK3JlcG9ydC10bzogeyAiZ3JvdXAiOiAiZW5kcG9pbnQiLCAibWF4X2FnZSI6
IDEwODg2NDAwLCAiZW5kcG9pbnRzIjogW3sgInVybCI6ICIvaHRtbC9jcm9zcy1vcmlnaW4tZW1i
ZWRkZXItcG9saWN5L3Jlc291cmNlcy9yZXBvcnQucHk/ZW5kcG9pbnQ9ZW5kcG9pbnQiIH1dIH0s
IHsgImdyb3VwIjogInJlcG9ydC1vbmx5LWVuZHBvaW50IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwg
ImVuZHBvaW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PXJlcG9ydC1vbmx5LWVuZHBvaW50IiB9XSB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQu
aHR0cHMuaHRtbC5zdWIuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10
by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjZGE2YWIyMjcyZmM0ODU4ZjhiYTQxMTlkMTNjYTA3MTA0Yzc2MDFmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9s
aWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5oZWFkZXJzCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotcmVwb3J0LXRvOiB7ICJncm91cCI6ICJlbmRwb2ludCIsICJt
YXhfYWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAidXJsIjogImh0dHBzOi8ve3tob3N0
c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVuZHBvaW50IiB9XSB9LCB7ICJn
cm91cCI6ICJyZXBvcnQtb25seS1lbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0MDAsICJlbmRw
b2ludHMiOiBbeyAidXJsIjogImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBz
XVswXX19L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNvdXJjZXMvcmVwb3J0
LnB5P2VuZHBvaW50PXJlcG9ydC1vbmx5LWVuZHBvaW50IiB9XSB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438362</attachid>
            <date>2021-09-16 10:05:19 -0700</date>
            <delta_ts>2021-09-16 14:58:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230269-20210916100518.patch</filename>
            <type>text/plain</type>
            <size>55769</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMyYWZjNTY3ZmNmYTQ4
NmIxNWJiZTUxZTFkZjhjZjg5MDQ0Yjg0Yy4uY2NlOTZjNTNiNmY1ZDNhZjJmNjM4M2NiZmQzYzBm
ZjQyZGE3M2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA5LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHZpb2xhdGlvbnMgcmVw
b3J0aW5nIHN1cHBvcnQgZm9yIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIENP
RVAgaW5oZXJpdGFuY2UgdmlvbGF0aW9uIHJlcG9ydGluZzoKKyAgICAgICAgLSBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLW5hdmlnYXRp
b24tcmVzcG9uc2Uncy1hZGhlcmVuY2UtdG8taXRzLWVtYmVkZGVyLXBvbGljeQorICAgICAgICAt
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI2NoZWNr
LWEtZ2xvYmFsLW9iamVjdCdzLWVtYmVkZGVyLXBvbGljeQorICAgICAgICAtIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3F1ZXVlLWEtY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS1pbmhlcml0YW5jZS12aW9sYXRpb24KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgQ09FUCBDT1JQIHZpb2xhdGlvbiByZXBvcnRpbmc6CisgICAgICAgIC0gaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kt
Y2hlY2sKKyAgICAgICAgLSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcXVldWUtYS1j
cm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9ydAorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBGZXRjaCBkZXN0aW5hdGlvbj0iaWZyYW1lIiBiZWNhdXNlIHRo
ZSBDT0VQIHRlc3QgcmVsaWVkIG9uIGl0OgorICAgICAgICAtIGh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNjb25jZXB0LXJlcXVlc3QtZGVzdGluYXRpb24KKworICAgICAgICBObyBuZXcg
dGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlcXVlc3QuaWRsOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRVUkxGb3JSZXBvcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQ09FUENPUlBWaW9sYXRpb24pOgorICAgICAgICAqIGxvYWRl
ci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Lmg6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRWaW9sYXRpb25SZXBv
cnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKToKKyAgICAg
ICAgKiBsb2FkZXIvRmV0Y2hPcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjppc05vblN1YnJl
c291cmNlUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQpOgorICAgICAgICAqIGxv
YWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlc3RpbmF0aW9uRm9yVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKwog
MjAyMS0wOS0xNiAgVHlsZXIgV2lsY29jayA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+IGFuZCBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgZm9udC13
ZWlnaHQgc2hvdWxkIGFsd2F5cyBzZXJpYWxpemUgYXMgYSBudW1iZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjRk
ZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5MWZlMy4uZGExODA5YTNlOTNkNDg4ZTMw
OGIwZTQ0NmZlNmE4NzY0MDg4MjQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0w
OS0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB2aW9s
YXRpb25zIHJlcG9ydGluZyBzdXBwb3J0IGZvciBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNjkK
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBDT0VQIGluaGVyaXRhbmNlIHZpb2xhdGlvbiByZXBvcnRpbmc6CisgICAgICAgIC0g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY2hlY2st
YS1uYXZpZ2F0aW9uLXJlc3BvbnNlJ3MtYWRoZXJlbmNlLXRvLWl0cy1lbWJlZGRlci1wb2xpY3kK
KyAgICAgICAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4u
aHRtbCNjaGVjay1hLWdsb2JhbC1vYmplY3Qncy1lbWJlZGRlci1wb2xpY3kKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNxdWV1ZS1h
LWNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3ktaW5oZXJpdGFuY2UtdmlvbGF0aW9uCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIENPRVAgQ09SUCB2aW9sYXRpb24gcmVwb3J0aW5nOgorICAg
ICAgICAtIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjcm9zcy1vcmlnaW4tcmVzb3Vy
Y2UtcG9saWN5LWNoZWNrCisgICAgICAgIC0gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3F1ZXVlLWEtY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS1jb3JwLXZpb2xhdGlvbi1yZXBv
cnQKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmV0Y2ggZGVzdGluYXRpb249ImlmcmFtZSIg
YmVjYXVzZSB0aGUgQ09FUCB0ZXN0IHJlbGllZCBvbiBpdDoKKyAgICAgICAgLSBodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXF1ZXN0LWRlc3RpbmF0aW9uCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpwZXJmb3JtQ09SUENoZWNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVj
a2VyOjppc0FsbG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpyZXNvdXJjZUxvYWRJbmZvKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHROYXZpZ2F0aW9uRm9yQ3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c2hvdWxkSW50ZXJydXB0V29ya2VyTG9hZEZvckNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6Cisg
ICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRDT0VQUG9saWN5SW5o
ZXJpdGVuY2VWaW9sYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ09FUENP
UlBWaW9sYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEt
MDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJpbmct
dXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVxdWVzdC5pZGwKaW5kZXggNDljNDU0ZjM1MDM0MGRmMTQ0NTk3OGVhODJkNjBhMDUwMWYwOWI4
MS4uYzhlODljN2JjYmQ0ZjAwMzA1NmRmYzI2YjAxM2UzODA3OWMxZjgwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbApAQCAtMjYsNyArMjYsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1lbnVtIEZldGNoUmVxdWVzdERlc3RpbmF0aW9uIHsg
IiIsICJhdWRpbyIsICJhdWRpb3dvcmtsZXQiLCAiZG9jdW1lbnQiLCAiZW1iZWQiLCAiZm9udCIs
ICJpbWFnZSIsICJtYW5pZmVzdCIsICJtb2RlbCIsICJvYmplY3QiLCAicGFpbnR3b3JrbGV0Iiwg
InJlcG9ydCIsICJzY3JpcHQiLCAic2VydmljZXdvcmtlciIsICJzaGFyZWR3b3JrZXIiLCAic3R5
bGUiLCAidHJhY2siLCAidmlkZW8iLCAid29ya2VyIiwgInhzbHQiIH07CitlbnVtIEZldGNoUmVx
dWVzdERlc3RpbmF0aW9uIHsgIiIsICJhdWRpbyIsICJhdWRpb3dvcmtsZXQiLCAiZG9jdW1lbnQi
LCAiZW1iZWQiLCAiZm9udCIsICJpbWFnZSIsICJpZnJhbWUiLCAibWFuaWZlc3QiLCAibW9kZWwi
LCAib2JqZWN0IiwgInBhaW50d29ya2xldCIsICJyZXBvcnQiLCAic2NyaXB0IiwgInNlcnZpY2V3
b3JrZXIiLCAic2hhcmVkd29ya2VyIiwgInN0eWxlIiwgInRyYWNrIiwgInZpZGVvIiwgIndvcmtl
ciIsICJ4c2x0IiB9OwogCiB0eXBlZGVmIChGZXRjaFJlcXVlc3Qgb3IgVVNWU3RyaW5nKSBSZXF1
ZXN0SW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3kuY3BwCmluZGV4IDE5MjkyYWQ2M2I2MmI5NzUxNzU2OTFiOGI4NjRkNGQ5ZmQ4
ZDUwMGEuLmU4NGI0NDVlMTIxZDZkNjNiYWFlNzkzNGRhYTVlMjBjYjE4MzlmYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5jcHAK
QEAgLTI4LDEyICsyOCwyNiBAQAogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJKU0ZldGNoUmVxdWVzdC5oIgorI2luY2x1
ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFVSTCBjb250ZXh0VVJMRm9yUmVwb3J0
KEZyYW1lJiBmcmFtZSkKK3sKKyAgICBhdXRvIHJlcG9ydFVSTCA9IGZyYW1lLmRvY3VtZW50KCkg
PyBmcmFtZS5kb2N1bWVudCgpLT51cmwoKSA6IGFib3V0QmxhbmtVUkwoKTsKKyAgICBpZiAocmVw
b3J0VVJMLmlzQWJvdXRCbGFuaygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRGcmFtZSA9
IGZyYW1lLnRyZWUoKS5wYXJlbnQoKTsgcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICByZXBvcnRVUkwgPSBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgICAg
IGVsc2UgaWYgKGF1dG8qIG9wZW5lckZyYW1lID0gZnJhbWUubG9hZGVyKCkub3BlbmVyKCk7IG9w
ZW5lckZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmVwb3J0VVJMID0gb3BlbmVyRnJh
bWUtPmRvY3VtZW50KCktPnVybCgpOworICAgIH0KKyAgICByZXR1cm4gcmVwb3J0VVJMOworfQor
CiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNv
YnRhaW4tYW4tZW1iZWRkZXItcG9saWN5CiBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5IG9idGFp
bkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CkBAIC05NCw0ICsx
MDgsMjcgQEAgdm9pZCBhZGRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5SGVhZGVycyhSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgQ3Jvc3MKICAgICB9CiB9CiAKKy8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3F1ZXVlLWEtY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS1pbmhlcml0YW5jZS12aW9sYXRpb24KK3ZvaWQgc2VuZENP
RVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9p
bnQsIENPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBVUkwmIGJsb2NrZWRVUkwpCit7CisgICAgQVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOwor
ICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0VuZHBvaW50KGZyYW1lLCBlbWJlZGRlck9yaWdp
biwgZW5kcG9pbnQsICJjb2VwIl9zLCBjb250ZXh0VVJMRm9yUmVwb3J0KGZyYW1lKSwgZnJhbWUu
bG9hZGVyKCkudXNlckFnZW50KGJsb2NrZWRVUkwpLCBbJl0oYXV0byYgYm9keSkgeworICAgICAg
ICBib2R5LnNldFN0cmluZygiZGlzcG9zaXRpb24iX3MsIGRpc3Bvc2l0aW9uID09IENPRVBEaXNw
b3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJfcyA6ICJlbmZvcmNlIl9zKTsKKyAgICAg
ICAgYm9keS5zZXRTdHJpbmcoInR5cGUiX3MsIHR5cGUpOworICAgICAgICBib2R5LnNldFN0cmlu
ZygiYmxvY2tlZFVSTCJfcywgUGluZ0xvYWRlcjo6c2FuaXRpemVVUkxGb3JSZXBvcnQoYmxvY2tl
ZFVSTCkpOworICAgIH0pOworfQorCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
cXVldWUtYS1jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LWNvcnAtdmlvbGF0aW9uLXJlcG9y
dAordm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQ
RGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGlu
YXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBBU1NFUlQoIWVuZHBvaW50Lmlz
RW1wdHkoKSk7CisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGVt
YmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgImNvZXAiX3MsIGNvbnRleHRVUkxGb3JSZXBvcnQoZnJh
bWUpLCBmcmFtZS5sb2FkZXIoKS51c2VyQWdlbnQoYmxvY2tlZFVSTCksIFsmXShhdXRvJiBib2R5
KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24g
PT0gQ09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2Ui
X3MpOworICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgImNvcnAiKTsKKyAgICAgICAg
Ym9keS5zZXRTdHJpbmcoImJsb2NrZWRVUkwiX3MsIFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9y
UmVwb3J0KGJsb2NrZWRVUkwpKTsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRlc3RpbmF0aW9u
Il9zLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhkZXN0aW5hdGlvbikpOworICAgIH0pOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaAppbmRleCA3NDlmMGM3OWZiM2JhYzVhZmQ5MGFl
YTYxZjlkZGRhYmExNmU3YzI2Li4xM2FmYmY1MjJiODI0MGI1M2ZjNjljYTBkY2Q3ZGQ0ZGU1YWI4
YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRl
clBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5LmgKQEAgLTI1LDEzICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkZldGNoT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZyYW1lOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRh
dGE7CisKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5o
dG1sI2VtYmVkZGVyLXBvbGljeS12YWx1ZQogZW51bSBjbGFzcyBDcm9zc09yaWdpbkVtYmVkZGVy
UG9saWN5VmFsdWUgOiBib29sIHsKICAgICBVbnNhZmVOb25lLApAQCAtOTMsNyArOTcsMTEgQEAg
c3RkOjpvcHRpb25hbDxDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5PiBDcm9zc09yaWdpbkVtYmVk
ZGVyUG9saWN5OjpkZWNvZGUoRGVjb2QKICAgICB9fTsKIH0KIAorZW51bSBjbGFzcyBDT0VQRGlz
cG9zaXRpb24gOiBib29sIHsgUmVwb3J0aW5nICwgRW5mb3JjZSB9OworCiBXRUJDT1JFX0VYUE9S
VCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5IG9idGFpbkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeUhlYWRl
cnMoUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmKTsK
K1dFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihG
cmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBVUkwmIGJsb2NrZWRVUkwpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kQ09FUENPUlBWaW9s
YXRpb24oRnJhbWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBj
b25zdCBTdHJpbmcmIGVuZHBvaW50LCBDT0VQRGlzcG9zaXRpb24sIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBv
bGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3ku
Y3BwCmluZGV4IGU2MGNmOGM2MTIzZmM1NmMyZTQ3NDdjNjMwYzAyNTNlNmM5YmFkYjEuLmM2NWYx
YjIyZDU3MjhmNTJlODQwZTUwMmU0ZTcwMWRlOWVkMTEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcApAQCAtMzMsMjIgKzMzLDEy
IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGluZ0xvYWRlci5oIgotI2luY2x1ZGUgIlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5o
dG1sI3Nhbml0aXplLXVybC1yZXBvcnQKLXN0YXRpYyBTdHJpbmcgc2FuaXRpemVSZWZlcnJlckZv
clVSTFJlcG9ydChjb25zdCBVUkwmIHJlZmVycmVyKQotewotICAgIFVSTCBzYW5pdGl6ZWRSZWZl
cnJlciA9IHJlZmVycmVyOwotICAgIHNhbml0aXplZFJlZmVycmVyLnJlbW92ZUNyZWRlbnRpYWxz
KCk7Ci0gICAgc2FuaXRpemVkUmVmZXJyZXIucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0g
ICAgcmV0dXJuIHNhbml0aXplZFJlZmVycmVyLnN0cmluZygpOwotfQotCiBzdGF0aWMgQVNDSUlM
aXRlcmFsIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29uc3QgQ3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3lWYWx1ZSYgY29vcCkKIHsKICAgICBzd2l0Y2ggKGNvb3ApIHsKQEAgLTEzOSw0
NCArMTI5LDE3IEBAIHZvaWQgYWRkQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBDcm9zc09yCiAgICAgfQogfQogCi0vLyBodHRw
czovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKLXN0YXRpYyB2b2lkIHNl
bmRDT09QVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkws
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjb29wT3JpZ2luLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgRnVuY3Rpb248dm9pZChKU09OOjpPYmplY3QmKT4mJiBwb3B1bGF0ZUJvZHkpCi17Ci0gICAg
YXV0byYgcmVwb3J0aW5nRW5kcG9pbnQgPSBkaXNwb3NpdGlvbiA9PSBDT09QRGlzcG9zaXRpb246
OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50IDogY29vcC5yZXBv
cnRpbmdFbmRwb2ludDsKLSAgICBpZiAocmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBhdXRvIHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlID0gZnJhbWUu
cGFnZSgpID8gZnJhbWUucGFnZSgpLT5yZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIDogbnVsbHB0
cjsKLSAgICBpZiAoIXJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKQotICAgICAgICByZXR1cm47Ci0g
ICAgYXV0byBlbmRwb2ludFVSTCA9IHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlLT5lbmRwb2ludFVS
TChjb29wT3JpZ2luLmRhdGEoKSwgcmVwb3J0aW5nRW5kcG9pbnQpOwotICAgIGlmICghZW5kcG9p
bnRVUkwuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGJvZHkgPSBKU09O
OjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGJvZHktPnNldFN0cmluZygiZGlzcG9zaXRpb24iX3Ms
IGRpc3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gInJlcG9ydGluZyJf
cyA6ICJlbmZvcmNlIl9zKTsKLSAgICBib2R5LT5zZXRTdHJpbmcoImVmZmVjdGl2ZVBvbGljeSJf
cywgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZVRvRWZmZWN0aXZlUG9saWN5U3RyaW5nKGRp
c3Bvc2l0aW9uID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5
VmFsdWUgOiBjb29wLnZhbHVlKSk7Ci0gICAgcG9wdWxhdGVCb2R5KGJvZHkpOwotCi0gICAgYXV0
byByZXBvcnRPYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIHJlcG9ydE9iamVj
dC0+c2V0U3RyaW5nKCJ0eXBlIl9zLCAiY29vcCJfcyk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRT
dHJpbmcoInVybCJfcywgY29vcFVSTC5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0T2JqZWN0LT5zZXRT
dHJpbmcoInVzZXJfYWdlbnQiLCB1c2VyQWdlbnQpOwotICAgIHJlcG9ydE9iamVjdC0+c2V0SW50
ZWdlcigiYWdlIiwgMCk7IC8vIFdlIGN1cnJlbnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUg
cmVwb3J0cy4KLSAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShi
b2R5KSk7Ci0KLSAgICBhdXRvIHJlcG9ydExpc3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7Ci0g
ICAgcmVwb3J0TGlzdC0+cHVzaE9iamVjdChyZXBvcnRPYmplY3QpOwotCi0gICAgYXV0byByZXBv
cnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7
Ci0gICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChmcmFtZSwgZW5kcG9pbnRVUkws
IFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6U3RhbmRhcmRSZXBvcnRpbmdB
UElWaW9sYXRpb24pOwotfQotCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9vcmlnaW4uaHRtbCNjb29wLXZpb2xhdGlvbi1uYXZpZ2F0aW9uLXRvCiB2b2lkIHNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKEZyYW1lJiBmcmFtZSwg
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgQ09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9u
LCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgcHJldmlvdXNSZXNwb25zZVVSTCwgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBwcmV2
aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCkKIHsKLSAgICBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29vcCwg
ZGlzcG9zaXRpb24sIGNvb3BVUkwsIGNvb3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8mIGJv
ZHkpIHsKLSAgICAgICAgYm9keS5zZXRTdHJpbmcoInByZXZpb3VzUmVzcG9uc2VVUkwiX3MsIGNv
b3BPcmlnaW4uaXNTYW1lT3JpZ2luQXMocHJldmlvdXNSZXNwb25zZU9yaWdpbikgPyBzYW5pdGl6
ZVJlZmVycmVyRm9yVVJMUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwpIDogU3RyaW5nKCkpOwor
ICAgIGF1dG8mIGVuZHBvaW50ID0gZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBv
cnRpbmcgPyBjb29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCA6IGNvb3AucmVwb3J0aW5n
RW5kcG9pbnQ7CisgICAgaWYgKGVuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUGluZ0xvYWRlcjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoZnJhbWUsIGNvb3BPcmlnaW4u
ZGF0YSgpLCBlbmRwb2ludCwgImNvb3AiX3MsIGNvb3BVUkwsIHVzZXJBZ2VudCwgWyZdKGF1dG8m
IGJvZHkpIHsKKyAgICAgICAgYm9keS5zZXRTdHJpbmcoImRpc3Bvc2l0aW9uIl9zLCBkaXNwb3Np
dGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/ICJyZXBvcnRpbmciX3MgOiAiZW5m
b3JjZSJfcyk7CisgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJlZmZlY3RpdmVQb2xpY3kiX3MsIGNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWVUb0VmZmVjdGl2ZVBvbGljeVN0cmluZyhkaXNwb3Np
dGlvbiA9PSBDT09QRGlzcG9zaXRpb246OlJlcG9ydGluZyA/IGNvb3AucmVwb3J0T25seVZhbHVl
IDogY29vcC52YWx1ZSkpOworICAgICAgICBib2R5LnNldFN0cmluZygicHJldmlvdXNSZXNwb25z
ZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhwcmV2aW91c1Jlc3BvbnNlT3JpZ2lu
KSA/IFBpbmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KHByZXZpb3VzUmVzcG9uc2VVUkwp
IDogU3RyaW5nKCkpOwogICAgICAgICBib2R5LnNldFN0cmluZygidHlwZSJfcywgIm5hdmlnYXRp
b24tdG8tcmVzcG9uc2UiX3MpOwogICAgICAgICBib2R5LnNldFN0cmluZygicmVmZXJyZXIiX3Ms
IHJlZmVycmVyKTsKICAgICB9KTsKQEAgLTE4NSw4ICsxNDgsMTQgQEAgdm9pZCBzZW5kVmlvbGF0
aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENyb3Nz
T3JpZ2luT3AKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdp
bi5odG1sI2Nvb3AtdmlvbGF0aW9uLW5hdmlnYXRpb24tZnJvbQogdm9pZCBzZW5kVmlvbGF0aW9u
UmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShGcmFtZSYgZnJhbWUsIENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3AsIENPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwg
Y29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwmIG5leHRSZXNwb25zZVVSTCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIGNvb3BPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBuZXh0UmVzcG9u
c2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCkKIHsKLSAgICBzZW5kQ09PUFZpb2xhdGlvblJlcG9ydChmcmFtZSwgY29v
cCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIGNvb3BPcmlnaW4sIHVzZXJBZ2VudCwgWyZdKGF1dG8m
IGJvZHkpIHsKLSAgICAgICAgYm9keS5zZXRTdHJpbmcoIm5leHRSZXNwb25zZVVSTCJfcywgY29v
cE9yaWdpbi5pc1NhbWVPcmlnaW5BcyhuZXh0UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09PUFJlc3Bv
bnNlTmF2aWdhdGlvblNvdXJjZSA/IHNhbml0aXplUmVmZXJyZXJGb3JVUkxSZXBvcnQobmV4dFJl
c3BvbnNlVVJMKSA6IFN0cmluZygpKTsKKyAgICBhdXRvJiBlbmRwb2ludCA9IGRpc3Bvc2l0aW9u
ID09IENPT1BEaXNwb3NpdGlvbjo6UmVwb3J0aW5nID8gY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5n
RW5kcG9pbnQgOiBjb29wLnJlcG9ydGluZ0VuZHBvaW50OworICAgIGlmIChlbmRwb2ludC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBpbmdMb2FkZXI6OnNlbmRSZXBvcnRUb0Vu
ZHBvaW50KGZyYW1lLCBjb29wT3JpZ2luLmRhdGEoKSwgZW5kcG9pbnQsICJjb29wIl9zLCBjb29w
VVJMLCB1c2VyQWdlbnQsIFsmXShhdXRvJiBib2R5KSB7CisgICAgICAgIGJvZHkuc2V0U3RyaW5n
KCJkaXNwb3NpdGlvbiJfcywgZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRp
bmcgPyAicmVwb3J0aW5nIl9zIDogImVuZm9yY2UiX3MpOworICAgICAgICBib2R5LnNldFN0cmlu
ZygiZWZmZWN0aXZlUG9saWN5Il9zLCBjcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlVG9FZmZl
Y3RpdmVQb2xpY3lTdHJpbmcoZGlzcG9zaXRpb24gPT0gQ09PUERpc3Bvc2l0aW9uOjpSZXBvcnRp
bmcgPyBjb29wLnJlcG9ydE9ubHlWYWx1ZSA6IGNvb3AudmFsdWUpKTsKKyAgICAgICAgYm9keS5z
ZXRTdHJpbmcoIm5leHRSZXNwb25zZVVSTCJfcywgY29vcE9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhu
ZXh0UmVzcG9uc2VPcmlnaW4pIHx8IGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSA/IFBp
bmdMb2FkZXI6OnNhbml0aXplVVJMRm9yUmVwb3J0KG5leHRSZXNwb25zZVVSTCkgOiBTdHJpbmco
KSk7CiAgICAgICAgIGJvZHkuc2V0U3RyaW5nKCJ0eXBlIl9zLCAibmF2aWdhdGlvbi1mcm9tLXJl
c3BvbnNlIl9zKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GZXRjaE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaApp
bmRleCBjN2YzMTM4NDJlMTRkM2RjZmM4M2UwNjJkOTg1NTc0ZGQ1ZmUwZDZjLi4yN2I5OGE5MzIz
MDdmYzU4YzQ1OWQ3MTVjMzE0Y2NjYTY3YzRkOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNo
T3B0aW9ucy5oCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVj
dCBGZXRjaE9wdGlvbnMgewotICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90IHsg
RW1wdHlTdHJpbmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9udCwg
SW1hZ2UsIE1hbmlmZXN0LCBNb2RlbCwgT2JqZWN0LCBQYWludHdvcmtsZXQsIFJlcG9ydCwgU2Ny
aXB0LCBTZXJ2aWNld29ya2VyLCBTaGFyZWR3b3JrZXIsIFN0eWxlLCBUcmFjaywgVmlkZW8sIFdv
cmtlciwgWHNsdCB9OworICAgIGVudW0gY2xhc3MgRGVzdGluYXRpb24gOiB1aW50OF90IHsgRW1w
dHlTdHJpbmcsIEF1ZGlvLCBBdWRpb3dvcmtsZXQsIERvY3VtZW50LCBFbWJlZCwgRm9udCwgSW1h
Z2UsIElmcmFtZSwgTWFuaWZlc3QsIE1vZGVsLCBPYmplY3QsIFBhaW50d29ya2xldCwgUmVwb3J0
LCBTY3JpcHQsIFNlcnZpY2V3b3JrZXIsIFNoYXJlZHdvcmtlciwgU3R5bGUsIFRyYWNrLCBWaWRl
bywgV29ya2VyLCBYc2x0IH07CiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7IE5hdmln
YXRlLCBTYW1lT3JpZ2luLCBOb0NvcnMsIENvcnMgfTsKICAgICBlbnVtIGNsYXNzIENyZWRlbnRp
YWxzIDogdWludDhfdCB7IE9taXQsIFNhbWVPcmlnaW4sIEluY2x1ZGUgfTsKICAgICBlbnVtIGNs
YXNzIENhY2hlIDogdWludDhfdCB7IERlZmF1bHQsIE5vU3RvcmUsIFJlbG9hZCwgTm9DYWNoZSwg
Rm9yY2VDYWNoZSwgT25seUlmQ2FjaGVkIH07CkBAIC04MCw5ICs4MCwxMSBAQCBpbmxpbmUgYm9v
bCBpc1BvdGVudGlhbE5hdmlnYXRpb25PclN1YnJlc291cmNlUmVxdWVzdChGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uCiAgICAgICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OkVtYmVkOwogfQogCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
bm9uLXN1YnJlc291cmNlLXJlcXVlc3QKIGlubGluZSBib29sIGlzTm9uU3VicmVzb3VyY2VSZXF1
ZXN0KEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAgICAgcmV0dXJu
IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50CisgICAg
ICAgIHx8IGRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OklmcmFtZQog
ICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpSZXBv
cnQKICAgICAgICAgfHwgZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
U2VydmljZXdvcmtlcgogICAgICAgICB8fCBkZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpTaGFyZWR3b3JrZXIKQEAgLTExMiw2ICsxMTQsNyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24+IHsKICAg
ICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQsCiAgICAgICAg
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkZvbnQsCiAgICAgICAgIFdlYkNv
cmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlLAorICAgICAgICBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUsCiAgICAgICAgIFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246Ok1hbmlmZXN0LAogICAgICAgICBXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbCwKICAgICAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6T2JqZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmlu
ZGV4IGI4MGE3ZjliZjUxMDc4MzRiNzU4YjM2ZjdjYzk5MDYzZGMzODVlMWUuLjNlYzNjNTE4Yzc4
OGU1Y2MxZjVmMTg4ZThjNzE1MzFmOTFkYjAzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5j
bHVkZSAiUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9y
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJ
bmZvLmgiCkBAIC0yNDMsNCArMjQ0LDQyIEBAIHZvaWQgUGluZ0xvYWRlcjo6c3RhcnRQaW5nTG9h
ZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSFRUUEhlYWRlCiAgICAg
ZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0UGluZ1Jlc291
cmNlKFdURk1vdmUoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKKy8vIC8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3Nhbml0aXplLXVybC1y
ZXBvcnQKK1N0cmluZyBQaW5nTG9hZGVyOjpzYW5pdGl6ZVVSTEZvclJlcG9ydChjb25zdCBVUkwm
IHVybCkKK3sKKyAgICBVUkwgc2FuaXRpemVkVVJMID0gdXJsOworICAgIHNhbml0aXplZFVSTC5y
ZW1vdmVDcmVkZW50aWFscygpOworICAgIHNhbml0aXplZFVSTC5yZW1vdmVGcmFnbWVudElkZW50
aWZpZXIoKTsKKyAgICByZXR1cm4gc2FuaXRpemVkVVJMLnN0cmluZygpOwogfQorCisvLyBodHRw
czovL3d3dy53My5vcmcvVFIvcmVwb3J0aW5nLyN0cnktZGVsaXZlcnkKK3ZvaWQgUGluZ0xvYWRl
cjo6c2VuZFJlcG9ydFRvRW5kcG9pbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEZ1
bmN0aW9uPHZvaWQoSlNPTjo6T2JqZWN0Jik+JiBwb3B1bGF0ZVJlcG9ydEJvZHkpCit7CisgICAg
QVNTRVJUKCFlbmRwb2ludC5pc0VtcHR5KCkpOworICAgIGF1dG8gcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGUgPSBmcmFtZS5wYWdlKCkgPyBmcmFtZS5wYWdlKCktPnJlcG9ydGluZ0VuZHBvaW50c0Nh
Y2hlKCkgOiBudWxscHRyOworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBhdXRvIGVuZHBvaW50VVJMID0gcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUtPmVuZHBvaW50VVJMKG9yaWdpbiwgZW5kcG9pbnQpOworICAgIGlmICghZW5kcG9pbnRVUkwu
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJvZHkgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOworICAgIHBvcHVsYXRlUmVwb3J0Qm9keShib2R5KTsKKworICAgIGF1dG8g
cmVwb3J0T2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXBvcnRPYmplY3Qt
PnNldFN0cmluZygidHlwZSJfcywgdHlwZSk7CisgICAgaWYgKHJlcG9ydFVSTC5pc1ZhbGlkKCkp
CisgICAgICAgIHJlcG9ydE9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiX3MsIHJlcG9ydFVSTC5zdHJp
bmcoKSk7CisgICAgcmVwb3J0T2JqZWN0LT5zZXRTdHJpbmcoInVzZXJfYWdlbnQiLCB1c2VyQWdl
bnQpOworICAgIHJlcG9ydE9iamVjdC0+c2V0SW50ZWdlcigiYWdlIiwgMCk7IC8vIFdlIGN1cnJl
bnRseSBkbyBub3QgZGVsYXkgc2VuZGluZyB0aGUgcmVwb3J0cy4KKyAgICByZXBvcnRPYmplY3Qt
PnNldE9iamVjdCgiYm9keSJfcywgV1RGTW92ZShib2R5KSk7CisKKyAgICBhdXRvIHJlcG9ydExp
c3QgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAgcmVwb3J0TGlzdC0+cHVzaE9iamVjdChy
ZXBvcnRPYmplY3QpOworCisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9y
dExpc3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgc2VuZFZpb2xhdGlvblJlcG9ydChm
cmFtZSwgZW5kcG9pbnRVUkwsIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6
U3RhbmRhcmRSZXBvcnRpbmdBUElWaW9sYXRpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCA1ZWNhOThjNzFlZTc4Mjg3ZThh
MzZlNzAzZjc4NzM3OWRhMTE5ODc3Li40Y2U0OTM1ZTcyMTZjY2NiYzU0NTFhODRhZTYyYzhmZjdk
MWM5NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKQEAgLTU3LDYgKzU3LDkgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5n
VVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkws
IFJlZjxGb3JtRGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCisgICAgc3Rh
dGljIFN0cmluZyBzYW5pdGl6ZVVSTEZvclJlcG9ydChjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMg
dm9pZCBzZW5kUmVwb3J0VG9FbmRwb2ludChGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVVJM
JiByZXBvcnRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBGdW5jdGlvbjx2b2lk
KEpTT046Ok9iamVjdCYpPiYgcG9wdWxhdGVSZXBvcnRCb2R5KTsKKwogcHJpdmF0ZToKICAgICBl
bnVtIGNsYXNzIFNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IE5vLCBZZXMgfTsKICAgICBzdGF0aWMg
dm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0JiwgSFRUUEhlYWRlck1h
cCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFNob3VsZEZvbGxvd1JlZGlyZWN0cywgQ29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwgUmVmZXJyZXJQb2xpY3ksIHN0ZDo6b3B0aW9uYWw8
VmlvbGF0aW9uUmVwb3J0VHlwZT4gPSBzdGQ6Om51bGxvcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTFkZGNk
ZGY1NTU4MGNjOTBiNTUwOTUxNGVlMDc3YzFlODNmNzAyMC4uZmM1NGFjNDZhNTJkMDYwZjcyZTdi
YjE4ZDY1NDgxMWRlZDQ5MGIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03OTUsMTAgKzc5NSwxMSBAQCB2b2lk
IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMoRnJhbWVMb2Fk
ZXImIGZyYW1lTG9hZGVyLCBDYQogICAgIHJlcXVlc3QudXBkYXRlQWNjZXB0RW5jb2RpbmdIZWFk
ZXIoKTsKIH0KIAotc3RhdGljIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb25G
b3JUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCitzdGF0aWMgRmV0Y2hPcHRpb25zOjpE
ZXN0aW5hdGlvbiBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwg
RnJhbWUmIGZyYW1lKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIGZyYW1lLmlzTWFpbkZy
YW1lKCkgPyBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudCA6IEZldGNoT3B0aW9u
czo6RGVzdGluYXRpb246OklmcmFtZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpT
VkdEb2N1bWVudFJlc291cmNlOgogICAgICAgICByZXR1cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6RG9jdW1lbnQ7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNv
dXJjZToKQEAgLTg2OCw3ICs4NjksNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAg
TE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3Vy
Y2UgJyUuMjU1cycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1
cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1
ZXN0LmNoYXJzZXQoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSA/IHN0YXRp
Y19jYXN0PGludD4ocmVxdWVzdC5wcmlvcml0eSgpLnZhbHVlKCkpIDogLTEsIGZvclByZWxvYWQg
PT0gRm9yUHJlbG9hZDo6WWVzKTsKIAotICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNl
dChkZXN0aW5hdGlvbkZvclR5cGUodHlwZSkpOworICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25J
Zk5vdFNldChkZXN0aW5hdGlvbkZvclR5cGUodHlwZSwgZnJhbWUpKTsKIAogICAgIC8vIEVudHJ5
IHBvaW50IHRvIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZldGNoLgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVJlcXVlc3Q+IG9yaWdpbmFsUmVxdWVzdDsKQEAgLTg4
MCw3ICs4ODEsNyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogCiAgICAgcHJlcGFyZUZldGNo
KHR5cGUsIHJlcXVlc3QpOwogCi0gICAgaWYgKHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9u
ID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50KSB7CisgICAgaWYgKHJlcXVl
c3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRv
Y3VtZW50IHx8IHJlcXVlc3Qub3B0aW9ucygpLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6
RGVzdGluYXRpb246OklmcmFtZSkgewogICAgICAgICAvLyBGSVhNRTogSWRlbnRpZnkgSFNUUyBj
YXNlcyBhbmQgYXZvaWQgYWRkaW5nIHRoZSBoZWFkZXIuIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODg1PgogICAgICAgICBpZiAoIXVybC5wcm90b2NvbElzKCJo
dHRwcyIpKQogICAgICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzLCAiMSJfcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKaW5kZXggMGEzMDcwNzM5MWJmZmZjM2EwZjBjM2UyOWMyYjBmOGEwZmJkZTM1Ni4uMmIy
MTY0MmFmMmEzOGIwYzNkMDY0YzUzYThiMTc3OTFmOGZjYWUwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1NjaGVtZVJlZ2lzdHJ5LmgiCisjaW5j
bHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50UnVsZUxp
c3RSZXN1bHRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oPgpAQCAtMTU4LDYg
KzE1OSwyNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZWRpcmVjdGlvbihSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcQogICAgIH0pOwogfQogCisvLyBodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeS1j
aGVjaworc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VFcnJvcj4gcGVyZm9ybUNPUlBDaGVj
ayhjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiBlbWJlZGRlckNPRVAsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBGb3JOYXZpZ2F0aW9uIGZvck5hdmlnYXRpb24sIE5ldHdvcmtSZXNv
dXJjZUxvYWRlciogbG9hZGVyKQoreworICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9z
c09yaWdpblJlc291cmNlUG9saWN5KENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6VW5z
YWZlTm9uZSwgZW1iZWRkZXJPcmlnaW4sIHVybCwgcmVzcG9uc2UsIGZvck5hdmlnYXRpb24pKQor
ICAgICAgICByZXR1cm4gZXJyb3I7CisKKyAgICBpZiAoZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlW
YWx1ZSA9PSBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQICYmICFl
bWJlZGRlckNPRVAucmVwb3J0T25seVJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSAmJiBsb2Fk
ZXIpIHsKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3Vy
Y2VQb2xpY3koZW1iZWRkZXJDT0VQLnJlcG9ydE9ubHlWYWx1ZSwgZW1iZWRkZXJPcmlnaW4sIHVy
bCwgcmVzcG9uc2UsIGZvck5hdmlnYXRpb24pKQorICAgICAgICAgICAgbG9hZGVyLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUENPUlBWaW9sYXRpb24geyBsb2FkZXItPmZyYW1lSUQo
KSwgZW1iZWRkZXJPcmlnaW4uZGF0YSgpLCBlbWJlZGRlckNPRVAucmVwb3J0T25seVJlcG9ydGlu
Z0VuZHBvaW50LCBDT0VQRGlzcG9zaXRpb246OlJlcG9ydGluZywgbG9hZGVyLT5wYXJhbWV0ZXJz
KCkub3B0aW9ucy5kZXN0aW5hdGlvbiwgbG9hZGVyLT5maXJzdFJlc3BvbnNlVVJMKCkgfSwgbG9h
ZGVyLT5wYWdlSUQoKSk7CisgICAgfQorCisgICAgaWYgKGVtYmVkZGVyQ09FUC52YWx1ZSA9PSBD
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7CisgICAgICAgIGlm
IChhdXRvIGVycm9yID0gdmFsaWRhdGVDcm9zc09yaWdpblJlc291cmNlUG9saWN5KGVtYmVkZGVy
Q09FUC52YWx1ZSwgZW1iZWRkZXJPcmlnaW4sIHVybCwgcmVzcG9uc2UsIGZvck5hdmlnYXRpb24p
KSB7CisgICAgICAgICAgICBpZiAobG9hZGVyICYmICFlbWJlZGRlckNPRVAucmVwb3J0aW5nRW5k
cG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGxvYWRlci0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2VuZENPRVBDT1JQVmlvbGF0aW9uIHsgbG9hZGVyLT5mcmFtZUlEKCksIGVtYmVk
ZGVyT3JpZ2luLmRhdGEoKSwgZW1iZWRkZXJDT0VQLnJlcG9ydGluZ0VuZHBvaW50LCBDT0VQRGlz
cG9zaXRpb246OkVuZm9yY2UsIGxvYWRlci0+cGFyYW1ldGVycygpLm9wdGlvbnMuZGVzdGluYXRp
b24sIGxvYWRlci0+Zmlyc3RSZXNwb25zZVVSTCgpIH0sIGxvYWRlci0+cGFnZUlEKCkpOworICAg
ICAgICAgICAgcmV0dXJuIGVycm9yOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Cit9CisKIFJlc291cmNlRXJyb3IgTmV0d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKG1fcmVkaXJlY3RDb3VudCkKQEAgLTE3MCw3ICsxOTIs
NyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogCiAgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUgfHwgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0KSB7
CiAgICAgICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmln
YXRlICYmIG1fcGFyZW50T3JpZ2luKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBlcnJvciA9IHZh
bGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShtX3BhcmVudENyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kudmFsdWUsICptX3BhcmVudE9yaWdpbiwgbV91cmwsIHJlc3BvbnNlLCBGb3JOYXZp
Z2F0aW9uOjpZZXMpKQorICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBwZXJmb3JtQ09SUENo
ZWNrKG1fcGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgKm1fcGFyZW50T3JpZ2luLCBt
X3VybCwgcmVzcG9uc2UsIEZvck5hdmlnYXRpb246OlllcywgbV9uZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7CiAgICAg
ICAgIH0KICAgICAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFp
bnRpbmc6OkJhc2ljKTsKQEAgLTE4MSw3ICsyMDMsNyBAQCBSZXNvdXJjZUVycm9yIE5ldHdvcmtM
b2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
cwogICAgICAgICByZXNwb25zZS5zZXRBc1JhbmdlUmVxdWVzdGVkKCk7CiAKICAgICBpZiAobV9v
cHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKLSAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kobV9jcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5LnZhbHVlLCAqbV9vcmlnaW4sIG1fdXJsLCByZXNwb25zZSwgRm9y
TmF2aWdhdGlvbjo6Tm8pKQorICAgICAgICBpZiAoYXV0byBlcnJvciA9IHBlcmZvcm1DT1JQQ2hl
Y2sobV9jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCAqbV9vcmlnaW4sIG1fdXJsLCByZXNwb25z
ZSwgRm9yTmF2aWdhdGlvbjo6Tm8sIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyLmdldCgpKSkKICAg
ICAgICAgICAgIHJldHVybiBXVEZNb3ZlKCplcnJvcik7CiAKICAgICAgICAgcmVzcG9uc2Uuc2V0
VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7CkBAIC0yODEsNiAr
MzAzLDcgQEAgYm9vbCBOZXR3b3JrTG9hZENoZWNrZXI6OmlzQWxsb3dlZEJ5Q29udGVudFNlY3Vy
aXR5UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICBjYXNlIEZldGNoT3B0aW9uczo6
RGVzdGluYXRpb246OkVtYmVkOgogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
Rm9udDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkltYWdlOgorICAgIGNh
c2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lOgogICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6TWFuaWZlc3Q6CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpNb2RlbDoKICAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok9iamVj
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBkYzRkNTAyNzk3NDlhNTJmYTc5OTY3NjE4OGY5NThhYzdmMjM1
MDM1Li44M2U4M2JjZTg0ZTdmNDk4Mzg4ZTY5Mjg0ZTkwODEzMjJlYmI4YzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0zOTIsNiArMzkyLDcgQEAgUmVzb3VyY2VMb2FkSW5mbyBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnJlc291cmNlTG9hZEluZm8oKQogICAgICAgICBjYXNlIFdlYkNvcmU6OkZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkF1ZGlvd29ya2xldDoKICAgICAgICAgICAgIHJldHVybiBSZXNv
dXJjZUxvYWRJbmZvOjpUeXBlOjpPdGhlcjsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpEb2N1bWVudDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpJZnJhbWU6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3Vy
Y2VMb2FkSW5mbzo6VHlwZTo6RG9jdW1lbnQ7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6RW1iZWQ6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VM
b2FkSW5mbzo6VHlwZTo6T2JqZWN0OwpAQCAtNjA2LDMwICs2MDcsNDcgQEAgYm9vbCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnNob3VsZEludGVycnVwdE5hdmlnYXRpb25Gb3JDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWMKICAgICBBU1NFUlQoaXNNYWluUmVzb3VyY2UoKSk7CiAKICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLW5h
dmlnYXRpb24tcmVzcG9uc2Uncy1hZGhlcmVuY2UtdG8taXRzLWVtYmVkZGVyLXBvbGljeQotICAg
IGlmIChtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSAh
PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYg
bV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgeworICAgIGlmIChtX3BhcmFtZXRlcnMucGFyZW50
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQIHx8IG1fcGFyYW1ldGVycy5wYXJlbnRDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQKSB7CiAgICAgICAgIGF1dG8gcmVz
cG9uc2VDT0VQID0gV2ViQ29yZTo6b2J0YWluQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeShyZXNw
b25zZSwgbnVsbHB0cik7Ci0gICAgICAgIGlmIChyZXNwb25zZUNPRVAudmFsdWUgIT0gV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgeworICAgICAg
ICBpZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0
T25seVZhbHVlID09IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVx
dWlyZUNPUlAgJiYgcmVzcG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6OkNyb3NzT3JpZ2luRW1i
ZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBh
cmVudE9yaWdpbiA9IG1fcGFyYW1ldGVycy5wYXJlbnRPcmlnaW4oKTsgcGFyZW50T3JpZ2luICYm
ICFtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5
UmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgcGFyZW50T3JpZ2luLT5kYXRhKCksIG1fcGFyYW1ldGVycy5wYXJl
bnRDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCwg
Q09FUERpc3Bvc2l0aW9uOjpSZXBvcnRpbmcsICJuYXZpZ2F0aW9uIl9zLCBtX2ZpcnN0UmVzcG9u
c2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAobV9wYXJhbWV0ZXJzLnBhcmVudENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgIT0g
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIHJl
c3BvbnNlQ09FUC52YWx1ZSAhPSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFs
dWU6OlJlcXVpcmVDT1JQKSB7CiAgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gbWFr
ZVN0cmluZygiUmVmdXNlZCB0byBkaXNwbGF5ICciLCByZXNwb25zZS51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgIicgaW4gYSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kuIik7CiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpBZGRDb25zb2xlTWVzc2FnZSB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCAgTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yTWVzc2FnZSwgY29y
ZUlkZW50aWZpZXIoKSB9LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKKyAgICAgICAgICAgIGlm
IChhdXRvIHBhcmVudE9yaWdpbiA9IG1fcGFyYW1ldGVycy5wYXJlbnRPcmlnaW4oKTsgcGFyZW50
T3JpZ2luICYmICFtX3BhcmFtZXRlcnMucGFyZW50Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5y
ZXBvcnRpbmdFbmRwb2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbiB7IG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBwYXJlbnRPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLnBhcmVu
dENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3Np
dGlvbjo6RW5mb3JjZSwgIm5hdmlnYXRpb24iX3MsIG1fZmlyc3RSZXNwb25zZVVSTCB9LCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjaGVjay1hLWdsb2JhbC1vYmplY3Qncy1l
bWJlZGRlci1wb2xpY3kKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1
cHRXb3JrZXJMb2FkRm9yQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMuZGVzdGlu
YXRpb24gIT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kudmFsdWUgIT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNh
ZmVOb25lICYmIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKKyAgICBpZiAobV9wYXJhbWV0
ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCB8fCBtX3BhcmFtZXRlcnMuY3Jvc3NP
cmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5VmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeVZhbHVlOjpSZXF1aXJlQ09SUCkgewogICAgICAgICBhdXRvIHJlc3Bv
bnNlQ09FUCA9IFdlYkNvcmU6Om9idGFpbkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kocmVzcG9u
c2UsIG51bGxwdHIpOwotICAgICAgICBpZiAocmVzcG9uc2VDT0VQLnZhbHVlICE9IFdlYkNvcmU6
OkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3lWYWx1ZTo6UmVxdWlyZUNPUlApIHsKKyAgICAgICAg
aWYgKG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydE9ubHlWYWx1
ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5VmFsdWU6OlJlcXVpcmVDT1JQ
ICYmIHJlc3BvbnNlQ09FUC52YWx1ZSA9PSBXZWJDb3JlOjpDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5VmFsdWU6OlVuc2FmZU5vbmUpIHsKKyAgICAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuc291
cmNlT3JpZ2luICYmICFtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBv
cnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDT0VQUG9saWN5SW5oZXJpdGVuY2VWaW9sYXRpb24geyBt
X3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi0+ZGF0YSgp
LCBtX3BhcmFtZXRlcnMuY3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5yZXBvcnRPbmx5UmVwb3J0
aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6UmVwb3J0aW5nLCAid29ya2VyIGluaXRpYWxp
emF0aW9uIl9zLCBtX2ZpcnN0UmVzcG9uc2VVUkwgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRk
ZXJQb2xpY3kudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVZhbHVl
OjpSZXF1aXJlQ09SUCAmJiByZXNwb25zZUNPRVAudmFsdWUgPT0gV2ViQ29yZTo6Q3Jvc3NPcmln
aW5FbWJlZGRlclBvbGljeVZhbHVlOjpVbnNhZmVOb25lKSB7CiAgICAgICAgICAgICBTdHJpbmcg
ZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNlZCB0byBsb2FkICciLCByZXNwb25zZS51
cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgIicgd29ya2VyIGJlY2F1c2Ug
b2YgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeS4iKTsKICAgICAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsICBNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgZXJyb3JN
ZXNzYWdlLCBjb3JlSWRlbnRpZmllcigpIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOworICAg
ICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gJiYgIW1fcGFyYW1ldGVycy5j
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LnJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ09FUFBvbGljeUluaGVy
aXRlbmNlVmlvbGF0aW9uIHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5z
b3VyY2VPcmlnaW4tPmRhdGEoKSwgbV9wYXJhbWV0ZXJzLmNyb3NzT3JpZ2luRW1iZWRkZXJQb2xp
Y3kucmVwb3J0aW5nRW5kcG9pbnQsIENPRVBEaXNwb3NpdGlvbjo6RW5mb3JjZSwgIndvcmtlciBp
bml0aWFsaXphdGlvbiJfcywgbV9maXJzdFJlc3BvbnNlVVJMIH0sIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTY0MSw2ICs2NTksOCBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZl
ZFJlc3BvbgogICAgICAgICBkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UocmVjZWl2ZWRS
ZXNwb25zZSk7CiAKICAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsK
KyAgICBpZiAoIW1fZmlyc3RSZXNwb25zZVVSTC5pc1ZhbGlkKCkpCisgICAgICAgIG1fZmlyc3RS
ZXNwb25zZVVSTCA9IG1fcmVzcG9uc2UudXJsKCk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgJiYgbV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKICAgICAg
ICAgYXV0byBpbmZvcm1hdGlvbiA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT50YWtlTmV0d29ya0xv
YWRJbmZvcm1hdGlvbigpOwpAQCAtNjkwLDYgKzcxMCwxOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJl
c3BvbgogICAgIGlmIChtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpVc2UpOwogCisgICAgaWYgKG1fbmV0d29y
a0xvYWRDaGVja2VyKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBtX25ldHdvcmtMb2FkQ2hlY2tl
ci0+dmFsaWRhdGVSZXNwb25zZShtX25ldHdvcmtMb2FkID8gbV9uZXR3b3JrTG9hZC0+Y3VycmVu
dFJlcXVlc3QoKSA6IG9yaWdpbmFsUmVxdWVzdCgpLCBtX3Jlc3BvbnNlKTsKKyAgICAgICAgaWYg
KCFlcnJvci5pc051bGwoKSkgeworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9S
KCJkaWRSZWNlaXZlUmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25z
ZSByZXR1cm5lZCBhbiBlcnJvciAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIs
IGVycm9yLmNvZGU9JWQpIiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOworICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcildIHsKKyAgICAg
ICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9uZXR3b3JrTG9hZCkKKyAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9u
OjpJZ25vcmUpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKGlzTWFpblJlc291cmNlKCkg
JiYgc2hvdWxkSW50ZXJydXB0TG9hZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpb25z
KG1fcmVzcG9uc2UpKSB7CiAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBJbnRlcnJ1cHRpbmcgbWFpbiByZXNvdXJjZSBsb2FkIGR1ZSB0byBDU1Ag
ZnJhbWUtYW5jZXN0b3JzIG9yIFgtRnJhbWUtT3B0aW9ucyIpOwogICAgICAgICBhdXRvIHJlc3Bv
bnNlID0gc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25zZSB7IG1fcmVz
cG9uc2UgfSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NPcmlnaW5T
YWZlKTsKQEAgLTcwNywxOCArNzM5LDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsKICAgICB9
CiAKLSAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAgYXV0byBlcnJvciA9
IG1fbmV0d29ya0xvYWRDaGVja2VyLT52YWxpZGF0ZVJlc3BvbnNlKG1fbmV0d29ya0xvYWQgPyBt
X25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpIDogb3JpZ2luYWxSZXF1ZXN0KCksIG1fcmVz
cG9uc2UpOwotICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBMT0FE
RVJfUkVMRUFTRV9MT0dfRVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogTmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21haW49JSIg
UFVCTElDX0xPR19TVFJJTkcgIiwgZXJyb3IuY29kZT0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4
KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7Ci0gICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3IgPSBXVEZN
b3ZlKGVycm9yKV0gewotICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX25ldHdv
cmtMb2FkKQotICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWlsTG9hZGlu
ZyhlcnJvcik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBh
dXRvIHJlc3BvbnNlID0gc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoUmVzb3VyY2VSZXNwb25z
ZSB7IG1fcmVzcG9uc2UgfSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jv
c3NPcmlnaW5TYWZlKTsKICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIExPQURF
Ul9SRUxFQVNFX0xPRygiZGlkUmVjZWl2ZVJlc3BvbnNlOiBVc2luZyByZXNwb25zZSBmb3Igc3lu
Y2hyb25vdXMgbG9hZCIpOwpAQCAtOTAyLDYgKzkyMiw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsCiAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiIp
OwogICAgICsrbV9yZWRpcmVjdENvdW50OwogICAgIG1fcmVkaXJlY3RSZXNwb25zZSA9IHJlZGly
ZWN0UmVzcG9uc2U7CisgICAgaWYgKCFtX2ZpcnN0UmVzcG9uc2VVUkwuaXNWYWxpZCgpKQorICAg
ICAgICBtX2ZpcnN0UmVzcG9uc2VVUkwgPSByZWRpcmVjdFJlc3BvbnNlLnVybCgpOwogCiAgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YT4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXgg
NTZmOTJlNmQ3YTNjNzkzMWEwOGYyOWVlZjA1OTg1Y2QzNWViNDFkMS4uZmIxYmYwZTVjMWFkYjQ0
MTczMDVmODYzYTBmYjFjNTZjOGMxMjQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0xMDIsNiArMTAyLDcgQEAg
cHVibGljOgogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KICAgICBjb25zdCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsg
fQogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3Jlc291cmNlTG9hZElEOyB9CisgICAgY29uc3QgVVJMJiBmaXJzdFJlc3BvbnNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFJlc3BvbnNlVVJMOyB9CiAKICAgICBOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQgZ2xvYmFsRnJhbWVJRCgpIHsgcmV0dXJuIHsgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VQcm94eUlELCBwYWdlSUQoKSwgZnJhbWVJRCgpIH07IH0KIApAQCAtMjU1LDYg
KzI1Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciBtX3Jlc291cmNlTG9hZElEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9y
ZWRpcmVjdFJlc3BvbnNlOworICAgIFVSTCBtX2ZpcnN0UmVzcG9uc2VVUkw7IC8vIEZpcnN0IFVS
TCBpbiByZXNwb25zZSdzIFVSTCBsaXN0IChodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
Y29uY2VwdC1yZXNwb25zZS11cmwtbGlzdCkuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNkMTE2ZGJjNmJj
YWI0NzU1NGVmYzI0NGMyNzFiMWJjZWEzZjQxZjMuLmRjNzYzYmYxZTgzNDRiYjVmM2QxN2U2NDQ5
OTc5Zjk2MWZmZWI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtNjg4LDYgKzY4OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24nOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkNPRVBE
aXNwb3NpdGlvbic6IFsnPFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJDb3Jl
L0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxYWJkZjdl
MDQyNDg4ZTZjNWU5ODc0MDM1NGE1ZWZmOWE4ZWI4ZjQ1Li5kY2Q0NzVkOGQzYmRjZjUxNzgzMGU3
ZTU0YmQ0ZWE2Mzc2NmE0ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMTYxLDYgKzE2MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db21t
b25WTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVDb250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9D
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFj
Y2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KQEAgLTQzMzUsNiArNDMzNiwxOCBAQCB2b2lkIFdlYlBh
Z2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFVSTCYgcmVwb3J0VQogICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpm
cmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZp
b2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZTo6c2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCkKK3sKKyAgICBpZiAoYXV0byogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsgZnJhbWUtPmNvcmVG
cmFtZSgpKQorICAgICAgICBXZWJDb3JlOjpzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0
aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCksIGVtYmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgZGlzcG9z
aXRpb24sIHR5cGUsIGJsb2NrZWRVUkwpOworfQorCit2b2lkIFdlYlBhZ2U6OnNlbmRDT0VQQ09S
UFZpb2xhdGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgQ09FUERpc3Bvc2l0
aW9uIGRpc3Bvc2l0aW9uLCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBj
b25zdCBVUkwmIGJsb2NrZWRVUkwpCit7CisgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7IGZyYW1lLT5jb3JlRnJhbWUoKSkKKyAg
ICAgICAgV2ViQ29yZTo6c2VuZENPRVBDT1JQVmlvbGF0aW9uKCpmcmFtZS0+Y29yZUZyYW1lKCks
IGVtYmVkZGVyT3JpZ2luLCBlbmRwb2ludCwgZGlzcG9zaXRpb24sIGRlc3RpbmF0aW9uLCBibG9j
a2VkVVJMKTsKK30KKwogdm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdmNjVkMmI0ODM1NGI4NGIwMDUyYjcwZjc0OGUyYTY0
YzliODVmNjcuLmEwYWU1ZDdhYWNmNGNiNTNiYWM2MjllNzM4NGY5NGUzMzI2MjFmOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyMCw2ICsyMjAs
NyBAQCBjbGFzcyBIVE1MTW9kZWxFbGVtZW50OwogI2VuZGlmCiAKIGVudW0gU3ludGhldGljQ2xp
Y2tUeXBlIDogaW50OF90OworZW51bSBjbGFzcyBDT0VQRGlzcG9zaXRpb24gOiBib29sOwogZW51
bSBjbGFzcyBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2w7CiBlbnVtIGNsYXNzIERP
TVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnQXBwbGljYXRp
b25GbGFncyA6IHVpbnQ4X3Q7CkBAIC00MzgsNiArNDM5LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVxdWVzdElEID0gMCk7
CiAgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CisgICAg
dm9pZCBzZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdp
biwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CisgICAgdm9pZCBzZW5kQ09F
UENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50
LCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24sIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQg
YnkgdGhlIERyYXdpbmdBcmVhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMGM1OWM5MTMwZWEyNWI3YmQ2MGI1ZTg0
NWZkNWUzZTU1ZDBjZmE5MC4uMTI3MzM5NzhjZGI3ODkyMjAzMzliZGRhNGE1ZGI1MmY3OGYzMGE2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogCiAgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJj
ZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1l
c3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgU2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZp
b2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVt
OmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBTdHJpbmcgdHlwZSwg
VVJMIGJsb2NrZWRVUkwpCisgICAgU2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGVt
YmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5kcG9pbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlz
cG9zaXRpb24gZGlzcG9zaXRpb24sIGVudW06dWludDhfdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBVUkwgYmxvY2tlZFVSTCkKICAgICBFbnF1ZXVlU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQp
CiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJjOWQwNmVlM2E1
NTk3MmZlOWMwN2FkZmZmYmNjYjM1OWI4MTY2OGQuLjJkNGViY2VkMzBmMDU4M2FjZTVkNmIxMTM1
OTNkZjZhZjkwYjY0MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0xNiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB2aW9sYXRpb25zIHJlcG9y
dGluZyBzdXBwb3J0IGZvciBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgVW5za2lwIHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4KKworICAgICAgICAqIGh0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uby1jb3JzLWNzcy13b3JrZXIuanM6CisgICAgICAgIChh
c3luYyBkb0ZldGNoKToKKyAgICAgICAgRml4IGV4aXN0aW5nIHRlc3Qgbm93IHRoYXQgSSBhZGRl
ZCBzdXBwb3J0IGZvciBGZXRjaCBkZXN0aW5hdGlvbj0iaWZyYW1lIi4KKwogMjAyMS0wOS0xNiAg
VHlsZXIgV2lsY29jayA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+IGFuZCBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgZm9udC13ZWlnaHQgc2hvdWxk
IGFsd2F5cyBzZXJpYWxpemUgYXMgYSBudW1iZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IGI4YmJiZmIzMzg5MDczNzhkZGYxODMzZDBiOWRiMzgzMzg0YzJlOWQuLjEyMWQ0NzRj
YjM2MTk3ZDk2NWQ0MzQzMDU5MjEyMTI2ZDcyNWNjZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA5LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHZpb2xhdGlvbnMgcmVwb3J0aW5nIHN1cHBvcnQg
Zm9yIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlv
dWVubiBGYWJsZXQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvZGVzdGluYXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgUmViYXNlbGluZSB0ZXN0IHRoYXQgaXMgcGFzc2luZyBub3cgdGhhdCB3
ZSBzdXBwb3J0IEZldGNoIGRlc3RpbmF0aW9uPSJpZnJhbWUiLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmct
dG8tZW5kcG9pbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIHRlc3Qg
dGhhdCBpcyBwYXNzaW5nIG5vdyB0aGF0IHdlIHN1cHBvcnQgcmVwb3J0aW5nIGZvciBDT0VQIHZp
b2xhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy5odG1sLnN1Yi5o
ZWFkZXJzOgorICAgICAgICBNZXJnZSBmaXggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9wdWxsLzMwNzg1IHNvIHRoYXQgdGhlIHRlc3QgY2FuIHJ1biB3aXRo
aW4KKyAgICAgICAgdGhlIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlLgorCiAyMDIxLTA5LTE2
ICBFcmljIEh1dGNoaXNvbiAgPGVodXRjaGlzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFz
ZWxpbmUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMv
Y3Jhc2h0ZXN0cy90cmFuc2Zvcm0tbWFycXVlZS1yZXNpemUtZGl2LWltYWdlLTAwMS5odG1sLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYTE2OGJkYWQ3YjgyNmNkMjE4ZTNkZjNhMTJlMjVkZTViYjJi
MTU1Yy4uMzAzOWYyNzQ2MjM5YjMzYjk5N2JkNjIxZGRkNDFjNWUwNGU4MmQ5MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC00MDcsNiArNDA3LDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL29yaWdpbi9jcm9zcy1vcmlnaW4tb2JqZWN0cy9jcm9zcy0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9zYW5kYm94aW5nL3Nh
bmRib3gtZGlzYWxsb3ctcG9wdXBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3kvYW5vbnltb3VzLWlmcmFtZS9yZXF1aXJlLWNvcnAtZW1iZWQtYW5vbnltb3VzLWlm
cmFtZS50ZW50YXRpdmUuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeS9ibG9iLmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1w
b2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBzLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWZyYW1lLW93bmVyLmh0dHBzLmh0bWwg
WyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L25hdmlnYXRlLXRvLWFib3V0Ymxh
bmsuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdh
dGUtdG9wLXRvLWFib3V0YmxhbmsuaHR0cHMuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVy
ciBdCkBAIC03MzYsOCArNzM3LDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvbm8tc2VjdXJlLWNvbnQKICMgb3VyIGxh
eW91dCB0ZXN0cy4gV2UgbWFpbnRhaW4gb3VyIG93biB2ZXJzaW9uIG9mIHRoaXMgdGVzdCBpbiBo
dHRwL3dwdC4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5L3JlcXVpcmUtY29ycC5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMg
V2UgZG8gbm90IHN1cHBvcnQgQ09FUCByZXBvcnRpbmcuCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8t
ZW5kcG9pbnQuaHR0cHMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCisjIFdlIGRvIG5vdCBzdXBwb3J0
IHJlcG9ydGluZyBKUyBBUEkgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9yZXBvcnRpbmcpLgogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1w
b2xpY3kvbXVsdGktZ2xvYmFscy93b3JrZXJzLWNvZXAtcmVwb3J0Lmh0dHBzLmh0bWwgWyBTa2lw
IF0KIAogIyBOZXdseSBpbXBvcnRlZCBXUFQgdGVzdHMgdGhhdCBhcmUgY3Jhc2hpbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbm8tY29ycy1jc3Mt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25vLWNvcnMt
Y3NzLXdvcmtlci5qcwppbmRleCAzMjI2YjRkNWY4NTUzYjllN2ZiODg3MzI1ODI1MDkxMmNhNTlh
NjFjLi4zNjRlMDljM2Y5MjNkOTFiZTBmNWY5M2I1ZDAzMjQ4MDk2ZDc1YmM2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbm8tY29ycy1jc3Mtd29ya2Vy
LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uby1jb3JzLWNz
cy13b3JrZXIuanMKQEAgLTEyLDcgKzEyLDcgQEAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KGV2ZW50
KQogCiBhc3luYyBmdW5jdGlvbiBkb0ZldGNoKGV2ZW50KQogewotICAgIGlmIChldmVudC5yZXF1
ZXN0LmRlc3RpbmF0aW9uID09PSAiZG9jdW1lbnQiKSB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3Qu
ZGVzdGluYXRpb24gPT09ICJkb2N1bWVudCIgfHwgZXZlbnQucmVxdWVzdC5kZXN0aW5hdGlvbiA9
PT0gImlmcmFtZSIpIHsKICAgICAgICAgY29uc3QgbGluayA9IGV2ZW50LnJlcXVlc3QudXJsLnN1
YnN0cmluZyhldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCc/JykgKyAxKTsKICAgICAgICAgY29u
c3Qgc3R5bGUgPSAnZm9udDogMTJweCAiYWhlbSInOwogICAgICAgICBldmVudC5yZXNwb25kV2l0
aChuZXcgUmVzcG9uc2UoIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkZXI+PGxpbmsgaHJlZj0n
IiArIGxpbmsgKyAiJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJz48L2hlYWRlcj48
Ym9keT48ZGl2IHN0eWxlPSciICsgc3R5bGUgKyAiJz50ZXN0PC9kaXY+PC9ib2R5PjwvaHRtbD4i
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1pZnJhbWUu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1p
ZnJhbWUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDU4YTYyMjY5NGI2NmVlZDE5NmFkNTc0YjQ5
MDA0ZGRiYmQwNWY3NWUuLjQ2OTMxY2YxMGRmYjE0ZDQxNzcyMjQyNGQ1NGU3M2M2M2YwMzE0ZDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24vZmV0Y2gtZGVzdGluYXRpb24taWZyYW1lLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9u
LWlmcmFtZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw0IEBACiAKLQogUEFTUyBJbml0
aWFsaXplIGdsb2JhbCBzdGF0ZQotRkFJTCBpZnJhbWUgZmV0Y2hlcyB3aXRoIGEgImlmcmFtZSIg
UmVxdWVzdC5kZXN0aW5hdGlvbiBhc3NlcnRfdW5yZWFjaGVkOiBXcm9uZyBkZXN0aW5hdGlvbi4g
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIGlmcmFtZSBmZXRjaGVzIHdpdGggYSAiaWZy
YW1lIiBSZXF1ZXN0LmRlc3RpbmF0aW9uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9s
aWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVk
ZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IDNkZTU3Nzg2ZGY1MGUyNDYwYTQwNzI5ZDVlMjAwYjFlOGUwODg0YjcuLmFmNmM4ZWM2MWI3ZDkw
YTFiMzYzNGIwNWZmYWU2YWQyNDU5ZWQxZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9s
aWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1l
bWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMSwxMSArMSw3IEBACi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQtNDMz
Yi04YzA5LWIzMWY2ZWU0ZmZjOCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENy
b3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgotQ09OU09MRSBNRVNT
QUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24v
dGV4dC1wbGFpbi50eHQ/NTc3MGM0NTEtNzQ5NC00MzNiLThjMDktYjMxZjZlZTRmZmM4IGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlz
cGxheSAnaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbD82MWNmODkxYy1m
NDgwLTQzMzYtOGU0MC0wODkxNzI5NmM0YjEnIGluIGEgZnJhbWUgYmVjYXVzZSBvZiBDcm9zcy1P
cmlnaW4tRW1iZWRkZXItUG9saWN5LgotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3Bs
YXkgJ2h0dHBzOi8vbG9jYWxob3N0Ojk0NDMvY29tbW9uL2JsYW5rLmh0bWw/OTllNmVjZWQtYmIw
Mi00MThhLWI5ODgtMjMzOTE4OWExNmEyJyBpbiBhIGZyYW1lIGJlY2F1c2Ugb2YgQ3Jvc3MtT3Jp
Z2luLUVtYmVkZGVyLVBvbGljeS4KLUNPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5
ICdodHRwczovL2xvY2FsaG9zdDo5NDQzL2NvbW1vbi9ibGFuay5odG1sPzAzZmEzYWE3LTI0MzMt
NGU1ZC1hZjg1LWYzYjQ1ODFkZTg2YScgaW4gYSBmcmFtZSBiZWNhdXNlIG9mIENyb3NzLU9yaWdp
bi1FbWJlZGRlci1Qb2xpY3kuCiAKLUZBSUwgc3VicmVzb3VyY2UgQ09SUCBhc3NlcnRfdW5yZWFj
aGVkOiBBIHJlcG9ydCB3aG9zZSBibG9ja2VkVVJMIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL3RleHQtcGxhaW4udHh0PzU3NzBjNDUxLTc0OTQtNDMzYi04YzA5LWIzMWY2ZWU0ZmZj
OCBhbmQgdXJsIGlzIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1i
ZWRkZXItcG9saWN5L3Jlc291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhl
YWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89
JTIyZW5kcG9pbnQlMjIpfGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9y
dC1vbmx5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIp
IGlzIG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIG5hdmlnYXRpb24g
Q09SUCBhc3NlcnRfdW5yZWFjaGVkOiBBIHJlcG9ydCB3aG9zZSBibG9ja2VkVVJMIGlzIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWw/NjFjZjg5MWMtZjQ4MC00MzM2LThl
NDAtMDg5MTcyOTZjNGIxIGFuZCB1cmwgaXMgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9odG1sL2Ny
b3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydGluZy1lbXB0eS1mcmFt
ZS5odG1sP3BpcGU9aGVhZGVyKGNyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kscmVxdWlyZS1j
b3JwO3JlcG9ydC10bz0lMjJlbmRwb2ludCUyMil8aGVhZGVyKGNyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3ktcmVwb3J0LW9ubHkscmVxdWlyZS1jb3JwO3JlcG9ydC10bz0lMjJyZXBvcnQtb25s
eS1lbmRwb2ludCUyMikgaXMgbm90IGZvdW5kLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZB
SUwgQ09FUCB2aW9sYXRpb24gb24gbmVzdGVkIGZyYW1lIG5hdmlnYXRpb24gYXNzZXJ0X3VucmVh
Y2hlZDogQSByZXBvcnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQz
L2NvbW1vbi9ibGFuay5odG1sPzk5ZTZlY2VkLWJiMDItNDE4YS1iOTg4LTIzMzkxODlhMTZhMiBh
bmQgdXJsIGlzIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L3Jlc291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUuaHRtbD9waXBlPWhlYWRl
cihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIy
ZW5kcG9pbnQlMjIpfGhlYWRlcihjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5LXJlcG9ydC1v
bmx5LHJlcXVpcmUtY29ycDtyZXBvcnQtdG89JTIycmVwb3J0LW9ubHktZW5kcG9pbnQlMjIpIGlz
IG5vdCBmb3VuZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFR3byBDT0VQIGhlYWRl
cnMsIHNwbGl0IGluc2lkZSByZXBvcnQtdG8gdmFsdWUgYXNzZXJ0X3VucmVhY2hlZDogQSByZXBv
cnQgd2hvc2UgYmxvY2tlZFVSTCBpcyBodHRwczovL2xvY2FsaG9zdDo5NDQzL2NvbW1vbi9ibGFu
ay5odG1sPzAzZmEzYWE3LTI0MzMtNGU1ZC1hZjg1LWYzYjQ1ODFkZTg2YSBhbmQgdXJsIGlzIGh0
dHBzOi8vbG9jYWxob3N0Ojk0NDMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3Jl
c291cmNlcy9yZXBvcnRpbmctZW1wdHktZnJhbWUtbXVsdGlwbGUtaGVhZGVycy5odG1sLmFzaXMg
aXMgbm90IGZvdW5kLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1Mgc3VicmVzb3VyY2Ug
Q09SUAorUEFTUyBuYXZpZ2F0aW9uIENPUlAKK1BBU1MgQ09FUCB2aW9sYXRpb24gb24gbmVzdGVk
IGZyYW1lIG5hdmlnYXRpb24KK1BBU1MgVHdvIENPRVAgaGVhZGVycywgc3BsaXQgaW5zaWRlIHJl
cG9ydC10byB2YWx1ZQorRkFJTCBTaGFyZWQgd29ya2VyIGZldGNoIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVsbCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd3b3JrZXIucG9ydC5zdGFydCcpIgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMuaHRt
bC5oZWFkZXJzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0
dHBzLmh0bWwuaGVhZGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjU5MzhjNjc2NGQ3ZWJiMGE3OGIyMDIyYTdk
NDhkYTkzMmVjMmIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVw
b3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBzLmh0bWwuaGVhZGVycwpAQCAtMCwwICsxIEBACityZXBv
cnQtdG86IHsgImdyb3VwIjogImVuZHBvaW50IiwgIm1heF9hZ2UiOiAxMDg4NjQwMCwgImVuZHBv
aW50cyI6IFt7ICJ1cmwiOiAiL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXNv
dXJjZXMvcmVwb3J0LnB5P2VuZHBvaW50PWVuZHBvaW50IiB9XSB9LCB7ICJncm91cCI6ICJyZXBv
cnQtb25seS1lbmRwb2ludCIsICJtYXhfYWdlIjogMTA4ODY0MDAsICJlbmRwb2ludHMiOiBbeyAi
dXJsIjogIi9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9y
dC5weT9lbmRwb2ludD1yZXBvcnQtb25seS1lbmRwb2ludCIgfV0gfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0aW5nLXRvLWVuZHBvaW50Lmh0dHBzLmh0bWwuc3ViLmhl
YWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8tZW5kcG9pbnQuaHR0cHMu
aHRtbC5zdWIuaGVhZGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RhNmFiMjI3
MmZjNDg1OGY4YmE0MTE5ZDEzY2EwNzEwNGM3NjAxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8t
ZW5kcG9pbnQuaHR0cHMuaHRtbC5zdWIuaGVhZGVycworKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLXJlcG9ydC10bzogeyAiZ3JvdXAiOiAiZW5kcG9pbnQiLCAibWF4X2FnZSI6IDEwODg2NDAw
LCAiZW5kcG9pbnRzIjogW3sgInVybCI6ICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0
c1todHRwc11bMF19fS9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVzb3VyY2Vz
L3JlcG9ydC5weT9lbmRwb2ludD1lbmRwb2ludCIgfV0gfSwgeyAiZ3JvdXAiOiAicmVwb3J0LW9u
bHktZW5kcG9pbnQiLCAibWF4X2FnZSI6IDEwODg2NDAwLCAiZW5kcG9pbnRzIjogW3sgInVybCI6
ICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVzb3VyY2VzL3JlcG9ydC5weT9lbmRwb2ludD1yZXBv
cnQtb25seS1lbmRwb2ludCIgfV0gfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>