<?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>229814</bug_id>
          
          <creation_ts>2021-09-02 10:05:53 -0700</creation_ts>
          <short_desc>Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel</short_desc>
          <delta_ts>2021-09-10 12:04:20 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230164</see_also>
          <bug_file_loc>https://github.com/whatwg/html/issues/5803</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161472</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>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789755</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 10:05:53 -0700</bug_when>
    <thetext>Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy concerns, as discussed here:
- https://github.com/whatwg/html/issues/5803</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789763</commentid>
    <comment_count>1</comment_count>
      <attachid>437163</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 10:13:51 -0700</bug_when>
    <thetext>Created attachment 437163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789764</commentid>
    <comment_count>2</comment_count>
      <attachid>437164</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 10:15:41 -0700</bug_when>
    <thetext>Created attachment 437164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789776</commentid>
    <comment_count>3</comment_count>
      <attachid>437166</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 10:44:16 -0700</bug_when>
    <thetext>Created attachment 437166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789857</commentid>
    <comment_count>4</comment_count>
      <attachid>437166</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-09-02 13:08:32 -0700</bug_when>
    <thetext>Comment on attachment 437166
Patch

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

&gt; Tools/TestRunnerShared/TestFeatures.cpp:128
&gt; +static bool shouldDisableBroadcastChannelOriginPartitioning(const std::string&amp; pathOrURL)
&gt; +{
&gt; +    return pathContains(pathOrURL, &quot;localhost:8800/&quot;) || pathContains(pathOrURL, &quot;localhost:9443/&quot;);
&gt; +}

We&apos;d like to avoid adding more of these path based filters (the goal was to remove them all eventually).

Can we just disable it by default for all tests instead and use header comments to enable it where needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789859</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 13:10:05 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Comment on attachment 437166 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437166&amp;action=review
&gt; 
&gt; &gt; Tools/TestRunnerShared/TestFeatures.cpp:128
&gt; &gt; +static bool shouldDisableBroadcastChannelOriginPartitioning(const std::string&amp; pathOrURL)
&gt; &gt; +{
&gt; &gt; +    return pathContains(pathOrURL, &quot;localhost:8800/&quot;) || pathContains(pathOrURL, &quot;localhost:9443/&quot;);
&gt; &gt; +}
&gt; 
&gt; We&apos;d like to avoid adding more of these path based filters (the goal was to
&gt; remove them all eventually).
&gt; 
&gt; Can we just disable it by default for all tests instead and use header
&gt; comments to enable it where needed?

We could. But since it would be enabled in the shipping configuration, ideally, I&apos;d want it to be the default in our tests I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789873</commentid>
    <comment_count>6</comment_count>
      <attachid>437189</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 13:50:54 -0700</bug_when>
    <thetext>Created attachment 437189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789876</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 13:58:55 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Comment on attachment 437166 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437166&amp;action=review
&gt; 
&gt; &gt; Tools/TestRunnerShared/TestFeatures.cpp:128
&gt; &gt; +static bool shouldDisableBroadcastChannelOriginPartitioning(const std::string&amp; pathOrURL)
&gt; &gt; +{
&gt; &gt; +    return pathContains(pathOrURL, &quot;localhost:8800/&quot;) || pathContains(pathOrURL, &quot;localhost:9443/&quot;);
&gt; &gt; +}
&gt; 
&gt; We&apos;d like to avoid adding more of these path based filters (the goal was to
&gt; remove them all eventually).
&gt; 
&gt; Can we just disable it by default for all tests instead and use header
&gt; comments to enable it where needed?

I made this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789983</commentid>
    <comment_count>8</comment_count>
      <attachid>437220</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:55:03 -0700</bug_when>
    <thetext>Created attachment 437220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790733</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-09-06 10:15:45 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; Comment on attachment 437166 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=437166&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/TestRunnerShared/TestFeatures.cpp:128
&gt; &gt; &gt; +static bool shouldDisableBroadcastChannelOriginPartitioning(const std::string&amp; pathOrURL)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    return pathContains(pathOrURL, &quot;localhost:8800/&quot;) || pathContains(pathOrURL, &quot;localhost:9443/&quot;);
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; We&apos;d like to avoid adding more of these path based filters (the goal was to
&gt; &gt; remove them all eventually).
&gt; &gt; 
&gt; &gt; Can we just disable it by default for all tests instead and use header
&gt; &gt; comments to enable it where needed?
&gt; 
&gt; We could. But since it would be enabled in the shipping configuration,
&gt; ideally, I&apos;d want it to be the default in our tests I think.

The opposite would also be fine (enable by default, disable explicitly where needed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790999</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-07 07:25:13 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; &gt; Comment on attachment 437166 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=437166&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/TestRunnerShared/TestFeatures.cpp:128
&gt; &gt; &gt; &gt; +static bool shouldDisableBroadcastChannelOriginPartitioning(const std::string&amp; pathOrURL)
&gt; &gt; &gt; &gt; +{
&gt; &gt; &gt; &gt; +    return pathContains(pathOrURL, &quot;localhost:8800/&quot;) || pathContains(pathOrURL, &quot;localhost:9443/&quot;);
&gt; &gt; &gt; &gt; +}
&gt; &gt; &gt; 
&gt; &gt; &gt; We&apos;d like to avoid adding more of these path based filters (the goal was to
&gt; &gt; &gt; remove them all eventually).
&gt; &gt; &gt; 
&gt; &gt; &gt; Can we just disable it by default for all tests instead and use header
&gt; &gt; &gt; comments to enable it where needed?
&gt; &gt; 
&gt; &gt; We could. But since it would be enabled in the shipping configuration,
&gt; &gt; ideally, I&apos;d want it to be the default in our tests I think.
&gt; 
&gt; The opposite would also be fine (enable by default, disable explicitly where
&gt; needed).

Put I cannot add header comments to disable the feature in WPT tests, which is why I was doing it some other way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791158</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-07 12:38:15 -0700</bug_when>
    <thetext>Committed r282105 (241403@main): &lt;https://commits.webkit.org/241403@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437220.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791159</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-07 12:39:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/82834757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791220</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-07 14:18:10 -0700</bug_when>
    <thetext>Follow-up fix in &lt;https://commits.webkit.org/r282106&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792171</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-09 17:02:08 -0700</bug_when>
    <thetext>Follow-up fix in &lt;https://commits.webkit.org/r282246&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437163</attachid>
            <date>2021-09-02 10:13:51 -0700</date>
            <delta_ts>2021-09-02 10:15:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229814-20210902101350.patch</filename>
            <type>text/plain</type>
            <size>36750</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk0MTY2MWZkOGE4N2FmMDkxYTMzMDNm
YWFhNjNmMTMyMDRiMjQ4MjQuLjU3NWI0M2YyYjZkZDllZGRjMmIyZmQ5MDk3ZDE0NTdhODYxYjky
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcHJlZmVyZW5jZSBmb3IgQnJv
YWRjYXN0Q2hhbm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNl
IHdlIGN1cnJlbnRseQorICAgICAgICBkaXNhYmxlIHRoaXMgd2hlbiBydW5uaW5nIHdlYi1wbGF0
Zm9ybS10ZXN0cyBpbiBXS1RSIC8gRFJUIGZvciBub3cuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWw6CisKIDIwMjEtMDktMDIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIHN1cHBvcnQgZm9yIEpJVCBv
cGVyYXRpb24gdmFsaWRhdGlvbiB0ZXN0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlODk3YTJlZmE0MjVm
YzdlMmRlNTlhODE4ZjVkZDhmMTlhMGZhYTEuLjgwMTNiYjEwN2M4ZGQ1ZTAwMzYwY2MwYTRmMWNl
ZGNlMTkxZmJkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOS0wMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmlnaW4g
cGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5u
ZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTgx
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJy
b2FkY2FzdENoYW5uZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5zLCBhcyBk
aXNjdXNzZWQgaGVyZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwv
aXNzdWVzLzU4MDMKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNh
c3RjaGFubmVsLXBhcnRpdGlvbmluZy5odG1sCisKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hh
bm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RD
aGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6Om1faWRlbnRpZmllcik6CisgICAgICAgIChXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9C
cm9hZGNhc3RDaGFubmVsLmg6CisgICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorCiAyMDIxLTA5LTAyICBB
bmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBCcmFpbGxl
IGRpc3BsYXkgaXMgYmxhbmsgaW4gY29udGVudGVkaXRhYmxlIGVsZW1lbnRzIHdoZW4gdGhlIGZp
ZWxkIGlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgZWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjdlOGUwZWZh
NTY4NjYxNzI0NTQ3OTU4MmI0ZTdjN2YzMWM5OGU5Ni4uNGQ5ZjNiY2IzZGJjZjliOWQxM2ViZjRk
MjE4NzdiZGIxNTgyMTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0wMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmln
aW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENo
YW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElt
cGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9y
IEJyb2FkY2FzdENoYW5uZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5zLCBh
cyBkaXNjdXNzZWQgaGVyZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0
bWwvaXNzdWVzLzU4MDMKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVtb3Zl
Q29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5u
ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oOgorCiAyMDIxLTA5LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBQQ006OlN0b3JlIG93bmVyc2hp
cCBmcm9tIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0byBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggY2E3YTllODhmYmYwNjAxMWU4
N2ZjMTA1OTcwNzg4ODNkODVkYjgxMC4uOTBiOGMxZTI2M2EzZGJjZjY2Njg4NmU4MGZjZjllNzA4
NTRkMzVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wOS0w
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBv
cmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2Fz
dENoYW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyOTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikg
Zm9yIEJyb2FkY2FzdENoYW5uZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5z
LCBhcyBkaXNjdXNzZWQgaGVyZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdn
L2h0bWwvaXNzdWVzLzU4MDMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oOgorCiAyMDIxLTA4LTI3ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBz
dGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTGFuZCBXaW5kb3dzIGJ1aWxkIGZpeGVzIGZyb20g
c2FmYXJpLTYxMi4xLjI5LjE0LWJyYW5jaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggOWQzY2NlOTdjMDg1OWE5OGRlODlj
Yjg2YjdkNjJlZjg2YjU4YzU0Yi4uODVmYTkwNWZiN2Y3ZWI0YzNlNzI3NWY1NmQ2ZTBkMDcwNjc4
N2ZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWwKQEAgLTM5NCw2ICszOTQsMTYgQEAgQmVhY29uQVBJRW5hYmxlZDoKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBh
cnRpdGlvbmluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdl
YktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKwogQ1NTVHJhbnNm
b3JtU3R5bGVPcHRpbWl6ZWQzREVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgY29uZGl0aW9uOiBF
TkFCTEUoQ1NTX1RSQU5TRk9STV9TVFlMRV9PUFRJTUlaRURfM0QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IDIyMWY3ZDIyZjkyOWY1OTQ3NmRiMzkzYTQxNThlMjRlZGI2NTI1M2Uu
LjA2ZjZkMTNlNDgyNmRhYTUzMDYyZjc5Y2U0YjQ5NzRhNDM2MzVmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC04Nyw3ICs4Nyw3IEBAIEJsYW5rQW5jaG9yVGFyZ2V0SW1wbGll
c05vT3BlbmVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCi0j
IFdlIGhhdmUgdG8gcmVzb2x2ZSB0aGUgcHJpdmFjeSBpc3N1ZSBpbiBodHRwczovL2dpdGh1Yi5j
b20vd2hhdHdnL2h0bWwvaXNzdWVzLzU4MDMgYmVmb3JlIHdlIGNhbiBlbmFibGUgdGhpcy4KKyMg
V2Ugd291bGQgaGF2ZSB0byBwYXJ0aXRpb24gQnJvYWRjYXN0Q2hhbm5lbCBiYXNlZCBvbiBQYWdl
R3JvdXBzIGlmIHdlIHdhbnRlZCB0byBlbmFibGUgdGhpcyBmb3IgV2ViS2l0TGVnYWN5LgogQnJv
YWRjYXN0Q2hhbm5lbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJCcm9hZGNhc3RDaGFubmVsIEFQSSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9C
cm9hZGNhc3RDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcAppbmRleCA2NjQwMWJiMGJmYjQzOGM4ZWQ0MTcwYjEzODkyN2NmZDI0OThlZWMxLi4xYzYy
NTYzYzExMWUyODY2ZTIyODhlNmVkYTY0OGJjNTlhYWZmZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0Jyb2FkY2FzdENoYW5uZWwuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBIYXNoTWFwPEJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4mIGNoCiBCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IEFjdGl2ZURPTU9i
amVjdCgmY29udGV4dCkKICAgICAsIG1fbmFtZShuYW1lKQotICAgICwgbV9vcmlnaW4oY29udGV4
dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCkpCisgICAgLCBtX29yaWdpbiB7IGNvbnRleHQuc2V0
dGluZ3NWYWx1ZXMoKS5icm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZCA/
IGNvbnRleHQudG9wT3JpZ2luKCkuZGF0YSgpIDogY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5k
YXRhKCksIGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+ZGF0YSgpIH0KICAgICAsIG1faWRlbnRp
ZmllcihCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiB7
CiAgICAgewpAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0
Y2hNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSkKIAogICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6UG9zdGVkTWVzc2Fn
ZVF1ZXVlLCBbdGhpcywgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghbV9pc0Nsb3NlZCkKLSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2Fn
ZUV2ZW50OjpjcmVhdGUoeyB9LCBXVEZNb3ZlKG1lc3NhZ2UpLCBtX29yaWdpbi50b1N0cmluZygp
KSk7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKHsgfSwg
V1RGTW92ZShtZXNzYWdlKSwgbV9vcmlnaW4uY2xpZW50T3JpZ2luLnRvU3RyaW5nKCkpKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKaW5kZXggM2RiYThm
OGVkYzQwYmMzNjdjNTdkM2JjOTk1M2UyOTRmNDU0MDEwOS4uNmRhNjgzYjljYzEyZmU3YTYyNDNj
MDVkYzVlYTljNWRhNGE3NmFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2Fk
Y2FzdENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5o
CkBAIC0yNyw5ICsyNyw5IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNs
dWRlICJCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNsaWVudE9yaWdp
bi5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
LSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0b3AoKSBmaW5hbCB7IGNsb3NlKCk7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyBtX25hbWU7Ci0gICAgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhIG1fb3JpZ2luOworICAgIGNv
bnN0IENsaWVudE9yaWdpbiBtX29yaWdpbjsKICAgICBjb25zdCBCcm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faGFzUmVsZXZhbnRFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAppbmRleCA1YzJiZmIwNTQ3ZjM2
MTU2YmVlYTFkZjFjZGI1ZjNmZDBhMzVlYmEyLi4xMDQyMThjMTMwMGExZjFkNmRlMmE3MDA1NDI2
NzY0MTZiNTQwOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oCkBAIC0zMiwxNCArMzIsMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwotc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK3N0
cnVjdCBDbGllbnRPcmlnaW47CiAKIGNsYXNzIEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSA6IHB1
YmxpYyBSZWZDb3VudGVkPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gewogcHVibGljOgogICAg
IHZpcnR1YWwgfkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckNoYW5uZWwoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
b3N0TWVzc2FnZShjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ0MThj
NjVhODMzYmFkNGRkZjM5NjczNGQ5NzVmMWE4NzNjNjQzNDAuLjVlMGU1YWExZDA4Mjk1YTEwMzZl
NGM1NWYzYjUwYzMxZGQxZjkzNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCkBAIC0xMTc0LDkgKzExNzQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEVtcHR5QnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCByZWdpc3RlckNo
YW5uZWwoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwo
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIpIGZpbmFsIHsgfQotICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIs
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgZmluYWwgeyB9CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQor
ICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3Ry
aW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgIHZvaWQgcG9z
dE1lc3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9OwogCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdl
Q29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggOWI4NmViZmMzMDM0M2I0ZTQ1NDUz
MmYyNmMwYWIyODFkZmQzNTc5Ni4uZDE4MGUwN2UxNzczMmUwMjlmMDY3NmQ0ZTk3ZmJmMDJiOTA3
NjUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpO
ZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi12b2lkIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
IGNoYW5uZWxJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpyZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikKIHsKICAgICBhdXRv
JiBjaGFubmVsc0Zvck9yaWdpbiA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5zdXJlKG9yaWdpbiwg
W10geyByZXR1cm4gTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwIHsgfTsgfSkuaXRlcmF0b3It
PnZhbHVlOwogICAgIGF1dG8mIGNoYW5uZWxzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luLmVu
c3VyZShuYW1lLCBbXSB7IHJldHVybiBWZWN0b3I8R2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXI+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwpAQCAtNDMsNyArNDMsNyBAQCB2b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3RpbwogICAgIGNoYW5uZWxzRm9yTmFtZS5hcHBlbmQoV1RGTW92ZShnbG9i
YWxDaGFubmVsSWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZp
ZXIpCit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFu
bmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBjaGFubmVsc0Zvck9y
aWdpbkl0ZXJhdG9yID0gbV9icm9hZGNhc3RDaGFubmVscy5maW5kKG9yaWdpbik7CiAgICAgQVNT
RVJUKGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgIT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQo
KSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6dW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0CiAgICAgY2hhbm5l
bHNGb3JOYW1lSXRlcmF0b3ItPnZhbHVlLnJlbW92ZUZpcnN0KGdsb2JhbENoYW5uZWxJZGVudGlm
aWVyKTsKIH0KIAotdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgc291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQo
b3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2Fk
Y2FzdENoYW5uZWxzLmVuZCgpKTsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBOZXR3b3JrQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIGMKIAogdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZW1vdmVDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBWZWN0b3I8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zVG9SZW1vdmU7CisgICAgVmVjdG9yPFdlYkNv
cmU6OkNsaWVudE9yaWdpbj4gb3JpZ2luc1RvUmVtb3ZlOwogICAgIGZvciAoYXV0byYgZW50cnkg
OiBtX2Jyb2FkY2FzdENoYW5uZWxzKSB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzVG9S
ZW1vdmU7CiAgICAgICAgIGZvciAoYXV0byYgaW5uZXJFbnRyeSA6IGVudHJ5LnZhbHVlKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDQxNWE2OTY1YjlhNTNjNzFkZWIwMjUwMTQ4
YjQ1MGRmZGI2ZjFmYTguLjUxZTZiOTQwZGQ2OTYyN2U4MDEwNGQzOGI4ZDM3OWQzZTIzMDRjZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAK
LSAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQQzo6
Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0
cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOwotICAgIHZv
aWQgcG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRj
YXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgogICAgIHN0
cnVjdCBHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciB7CkBAIC02MCw5ICs2MCw4IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgLy8gRklYTUU6IEJyb2FkY2FzdENo
YW5uZWwgbmVlZHMgcGFydGl0aW9uaW5nIChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwv
aXNzdWVzLzU4MDMpLgogICAgIHVzaW5nIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCA9IEhh
c2hNYXA8U3RyaW5nLCBWZWN0b3I8R2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+PjsK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgTmFtZVRvQ2hhbm5lbElk
ZW50aWZpZXJzTWFwPiBtX2Jyb2FkY2FzdENoYW5uZWxzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6
Q2xpZW50T3JpZ2luLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fYnJvYWRjYXN0Q2hh
bm5lbHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgppbmRleCA5YjY4NTBiOTU1ODMzNzZlNDk5MWQyMTVh
MmNkZDcxNTQ0OWFmZDllLi40Yjc0ZGY4MTJkZTg3OWY4NTA5ZDUxMTQ4NjliMDc3OWY2MDZlZWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0y
MSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVnaXN0ZXJDaGFubmVsKHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2Vi
Q29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRz
Q29ubmVjdGlvbgotICAgIFVucmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RN
ZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCisgICAgUmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgorICAgIFVucmVnaXN0ZXJD
aGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwg
V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdh
bnRzQ29ubmVjdGlvbgorICAgIFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2Fn
ZSkgLT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwCmluZGV4IDZkYzdkNmFiYTAxZTU4Y2MzYjFiMWM4YjliMDJm
YjAzZGY1NTk5MjAuLjQ5ODJmODA2NjIzNDU5MDhiZDBhZWRhMzBmMWM3N2NmMjUzOGMzMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zOSwxNyAr
MzksMTcgQEAgc3RhdGljIGlubGluZSBJUEM6OkNvbm5lY3Rpb24mIG5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpCiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlJlZ2lzdGVyQ2hhbm5l
bCB7IG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElk
ZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpVbnJlZ2lzdGVy
Q2hhbm5lbCB7IG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2Uo
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OlBvc3RNZXNzYWdlIHsgb3JpZ2luLCBuYW1lLCBzb3VyY2UsIFdlYkNvcmU6Ok1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzIHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oCmluZGV4IDQ0YTNkMzgyYzA4MTUwZjdhMDlhOGU4ZTk3ZmMyODZjYWFjMTdjNTMu
LjUwNTU3N2U2ZjRlMmMzY2MyNzJlM2RkYTIzODZlOTVlNDNlN2MzNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkp
OwogICAgIH0KIAotICAgIHZvaWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2Fn
ZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggNDVjMzJhMWIzODU4OWIyYmQzYzg5YTcz
OGY3YTk4MmFlMmMzMjgxMS4uZDEwMzIwOGM4Zjg2MzNkNjA4YWMyM2U1N2Y0ZWYzNTc4NmVkNDJm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OmdldE9yQ3JlYXRlKGJvb2wgcAogICAgIHJldHVybiByZWdpc3RyeTsKIH0KIAotdm9p
ZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgYXV0byYgY2hhbm5lbHNGb3JPcmlnaW4gPSBtX2NoYW5uZWxzLmVuc3VyZShvcmln
aW4sIFtdIHsgcmV0dXJuIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCB7IH07IH0pLml0ZXJh
dG9yLT52YWx1ZTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkQKICAg
ICBjaGFubmVsc0Zvck5hbWUuYXBwZW5kKGlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID0gbV9jaGFubmVscy5maW5kKG9yaWdp
bik7CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1
bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpCiAgICAgY2hhbm5l
bHNGb3JOYW1lSXRlcmF0b3ItPnZhbHVlLnJlbW92ZUZpcnN0KGlkZW50aWZpZXIpOwogfQogCi12
b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0
TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6
OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuaAppbmRleCAzNzExMzIyMDUxYzdiODFmNmIyMWE1ZmI0YzE1YzAwNzA2M2Q5NDA4
Li41ZDBkMTUwZWY5ZTBmMTM1NjNlMjMzZmJlY2Y3NmI2NmE1MGVlZmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8
V2ViQ29yZS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0z
NCwxNCArMzQsMTMgQEAgY2xhc3MgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IDogcHVibGlj
IFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgcHUKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gZ2V0T3JDcmVhdGUoYm9vbCBwcml2
YXRlU2Vzc2lvbik7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1l
c3NhZ2UoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllcikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogCiBwcml2YXRlOgog
ICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpID0gZGVmYXVsdDsKIAotICAgIC8vIEZJ
WE1FOiBCcm9hZGNhc3RDaGFubmVsIG5lZWRzIHBhcnRpdGlvbmluZyAoaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzKS4KICAgICB1c2luZyBOYW1lVG9DaGFubmVsSWRl
bnRpZmllcnNNYXAgPSBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyPj47Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEsIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcD4gbV9jaGFubmVsczsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OkNsaWVudE9yaWdpbiwgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwPiBtX2No
YW5uZWxzOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBkNmFjNWQxYWJlYWM4MDRhOTQ0MzQwMTI3YzU2YzJhY2ViYzU3ZjlkLi4zZjUwMDJi
NTZlYTYxN2NkMjQ4MjBmMDBhZmU5YzcyOWU5NzM5NzE1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3Jp
Z2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RD
aGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
aXNhYmxlIEJyb2FkY2FzdENoYW5uZWwgb3JpZ2luIHBhcnRpdGlvbmluZyB3aGVuIHJ1bm5pbmcg
V1BUIHRlc3RzIHVuZGVyCisgICAgICAgIFdLVFIgYW5kIERSVCBzaW5jZSBpdCB3b3VsZCBjYXVz
ZSB0b28gbWFueSB0ZXN0IGZhaWxydWVzIGF0IHRoaXMgcG9pbnQKKyAgICAgICAgKGUuZy4gQ09P
UC9DT0VQIHRlc3RzKS4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVz
LmNwcDoKKyAgICAgICAgKFdUUjo6c2hvdWxkRGlzYWJsZUJyb2FkY2FzdENoYW5uZWxPcmlnaW5Q
YXJ0aXRpb25pbmcpOgorICAgICAgICAoV1RSOjpoYXJkY29kZWRGZWF0dXJlc0Jhc2VkT25QYXRo
Rm9yVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0
ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1bHRzKToKKwogMjAyMS0wOS0wMiAgQ2Fy
bG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXUEVdIFBvcnQgQVBJIHRlc3QgcnVubmVyIHRvIHB5dGhvbjMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVGVzdEZlYXR1cmVzLmNwcAppbmRleCBmMzBlYjA0YWE3NzMwMDQ2YjkwYWVhMjdmNDVj
NjMyOTgwNzE0NDcxLi5lZWYyNzUxZTA3ZTk0NjRhZTU0ZGUxNjczYTU3MzQ2YWQzMWJhMWQ5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5jcHAKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuY3BwCkBAIC0xMjIsNiArMTIyLDEx
IEBAIHN0YXRpYyBib29sIHNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihjb25zdCBzdGQ6
OnN0cmluZyYgcGF0aE9yVVJMKQogICAgICAgICB8fCBwYXRoQ29udGFpbnMocGF0aE9yVVJMLCAi
bG9jYWxob3N0Ojg4MDAvd2Vic29ja2V0cyIpIHx8IHBhdGhDb250YWlucyhwYXRoT3JVUkwsICJs
b2NhbGhvc3Q6OTQ0My93ZWJzb2NrZXRzIik7CiB9CiAKK3N0YXRpYyBib29sIHNob3VsZERpc2Fi
bGVCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBw
YXRoT3JVUkwpCit7CisgICAgcmV0dXJuIHBhdGhDb250YWlucyhwYXRoT3JVUkwsICJsb2NhbGhv
c3Q6ODgwMC8iKSB8fCBwYXRoQ29udGFpbnMocGF0aE9yVVJMLCAibG9jYWxob3N0Ojk0NDMvIik7
Cit9CisKIFRlc3RGZWF0dXJlcyBoYXJkY29kZWRGZWF0dXJlc0Jhc2VkT25QYXRoRm9yVGVzdChj
b25zdCBUZXN0Q29tbWFuZCYgY29tbWFuZCkKIHsKICAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7
CkBAIC0xMzIsNiArMTM3LDggQEAgVGVzdEZlYXR1cmVzIGhhcmRjb2RlZEZlYXR1cmVzQmFzZWRP
blBhdGhGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJiBjb21tYW5kKQogICAgICAgICBmZWF0dXJl
cy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwg
dHJ1ZSB9KTsKICAgICBpZiAoc2hvdWxkRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKGNvbW1hbmQu
cGF0aE9yVVJMKSkKICAgICAgICAgZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNl
cnQoeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgdHJ1ZSB9KTsKKyAgICBpZiAoc2hvdWxk
RGlzYWJsZUJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmcoY29tbWFuZC5wYXRoT3JV
UkwpKQorICAgICAgICBmZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydCh7
ICJCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZCIsIGZhbHNlIH0pOwog
ICAgIGlmIChhdXRvIGRldmljZVNjYWxlRmFjdG9yID0gb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
ckZvclRlc3QoY29tbWFuZC5wYXRoT3JVUkwpOyBkZXZpY2VTY2FsZUZhY3RvciAhPSBzdGQ6Om51
bGxvcHQpCiAgICAgICAgIGZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQo
eyAiZGV2aWNlU2NhbGVGYWN0b3IiLCBkZXZpY2VTY2FsZUZhY3Rvci52YWx1ZSgpIH0pOwogICAg
IGlmIChhdXRvIHZpZXdXaWR0aEFuZEhlaWdodCA9IG92ZXJyaWRlVmlld1dpZHRoQW5kSGVpZ2h0
Rm9yVGVzdChjb21tYW5kLnBhdGhPclVSTCk7IHZpZXdXaWR0aEFuZEhlaWdodCAhPSBzdGQ6Om51
bGxvcHQpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
M2VjMGRkMjFmNDAyYWNlYzZhODE4ZDNkNWYwNTA1YjU3YTA2ZWE2My4uNTkxZmJhMDI5M2Y3MTJm
NjJiZjViNmUxNjczZTA5ZDk5MGE4MGRjMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTg5Miw4ICs4OTIsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0
aW8KICAgICAgICAgV0tQcmVmZXJlbmNlc1NldFByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uRW5hYmxl
ZChwcmVmZXJlbmNlcywgb3B0aW9ucy5zaG91bGRFbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bigpKTsKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVm
ZXJlbmNlcywga1dLQWxsb3dBbGxTdG9yYWdlKTsgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0
aW5nIHRoZSBkZWZhdWx0LgogICAgIAotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIFtrZXksIHZh
bHVlXSA6IG9wdGlvbnMuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcygpKQorICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIFtrZXksIHZhbHVlXSA6IG9wdGlvbnMuYm9vbFdlYlByZWZlcmVuY2VGZWF0
dXJlcygpKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkNIUklTOiBTZXR0aW5nICVzIHRv
ICVkIiwga2V5LmNfc3RyKCksIHZhbHVlKTsKICAgICAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRC
b29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKHByZWZlcmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdl
dCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgW2tleSwgdmFsdWVd
IDogb3B0aW9ucy5kb3VibGVXZWJQcmVmZXJlbmNlRmVhdHVyZXMoKSkKICAgICAgICAgICAgIFdL
UHJlZmVyZW5jZXNTZXREb3VibGVWYWx1ZUZvcktleUZvclRlc3RpbmcocHJlZmVyZW5jZXMsIHZh
bHVlLCB0b1dLKGtleSkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNw
cAppbmRleCAzODY3NjVlOWRlNjU3NTQzZTQwNmRkMjlhMDQwNDNlOTM3NDE5OWM1Li45ZWEwMmU1
NDE3ZDdhN2FlMzk0MzIwNTVhYzlmMjViYTFkYWViY2Y5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmNwcApAQCAtNjQsNiArNjQsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRl
c3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICB7ICJBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJs
ZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQiLCBmYWxzZSB9LAorICAgICAgICAgICAgeyAiQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRp
dGlvbmluZ0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5HUFVQ
cm9jZXNzRW5hYmxlZCIsIGNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWRWYWx1ZSB9LAog
ICAgICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkIiwgZmFsc2UgfSwK
QEAgLTE1Niw3ICsxNTcsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZh
dWx0cygpCiAgICAgICAgICAgICB7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwgZmFsc2UgfSwKICAg
ICAgICAgICAgIHsgInVzZUZsZXhpYmxlVmlld3BvcnQiLCBmYWxzZSB9LAogICAgICAgICAgICAg
eyAidXNlUmVtb3RlTGF5ZXJUcmVlIiwgZmFsc2UgfSwKLSAgICAgICAgICAgIHsgInVzZVRocmVh
ZGVkU2Nyb2xsaW5nIiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgInVzZVRocmVhZGVkU2Nyb2xs
aW5nIiwgZmFsc2UgfQogICAgICAgICB9OwogICAgICAgICBmZWF0dXJlcy5kb3VibGVUZXN0UnVu
bmVyRmVhdHVyZXMgPSB7CiAgICAgICAgICAgICB7ICJjb250ZW50SW5zZXQudG9wIiwgMCB9LApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDA4Yzk0MWY0MjEyMGQ2YjEzOGNiMTU5MGRlOTBlOGFkNzkxNDBlY2UuLmI0YzhkNmU3
ZDdlODY4Y2ZiZmUzYzY2ZDdiZDIwMjEwYzhjM2RlYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0wOS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9y
IEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyOTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1w
YXJ0aXRpb25pbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcv
cmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWlmcmFtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hh
bm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRtbDogQWRkZWQuCisKIDIwMjEtMDktMDIgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyYWlsbGUgZGlz
cGxheSBpcyBibGFuayBpbiBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMgd2hlbiB0aGUgZmllbGQg
aXMgZm9sbG93ZWQgYnkgYW5vdGhlciBlbGVtZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5l
bC1wYXJ0aXRpb25pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YjZmYWIzYjYyM2QxMDVk
YzBlYTk3YmIzNTdhYzIzZmY2MDMwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhhdCBCcm9hZGNhc3RDaGFubmVsIGlzIHBh
cnRpb25pbmcgYmFzZWQgb24gdG9wIG9yaWdpbiAvIGZyYW1lIG9yaWdpbi4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUtb3Jp
Z2luIHBvcHVwCitQQVNTIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpblBvcHVwIGlzIGZhbHNlCitQ
QVNTIFJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBpZnJhbWUgdW5kZXIgc2FtZS1v
cmlnaW4gcG9wdXAKK1BBU1MgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1l
T3JpZ2luUG9wdXAgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3Nh
Z2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmcuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NzQ5NWRkYzMwNDFhMThlMzBjN2Y5OGYzMTFmN2U4MjMyZjZhY2ZmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hh
bm5lbC1wYXJ0aXRpb25pbmcuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IEJyb2FkY2Fz
dENoYW5uZWwgaXMgcGFydGlvbmluZyBiYXNlZCBvbiB0b3Agb3JpZ2luIC8gZnJhbWUgb3JpZ2lu
LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisKK2xldCBiYyA9IG5ldyBCcm9hZGNh
c3RDaGFubmVsKCJicm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZyIpOworCitsZXQgZ290TWVz
c2FnZUZyb21TYW1lT3JpZ2luUG9wdXAgPSBmYWxzZTsKK2xldCBnb3RNZXNzYWdlRnJvbVNhbWVP
cmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCA9IGZhbHNlOworYmMub25tZXNzYWdlID0g
KG1lc3NhZ2UpID0+IHsKKyAgICBpZiAobWVzc2FnZS5kYXRhID09ICJzYW1lLW9yaWdpbi1wb3B1
cCIpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUtb3Jp
Z2luIHBvcHVwIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoImdvdE1lc3NhZ2VGcm9tU2FtZU9y
aWdpblBvcHVwIik7CisgICAgICAgIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpblBvcHVwID0gdHJ1
ZTsKKyAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuZGF0YSA9PSAic2FtZS1vcmlnaW4taWZyYW1lLXVu
ZGVyLXNhbWUtb3JpZ2luLXBvcHVwIikgeworICAgICAgICB0ZXN0UGFzc2VkKCJSZWNlaXZlZCBt
ZXNzYWdlIGZyb20gc2FtZS1vcmlnaW4gaWZyYW1lIHVuZGVyIHNhbWUtb3JpZ2luIHBvcHVwIik7
CisgICAgICAgIHNob3VsZEJlRmFsc2UoImdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFtZVVu
ZGVyU2FtZU9yaWdpblBvcHVwIik7CisgICAgICAgIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklm
cmFtZVVuZGVyU2FtZU9yaWdpblBvcHVwID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICB0
ZXN0RmFpbGVkKCJSZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2U6ICIgKyBtZXNzYWdlLmRhdGEp
OworICAgIH0KKworICAgIGlmIChnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5Qb3B1cCAmJiBnb3RN
ZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCkKKyAgICAgICAg
c2V0VGltZW91dChmaW5pc2hKU1Rlc3QsIDEwMDApOworfTsKKworb25sb2FkID0gKCkgPT4gewor
ICAgIG9wZW4oImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2Fk
Y2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXBvcHVwLmh0bWwiKTsKKyAgICBvcGVuKCJyZXNvdXJj
ZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRtbCIsICJzYW1lLW9yaWdp
bi1wb3B1cCIsICJub29wZW5lciIpOworfTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jy
b2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5n
LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMGVkZGI1ZGYwOTUyOGZmMTM0N2E0ZWRjMmNhNmM2
YTI0ZmIyZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3Nh
Z2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctaWZyYW1lLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGlzU2FtZU9yaWdpbkFzVG9wKCkKK3sKKyAgICB0cnkgeworICAgICAgICBy
ZXR1cm4gc2VsZi5vcmlnaW4gPT0gdG9wLm9yaWdpbjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2xldCBiYyA9IG5ldyBCcm9hZGNhc3RDaGFu
bmVsKCJicm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZyIpOworCitpZiAobG9jYXRpb24ub3Jp
Z2luID09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7CisgICAgaWYgKGlzU2FtZU9yaWdpbkFz
VG9wKCkpCisgICAgICAgIGJjLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1pZnJhbWUtdW5kZXIt
c2FtZS1vcmlnaW4tcG9wdXAiKTsKKyAgICBlbHNlCisgICAgICAgIGJjLnBvc3RNZXNzYWdlKCJz
YW1lLW9yaWdpbi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwIik7Cit9IGVsc2Ugewor
ICAgIGlmIChpc1NhbWVPcmlnaW5Bc1RvcCgpKQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgiY3Jv
c3Mtb3JpZ2luLWlmcmFtZS11bmRlci1jcm9zcy1vcmlnaW4tcG9wdXAiKTsKKyAgICBlbHNlCisg
ICAgICAgIGJjLnBvc3RNZXNzYWdlKCJjcm9zcy1vcmlnaW4taWZyYW1lLXVuZGVyLXNhbWUtb3Jp
Z2luLXBvcHVwIik7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy1wb3B1cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNz
YWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXBvcHVwLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWE5Mjk2NWY3MGUyNjNkNzJkNDMxMGJiNjc4OTQ1NDhmYzM1M2RkMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNl
cy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1wb3B1cC5odG1sCkBAIC0wLDAgKzEsMTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitsZXQgYmMgPSBu
ZXcgQnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmciKTsKK2lm
IChsb2NhdGlvbi5vcmlnaW4gPT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpCisgICAgYmMucG9z
dE1lc3NhZ2UoInNhbWUtb3JpZ2luLXBvcHVwIik7CitlbHNlCisgICAgYmMucG9zdE1lc3NhZ2Uo
ImNyb3NzLW9yaWdpbi1wb3B1cCIpOworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRp
b25pbmctaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5n
LWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437164</attachid>
            <date>2021-09-02 10:15:41 -0700</date>
            <delta_ts>2021-09-02 10:44:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229814-20210902101540.patch</filename>
            <type>text/plain</type>
            <size>35198</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk0MTY2MWZkOGE4N2FmMDkxYTMzMDNm
YWFhNjNmMTMyMDRiMjQ4MjQuLjU3NWI0M2YyYjZkZDllZGRjMmIyZmQ5MDk3ZDE0NTdhODYxYjky
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcHJlZmVyZW5jZSBmb3IgQnJv
YWRjYXN0Q2hhbm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNl
IHdlIGN1cnJlbnRseQorICAgICAgICBkaXNhYmxlIHRoaXMgd2hlbiBydW5uaW5nIHdlYi1wbGF0
Zm9ybS10ZXN0cyBpbiBXS1RSIC8gRFJUIGZvciBub3cuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWw6CisKIDIwMjEtMDktMDIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIHN1cHBvcnQgZm9yIEpJVCBv
cGVyYXRpb24gdmFsaWRhdGlvbiB0ZXN0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlODk3YTJlZmE0MjVm
YzdlMmRlNTlhODE4ZjVkZDhmMTlhMGZhYTEuLjgwMTNiYjEwN2M4ZGQ1ZTAwMzYwY2MwYTRmMWNl
ZGNlMTkxZmJkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOS0wMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmlnaW4g
cGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5u
ZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTgx
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJy
b2FkY2FzdENoYW5uZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5zLCBhcyBk
aXNjdXNzZWQgaGVyZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwv
aXNzdWVzLzU4MDMKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNh
c3RjaGFubmVsLXBhcnRpdGlvbmluZy5odG1sCisKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hh
bm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RD
aGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6Om1faWRlbnRpZmllcik6CisgICAgICAgIChXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9C
cm9hZGNhc3RDaGFubmVsLmg6CisgICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorCiAyMDIxLTA5LTAyICBB
bmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBCcmFpbGxl
IGRpc3BsYXkgaXMgYmxhbmsgaW4gY29udGVudGVkaXRhYmxlIGVsZW1lbnRzIHdoZW4gdGhlIGZp
ZWxkIGlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgZWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjdlOGUwZWZh
NTY4NjYxNzI0NTQ3OTU4MmI0ZTdjN2YzMWM5OGU5Ni4uNGQ5ZjNiY2IzZGJjZjliOWQxM2ViZjRk
MjE4NzdiZGIxNTgyMTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0wMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmln
aW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENo
YW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElt
cGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9y
IEJyb2FkY2FzdENoYW5uZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5zLCBh
cyBkaXNjdXNzZWQgaGVyZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0
bWwvaXNzdWVzLzU4MDMKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVtb3Zl
Q29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5u
ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oOgorCiAyMDIxLTA5LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBQQ006OlN0b3JlIG93bmVyc2hp
cCBmcm9tIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB0byBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggY2E3YTllODhmYmYwNjAxMWU4
N2ZjMTA1OTcwNzg4ODNkODVkYjgxMC4uOTBiOGMxZTI2M2EzZGJjZjY2Njg4NmU4MGZjZjllNzA4
NTRkMzVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wOS0w
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBv
cmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2Fz
dENoYW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyOTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikg
Zm9yIEJyb2FkY2FzdENoYW5uZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5z
LCBhcyBkaXNjdXNzZWQgaGVyZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdn
L2h0bWwvaXNzdWVzLzU4MDMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oOgorCiAyMDIxLTA4LTI3ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBz
dGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTGFuZCBXaW5kb3dzIGJ1aWxkIGZpeGVzIGZyb20g
c2FmYXJpLTYxMi4xLjI5LjE0LWJyYW5jaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggOWQzY2NlOTdjMDg1OWE5OGRlODlj
Yjg2YjdkNjJlZjg2YjU4YzU0Yi4uODVmYTkwNWZiN2Y3ZWI0YzNlNzI3NWY1NmQ2ZTBkMDcwNjc4
N2ZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWwKQEAgLTM5NCw2ICszOTQsMTYgQEAgQmVhY29uQVBJRW5hYmxlZDoKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBh
cnRpdGlvbmluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdl
YktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKwogQ1NTVHJhbnNm
b3JtU3R5bGVPcHRpbWl6ZWQzREVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgY29uZGl0aW9uOiBF
TkFCTEUoQ1NTX1RSQU5TRk9STV9TVFlMRV9PUFRJTUlaRURfM0QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IDIyMWY3ZDIyZjkyOWY1OTQ3NmRiMzkzYTQxNThlMjRlZGI2NTI1M2Uu
LjA2ZjZkMTNlNDgyNmRhYTUzMDYyZjc5Y2U0YjQ5NzRhNDM2MzVmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC04Nyw3ICs4Nyw3IEBAIEJsYW5rQW5jaG9yVGFyZ2V0SW1wbGll
c05vT3BlbmVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCi0j
IFdlIGhhdmUgdG8gcmVzb2x2ZSB0aGUgcHJpdmFjeSBpc3N1ZSBpbiBodHRwczovL2dpdGh1Yi5j
b20vd2hhdHdnL2h0bWwvaXNzdWVzLzU4MDMgYmVmb3JlIHdlIGNhbiBlbmFibGUgdGhpcy4KKyMg
V2Ugd291bGQgaGF2ZSB0byBwYXJ0aXRpb24gQnJvYWRjYXN0Q2hhbm5lbCBiYXNlZCBvbiBQYWdl
R3JvdXBzIGlmIHdlIHdhbnRlZCB0byBlbmFibGUgdGhpcyBmb3IgV2ViS2l0TGVnYWN5LgogQnJv
YWRjYXN0Q2hhbm5lbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJCcm9hZGNhc3RDaGFubmVsIEFQSSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9C
cm9hZGNhc3RDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcAppbmRleCA2NjQwMWJiMGJmYjQzOGM4ZWQ0MTcwYjEzODkyN2NmZDI0OThlZWMxLi4xYzYy
NTYzYzExMWUyODY2ZTIyODhlNmVkYTY0OGJjNTlhYWZmZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0Jyb2FkY2FzdENoYW5uZWwuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBIYXNoTWFwPEJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4mIGNoCiBCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IEFjdGl2ZURPTU9i
amVjdCgmY29udGV4dCkKICAgICAsIG1fbmFtZShuYW1lKQotICAgICwgbV9vcmlnaW4oY29udGV4
dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCkpCisgICAgLCBtX29yaWdpbiB7IGNvbnRleHQuc2V0
dGluZ3NWYWx1ZXMoKS5icm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZCA/
IGNvbnRleHQudG9wT3JpZ2luKCkuZGF0YSgpIDogY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5k
YXRhKCksIGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+ZGF0YSgpIH0KICAgICAsIG1faWRlbnRp
ZmllcihCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiB7
CiAgICAgewpAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0
Y2hNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSkKIAogICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6UG9zdGVkTWVzc2Fn
ZVF1ZXVlLCBbdGhpcywgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghbV9pc0Nsb3NlZCkKLSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2Fn
ZUV2ZW50OjpjcmVhdGUoeyB9LCBXVEZNb3ZlKG1lc3NhZ2UpLCBtX29yaWdpbi50b1N0cmluZygp
KSk7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKHsgfSwg
V1RGTW92ZShtZXNzYWdlKSwgbV9vcmlnaW4uY2xpZW50T3JpZ2luLnRvU3RyaW5nKCkpKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKaW5kZXggM2RiYThm
OGVkYzQwYmMzNjdjNTdkM2JjOTk1M2UyOTRmNDU0MDEwOS4uNmRhNjgzYjljYzEyZmU3YTYyNDNj
MDVkYzVlYTljNWRhNGE3NmFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2Fk
Y2FzdENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5o
CkBAIC0yNyw5ICsyNyw5IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNs
dWRlICJCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNsaWVudE9yaWdp
bi5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
LSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0b3AoKSBmaW5hbCB7IGNsb3NlKCk7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyBtX25hbWU7Ci0gICAgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhIG1fb3JpZ2luOworICAgIGNv
bnN0IENsaWVudE9yaWdpbiBtX29yaWdpbjsKICAgICBjb25zdCBCcm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faGFzUmVsZXZhbnRFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAppbmRleCA1YzJiZmIwNTQ3ZjM2
MTU2YmVlYTFkZjFjZGI1ZjNmZDBhMzVlYmEyLi4xMDQyMThjMTMwMGExZjFkNmRlMmE3MDA1NDI2
NzY0MTZiNTQwOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oCkBAIC0zMiwxNCArMzIsMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwotc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK3N0
cnVjdCBDbGllbnRPcmlnaW47CiAKIGNsYXNzIEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSA6IHB1
YmxpYyBSZWZDb3VudGVkPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gewogcHVibGljOgogICAg
IHZpcnR1YWwgfkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckNoYW5uZWwoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
b3N0TWVzc2FnZShjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ0MThj
NjVhODMzYmFkNGRkZjM5NjczNGQ5NzVmMWE4NzNjNjQzNDAuLjVlMGU1YWExZDA4Mjk1YTEwMzZl
NGM1NWYzYjUwYzMxZGQxZjkzNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCkBAIC0xMTc0LDkgKzExNzQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEVtcHR5QnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCByZWdpc3RlckNo
YW5uZWwoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwo
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIpIGZpbmFsIHsgfQotICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIs
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgZmluYWwgeyB9CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQor
ICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3Ry
aW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgIHZvaWQgcG9z
dE1lc3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9OwogCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdl
Q29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggOWI4NmViZmMzMDM0M2I0ZTQ1NDUz
MmYyNmMwYWIyODFkZmQzNTc5Ni4uZDE4MGUwN2UxNzczMmUwMjlmMDY3NmQ0ZTk3ZmJmMDJiOTA3
NjUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpO
ZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi12b2lkIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
IGNoYW5uZWxJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpyZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikKIHsKICAgICBhdXRv
JiBjaGFubmVsc0Zvck9yaWdpbiA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5zdXJlKG9yaWdpbiwg
W10geyByZXR1cm4gTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwIHsgfTsgfSkuaXRlcmF0b3It
PnZhbHVlOwogICAgIGF1dG8mIGNoYW5uZWxzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luLmVu
c3VyZShuYW1lLCBbXSB7IHJldHVybiBWZWN0b3I8R2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXI+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwpAQCAtNDMsNyArNDMsNyBAQCB2b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3RpbwogICAgIGNoYW5uZWxzRm9yTmFtZS5hcHBlbmQoV1RGTW92ZShnbG9i
YWxDaGFubmVsSWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZp
ZXIpCit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFu
bmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBjaGFubmVsc0Zvck9y
aWdpbkl0ZXJhdG9yID0gbV9icm9hZGNhc3RDaGFubmVscy5maW5kKG9yaWdpbik7CiAgICAgQVNT
RVJUKGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgIT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQo
KSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6dW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0CiAgICAgY2hhbm5l
bHNGb3JOYW1lSXRlcmF0b3ItPnZhbHVlLnJlbW92ZUZpcnN0KGdsb2JhbENoYW5uZWxJZGVudGlm
aWVyKTsKIH0KIAotdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgc291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQo
b3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2Fk
Y2FzdENoYW5uZWxzLmVuZCgpKTsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBOZXR3b3JrQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIGMKIAogdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZW1vdmVDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBWZWN0b3I8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zVG9SZW1vdmU7CisgICAgVmVjdG9yPFdlYkNv
cmU6OkNsaWVudE9yaWdpbj4gb3JpZ2luc1RvUmVtb3ZlOwogICAgIGZvciAoYXV0byYgZW50cnkg
OiBtX2Jyb2FkY2FzdENoYW5uZWxzKSB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzVG9S
ZW1vdmU7CiAgICAgICAgIGZvciAoYXV0byYgaW5uZXJFbnRyeSA6IGVudHJ5LnZhbHVlKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDQxNWE2OTY1YjlhNTNjNzFkZWIwMjUwMTQ4
YjQ1MGRmZGI2ZjFmYTguLjUxZTZiOTQwZGQ2OTYyN2U4MDEwNGQzOGI4ZDM3OWQzZTIzMDRjZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAK
LSAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQQzo6
Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0
cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOwotICAgIHZv
aWQgcG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRj
YXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgogICAgIHN0
cnVjdCBHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciB7CkBAIC02MCw5ICs2MCw4IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgLy8gRklYTUU6IEJyb2FkY2FzdENo
YW5uZWwgbmVlZHMgcGFydGl0aW9uaW5nIChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwv
aXNzdWVzLzU4MDMpLgogICAgIHVzaW5nIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCA9IEhh
c2hNYXA8U3RyaW5nLCBWZWN0b3I8R2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+PjsK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgTmFtZVRvQ2hhbm5lbElk
ZW50aWZpZXJzTWFwPiBtX2Jyb2FkY2FzdENoYW5uZWxzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6
Q2xpZW50T3JpZ2luLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fYnJvYWRjYXN0Q2hh
bm5lbHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgppbmRleCA5YjY4NTBiOTU1ODMzNzZlNDk5MWQyMTVh
MmNkZDcxNTQ0OWFmZDllLi40Yjc0ZGY4MTJkZTg3OWY4NTA5ZDUxMTQ4NjliMDc3OWY2MDZlZWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0y
MSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVnaXN0ZXJDaGFubmVsKHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2Vi
Q29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRz
Q29ubmVjdGlvbgotICAgIFVucmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RN
ZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCisgICAgUmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgorICAgIFVucmVnaXN0ZXJD
aGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwg
V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdh
bnRzQ29ubmVjdGlvbgorICAgIFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2Fn
ZSkgLT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwCmluZGV4IDZkYzdkNmFiYTAxZTU4Y2MzYjFiMWM4YjliMDJm
YjAzZGY1NTk5MjAuLjQ5ODJmODA2NjIzNDU5MDhiZDBhZWRhMzBmMWM3N2NmMjUzOGMzMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zOSwxNyAr
MzksMTcgQEAgc3RhdGljIGlubGluZSBJUEM6OkNvbm5lY3Rpb24mIG5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpCiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlJlZ2lzdGVyQ2hhbm5l
bCB7IG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElk
ZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpVbnJlZ2lzdGVy
Q2hhbm5lbCB7IG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2Uo
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OlBvc3RNZXNzYWdlIHsgb3JpZ2luLCBuYW1lLCBzb3VyY2UsIFdlYkNvcmU6Ok1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzIHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oCmluZGV4IDQ0YTNkMzgyYzA4MTUwZjdhMDlhOGU4ZTk3ZmMyODZjYWFjMTdjNTMu
LjUwNTU3N2U2ZjRlMmMzY2MyNzJlM2RkYTIzODZlOTVlNDNlN2MzNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkp
OwogICAgIH0KIAotICAgIHZvaWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2Fn
ZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggNDVjMzJhMWIzODU4OWIyYmQzYzg5YTcz
OGY3YTk4MmFlMmMzMjgxMS4uZDEwMzIwOGM4Zjg2MzNkNjA4YWMyM2U1N2Y0ZWYzNTc4NmVkNDJm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OmdldE9yQ3JlYXRlKGJvb2wgcAogICAgIHJldHVybiByZWdpc3RyeTsKIH0KIAotdm9p
ZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgYXV0byYgY2hhbm5lbHNGb3JPcmlnaW4gPSBtX2NoYW5uZWxzLmVuc3VyZShvcmln
aW4sIFtdIHsgcmV0dXJuIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCB7IH07IH0pLml0ZXJh
dG9yLT52YWx1ZTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkQKICAg
ICBjaGFubmVsc0Zvck5hbWUuYXBwZW5kKGlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID0gbV9jaGFubmVscy5maW5kKG9yaWdp
bik7CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1
bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpCiAgICAgY2hhbm5l
bHNGb3JOYW1lSXRlcmF0b3ItPnZhbHVlLnJlbW92ZUZpcnN0KGlkZW50aWZpZXIpOwogfQogCi12
b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0
TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6
OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuaAppbmRleCAzNzExMzIyMDUxYzdiODFmNmIyMWE1ZmI0YzE1YzAwNzA2M2Q5NDA4
Li41ZDBkMTUwZWY5ZTBmMTM1NjNlMjMzZmJlY2Y3NmI2NmE1MGVlZmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8
V2ViQ29yZS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0z
NCwxNCArMzQsMTMgQEAgY2xhc3MgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IDogcHVibGlj
IFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgcHUKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gZ2V0T3JDcmVhdGUoYm9vbCBwcml2
YXRlU2Vzc2lvbik7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1l
c3NhZ2UoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllcikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogCiBwcml2YXRlOgog
ICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpID0gZGVmYXVsdDsKIAotICAgIC8vIEZJ
WE1FOiBCcm9hZGNhc3RDaGFubmVsIG5lZWRzIHBhcnRpdGlvbmluZyAoaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzKS4KICAgICB1c2luZyBOYW1lVG9DaGFubmVsSWRl
bnRpZmllcnNNYXAgPSBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyPj47Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEsIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcD4gbV9jaGFubmVsczsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OkNsaWVudE9yaWdpbiwgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwPiBtX2No
YW5uZWxzOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBkNmFjNWQxYWJlYWM4MDRhOTQ0MzQwMTI3YzU2YzJhY2ViYzU3ZjlkLi4zZjUwMDJi
NTZlYTYxN2NkMjQ4MjBmMDBhZmU5YzcyOWU5NzM5NzE1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3Jp
Z2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RD
aGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
aXNhYmxlIEJyb2FkY2FzdENoYW5uZWwgb3JpZ2luIHBhcnRpdGlvbmluZyB3aGVuIHJ1bm5pbmcg
V1BUIHRlc3RzIHVuZGVyCisgICAgICAgIFdLVFIgYW5kIERSVCBzaW5jZSBpdCB3b3VsZCBjYXVz
ZSB0b28gbWFueSB0ZXN0IGZhaWxydWVzIGF0IHRoaXMgcG9pbnQKKyAgICAgICAgKGUuZy4gQ09P
UC9DT0VQIHRlc3RzKS4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVz
LmNwcDoKKyAgICAgICAgKFdUUjo6c2hvdWxkRGlzYWJsZUJyb2FkY2FzdENoYW5uZWxPcmlnaW5Q
YXJ0aXRpb25pbmcpOgorICAgICAgICAoV1RSOjpoYXJkY29kZWRGZWF0dXJlc0Jhc2VkT25QYXRo
Rm9yVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0
ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1bHRzKToKKwogMjAyMS0wOS0wMiAgQ2Fy
bG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXUEVdIFBvcnQgQVBJIHRlc3QgcnVubmVyIHRvIHB5dGhvbjMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVGVzdEZlYXR1cmVzLmNwcAppbmRleCBmMzBlYjA0YWE3NzMwMDQ2YjkwYWVhMjdmNDVj
NjMyOTgwNzE0NDcxLi5lZWYyNzUxZTA3ZTk0NjRhZTU0ZGUxNjczYTU3MzQ2YWQzMWJhMWQ5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5jcHAKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuY3BwCkBAIC0xMjIsNiArMTIyLDEx
IEBAIHN0YXRpYyBib29sIHNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihjb25zdCBzdGQ6
OnN0cmluZyYgcGF0aE9yVVJMKQogICAgICAgICB8fCBwYXRoQ29udGFpbnMocGF0aE9yVVJMLCAi
bG9jYWxob3N0Ojg4MDAvd2Vic29ja2V0cyIpIHx8IHBhdGhDb250YWlucyhwYXRoT3JVUkwsICJs
b2NhbGhvc3Q6OTQ0My93ZWJzb2NrZXRzIik7CiB9CiAKK3N0YXRpYyBib29sIHNob3VsZERpc2Fi
bGVCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBw
YXRoT3JVUkwpCit7CisgICAgcmV0dXJuIHBhdGhDb250YWlucyhwYXRoT3JVUkwsICJsb2NhbGhv
c3Q6ODgwMC8iKSB8fCBwYXRoQ29udGFpbnMocGF0aE9yVVJMLCAibG9jYWxob3N0Ojk0NDMvIik7
Cit9CisKIFRlc3RGZWF0dXJlcyBoYXJkY29kZWRGZWF0dXJlc0Jhc2VkT25QYXRoRm9yVGVzdChj
b25zdCBUZXN0Q29tbWFuZCYgY29tbWFuZCkKIHsKICAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7
CkBAIC0xMzIsNiArMTM3LDggQEAgVGVzdEZlYXR1cmVzIGhhcmRjb2RlZEZlYXR1cmVzQmFzZWRP
blBhdGhGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJiBjb21tYW5kKQogICAgICAgICBmZWF0dXJl
cy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7ICJ1c2VFcGhlbWVyYWxTZXNzaW9uIiwg
dHJ1ZSB9KTsKICAgICBpZiAoc2hvdWxkRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKGNvbW1hbmQu
cGF0aE9yVVJMKSkKICAgICAgICAgZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNl
cnQoeyAiZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIiwgdHJ1ZSB9KTsKKyAgICBpZiAoc2hvdWxk
RGlzYWJsZUJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmcoY29tbWFuZC5wYXRoT3JV
UkwpKQorICAgICAgICBmZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydCh7
ICJCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZCIsIGZhbHNlIH0pOwog
ICAgIGlmIChhdXRvIGRldmljZVNjYWxlRmFjdG9yID0gb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
ckZvclRlc3QoY29tbWFuZC5wYXRoT3JVUkwpOyBkZXZpY2VTY2FsZUZhY3RvciAhPSBzdGQ6Om51
bGxvcHQpCiAgICAgICAgIGZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQo
eyAiZGV2aWNlU2NhbGVGYWN0b3IiLCBkZXZpY2VTY2FsZUZhY3Rvci52YWx1ZSgpIH0pOwogICAg
IGlmIChhdXRvIHZpZXdXaWR0aEFuZEhlaWdodCA9IG92ZXJyaWRlVmlld1dpZHRoQW5kSGVpZ2h0
Rm9yVGVzdChjb21tYW5kLnBhdGhPclVSTCk7IHZpZXdXaWR0aEFuZEhlaWdodCAhPSBzdGQ6Om51
bGxvcHQpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKaW5kZXggMzg2NzY1
ZTlkZTY1NzU0M2U0MDZkZDI5YTA0MDQzZTkzNzQxOTljNS4uYmY5MDYwNjgyZTFhZmMwN2RkYjNk
ZmUxZjJmOGVjZDg0ZWQ0ODNiMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5j
cHAKQEAgLTY0LDYgKzY0LDcgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVm
YXVsdHMoKQogICAgICAgICAgICAgeyAiQWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayIsIHRydWUg
fSwKICAgICAgICAgICAgIHsgIkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkIiwgZmFsc2UgfSwK
ICAgICAgICAgICAgIHsgIkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkIiwgZmFsc2UgfSwK
KyAgICAgICAgICAgIHsgIkJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVk
IiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIs
IHRydWUgfSwKICAgICAgICAgICAgIHsgIkNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQi
LCBjYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkVmFsdWUgfSwKICAgICAgICAgICAgIHsg
IkNhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhjOTQx
ZjQyMTIwZDZiMTM4Y2IxNTkwZGU5MGU4YWQ3OTE0MGVjZS4uYjRjOGQ2ZTdkN2U4NjhjZmJmZTNj
NjZkN2JkMjAyMTBjOGMzZGVhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTAyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IG9yaWdp
biBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4vZnJhbWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0Q2hh
bm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5
ODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcv
YnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJv
YWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy1wb3B1cC5odG1sOiBBZGRlZC4KKwogMjAyMS0wOS0wMiAgQW5kcmVzIEdvbnphbGV6ICA8
YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQnJhaWxsZSBkaXNwbGF5IGlzIGJsYW5r
IGluIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50cyB3aGVuIHRoZSBmaWVsZCBpcyBmb2xsb3dlZCBi
eSBhbm90aGVyIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
c3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiNmZhYjNiNjIzZDEwNWRjMGVhOTdiYjM1N2Fj
MjNmZjYwMzA3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVz
c2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEzIEBACitUZXN0cyB0aGF0IEJyb2FkY2FzdENoYW5uZWwgaXMgcGFydGlvbmluZyBiYXNl
ZCBvbiB0b3Agb3JpZ2luIC8gZnJhbWUgb3JpZ2luLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBSZWNlaXZlZCBtZXNzYWdlIGZyb20gc2FtZS1vcmlnaW4gcG9wdXAKK1BB
U1MgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luUG9wdXAgaXMgZmFsc2UKK1BBU1MgUmVjZWl2ZWQg
bWVzc2FnZSBmcm9tIHNhbWUtb3JpZ2luIGlmcmFtZSB1bmRlciBzYW1lLW9yaWdpbiBwb3B1cAor
UEFTUyBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCBp
cyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2Fz
dGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3Nh
Z2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NDk1
ZGRjMzA0MWExOGUzMGM3Zjk4ZjMxMWY3ZTgyMzJmNmFjZmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCBpcyBw
YXJ0aW9uaW5nIGJhc2VkIG9uIHRvcCBvcmlnaW4gLyBmcmFtZSBvcmlnaW4uIik7Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
c2V0Q2FuT3BlbldpbmRvd3MoKTsKKworbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJy
b2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nIik7CisKK2xldCBnb3RNZXNzYWdlRnJvbVNhbWVP
cmlnaW5Qb3B1cCA9IGZhbHNlOworbGV0IGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFtZVVu
ZGVyU2FtZU9yaWdpblBvcHVwID0gZmFsc2U7CitiYy5vbm1lc3NhZ2UgPSAobWVzc2FnZSkgPT4g
eworICAgIGlmIChtZXNzYWdlLmRhdGEgPT0gInNhbWUtb3JpZ2luLXBvcHVwIikgeworICAgICAg
ICB0ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGZyb20gc2FtZS1vcmlnaW4gcG9wdXAiKTsK
KyAgICAgICAgc2hvdWxkQmVGYWxzZSgiZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luUG9wdXAiKTsK
KyAgICAgICAgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luUG9wdXAgPSB0cnVlOworICAgIH0gZWxz
ZSBpZiAobWVzc2FnZS5kYXRhID09ICJzYW1lLW9yaWdpbi1pZnJhbWUtdW5kZXItc2FtZS1vcmln
aW4tcG9wdXAiKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBz
YW1lLW9yaWdpbiBpZnJhbWUgdW5kZXIgc2FtZS1vcmlnaW4gcG9wdXAiKTsKKyAgICAgICAgc2hv
dWxkQmVGYWxzZSgiZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1lT3JpZ2lu
UG9wdXAiKTsKKyAgICAgICAgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1l
T3JpZ2luUG9wdXAgPSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlJl
Y2VpdmVkIHVuZXhwZWN0ZWQgbWVzc2FnZTogIiArIG1lc3NhZ2UuZGF0YSk7CisgICAgfQorCisg
ICAgaWYgKGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpblBvcHVwICYmIGdvdE1lc3NhZ2VGcm9tU2Ft
ZU9yaWdpbklmcmFtZVVuZGVyU2FtZU9yaWdpblBvcHVwKQorICAgICAgICBzZXRUaW1lb3V0KGZp
bmlzaEpTVGVzdCwgMTAwMCk7Cit9OworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgb3BlbigiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1w
YXJ0aXRpb25pbmctcG9wdXAuaHRtbCIpOworICAgIG9wZW4oInJlc291cmNlcy9icm9hZGNhc3Rj
aGFubmVsLXBhcnRpdGlvbmluZy1wb3B1cC5odG1sIiwgInNhbWUtb3JpZ2luLXBvcHVwIiwgIm5v
b3BlbmVyIik7Cit9OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5l
bC1wYXJ0aXRpb25pbmctaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3Nh
Z2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctaWZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGQwZWRkYjVkZjA5NTI4ZmYxMzQ3YTRlZGMyY2E2YzZhMjRmYjJkMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNl
cy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDI5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgorZnVuY3Rpb24g
aXNTYW1lT3JpZ2luQXNUb3AoKQoreworICAgIHRyeSB7CisgICAgICAgIHJldHVybiBzZWxmLm9y
aWdpbiA9PSB0b3Aub3JpZ2luOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KK30KKworbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2Fz
dGNoYW5uZWwtcGFydGl0aW9uaW5nIik7CisKK2lmIChsb2NhdGlvbi5vcmlnaW4gPT0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICBpZiAoaXNTYW1lT3JpZ2luQXNUb3AoKSkKKyAgICAg
ICAgYmMucG9zdE1lc3NhZ2UoInNhbWUtb3JpZ2luLWlmcmFtZS11bmRlci1zYW1lLW9yaWdpbi1w
b3B1cCIpOworICAgIGVsc2UKKyAgICAgICAgYmMucG9zdE1lc3NhZ2UoInNhbWUtb3JpZ2luLWlm
cmFtZS11bmRlci1jcm9zcy1vcmlnaW4tcG9wdXAiKTsKK30gZWxzZSB7CisgICAgaWYgKGlzU2Ft
ZU9yaWdpbkFzVG9wKCkpCisgICAgICAgIGJjLnBvc3RNZXNzYWdlKCJjcm9zcy1vcmlnaW4taWZy
YW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1wb3B1cCIpOworICAgIGVsc2UKKyAgICAgICAgYmMucG9z
dE1lc3NhZ2UoImNyb3NzLW9yaWdpbi1pZnJhbWUtdW5kZXItc2FtZS1vcmlnaW4tcG9wdXAiKTsK
K30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9u
aW5nLXBvcHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJj
ZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YTkyOTY1ZjcwZTI2M2Q3MmQ0MzEwYmI2Nzg5NDU0OGZjMzUzZGQyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nLXBvcHVwLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK2xldCBiYyA9IG5ldyBCcm9hZGNhc3RD
aGFubmVsKCJicm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZyIpOworaWYgKGxvY2F0aW9uLm9y
aWdpbiA9PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikKKyAgICBiYy5wb3N0TWVzc2FnZSgic2Ft
ZS1vcmlnaW4tcG9wdXAiKTsKK2Vsc2UKKyAgICBiYy5wb3N0TWVzc2FnZSgiY3Jvc3Mtb3JpZ2lu
LXBvcHVwIik7Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAv
bWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUu
aHRtbCI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lc3Nh
Z2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctaWZyYW1lLmh0bWwi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437166</attachid>
            <date>2021-09-02 10:44:16 -0700</date>
            <delta_ts>2021-09-02 13:50:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229814-20210902104416.patch</filename>
            <type>text/plain</type>
            <size>34894</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk0MTY2MWZkOGE4N2FmMDkxYTMzMDNm
YWFhNjNmMTMyMDRiMjQ4MjQuLjcyYTdhZWY0MGQ3MDFmNWM4N2M3ZWM4ZGM4M2MwMjhlOGNmZjRi
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHByZWZl
cmVuY2UgZm9yIEJyb2FkY2FzdENoYW5uZWwgb3JpZ2luIHBhcnRpdGlvbmluZy4gVGhpcyBpcyB1
c2VmdWwgYmVjYXVzZSB3ZSBjdXJyZW50bHkKKyAgICAgICAgZGlzYWJsZSB0aGlzIHdoZW4gcnVu
bmluZyB3ZWItcGxhdGZvcm0tdGVzdHMgaW4gV0tUUiAvIERSVCBmb3Igbm93LgorCisgICAgICAg
ICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
CiAyMDIxLTA5LTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgbW9yZSBzdXBwb3J0IGZvciBKSVQgb3BlcmF0aW9uIHZhbGlkYXRpb24gdGVzdGluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBiZTg5N2EyZWZhNDI1ZmM3ZTJkZTU5YTgxOGY1ZGQ4ZjE5YTBmYWExLi44MDEz
YmIxMDdjOGRkNWUwMDM2MGNjMGE0ZjFjZWRjZTE5MWZiZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFtZS1v
cmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9y
aWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsIHRvIGFkZHJlc3MgcHJpdmFj
eQorICAgICAgICBjb25jZXJucywgYXMgZGlzY3Vzc2VkIGhlcmU6CisgICAgICAgIC0gaHR0cHM6
Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzCisKKyAgICAgICAgVGVzdDogaHR0
cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmcuaHRtbAorCisg
ICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjptX2lk
ZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0Y2hN
ZXNzYWdlKToKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5oOgorICAgICAgICAqIGRv
bS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmNwcDoKKwogMjAyMS0wOS0wMiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQnJhaWxsZSBkaXNwbGF5IGlzIGJsYW5rIGluIGNvbnRlbnRlZGl0
YWJsZSBlbGVtZW50cyB3aGVuIHRoZSBmaWVsZCBpcyBmb2xsb3dlZCBieSBhbm90aGVyIGVsZW1l
bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGI3ZThlMGVmYTU2ODY2MTcyNDU0Nzk1ODJiNGU3YzdmMzFjOThlOTYu
LjRkOWYzYmNiM2RiY2Y5YjlkMTNlYmY0ZDIxODc3YmRiMTU4MjEwMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFt
ZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsIHRvIGFkZHJlc3MgcHJp
dmFjeQorICAgICAgICBjb25jZXJucywgYXMgZGlzY3Vzc2VkIGhlcmU6CisgICAgICAgIC0gaHR0
cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVs
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5y
ZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnJlbW92ZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKwogMjAyMS0wOS0w
MSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IE1vdmUgUENNOjpTdG9yZSBvd25lcnNoaXAgZnJvbSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUgdG8gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CmluZGV4IGNhN2E5ZTg4ZmJmMDYwMTFlODdmYzEwNTk3MDc4ODgzZDg1ZGI4MTAuLjkwYjhjMWUy
NjNhM2RiY2Y2NjY4ODZlODBmY2Y5ZTcwODU0ZDM1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9m
cmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAo
dG9wLW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsIHRvIGFkZHJlc3Mg
cHJpdmFjeQorICAgICAgICBjb25jZXJucywgYXMgZGlzY3Vzc2VkIGhlcmU6CisgICAgICAgIC0g
aHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAo
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAo
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAg
IChXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKwogMjAyMS0wOC0y
NyAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIExhbmQg
V2luZG93cyBidWlsZCBmaXhlcyBmcm9tIHNhZmFyaS02MTIuMS4yOS4xNC1icmFuY2guCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDIyMWY3ZDIyZjkyOWY1OTQ3NmRiMzkzYTQxNThl
MjRlZGI2NTI1M2UuLmZmOGNiMzBiMzhkZDBiOTM1ZTZjNDAzMjIyYzg4MjI0NWY3N2VmMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC04Nyw3ICs4Nyw3IEBAIEJsYW5rQW5jaG9y
VGFyZ2V0SW1wbGllc05vT3BlbmVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVs
dDogdHJ1ZQogCi0jIFdlIGhhdmUgdG8gcmVzb2x2ZSB0aGUgcHJpdmFjeSBpc3N1ZSBpbiBodHRw
czovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzU4MDMgYmVmb3JlIHdlIGNhbiBlbmFi
bGUgdGhpcy4KKyMgV2Ugd291bGQgaGF2ZSB0byBwYXJ0aXRpb24gQnJvYWRjYXN0Q2hhbm5lbCBi
YXNlZCBvbiBQYWdlR3JvdXBzIGlmIHdlIHdhbnRlZCB0byBlbmFibGUgdGhpcyBmb3IgV2ViS2l0
TGVnYWN5LgogQnJvYWRjYXN0Q2hhbm5lbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJCcm9hZGNhc3RDaGFubmVsIEFQSSIKQEAgLTEwMCw2ICsxMDAsMTYgQEAg
QnJvYWRjYXN0Q2hhbm5lbEVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCiAKK0Jyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkOgorICB0eXBl
OiBib29sCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0
OiB0cnVlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6Cisg
ICAgICBkZWZhdWx0OiB0cnVlCisKIENGTmV0d29ya05ldHdvcmtMb2FkZXJFbmFibGVkOgogICB0
eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFsIG5ldHdvcmsgbG9h
ZGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4IDY2NDAxYmIw
YmZiNDM4YzhlZDQxNzBiMTM4OTI3Y2ZkMjQ5OGVlYzEuLjFjNjI1NjNjMTExZTI4NjZlMjI4OGU2
ZWRhNjQ4YmM1OWFhZmZkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNh
c3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5j
cHAKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIEhhc2hNYXA8QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY2gKIEJyb2FkY2FzdENo
YW5uZWw6OkJyb2FkY2FzdENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAg
ICwgbV9uYW1lKG5hbWUpCi0gICAgLCBtX29yaWdpbihjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkt
PmRhdGEoKSkKKyAgICAsIG1fb3JpZ2luIHsgY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLmJyb2Fk
Y2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkID8gY29udGV4dC50b3BPcmlnaW4o
KS5kYXRhKCkgOiBjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwgY29udGV4dC5zZWN1
cml0eU9yaWdpbigpLT5kYXRhKCkgfQogICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKIHsKICAgICB7CkBAIC0xNTAsNyAr
MTUwLDcgQEAgdm9pZCBCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UoUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlKQogCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVj
dEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpQb3N0ZWRNZXNzYWdlUXVldWUsIFt0aGlzLCBtZXNz
YWdlID0gV1RGTW92ZShtZXNzYWdlKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2lzQ2xv
c2VkKQotICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZSh7IH0s
IFdURk1vdmUobWVzc2FnZSksIG1fb3JpZ2luLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGRp
c3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoeyB9LCBXVEZNb3ZlKG1lc3NhZ2UpLCBt
X29yaWdpbi5jbGllbnRPcmlnaW4udG9TdHJpbmcoKSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaAppbmRleCAzZGJhOGY4ZWRjNDBiYzM2N2M1N2QzYmM5
OTUzZTI5NGY0NTQwMTA5Li42ZGE2ODNiOWNjMTJmZTdhNjI0M2MwNWRjNWVhOWM1ZGE0YTc2YWFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKQEAgLTI3LDkgKzI3LDkgQEAK
IAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiQ2xpZW50T3JpZ2luLmgiCiAjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIApAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcCgp
IGZpbmFsIHsgY2xvc2UoKTsgfQogCiAgICAgY29uc3QgU3RyaW5nIG1fbmFtZTsKLSAgICBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEgbV9vcmlnaW47CisgICAgY29uc3QgQ2xpZW50T3JpZ2luIG1f
b3JpZ2luOwogICAgIGNvbnN0IEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNSZWxldmFu
dEV2ZW50TGlzdGVuZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDVjMmJmYjA1NDdmMzYxNTZiZWVhMWRmMWNkYjVmM2Zk
MGEzNWViYTIuLjEwNDIxOGMxMzAwYTFmMWQ2ZGUyYTcwMDU0MjY3NjQxNmI1NDA5OTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTMyLDE0
ICszMiwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0
VmFsdWU7Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworc3RydWN0IENsaWVudE9yaWdpbjsK
IAogY2xhc3MgQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8QnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJDaGFubmVs
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2UoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNo
YW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5l
bChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IENs
aWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZDQxOGM2NWE4MzNiYWQ0ZGRmMzk2NzM0
ZDk3NWYxYTg3M2M2NDM0MC4uNWUwZTVhYTFkMDgyOTVhMTAzNmU0YzU1ZjNiNTBjMzFkZDFmOTM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTExNzQsOSArMTE3
NCw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRW1wdHlCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikg
ZmluYWwgeyB9Ci0gICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWwg
eyB9Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgdm9pZCB1bnJlZ2lzdGVy
Q2hhbm5lbChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbCB7IH0KIH07CiAKIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVt
cHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LmNwcAppbmRleCA5Yjg2ZWJmYzMwMzQzYjRlNDU0NTMyZjI2YzBhYjI4MWRmZDM1Nzk2
Li5kMTgwZTA3ZTE3NzMyZTAyOWYwNjc2ZDRlOTdmYmYwMmI5MDc2NTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6Ok5ldHdvcmtCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFt
ZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIp
Cit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
b3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyIGNoYW5uZWxJZGVudGlmaWVyKQogewogICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2lu
ID0gbV9icm9hZGNhc3RDaGFubmVscy5lbnN1cmUob3JpZ2luLCBbXSB7IHJldHVybiBOYW1lVG9D
aGFubmVsSWRlbnRpZmllcnNNYXAgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgYXV0byYg
Y2hhbm5lbHNGb3JOYW1lID0gY2hhbm5lbHNGb3JPcmlnaW4uZW5zdXJlKG5hbWUsIFtdIHsgcmV0
dXJuIFZlY3RvcjxHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4geyB9OyB9KS5pdGVy
YXRvci0+dmFsdWU7CkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAg
ICAgY2hhbm5lbHNGb3JOYW1lLmFwcGVuZChXVEZNb3ZlKGdsb2JhbENoYW5uZWxJZGVudGlmaWVy
KSk7CiB9CiAKLXZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3Rl
ckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVs
SWRlbnRpZmllcikKIHsKICAgICBhdXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgPSBtX2Jy
b2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5lbHNGb3JPcmln
aW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgpKTsKQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5l
bChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3QKICAgICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+
dmFsdWUucmVtb3ZlRmlyc3QoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpOwogfQogCi12b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIg
c291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2hhbm5lbHNGb3JPcmln
aW5JdGVyYXRvciA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZmluZChvcmlnaW4pOwogICAgIEFTU0VS
VChjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yICE9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5kKCkp
OwpAQCAtODYsNyArODYsNyBAQCB2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgYwogCiB2b2lkIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQogewotICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+IG9yaWdpbnNUb1JlbW92ZTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBv
cmlnaW5zVG9SZW1vdmU7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYnJvYWRjYXN0Q2hhbm5l
bHMpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNUb1JlbW92ZTsKICAgICAgICAgZm9y
IChhdXRvJiBpbm5lckVudHJ5IDogZW50cnkudmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmgKaW5kZXggNDE1YTY5NjViOWE1M2M3MWRlYjAyNTAxNDhiNDUwZGZkYjZmMWZhOC4uNTFl
NmI5NDBkZDY5NjI3ZTgwMTA0ZDM4YjhkMzc5ZDNlMjMwNGNmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0Jyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVu
dE9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ1LDkgKzQ1LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAotICAgIHZvaWQgcmVnaXN0ZXJD
aGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIpOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcik7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQ
Qzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOworICAgIHZvaWQg
cG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdsb2JhbEJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIHsKQEAgLTYwLDkgKzYwLDggQEAgcHJpdmF0ZToKICAgICAgICAg
fQogICAgIH07CiAKLSAgICAvLyBGSVhNRTogQnJvYWRjYXN0Q2hhbm5lbCBuZWVkcyBwYXJ0aXRp
b25pbmcgKGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNTgwMykuCiAgICAg
dXNpbmcgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwID0gSGFzaE1hcDxTdHJpbmcsIFZlY3Rv
cjxHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4+OwotICAgIEhhc2hNYXA8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fYnJv
YWRjYXN0Q2hhbm5lbHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpDbGllbnRPcmlnaW4sIE5hbWVU
b0NoYW5uZWxJZGVudGlmaWVyc01hcD4gbV9icm9hZGNhc3RDaGFubmVsczsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCmluZGV4IDliNjg1MGI5NTU4MzM3NmU0OTkxZDIxNWEyY2RkNzE1NDQ5YWZkOWUuLjRi
NzRkZjgxMmRlODc5Zjg1MDlkNTExNDg2OWIwNzc5ZjYwNmVlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogbWVzc2FnZXMgLT4gTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBO
b3RSZWZDb3VudGVkIHsKLSAgICBSZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCi0gICAgVW5y
ZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4s
IFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVs
SWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCi0gICAgUG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBS
ZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmlu
ZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRp
ZmllcikgV2FudHNDb25uZWN0aW9uCisgICAgVW5yZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCisgICAg
UG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBu
YW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBX
ZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYyBXYW50
c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5j
cHAKaW5kZXggNmRjN2Q2YWJhMDFlNThjYzNiMWIxYzhiOWIwMmZiMDNkZjU1OTkyMC4uNDk4MmY4
MDY2MjM0NTkwOGJkMGFlZGEzMGYxYzc3Y2YyNTM4YzMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTM5LDE3ICszOSwxNyBAQCBzdGF0aWMgaW5s
aW5lIElQQzo6Q29ubmVjdGlvbiYgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKICAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJD
aGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7
CiAgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6UmVnaXN0ZXJDaGFubmVsIHsgb3JpZ2luLCBuYW1lLCBp
ZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lz
dGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVy
KQogewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlVucmVnaXN0ZXJDaGFubmVsIHsgb3JpZ2luLCBu
YW1lLCBpZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTo6cG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6UG9zdE1lc3NhZ2Ug
eyBvcmlnaW4sIG5hbWUsIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMg
eyBXVEZNb3ZlKG1lc3NhZ2UpLCB7IH0gfSB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
MCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKaW5kZXggNDRh
M2QzODJjMDgxNTBmN2EwOWE4ZThlOTdmYzI4NmNhYWMxN2M1My4uNTA1NTc3ZTZmNGUyYzNjYzI3
MmUzZGRhMjM4NmU5NWU0M2U3YzM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSk7CiAgICAgfQogCi0gICAgdm9p
ZCByZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmlu
YWw7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJ
ZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVn
aXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsOworICAgIHZv
aWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWw7
CisgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJj
ZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcAppbmRleCA0NWMzMmExYjM4NTg5YjJiZDNjODlhNzM4ZjdhOTgyYWUyYzMyODExLi5k
MTAzMjA4YzhmODYzM2Q2MDhhYzIzZTU3ZjRlZjM1Nzg2ZWQ0MmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlZjxXZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUo
Ym9vbCBwCiAgICAgcmV0dXJuIHJlZ2lzdHJ5OwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBj
b25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvJiBjaGFu
bmVsc0Zvck9yaWdpbiA9IG1fY2hhbm5lbHMuZW5zdXJlKG9yaWdpbiwgW10geyByZXR1cm4gTmFt
ZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwpAQCAtNTMs
NyArNTMsNyBAQCB2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFu
bmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRAogICAgIGNoYW5uZWxzRm9yTmFtZS5h
cHBlbmQoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Ojp1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVn
aXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIGNoYW5uZWxzRm9y
T3JpZ2luSXRlcmF0b3IgPSBtX2NoYW5uZWxzLmZpbmQob3JpZ2luKTsKQEAgLTY2LDcgKzY2LDcg
QEAgdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2kKICAgICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+
dmFsdWUucmVtb3ZlRmlyc3QoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIGNh
bGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDM3
MTEzMjIwNTFjN2I4MWY2YjIxYTVmYjRjMTVjMDA3MDYzZDk0MDguLjVkMGQxNTBlZjllMGYxMzU2
M2UyMzNmYmVjZjc2YjY2YTUwZWVmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
aApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlIDxXZWJDb3JlL0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTM0LDE0ICszNCwxMyBAQCBjbGFz
cyBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgOiBwdWJsaWMgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LCBwdQogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5PiBnZXRPckNyZWF0ZShib29sIHByaXZhdGVTZXNzaW9uKTsKIAotICAg
IHZvaWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIp
IGZpbmFsOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZp
bmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBz
b3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi0gICAgLy8gRklYTUU6IEJyb2FkY2FzdENoYW5u
ZWwgbmVlZHMgcGFydGl0aW9uaW5nIChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNz
dWVzLzU4MDMpLgogICAgIHVzaW5nIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCA9IEhhc2hN
YXA8U3RyaW5nLCBWZWN0b3I8V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+PjsK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgTmFtZVRvQ2hhbm5lbElk
ZW50aWZpZXJzTWFwPiBtX2NoYW5uZWxzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6Q2xpZW50T3Jp
Z2luLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fY2hhbm5lbHM7CiB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ2YWM1ZDFhYmVh
YzgwNGE5NDQzNDAxMjdjNTZjMmFjZWJjNTdmOWQuLjNmNTAwMmI1NmVhNjE3Y2QyNDgyMGYwMGFm
ZTljNzI5ZTk3Mzk3MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0
b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTgxNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIHdoZW4gcnVubmluZyBXUFQgdGVzdHMgdW5kZXIKKyAg
ICAgICAgV0tUUiBhbmQgRFJUIHNpbmNlIGl0IHdvdWxkIGNhdXNlIHRvbyBtYW55IHRlc3QgZmFp
bHJ1ZXMgYXQgdGhpcyBwb2ludAorICAgICAgICAoZS5nLiBDT09QL0NPRVAgdGVzdHMpLgorCisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuY3BwOgorICAgICAgICAoV1RS
OjpzaG91bGREaXNhYmxlQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZyk6CisgICAg
ICAgIChXVFI6OmhhcmRjb2RlZEZlYXR1cmVzQmFzZWRPblBhdGhGb3JUZXN0KToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZGVmYXVsdHMpOgorCiAyMDIxLTA5LTAyICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQ
ZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gUG9ydCBBUEkg
dGVzdCBydW5uZXIgdG8gcHl0aG9uMwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9UZXN0RmVhdHVyZXMuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMu
Y3BwCmluZGV4IGYzMGViMDRhYTc3MzAwNDZiOTBhZWEyN2Y0NWM2MzI5ODA3MTQ0NzEuLmVlZjI3
NTFlMDdlOTQ2NGFlNTRkZTE2NzNhNTczNDZhZDMxYmExZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1Rlc3RGZWF0dXJlcy5jcHAKQEAgLTEyMiw2ICsxMjIsMTEgQEAgc3RhdGljIGJvb2wgc2hv
dWxkRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwp
CiAgICAgICAgIHx8IHBhdGhDb250YWlucyhwYXRoT3JVUkwsICJsb2NhbGhvc3Q6ODgwMC93ZWJz
b2NrZXRzIikgfHwgcGF0aENvbnRhaW5zKHBhdGhPclVSTCwgImxvY2FsaG9zdDo5NDQzL3dlYnNv
Y2tldHMiKTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkRGlzYWJsZUJyb2FkY2FzdENoYW5uZWxP
cmlnaW5QYXJ0aXRpb25pbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCkKK3sKKyAgICBy
ZXR1cm4gcGF0aENvbnRhaW5zKHBhdGhPclVSTCwgImxvY2FsaG9zdDo4ODAwLyIpIHx8IHBhdGhD
b250YWlucyhwYXRoT3JVUkwsICJsb2NhbGhvc3Q6OTQ0My8iKTsKK30KKwogVGVzdEZlYXR1cmVz
IGhhcmRjb2RlZEZlYXR1cmVzQmFzZWRPblBhdGhGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJiBj
b21tYW5kKQogewogICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsKQEAgLTEzMiw2ICsxMzcsOCBA
QCBUZXN0RmVhdHVyZXMgaGFyZGNvZGVkRmVhdHVyZXNCYXNlZE9uUGF0aEZvclRlc3QoY29uc3Qg
VGVzdENvbW1hbmQmIGNvbW1hbmQpCiAgICAgICAgIGZlYXR1cmVzLmJvb2xUZXN0UnVubmVyRmVh
dHVyZXMuaW5zZXJ0KHsgInVzZUVwaGVtZXJhbFNlc3Npb24iLCB0cnVlIH0pOwogICAgIGlmIChz
aG91bGREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoY29tbWFuZC5wYXRoT3JVUkwpKQogICAgICAg
ICBmZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7ICJkdW1wSlNDb25zb2xl
TG9nSW5TdGRFcnIiLCB0cnVlIH0pOworICAgIGlmIChzaG91bGREaXNhYmxlQnJvYWRjYXN0Q2hh
bm5lbE9yaWdpblBhcnRpdGlvbmluZyhjb21tYW5kLnBhdGhPclVSTCkpCisgICAgICAgIGZlYXR1
cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0KHsgIkJyb2FkY2FzdENoYW5uZWxP
cmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkIiwgZmFsc2UgfSk7CiAgICAgaWYgKGF1dG8gZGV2aWNl
U2NhbGVGYWN0b3IgPSBvdmVycmlkZURldmljZVNjYWxlRmFjdG9yRm9yVGVzdChjb21tYW5kLnBh
dGhPclVSTCk7IGRldmljZVNjYWxlRmFjdG9yICE9IHN0ZDo6bnVsbG9wdCkKICAgICAgICAgZmVh
dHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7ICJkZXZpY2VTY2FsZUZhY3Rv
ciIsIGRldmljZVNjYWxlRmFjdG9yLnZhbHVlKCkgfSk7CiAgICAgaWYgKGF1dG8gdmlld1dpZHRo
QW5kSGVpZ2h0ID0gb3ZlcnJpZGVWaWV3V2lkdGhBbmRIZWlnaHRGb3JUZXN0KGNvbW1hbmQucGF0
aE9yVVJMKTsgdmlld1dpZHRoQW5kSGVpZ2h0ICE9IHN0ZDo6bnVsbG9wdCkgewpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAppbmRleCAzODY3NjVlOWRlNjU3NTQzZTQwNmRkMjlh
MDQwNDNlOTM3NDE5OWM1Li5iZjkwNjA2ODJlMWFmYzA3ZGRiM2RmZTFmMmY4ZWNkODRlZDQ4M2Iw
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcApAQCAtNjQsNiArNjQsNyBA
QCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAg
ICB7ICJBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAi
QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQXN5
bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAorICAgICAgICAgICAgeyAiQnJv
YWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAg
ICAgICB7ICJDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAg
ICAgeyAiQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGNhcHR1cmVBdWRpb0luR1BV
UHJvY2Vzc0VuYWJsZWRWYWx1ZSB9LAogICAgICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5VSVBy
b2Nlc3NFbmFibGVkIiwgZmFsc2UgfSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOGM5NDFmNDIxMjBkNmIxMzhjYjE1OTBk
ZTkwZThhZDc5MTQwZWNlLi5iNGM4ZDZlN2Q3ZTg2OGNmYmZlM2M2NmQ3YmQyMDIxMGM4YzNkZWE0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJh
Z2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBh
cnRpdGlvbmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVz
c2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRp
dGlvbmluZy1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdp
bmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXBvcHVwLmh0bWw6IEFk
ZGVkLgorCiAyMDIxLTA5LTAyICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNv
bT4KIAogICAgICAgICBCcmFpbGxlIGRpc3BsYXkgaXMgYmxhbmsgaW4gY29udGVudGVkaXRhYmxl
IGVsZW1lbnRzIHdoZW4gdGhlIGZpZWxkIGlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgZWxlbWVudC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mN2I2ZmFiM2I2MjNkMTA1ZGMwZWE5N2JiMzU3YWMyM2ZmNjAzMDdlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hh
bm5lbC1wYXJ0aXRpb25pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRo
YXQgQnJvYWRjYXN0Q2hhbm5lbCBpcyBwYXJ0aW9uaW5nIGJhc2VkIG9uIHRvcCBvcmlnaW4gLyBm
cmFtZSBvcmlnaW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFJlY2Vp
dmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBwb3B1cAorUEFTUyBnb3RNZXNzYWdlRnJvbVNh
bWVPcmlnaW5Qb3B1cCBpcyBmYWxzZQorUEFTUyBSZWNlaXZlZCBtZXNzYWdlIGZyb20gc2FtZS1v
cmlnaW4gaWZyYW1lIHVuZGVyIHNhbWUtb3JpZ2luIHBvcHVwCitQQVNTIGdvdE1lc3NhZ2VGcm9t
U2FtZU9yaWdpbklmcmFtZVVuZGVyU2FtZU9yaWdpblBvcHVwIGlzIGZhbHNlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5u
ZWwtcGFydGl0aW9uaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc0OTVkZGMzMDQxYTE4ZTMwYzdmOThm
MzExZjdlODIzMmY2YWNmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWwKQEAgLTAsMCAr
MSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBCcm9hZGNhc3RDaGFubmVsIGlzIHBhcnRpb25pbmcgYmFzZWQgb24g
dG9wIG9yaWdpbiAvIGZyYW1lIG9yaWdpbi4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygp
OworCitsZXQgYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmciKTsKKworbGV0IGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpblBvcHVwID0gZmFsc2U7
CitsZXQgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1lT3JpZ2luUG9wdXAg
PSBmYWxzZTsKK2JjLm9ubWVzc2FnZSA9IChtZXNzYWdlKSA9PiB7CisgICAgaWYgKG1lc3NhZ2Uu
ZGF0YSA9PSAic2FtZS1vcmlnaW4tcG9wdXAiKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlJlY2Vp
dmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBwb3B1cCIpOworICAgICAgICBzaG91bGRCZUZh
bHNlKCJnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5Qb3B1cCIpOworICAgICAgICBnb3RNZXNzYWdl
RnJvbVNhbWVPcmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtZXNzYWdlLmRhdGEg
PT0gInNhbWUtb3JpZ2luLWlmcmFtZS11bmRlci1zYW1lLW9yaWdpbi1wb3B1cCIpIHsKKyAgICAg
ICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUtb3JpZ2luIGlmcmFtZSB1
bmRlciBzYW1lLW9yaWdpbiBwb3B1cCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnb3RNZXNz
YWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCIpOworICAgICAgICBn
b3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCA9IHRydWU7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBt
ZXNzYWdlOiAiICsgbWVzc2FnZS5kYXRhKTsKKyAgICB9CisKKyAgICBpZiAoZ290TWVzc2FnZUZy
b21TYW1lT3JpZ2luUG9wdXAgJiYgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJT
YW1lT3JpZ2luUG9wdXApCisgICAgICAgIHNldFRpbWVvdXQoZmluaXNoSlNUZXN0LCAxMDAwKTsK
K307CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBvcGVuKCJodHRwOi8vbG9jYWxob3N0OjgwMDAv
bWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1wb3B1cC5o
dG1sIik7CisgICAgb3BlbigicmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5n
LXBvcHVwLmh0bWwiLCAic2FtZS1vcmlnaW4tcG9wdXAiLCAibm9vcGVuZXIiKTsKK307Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9h
ZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDBlZGRi
NWRmMDk1MjhmZjEzNDdhNGVkYzJjYTZjNmEyNGZiMmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwt
cGFydGl0aW9uaW5nLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBpc1NhbWVPcmlnaW5Bc1RvcCgp
Cit7CisgICAgdHJ5IHsKKyAgICAgICAgcmV0dXJuIHNlbGYub3JpZ2luID09IHRvcC5vcmlnaW47
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCits
ZXQgYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmciKTsKKworaWYgKGxvY2F0aW9uLm9yaWdpbiA9PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikg
eworICAgIGlmIChpc1NhbWVPcmlnaW5Bc1RvcCgpKQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgi
c2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLXNhbWUtb3JpZ2luLXBvcHVwIik7CisgICAgZWxzZQor
ICAgICAgICBiYy5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLWNyb3NzLW9y
aWdpbi1wb3B1cCIpOworfSBlbHNlIHsKKyAgICBpZiAoaXNTYW1lT3JpZ2luQXNUb3AoKSkKKyAg
ICAgICAgYmMucG9zdE1lc3NhZ2UoImNyb3NzLW9yaWdpbi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3Jp
Z2luLXBvcHVwIik7CisgICAgZWxzZQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgiY3Jvc3Mtb3Jp
Z2luLWlmcmFtZS11bmRlci1zYW1lLW9yaWdpbi1wb3B1cCIpOworfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2lu
Zy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVs
LXBhcnRpdGlvbmluZy1wb3B1cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhOTI5NjVmNzBlMjYzZDcyZDQz
MTBiYjY3ODk0NTQ4ZmMzNTNkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmct
cG9wdXAuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0PgorbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nIik7CitpZiAobG9jYXRpb24ub3JpZ2luID09ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiKQorICAgIGJjLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1wb3B1cCIpOwor
ZWxzZQorICAgIGJjLnBvc3RNZXNzYWdlKCJjcm9zcy1vcmlnaW4tcG9wdXAiKTsKKzwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2Vz
L2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxp
ZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9h
ZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437189</attachid>
            <date>2021-09-02 13:50:54 -0700</date>
            <delta_ts>2021-09-02 16:55:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229814-20210902135054.patch</filename>
            <type>text/plain</type>
            <size>33289</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk0MTY2MWZkOGE4N2FmMDkxYTMzMDNm
YWFhNjNmMTMyMDRiMjQ4MjQuLjcyYTdhZWY0MGQ3MDFmNWM4N2M3ZWM4ZGM4M2MwMjhlOGNmZjRi
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHByZWZl
cmVuY2UgZm9yIEJyb2FkY2FzdENoYW5uZWwgb3JpZ2luIHBhcnRpdGlvbmluZy4gVGhpcyBpcyB1
c2VmdWwgYmVjYXVzZSB3ZSBjdXJyZW50bHkKKyAgICAgICAgZGlzYWJsZSB0aGlzIHdoZW4gcnVu
bmluZyB3ZWItcGxhdGZvcm0tdGVzdHMgaW4gV0tUUiAvIERSVCBmb3Igbm93LgorCisgICAgICAg
ICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
CiAyMDIxLTA5LTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgbW9yZSBzdXBwb3J0IGZvciBKSVQgb3BlcmF0aW9uIHZhbGlkYXRpb24gdGVzdGluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA3OWZkMjJiODgzYjYwYzViYTFiODI0ZTYzMTlmMmI0MGUxNzE2NGY1Li42ZjYz
MjEyYmQ2Njc1MmFmNzcyNGZlOGZkODhiNmY3OWNiNWM2MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFtZS1v
cmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9y
aWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsIHRvIGFkZHJlc3MgcHJpdmFj
eQorICAgICAgICBjb25jZXJucywgYXMgZGlzY3Vzc2VkIGhlcmU6CisgICAgICAgIC0gaHR0cHM6
Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzCisKKyAgICAgICAgVGVzdDogaHR0
cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmcuaHRtbAorCisg
ICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjptX2lk
ZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0Y2hN
ZXNzYWdlKToKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5oOgorICAgICAgICAqIGRv
bS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmNwcDoKKwogMjAyMS0wOS0wMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIFtNU0VdW0dQVVBdIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDIGRvZXMgbm90
IHdvcmsgcHJvcGVybHkgd2hlbiBhdWRpbyBhbmQgdmlkZW8gZXhjaGFuZ2UgdGhlaXIgdHJhY2sg
SURzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDE1MDJmZmRhYzRiYWIzYjgxZDE4NGIyYmM0OGE1OTViMzNiZWJlNWYu
LmEwYTlhZTM4MjFmY2JhMzk0YjkyYmM2NmVlYWY5ODNjODU5NzRmM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFt
ZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsIHRvIGFkZHJlc3MgcHJp
dmFjeQorICAgICAgICBjb25jZXJucywgYXMgZGlzY3Vzc2VkIGhlcmU6CisgICAgICAgIC0gaHR0
cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVs
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5y
ZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnJlbW92ZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKwogMjAyMS0wOS0w
MiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdW0dQVVBd
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgd2hlbiBh
dWRpbyBhbmQgdmlkZW8gZXhjaGFuZ2UgdGhlaXIgdHJhY2sgSURzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CmluZGV4IGNhN2E5ZTg4ZmJmMDYwMTFlODdmYzEwNTk3MDc4ODgzZDg1ZGI4MTAuLjkwYjhjMWUy
NjNhM2RiY2Y2NjY4ODZlODBmY2Y5ZTcwODU0ZDM1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9m
cmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAo
dG9wLW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsIHRvIGFkZHJlc3Mg
cHJpdmFjeQorICAgICAgICBjb25jZXJucywgYXMgZGlzY3Vzc2VkIGhlcmU6CisgICAgICAgIC0g
aHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAo
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAo
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAg
IChXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKwogMjAyMS0wOC0y
NyAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIExhbmQg
V2luZG93cyBidWlsZCBmaXhlcyBmcm9tIHNhZmFyaS02MTIuMS4yOS4xNC1icmFuY2guCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDIyMWY3ZDIyZjkyOWY1OTQ3NmRiMzkzYTQxNThl
MjRlZGI2NTI1M2UuLmZmOGNiMzBiMzhkZDBiOTM1ZTZjNDAzMjIyYzg4MjI0NWY3N2VmMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC04Nyw3ICs4Nyw3IEBAIEJsYW5rQW5jaG9y
VGFyZ2V0SW1wbGllc05vT3BlbmVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVs
dDogdHJ1ZQogCi0jIFdlIGhhdmUgdG8gcmVzb2x2ZSB0aGUgcHJpdmFjeSBpc3N1ZSBpbiBodHRw
czovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzU4MDMgYmVmb3JlIHdlIGNhbiBlbmFi
bGUgdGhpcy4KKyMgV2Ugd291bGQgaGF2ZSB0byBwYXJ0aXRpb24gQnJvYWRjYXN0Q2hhbm5lbCBi
YXNlZCBvbiBQYWdlR3JvdXBzIGlmIHdlIHdhbnRlZCB0byBlbmFibGUgdGhpcyBmb3IgV2ViS2l0
TGVnYWN5LgogQnJvYWRjYXN0Q2hhbm5lbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJCcm9hZGNhc3RDaGFubmVsIEFQSSIKQEAgLTEwMCw2ICsxMDAsMTYgQEAg
QnJvYWRjYXN0Q2hhbm5lbEVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCiAKK0Jyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkOgorICB0eXBl
OiBib29sCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0
OiB0cnVlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6Cisg
ICAgICBkZWZhdWx0OiB0cnVlCisKIENGTmV0d29ya05ldHdvcmtMb2FkZXJFbmFibGVkOgogICB0
eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFsIG5ldHdvcmsgbG9h
ZGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4IDY2NDAxYmIw
YmZiNDM4YzhlZDQxNzBiMTM4OTI3Y2ZkMjQ5OGVlYzEuLjFjNjI1NjNjMTExZTI4NjZlMjI4OGU2
ZWRhNjQ4YmM1OWFhZmZkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNh
c3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5j
cHAKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIEhhc2hNYXA8QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY2gKIEJyb2FkY2FzdENo
YW5uZWw6OkJyb2FkY2FzdENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAg
ICwgbV9uYW1lKG5hbWUpCi0gICAgLCBtX29yaWdpbihjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkt
PmRhdGEoKSkKKyAgICAsIG1fb3JpZ2luIHsgY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLmJyb2Fk
Y2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkID8gY29udGV4dC50b3BPcmlnaW4o
KS5kYXRhKCkgOiBjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwgY29udGV4dC5zZWN1
cml0eU9yaWdpbigpLT5kYXRhKCkgfQogICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKIHsKICAgICB7CkBAIC0xNTAsNyAr
MTUwLDcgQEAgdm9pZCBCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UoUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlKQogCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVj
dEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpQb3N0ZWRNZXNzYWdlUXVldWUsIFt0aGlzLCBtZXNz
YWdlID0gV1RGTW92ZShtZXNzYWdlKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2lzQ2xv
c2VkKQotICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZSh7IH0s
IFdURk1vdmUobWVzc2FnZSksIG1fb3JpZ2luLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIGRp
c3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoeyB9LCBXVEZNb3ZlKG1lc3NhZ2UpLCBt
X29yaWdpbi5jbGllbnRPcmlnaW4udG9TdHJpbmcoKSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaAppbmRleCAzZGJhOGY4ZWRjNDBiYzM2N2M1N2QzYmM5
OTUzZTI5NGY0NTQwMTA5Li42ZGE2ODNiOWNjMTJmZTdhNjI0M2MwNWRjNWVhOWM1ZGE0YTc2YWFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKQEAgLTI3LDkgKzI3LDkgQEAK
IAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiQ2xpZW50T3JpZ2luLmgiCiAjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIApAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcCgp
IGZpbmFsIHsgY2xvc2UoKTsgfQogCiAgICAgY29uc3QgU3RyaW5nIG1fbmFtZTsKLSAgICBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEgbV9vcmlnaW47CisgICAgY29uc3QgQ2xpZW50T3JpZ2luIG1f
b3JpZ2luOwogICAgIGNvbnN0IEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNSZWxldmFu
dEV2ZW50TGlzdGVuZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDVjMmJmYjA1NDdmMzYxNTZiZWVhMWRmMWNkYjVmM2Zk
MGEzNWViYTIuLjEwNDIxOGMxMzAwYTFmMWQ2ZGUyYTcwMDU0MjY3NjQxNmI1NDA5OTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTMyLDE0
ICszMiwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0
VmFsdWU7Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworc3RydWN0IENsaWVudE9yaWdpbjsK
IAogY2xhc3MgQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8QnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJDaGFubmVs
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2UoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNo
YW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5l
bChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IENs
aWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZDQxOGM2NWE4MzNiYWQ0ZGRmMzk2NzM0
ZDk3NWYxYTg3M2M2NDM0MC4uNWUwZTVhYTFkMDgyOTVhMTAzNmU0YzU1ZjNiNTBjMzFkZDFmOTM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTExNzQsOSArMTE3
NCw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRW1wdHlCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikg
ZmluYWwgeyB9Ci0gICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWwg
eyB9Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgdm9pZCB1bnJlZ2lzdGVy
Q2hhbm5lbChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbCB7IH0KIH07CiAKIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVt
cHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LmNwcAppbmRleCA5Yjg2ZWJmYzMwMzQzYjRlNDU0NTMyZjI2YzBhYjI4MWRmZDM1Nzk2
Li5kMTgwZTA3ZTE3NzMyZTAyOWYwNjc2ZDRlOTdmYmYwMmI5MDc2NTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6Ok5ldHdvcmtCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFt
ZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIp
Cit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
b3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyIGNoYW5uZWxJZGVudGlmaWVyKQogewogICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2lu
ID0gbV9icm9hZGNhc3RDaGFubmVscy5lbnN1cmUob3JpZ2luLCBbXSB7IHJldHVybiBOYW1lVG9D
aGFubmVsSWRlbnRpZmllcnNNYXAgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgYXV0byYg
Y2hhbm5lbHNGb3JOYW1lID0gY2hhbm5lbHNGb3JPcmlnaW4uZW5zdXJlKG5hbWUsIFtdIHsgcmV0
dXJuIFZlY3RvcjxHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4geyB9OyB9KS5pdGVy
YXRvci0+dmFsdWU7CkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAg
ICAgY2hhbm5lbHNGb3JOYW1lLmFwcGVuZChXVEZNb3ZlKGdsb2JhbENoYW5uZWxJZGVudGlmaWVy
KSk7CiB9CiAKLXZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3Rl
ckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVs
SWRlbnRpZmllcikKIHsKICAgICBhdXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgPSBtX2Jy
b2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5lbHNGb3JPcmln
aW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgpKTsKQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5l
bChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3QKICAgICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+
dmFsdWUucmVtb3ZlRmlyc3QoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpOwogfQogCi12b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIg
c291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2hhbm5lbHNGb3JPcmln
aW5JdGVyYXRvciA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZmluZChvcmlnaW4pOwogICAgIEFTU0VS
VChjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yICE9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5kKCkp
OwpAQCAtODYsNyArODYsNyBAQCB2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgYwogCiB2b2lkIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQogewotICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+IG9yaWdpbnNUb1JlbW92ZTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBv
cmlnaW5zVG9SZW1vdmU7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYnJvYWRjYXN0Q2hhbm5l
bHMpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNUb1JlbW92ZTsKICAgICAgICAgZm9y
IChhdXRvJiBpbm5lckVudHJ5IDogZW50cnkudmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmgKaW5kZXggNDE1YTY5NjViOWE1M2M3MWRlYjAyNTAxNDhiNDUwZGZkYjZmMWZhOC4uNTFl
NmI5NDBkZDY5NjI3ZTgwMTA0ZDM4YjhkMzc5ZDNlMjMwNGNmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0Jyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVu
dE9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ1LDkgKzQ1LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAotICAgIHZvaWQgcmVnaXN0ZXJD
aGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIpOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcik7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQ
Qzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOworICAgIHZvaWQg
cG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdsb2JhbEJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIHsKQEAgLTYwLDkgKzYwLDggQEAgcHJpdmF0ZToKICAgICAgICAg
fQogICAgIH07CiAKLSAgICAvLyBGSVhNRTogQnJvYWRjYXN0Q2hhbm5lbCBuZWVkcyBwYXJ0aXRp
b25pbmcgKGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNTgwMykuCiAgICAg
dXNpbmcgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwID0gSGFzaE1hcDxTdHJpbmcsIFZlY3Rv
cjxHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4+OwotICAgIEhhc2hNYXA8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fYnJv
YWRjYXN0Q2hhbm5lbHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpDbGllbnRPcmlnaW4sIE5hbWVU
b0NoYW5uZWxJZGVudGlmaWVyc01hcD4gbV9icm9hZGNhc3RDaGFubmVsczsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCmluZGV4IDliNjg1MGI5NTU4MzM3NmU0OTkxZDIxNWEyY2RkNzE1NDQ5YWZkOWUuLjRi
NzRkZjgxMmRlODc5Zjg1MDlkNTExNDg2OWIwNzc5ZjYwNmVlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogbWVzc2FnZXMgLT4gTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBO
b3RSZWZDb3VudGVkIHsKLSAgICBSZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCi0gICAgVW5y
ZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4s
IFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVs
SWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCi0gICAgUG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBS
ZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmlu
ZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRp
ZmllcikgV2FudHNDb25uZWN0aW9uCisgICAgVW5yZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCisgICAg
UG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBu
YW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBX
ZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYyBXYW50
c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5j
cHAKaW5kZXggNmRjN2Q2YWJhMDFlNThjYzNiMWIxYzhiOWIwMmZiMDNkZjU1OTkyMC4uNDk4MmY4
MDY2MjM0NTkwOGJkMGFlZGEzMGYxYzc3Y2YyNTM4YzMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTM5LDE3ICszOSwxNyBAQCBzdGF0aWMgaW5s
aW5lIElQQzo6Q29ubmVjdGlvbiYgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKICAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJD
aGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7
CiAgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6UmVnaXN0ZXJDaGFubmVsIHsgb3JpZ2luLCBuYW1lLCBp
ZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lz
dGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVy
KQogewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlVucmVnaXN0ZXJDaGFubmVsIHsgb3JpZ2luLCBu
YW1lLCBpZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTo6cG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6UG9zdE1lc3NhZ2Ug
eyBvcmlnaW4sIG5hbWUsIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMg
eyBXVEZNb3ZlKG1lc3NhZ2UpLCB7IH0gfSB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
MCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKaW5kZXggNDRh
M2QzODJjMDgxNTBmN2EwOWE4ZThlOTdmYzI4NmNhYWMxN2M1My4uNTA1NTc3ZTZmNGUyYzNjYzI3
MmUzZGRhMjM4NmU5NWU0M2U3YzM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSk7CiAgICAgfQogCi0gICAgdm9p
ZCByZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmlu
YWw7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJ
ZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVn
aXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsOworICAgIHZv
aWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWw7
CisgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJj
ZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcAppbmRleCA0NWMzMmExYjM4NTg5YjJiZDNjODlhNzM4ZjdhOTgyYWUyYzMyODExLi5k
MTAzMjA4YzhmODYzM2Q2MDhhYzIzZTU3ZjRlZjM1Nzg2ZWQ0MmY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlZjxXZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUo
Ym9vbCBwCiAgICAgcmV0dXJuIHJlZ2lzdHJ5OwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBj
b25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvJiBjaGFu
bmVsc0Zvck9yaWdpbiA9IG1fY2hhbm5lbHMuZW5zdXJlKG9yaWdpbiwgW10geyByZXR1cm4gTmFt
ZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwpAQCAtNTMs
NyArNTMsNyBAQCB2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFu
bmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRAogICAgIGNoYW5uZWxzRm9yTmFtZS5h
cHBlbmQoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Ojp1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVn
aXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIGNoYW5uZWxzRm9y
T3JpZ2luSXRlcmF0b3IgPSBtX2NoYW5uZWxzLmZpbmQob3JpZ2luKTsKQEAgLTY2LDcgKzY2LDcg
QEAgdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2kKICAgICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+
dmFsdWUucmVtb3ZlRmlyc3QoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIGNh
bGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDM3
MTEzMjIwNTFjN2I4MWY2YjIxYTVmYjRjMTVjMDA3MDYzZDk0MDguLjVkMGQxNTBlZjllMGYxMzU2
M2UyMzNmYmVjZjc2YjY2YTUwZWVmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
aApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlIDxXZWJDb3JlL0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTM0LDE0ICszNCwxMyBAQCBjbGFz
cyBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgOiBwdWJsaWMgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LCBwdQogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5PiBnZXRPckNyZWF0ZShib29sIHByaXZhdGVTZXNzaW9uKTsKIAotICAg
IHZvaWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIp
IGZpbmFsOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZp
bmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBz
b3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi0gICAgLy8gRklYTUU6IEJyb2FkY2FzdENoYW5u
ZWwgbmVlZHMgcGFydGl0aW9uaW5nIChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNz
dWVzLzU4MDMpLgogICAgIHVzaW5nIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCA9IEhhc2hN
YXA8U3RyaW5nLCBWZWN0b3I8V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+PjsK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgTmFtZVRvQ2hhbm5lbElk
ZW50aWZpZXJzTWFwPiBtX2NoYW5uZWxzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6Q2xpZW50T3Jp
Z2luLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fY2hhbm5lbHM7CiB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNkOThiY2JjOTU1
ZmY4YTRlMjNlNTE5ZDU5NWNjOTU3OTFiOTAwNmEuLjJkNWMwY2VmMjQ2ZWFjZmY1ZGI3MGJiNjdj
ZTRmNzIyNjUwMmI3NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wOS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0
b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTgxNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIHdoZW4gcnVubmluZyBsYXlvdXQgdGVzdHMgc2luY2Ug
aXQgd291bGQgY2F1c2UKKyAgICAgICAgdG9vIG1hbnkgdGVzdCBmYWlsdXJlcyBpbiBXUFQgdGVz
dHMgYXQgdGhpcyBwb2ludCAoZS5nLiBDT09QL0NPRVAgdGVzdHMpLgorCisgICAgICAgICogVGVz
dFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuY3BwOgorICAgICAgICAoV1RSOjpzaG91bGREaXNh
YmxlQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZyk6CisgICAgICAgIChXVFI6Omhh
cmRjb2RlZEZlYXR1cmVzQmFzZWRPblBhdGhGb3JUZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVm
YXVsdHMpOgorCiAyMDIxLTA5LTAyICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3Bl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gUG9ydCBBUEkgdGVzdCBydW5uZXIg
dG8gcHl0aG9uMyAodjIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RP
cHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCmluZGV4
IDM4Njc2NWU5ZGU2NTc1NDNlNDA2ZGQyOWEwNDA0M2U5Mzc0MTk5YzUuLjhlMmE3Zjg4OGMwZDEx
ZmQ5YTAyZjZkNzA2NWZkNDAxNWFhZTM0MGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuY3BwCkBAIC02NCw2ICs2NCw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlv
bnM6OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsgIkFsbG93c0lubGluZU1lZGlhUGxheWJhY2si
LCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCIsIGZh
bHNlIH0sCiAgICAgICAgICAgICB7ICJBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCIsIGZh
bHNlIH0sCisgICAgICAgICAgICB7ICJCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5n
RW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNz
RW5hYmxlZCIsIGNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWRWYWx1ZSB9LAogICAgICAg
ICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkIiwgZmFsc2UgfSwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAxYWVmOGE2YTU0NDI4MzljNWJkZjVkMjEzNTBhMGVlZTgwZmNhMzM1Li43ZjgzNTEyNjE0YTA0
MzE0OTNhN2UxMDZmYzYzYWIxNTkwOTlhZThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEt
MDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9h
ZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21l
c3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0
aW9uaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291
cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwt
cGFydGl0aW9uaW5nLXBvcHVwLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA5LTAyICBQZW5nIExpdSAg
PHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW01TRV1bR1BVUF0gU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMgZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aGVuIGF1ZGlvIGFuZCB2aWRl
byBleGNoYW5nZSB0aGVpciB0cmFjayBJRHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFy
dGl0aW9uaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2I2ZmFiM2I2MjNkMTA1ZGMwZWE5
N2JiMzU3YWMyM2ZmNjAzMDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCBpcyBwYXJ0aW9u
aW5nIGJhc2VkIG9uIHRvcCBvcmlnaW4gLyBmcmFtZSBvcmlnaW4uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIFJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBw
b3B1cAorUEFTUyBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5Qb3B1cCBpcyBmYWxzZQorUEFTUyBS
ZWNlaXZlZCBtZXNzYWdlIGZyb20gc2FtZS1vcmlnaW4gaWZyYW1lIHVuZGVyIHNhbWUtb3JpZ2lu
IHBvcHVwCitQQVNTIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFtZVVuZGVyU2FtZU9yaWdp
blBvcHVwIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcv
YnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjgxZjBlOWU4MTA0ZmQzMjZlNWJmMTEyMDJmZWZlZDEwYWJmZTJkNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwt
cGFydGl0aW9uaW5nLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5h
YmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCBCcm9hZGNhc3RDaGFubmVsIGlzIHBhcnRpb25pbmcgYmFzZWQgb24gdG9wIG9yaWdp
biAvIGZyYW1lIG9yaWdpbi4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworCitsZXQg
YmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmci
KTsKKworbGV0IGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpblBvcHVwID0gZmFsc2U7CitsZXQgZ290
TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1lT3JpZ2luUG9wdXAgPSBmYWxzZTsK
K2JjLm9ubWVzc2FnZSA9IChtZXNzYWdlKSA9PiB7CisgICAgaWYgKG1lc3NhZ2UuZGF0YSA9PSAi
c2FtZS1vcmlnaW4tcG9wdXAiKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3Nh
Z2UgZnJvbSBzYW1lLW9yaWdpbiBwb3B1cCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnb3RN
ZXNzYWdlRnJvbVNhbWVPcmlnaW5Qb3B1cCIpOworICAgICAgICBnb3RNZXNzYWdlRnJvbVNhbWVP
cmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChtZXNzYWdlLmRhdGEgPT0gInNhbWUt
b3JpZ2luLWlmcmFtZS11bmRlci1zYW1lLW9yaWdpbi1wb3B1cCIpIHsKKyAgICAgICAgdGVzdFBh
c3NlZCgiUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUtb3JpZ2luIGlmcmFtZSB1bmRlciBzYW1l
LW9yaWdpbiBwb3B1cCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnb3RNZXNzYWdlRnJvbVNh
bWVPcmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCIpOworICAgICAgICBnb3RNZXNzYWdl
RnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlclNhbWVPcmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlOiAi
ICsgbWVzc2FnZS5kYXRhKTsKKyAgICB9CisKKyAgICBpZiAoZ290TWVzc2FnZUZyb21TYW1lT3Jp
Z2luUG9wdXAgJiYgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1lT3JpZ2lu
UG9wdXApCisgICAgICAgIHNldFRpbWVvdXQoZmluaXNoSlNUZXN0LCAxMDAwKTsKK307CisKK29u
bG9hZCA9ICgpID0+IHsKKyAgICBvcGVuKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVzc2FnaW5n
L3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1wb3B1cC5odG1sIik7Cisg
ICAgb3BlbigicmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXBvcHVwLmh0
bWwiLCAic2FtZS1vcmlnaW4tcG9wdXAiLCAibm9vcGVuZXIiKTsKK307Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2Fn
aW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDBlZGRiNWRmMDk1Mjhm
ZjEzNDdhNGVkYzJjYTZjNmEyNGZiMmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9u
aW5nLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBpc1NhbWVPcmlnaW5Bc1RvcCgpCit7CisgICAg
dHJ5IHsKKyAgICAgICAgcmV0dXJuIHNlbGYub3JpZ2luID09IHRvcC5vcmlnaW47CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitsZXQgYmMgPSBu
ZXcgQnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmciKTsKKwor
aWYgKGxvY2F0aW9uLm9yaWdpbiA9PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgIGlm
IChpc1NhbWVPcmlnaW5Bc1RvcCgpKQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgic2FtZS1vcmln
aW4taWZyYW1lLXVuZGVyLXNhbWUtb3JpZ2luLXBvcHVwIik7CisgICAgZWxzZQorICAgICAgICBi
Yy5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1wb3B1
cCIpOworfSBlbHNlIHsKKyAgICBpZiAoaXNTYW1lT3JpZ2luQXNUb3AoKSkKKyAgICAgICAgYmMu
cG9zdE1lc3NhZ2UoImNyb3NzLW9yaWdpbi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVw
Iik7CisgICAgZWxzZQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgiY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS11bmRlci1zYW1lLW9yaWdpbi1wb3B1cCIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJj
ZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy1wb3B1cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhOTI5NjVmNzBlMjYzZDcyZDQzMTBiYjY3ODk0
NTQ4ZmMzNTNkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
c3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRt
bApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0PgorbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNoYW5uZWwtcGFy
dGl0aW9uaW5nIik7CitpZiAobG9jYXRpb24ub3JpZ2luID09ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiKQorICAgIGJjLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1wb3B1cCIpOworZWxzZQorICAg
IGJjLnBvc3RNZXNzYWdlKCJjcm9zcy1vcmlnaW4tcG9wdXAiKTsKKzwvc2NyaXB0PgorPGlmcmFt
ZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2Fz
dGNoYW5uZWwtcGFydGl0aW9uaW5nLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxpZnJhbWUgc3Jj
PSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437220</attachid>
            <date>2021-09-02 16:55:03 -0700</date>
            <delta_ts>2021-09-07 12:38:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229814-20210902165503.patch</filename>
            <type>text/plain</type>
            <size>34569</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE3NDFmODY5YzA2NDQ4ZmY1YzhhOWU0
YzM1ZTgyYmJmMzZlODJiOTAuLjkxNWIwNThkYTQxNWY1OGVjYWNiYzUzZGU5ZDIzZDVjZDdkZWQ0
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9w
LW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHByZWZl
cmVuY2UgZm9yIEJyb2FkY2FzdENoYW5uZWwgb3JpZ2luIHBhcnRpdGlvbmluZy4gVGhpcyBpcyB1
c2VmdWwgYmVjYXVzZSB3ZSBjdXJyZW50bHkKKyAgICAgICAgZGlzYWJsZSB0aGlzIHdoZW4gcnVu
bmluZyB3ZWItcGxhdGZvcm0tdGVzdHMgaW4gV0tUUiAvIERSVCBmb3Igbm93LgorCisgICAgICAg
ICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
CiAyMDIxLTA5LTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmVqZWN0IG5vbi1JUHY0IGhvc3RuYW1lcyB0aGF0IGVuZCBpbiBudW1iZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzhmYzk3ZWRlZDQzNjg4M2UxMWY3NDdmODAxYTk0ZTZkNDFiZjQ5ZS4u
ZTIxNWZmZTM2YjA0YTAyZWFmNTZjYmM2Y2M0NjIyNzkxOWRjOTE4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDIxLTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4vZnJh
bWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5ODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRv
cC1vcmlnaW4vZnJhbWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbCB0byBhZGRyZXNzIHBy
aXZhY3kKKyAgICAgICAgY29uY2VybnMsIGFzIGRpc2N1c3NlZCBoZXJlOgorICAgICAgICAtIGh0
dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNTgwMworCisgICAgICAgIFRlc3Q6
IGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWwK
KworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJyb2FkY2FzdENoYW5uZWw6OkJyb2FkY2FzdENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6
bV9pZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmRpc3Bh
dGNoTWVzc2FnZSk6CisgICAgICAgICogZG9tL0Jyb2FkY2FzdENoYW5uZWwuaDoKKyAgICAgICAg
KiBkb20vQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisKIDIwMjEtMDktMDIgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNpbXBsaWZ5IGRhdGUgcGlja2VyIGxvZ2ljIGZvciBk
YXRldGltZS1sb2NhbCBpbnB1dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTg2MzcyNTE5ZDViNmQwNTUyYzdlYTQy
NjlmMTVhMDY4NjczMjgwYi4uYTE2OGQyYWM3NWUzMmE4ZGIyYmMyZWY5YWRlNjBhZjQ0ZWQ3OTMx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5n
ICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTgxNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBvcmlnaW4g
cGFydGl0aW9uaW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5u
ZWwgdG8gYWRkcmVzcyBwcml2YWN5CisgICAgICAgIGNvbmNlcm5zLCBhcyBkaXNjdXNzZWQgaGVy
ZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzU4MDMK
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVtb3ZlQ29ubmVjdGlvbik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oOgorCiAyMDIxLTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgWyBCaWdTdXIgYXJtNjQgRGVidWcgRVdTIF0gQVNTRVJUSU9OIEZBSUxFRDogbV91bmNv
bW1pdHRlZFN0YXRlLnN0YXRlID09IFN0YXRlOjpQcm92aXNpb25hbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxv
ZwppbmRleCBjYTdhOWU4OGZiZjA2MDExZTg3ZmMxMDU5NzA3ODg4M2Q4NWRiODEwLi45MGI4YzFl
MjYzYTNkYmNmNjY2ODg2ZTgwZmNmOWU3MDg1NGQzNWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIxLTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4v
ZnJhbWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5ODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcg
KHRvcC1vcmlnaW4vZnJhbWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbCB0byBhZGRyZXNz
IHByaXZhY3kKKyAgICAgICAgY29uY2VybnMsIGFzIGRpc2N1c3NlZCBoZXJlOgorICAgICAgICAt
IGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNTgwMworCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
KFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAg
KFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwpOgorICAgICAg
ICAoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmg6CisKIDIwMjEtMDgt
MjcgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBMYW5k
IFdpbmRvd3MgYnVpbGQgZml4ZXMgZnJvbSBzYWZhcmktNjEyLjEuMjkuMTQtYnJhbmNoLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCAyMjFmN2QyMmY5MjlmNTk0NzZkYjM5M2E0MTU4
ZTI0ZWRiNjUyNTNlLi5mZjhjYjMwYjM4ZGQwYjkzNWU2YzQwMzIyMmM4ODIyNDVmNzdlZjE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtODcsNyArODcsNyBAQCBCbGFua0FuY2hv
clRhcmdldEltcGxpZXNOb09wZW5lckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1
bHQ6IHRydWUKIAotIyBXZSBoYXZlIHRvIHJlc29sdmUgdGhlIHByaXZhY3kgaXNzdWUgaW4gaHR0
cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81ODAzIGJlZm9yZSB3ZSBjYW4gZW5h
YmxlIHRoaXMuCisjIFdlIHdvdWxkIGhhdmUgdG8gcGFydGl0aW9uIEJyb2FkY2FzdENoYW5uZWwg
YmFzZWQgb24gUGFnZUdyb3VwcyBpZiB3ZSB3YW50ZWQgdG8gZW5hYmxlIHRoaXMgZm9yIFdlYktp
dExlZ2FjeS4KIEJyb2FkY2FzdENoYW5uZWxFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFu
UmVhZGFibGVOYW1lOiAiQnJvYWRjYXN0Q2hhbm5lbCBBUEkiCkBAIC0xMDAsNiArMTAwLDE2IEBA
IEJyb2FkY2FzdENoYW5uZWxFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBm
YWxzZQogCitCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVs
dDogdHJ1ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJDb3JlOgor
ICAgICAgZGVmYXVsdDogdHJ1ZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVyRW5hYmxlZDoKICAg
dHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBuZXR3b3JrIGxv
YWRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcAppbmRleCA2NjQwMWJi
MGJmYjQzOGM4ZWQ0MTcwYjEzODkyN2NmZDI0OThlZWMxLi4xYzYyNTYzYzExMWUyODY2ZTIyODhl
NmVkYTY0OGJjNTlhYWZmZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRj
YXN0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwu
Y3BwCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBIYXNoTWFwPEJyb2FkY2FzdENoYW5uZWxJZGVu
dGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNoCiBCcm9hZGNhc3RD
aGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAg
ICAsIG1fbmFtZShuYW1lKQotICAgICwgbV9vcmlnaW4oY29udGV4dC5zZWN1cml0eU9yaWdpbigp
LT5kYXRhKCkpCisgICAgLCBtX29yaWdpbiB7IGNvbnRleHQuc2V0dGluZ3NWYWx1ZXMoKS5icm9h
ZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZCA/IGNvbnRleHQudG9wT3JpZ2lu
KCkuZGF0YSgpIDogY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCksIGNvbnRleHQuc2Vj
dXJpdHlPcmlnaW4oKS0+ZGF0YSgpIH0KICAgICAsIG1faWRlbnRpZmllcihCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiB7CiAgICAgewpAQCAtMTUwLDcg
KzE1MCw3IEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0Y2hNZXNzYWdlKFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSkKIAogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmpl
Y3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6UG9zdGVkTWVzc2FnZVF1ZXVlLCBbdGhpcywgbWVz
c2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9pc0Ns
b3NlZCkKLSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoeyB9
LCBXVEZNb3ZlKG1lc3NhZ2UpLCBtX29yaWdpbi50b1N0cmluZygpKSk7CisgICAgICAgICAgICBk
aXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKHsgfSwgV1RGTW92ZShtZXNzYWdlKSwg
bV9vcmlnaW4uY2xpZW50T3JpZ2luLnRvU3RyaW5nKCkpKTsKICAgICB9KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKaW5kZXggM2RiYThmOGVkYzQwYmMzNjdjNTdkM2Jj
OTk1M2UyOTRmNDU0MDEwOS4uNmRhNjgzYjljYzEyZmU3YTYyNDNjMDVkYzVlYTljNWRhNGE3NmFh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCkBAIC0yNyw5ICsyNyw5IEBA
CiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNsaWVudE9yaWdpbi5oIgogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3Ao
KSBmaW5hbCB7IGNsb3NlKCk7IH0KIAogICAgIGNvbnN0IFN0cmluZyBtX25hbWU7Ci0gICAgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhIG1fb3JpZ2luOworICAgIGNvbnN0IENsaWVudE9yaWdpbiBt
X29yaWdpbjsKICAgICBjb25zdCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzUmVsZXZh
bnRFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ccm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuaAppbmRleCA1YzJiZmIwNTQ3ZjM2MTU2YmVlYTFkZjFjZGI1ZjNm
ZDBhMzVlYmEyLi4xMDQyMThjMTMwMGExZjFkNmRlMmE3MDA1NDI2NzY0MTZiNTQwOTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCkBAIC0zMiwx
NCArMzIsMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlw
dFZhbHVlOwotc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK3N0cnVjdCBDbGllbnRPcmlnaW47
CiAKIGNsYXNzIEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVkPEJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNoYW5uZWwo
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBCcm9hZGNhc3RD
aGFubmVsSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5l
bChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJD
aGFubmVsKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgQnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckNoYW5u
ZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBD
bGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIEJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyIHNvdXJjZSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQ0MThjNjVhODMzYmFkNGRkZjM5Njcz
NGQ5NzVmMWE4NzNjNjQzNDAuLjVlMGU1YWExZDA4Mjk1YTEwMzZlNGM1NWYzYjUwYzMxZGQxZjkz
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xMTc0LDkgKzEx
NzQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEVtcHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCByZWdpc3RlckNoYW5uZWwoY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIp
IGZpbmFsIHsgfQotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFs
IHsgfQotICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29u
c3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CisgICAg
dm9pZCByZWdpc3RlckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwg
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgIHZvaWQgdW5yZWdpc3Rl
ckNoYW5uZWwoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWwgeyB9CiB9OwogCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhF
bXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5jcHAKaW5kZXggOWI4NmViZmMzMDM0M2I0ZTQ1NDUzMmYyNmMwYWIyODFkZmQzNTc5
Ni4uZDE4MGUwN2UxNzczMmUwMjlmMDY3NmQ0ZTk3ZmJmMDJiOTA3NjUyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5h
bWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudGlmaWVy
KQordm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllciBjaGFubmVsSWRlbnRpZmllcikKIHsKICAgICBhdXRvJiBjaGFubmVsc0Zvck9yaWdp
biA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5zdXJlKG9yaWdpbiwgW10geyByZXR1cm4gTmFtZVRv
Q2hhbm5lbElkZW50aWZpZXJzTWFwIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIGF1dG8m
IGNoYW5uZWxzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luLmVuc3VyZShuYW1lLCBbXSB7IHJl
dHVybiBWZWN0b3I8R2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+IHsgfTsgfSkuaXRl
cmF0b3ItPnZhbHVlOwpAQCAtNDMsNyArNDMsNyBAQCB2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpbwog
ICAgIGNoYW5uZWxzRm9yTmFtZS5hcHBlbmQoV1RGTW92ZShnbG9iYWxDaGFubmVsSWRlbnRpZmll
cikpOwogfQogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0
ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5l
bElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID0gbV9i
cm9hZGNhc3RDaGFubmVscy5maW5kKG9yaWdpbik7CiAgICAgQVNTRVJUKGNoYW5uZWxzRm9yT3Jp
Z2luSXRlcmF0b3IgIT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQoKSk7CkBAIC01OSw3ICs1OSw3
IEBAIHZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5u
ZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0CiAgICAgY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3It
PnZhbHVlLnJlbW92ZUZpcnN0KGdsb2JhbENoYW5uZWxJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBO
ZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
IHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJD
b3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNoYW5uZWxzRm9yT3Jp
Z2luSXRlcmF0b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAgICBBU1NF
UlQoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgp
KTsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGMKIAogdm9pZCBOZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiBvcmlnaW5zVG9SZW1vdmU7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNsaWVudE9yaWdpbj4g
b3JpZ2luc1RvUmVtb3ZlOwogICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2Jyb2FkY2FzdENoYW5u
ZWxzKSB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzVG9SZW1vdmU7CiAgICAgICAgIGZv
ciAoYXV0byYgaW5uZXJFbnRyeSA6IGVudHJ5LnZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oCmluZGV4IDQxNWE2OTY1YjlhNTNjNzFkZWIwMjUwMTQ4YjQ1MGRmZGI2ZjFmYTguLjUx
ZTZiOTQwZGQ2OTYyN2U4MDEwNGQzOGI4ZDM3OWQzZTIzMDRjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9hZGNhc3RDaGFubmVsSWRlbnRpZmllci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DbGll
bnRPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKLSAgICB2b2lkIHJlZ2lzdGVy
Q2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOwotICAgIHZvaWQgcG9zdE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2Us
IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChJ
UEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgc291cmNlLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBHbG9iYWxCcm9hZGNh
c3RDaGFubmVsSWRlbnRpZmllciB7CkBAIC02MCw5ICs2MCw4IEBAIHByaXZhdGU6CiAgICAgICAg
IH0KICAgICB9OwogCi0gICAgLy8gRklYTUU6IEJyb2FkY2FzdENoYW5uZWwgbmVlZHMgcGFydGl0
aW9uaW5nIChodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzU4MDMpLgogICAg
IHVzaW5nIE5hbWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBWZWN0
b3I8R2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+PjsKLSAgICBIYXNoTWFwPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwPiBtX2Jy
b2FkY2FzdENoYW5uZWxzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6Q2xpZW50T3JpZ2luLCBOYW1l
VG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fYnJvYWRjYXN0Q2hhbm5lbHM7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNz
YWdlcy5pbgppbmRleCA5YjY4NTBiOTU1ODMzNzZlNDk5MWQyMTVhMmNkZDcxNTQ0OWFmZDllLi40
Yjc0ZGY4MTJkZTg3OWY4NTA5ZDUxMTQ4NjliMDc3OWY2MDZlZWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkg
Tm90UmVmQ291bnRlZCB7Ci0gICAgUmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAgIFVu
cmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
LCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5l
bElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAg
UmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJp
bmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50
aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgorICAgIFVucmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgorICAg
IFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
Y3BwCmluZGV4IDZkYzdkNmFiYTAxZTU4Y2MzYjFiMWM4YjliMDJmYjAzZGY1NTk5MjAuLjQ5ODJm
ODA2NjIzNDU5MDhiZDBhZWRhMzBmMWM3N2NmMjUzOGMzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zOSwxNyArMzksMTcgQEAgc3RhdGljIGlu
bGluZSBJUEM6OkNvbm5lY3Rpb24mIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAgICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdp
biwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVy
Q2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlJlZ2lzdGVyQ2hhbm5lbCB7IG9yaWdpbiwgbmFtZSwg
aWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdp
c3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0
cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmll
cikKIHsKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpVbnJlZ2lzdGVyQ2hhbm5lbCB7IG9yaWdpbiwg
bmFtZSwgaWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OnBvc3RNZXNzYWdlKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlBvc3RNZXNzYWdl
IHsgb3JpZ2luLCBuYW1lLCBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
IHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDQ0
YTNkMzgyYzA4MTUwZjdhMDlhOGU4ZTk3ZmMyODZjYWFjMTdjNTMuLjUwNTU3N2U2ZjRlMmMzY2My
NzJlM2RkYTIzODZlOTVlNDNlN2MzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5LmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpOwogICAgIH0KIAotICAgIHZv
aWQgcmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZp
bmFsOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJl
Z2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcm
IG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2
b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0
IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3Vy
Y2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5jcHAKaW5kZXggNDVjMzJhMWIzODU4OWIyYmQzYzg5YTczOGY3YTk4MmFlMmMzMjgxMS4u
ZDEwMzIwOGM4Zjg2MzNkNjA4YWMyM2U1N2Y0ZWYzNTc4NmVkNDJmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZWY8V2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5PiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRl
KGJvb2wgcAogICAgIHJldHVybiByZWdpc3RyeTsKIH0KIAotdm9pZCBXZWJCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBp
ZGVudGlmaWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgYXV0byYgY2hh
bm5lbHNGb3JPcmlnaW4gPSBtX2NoYW5uZWxzLmVuc3VyZShvcmlnaW4sIFtdIHsgcmV0dXJuIE5h
bWVUb0NoYW5uZWxJZGVudGlmaWVyc01hcCB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKQEAgLTUz
LDcgKzUzLDcgQEAgdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hh
bm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkQKICAgICBjaGFubmVsc0Zvck5hbWUu
YXBwZW5kKGlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6dW5yZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJl
Z2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlm
aWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgYXV0byBjaGFubmVsc0Zv
ck9yaWdpbkl0ZXJhdG9yID0gbV9jaGFubmVscy5maW5kKG9yaWdpbik7CkBAIC02Niw3ICs2Niw3
IEBAIHZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbChj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpCiAgICAgY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3It
PnZhbHVlLnJlbW92ZUZpcnN0KGlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZShjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgYXV0byBj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAppbmRleCAz
NzExMzIyMDUxYzdiODFmNmIyMWE1ZmI0YzE1YzAwNzA2M2Q5NDA4Li41ZDBkMTUwZWY5ZTBmMTM1
NjNlMjMzZmJlY2Y3NmI2NmE1MGVlZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
LmgKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0zNCwxNCArMzQsMTMgQEAgY2xh
c3MgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IDogcHVibGljIFdlYkNvcmU6OkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeSwgcHUKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeT4gZ2V0T3JDcmVhdGUoYm9vbCBwcml2YXRlU2Vzc2lvbik7CiAKLSAg
ICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
KSBmaW5hbDsKLSAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9p
ZCByZWdpc3RlckNoYW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcikgZmluYWw7Cisg
ICAgdm9pZCB1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBj
b25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKSBm
aW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIg
c291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIFdlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeSgpID0gZGVmYXVsdDsKIAotICAgIC8vIEZJWE1FOiBCcm9hZGNhc3RDaGFu
bmVsIG5lZWRzIHBhcnRpdGlvbmluZyAoaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lz
c3Vlcy81ODAzKS4KICAgICB1c2luZyBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXAgPSBIYXNo
TWFwPFN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyPj47
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIE5hbWVUb0NoYW5uZWxJ
ZGVudGlmaWVyc01hcD4gbV9jaGFubmVsczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkNsaWVudE9y
aWdpbiwgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwPiBtX2NoYW5uZWxzOwogfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTRhYjQ1MGFi
MzdhMDVjMWJlOWMzYThkYzFiMjRmMjk1YjFiMTI2Li4zZTc0MjkzOWFiOTQwM2E3NzgxYjVkYTU2
YTczZWM5MDg3YjcyYjM4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAo
dG9wLW9yaWdpbi9mcmFtZS1vcmlnaW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4MTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIEJyb2FkY2FzdENo
YW5uZWwgb3JpZ2luIHBhcnRpdGlvbmluZyB3aGVuIHJ1bm5pbmcgbGF5b3V0IHRlc3RzIHNpbmNl
IGl0IHdvdWxkIGNhdXNlCisgICAgICAgIHRvbyBtYW55IHRlc3QgZmFpbHVyZXMgaW4gV1BUIHRl
c3RzIGF0IHRoaXMgcG9pbnQgKGUuZy4gQ09PUC9DT0VQIHRlc3RzKS4KKworICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdUUjo6c2hvdWxkRGlz
YWJsZUJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmcpOgorICAgICAgICAoV1RSOjpo
YXJkY29kZWRGZWF0dXJlc0Jhc2VkT25QYXRoRm9yVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRl
ZmF1bHRzKToKKwogMjAyMS0wOS0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlamVjdCBub24tSVB2NCBob3N0bmFtZXMgdGhhdCBlbmQg
aW4gbnVtYmVycwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAppbmRleCAzODY3
NjVlOWRlNjU3NTQzZTQwNmRkMjlhMDQwNDNlOTM3NDE5OWM1Li44ZTJhN2Y4ODhjMGQxMWZkOWEw
MmY2ZDcwNjVmZDQwMTVhYWUzNDBhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25z
LmNwcApAQCAtNjQsNiArNjQsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpk
ZWZhdWx0cygpCiAgICAgICAgICAgICB7ICJBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrIiwgdHJ1
ZSB9LAogICAgICAgICAgICAgeyAiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9
LAogICAgICAgICAgICAgeyAiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9
LAorICAgICAgICAgICAgeyAiQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJs
ZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJs
ZWQiLCBjYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkVmFsdWUgfSwKICAgICAgICAgICAg
IHsgIkNhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTI4
MTc3NGI5ZDVjMGUzZmYzZTc1MjFkYjczNGE5NWJhZmU5OWRkYy4uNzg4YjQyNzQ1MWUzY2M4ZTY0
OTQxZDc3NTI0M2I2OTUxY2U2ZDQ0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTAy
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IG9y
aWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4vZnJhbWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0
Q2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI5ODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdp
bmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmlu
Zy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMv
YnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRp
dGlvbmluZy1wb3B1cC5odG1sOiBBZGRlZC4KKwogMjAyMS0wOS0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgQmlnU3VyIGFybTY0IERlYnVnIEVXUyBdIEFT
U0VSVElPTiBGQUlMRUQ6IG1fdW5jb21taXR0ZWRTdGF0ZS5zdGF0ZSA9PSBTdGF0ZTo6UHJvdmlz
aW9uYWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2Fk
Y2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mN2I2ZmFiM2I2MjNkMTA1ZGMwZWE5N2JiMzU3YWMyM2ZmNjAzMDdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRj
YXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rl
c3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCBpcyBwYXJ0aW9uaW5nIGJhc2VkIG9uIHRvcCBvcmln
aW4gLyBmcmFtZSBvcmlnaW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBwb3B1cAorUEFTUyBnb3RNZXNzYWdl
RnJvbVNhbWVPcmlnaW5Qb3B1cCBpcyBmYWxzZQorUEFTUyBSZWNlaXZlZCBtZXNzYWdlIGZyb20g
c2FtZS1vcmlnaW4gaWZyYW1lIHVuZGVyIHNhbWUtb3JpZ2luIHBvcHVwCitQQVNTIGdvdE1lc3Nh
Z2VGcm9tU2FtZU9yaWdpbklmcmFtZVVuZGVyU2FtZU9yaWdpblBvcHVwIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2Fz
dGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxZjBlOWU4MTA0ZmQzMjZl
NWJmMTEyMDJmZWZlZDEwYWJmZTJkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLmh0bWwKQEAg
LTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBC
cm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBCcm9hZGNhc3RDaGFu
bmVsIGlzIHBhcnRpb25pbmcgYmFzZWQgb24gdG9wIG9yaWdpbiAvIGZyYW1lIG9yaWdpbi4iKTsK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworCitsZXQgYmMgPSBuZXcgQnJvYWRjYXN0Q2hh
bm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmciKTsKKworbGV0IGdvdE1lc3NhZ2VG
cm9tU2FtZU9yaWdpblBvcHVwID0gZmFsc2U7CitsZXQgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2lu
SWZyYW1lVW5kZXJTYW1lT3JpZ2luUG9wdXAgPSBmYWxzZTsKK2JjLm9ubWVzc2FnZSA9IChtZXNz
YWdlKSA9PiB7CisgICAgaWYgKG1lc3NhZ2UuZGF0YSA9PSAic2FtZS1vcmlnaW4tcG9wdXAiKSB7
CisgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBw
b3B1cCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5Q
b3B1cCIpOworICAgICAgICBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5Qb3B1cCA9IHRydWU7Cisg
ICAgfSBlbHNlIGlmIChtZXNzYWdlLmRhdGEgPT0gInNhbWUtb3JpZ2luLWlmcmFtZS11bmRlci1z
YW1lLW9yaWdpbi1wb3B1cCIpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2Fn
ZSBmcm9tIHNhbWUtb3JpZ2luIGlmcmFtZSB1bmRlciBzYW1lLW9yaWdpbiBwb3B1cCIpOworICAg
ICAgICBzaG91bGRCZUZhbHNlKCJnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlclNh
bWVPcmlnaW5Qb3B1cCIpOworICAgICAgICBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVV
bmRlclNhbWVPcmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZh
aWxlZCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlOiAiICsgbWVzc2FnZS5kYXRhKTsKKyAg
ICB9CisKKyAgICBpZiAoZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luUG9wdXAgJiYgZ290TWVzc2Fn
ZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJTYW1lT3JpZ2luUG9wdXApCisgICAgICAgIHNldFRp
bWVvdXQoZmluaXNoSlNUZXN0LCAxMDAwKTsKK307CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBv
cGVuKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3Rj
aGFubmVsLXBhcnRpdGlvbmluZy1wb3B1cC5odG1sIik7CisgICAgb3BlbigicmVzb3VyY2VzL2Jy
b2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXBvcHVwLmh0bWwiLCAic2FtZS1vcmlnaW4tcG9w
dXAiLCAibm9vcGVuZXIiKTsKK307Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNh
c3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kZDBlZGRiNWRmMDk1MjhmZjEzNDdhNGVkYzJjYTZjNmEyNGZi
MmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcv
cmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLWlmcmFtZS5odG1sCkBAIC0w
LDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBpc1NhbWVPcmlnaW5Bc1RvcCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgcmV0dXJu
IHNlbGYub3JpZ2luID09IHRvcC5vcmlnaW47CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitsZXQgYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgi
YnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmciKTsKKworaWYgKGxvY2F0aW9uLm9yaWdpbiA9
PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgIGlmIChpc1NhbWVPcmlnaW5Bc1RvcCgp
KQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLXNhbWUt
b3JpZ2luLXBvcHVwIik7CisgICAgZWxzZQorICAgICAgICBiYy5wb3N0TWVzc2FnZSgic2FtZS1v
cmlnaW4taWZyYW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1wb3B1cCIpOworfSBlbHNlIHsKKyAgICBp
ZiAoaXNTYW1lT3JpZ2luQXNUb3AoKSkKKyAgICAgICAgYmMucG9zdE1lc3NhZ2UoImNyb3NzLW9y
aWdpbi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwIik7CisgICAgZWxzZQorICAgICAg
ICBiYy5wb3N0TWVzc2FnZSgiY3Jvc3Mtb3JpZ2luLWlmcmFtZS11bmRlci1zYW1lLW9yaWdpbi1w
b3B1cCIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1w
YXJ0aXRpb25pbmctcG9wdXAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5n
L3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1wb3B1cC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhOTI5NjVmNzBlMjYzZDcyZDQzMTBiYjY3ODk0NTQ4ZmMzNTNkZDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJv
YWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctcG9wdXAuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgorbGV0IGJjID0gbmV3IEJy
b2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nIik7CitpZiAobG9j
YXRpb24ub3JpZ2luID09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKQorICAgIGJjLnBvc3RNZXNz
YWdlKCJzYW1lLW9yaWdpbi1wb3B1cCIpOworZWxzZQorICAgIGJjLnBvc3RNZXNzYWdlKCJjcm9z
cy1vcmlnaW4tcG9wdXAiKTsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5n
LWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy1pZnJh
bWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdjNjY0ZjhkZTYyODkxMTUyZjJjMjk5MzQwMmZm
OTc5NmRhNjkwMmIuLjMyMjU0ZjcxYzEzNjI0NDM1OGUzNzBiZjllZTZiZmQwZjQ5MGQ3NjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjM2LDggKzQ2
MzYsOSBAQCBmYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIGZhc3QvZm9ybXMvcGFzc3dvcmQtZG91YmxlY2xpY2stc2VsZWN0aW9uLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQogZmFzdC90ZXh0L29mZnNldEZvclBvc2l0aW9uLWNvbXBsZXgtZmFsbGJhY2su
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLSMgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhl
bWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbigpIGRvZXMgbm90IHdvcmsgd2l0aCB3aW5kb3cu
b3BlbigpIGluIERSVC4KKyMgTm8gQnJvYWRjYXN0Q2hhbm5lbCBzdXBwb3J0IG9uIFdpbmRvd3Mu
CiBmYXN0L2h0bWwvYnJvYWRjYXN0LWNoYW5uZWwtYmV0d2Vlbi1kaWZmZXJlbnQtc2Vzc2lvbnMu
aHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmcuaHRtbCBbIFNraXAgXQogCiAjIFRoaXMgdGVzdCBpcyBza2lwcGVkIGJlY2F1c2Ug
dGhlIG5lY2Vzc2FyeSBmZWF0dXJlIGZsYWcgZnVuY3Rpb25hbGl0eSBzcGVjaWZpYyB0byB0aGUg
V2luZG93cyBXZWJLaXQgbGVnYWN5IHBvcnQgaXMKICMgbm90IGltcGxlbWVudGVkLiAgVGhlIGZl
YXR1cmUgZmxhZ3MgaW4gcXVlc3Rpb24gYXJlIENTU0NvdW50ZXJTdHlsZUF0UnVsZXNFbmFibGVk
IGFuZCBDU1NDb3VudGVyU3R5bGVBdFJ1bGVJbWFnZVN5bWJvbHNFbmFibGVkLgpAQCAtNDY4OCw0
ICs0Njg5LDQgQEAgd2Via2l0Lm9yZy9iLzIyOTM3OSBmYXN0L3Zpc3VhbC12aWV3cG9ydC9yZXNp
emUtZXZlbnQtZmlyZWQtd2luZG93LXJlc2l6ZWQuaHRtbAogCiB3ZWJraXQub3JnL2IvMjE1MzE4
IGZhc3QvdGV4dC96d2otbGlnYXR1cmUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMjI5NTk0IGpzL2RmZy1pbnQxNmFycmF5Lmh0bWwgWyBQYXNzIENyYXNoIF0KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjI5NTk0IGpzL2RmZy1pbnQx
NmFycmF5Lmh0bWwgWyBQYXNzIENyYXNoIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>