<?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>178237</bug_id>
          
          <creation_ts>2017-10-12 15:13:29 -0700</creation_ts>
          <short_desc>Support ::before and ::after pseudo elements after ::slotted</short_desc>
          <delta_ts>2021-10-28 04:03:10 -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>CSS</component>
          <version>Safari Technology Preview</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=179402</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
    
    <blocked>223814</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Dodson">robdodson</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>alanodaval</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>diegopc86</cc>
    
    <cc>egucciar</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>logantm</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>steveblue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1359766</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Dodson">robdodson</who>
    <bug_when>2017-10-12 15:13:29 -0700</bug_when>
    <thetext>As discussed in https://github.com/w3c/webcomponents/issues/655 you should be able to use pseudo-element selectors after ::slotted()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645942</commentid>
    <comment_count>1</comment_count>
    <who name="diegocardoso">diegopc86</who>
    <bug_when>2020-04-27 02:57:58 -0700</bug_when>
    <thetext>Just checked that this issue is still opened.

Linking the code to reproduce it taken from the one of the webcomponents issue: https://jsfiddle.net/webpadawan/v3ksqhcx/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737939</commentid>
    <comment_count>2</comment_count>
    <who name="Stephen Belovarich">steveblue</who>
    <bug_when>2021-03-09 21:46:25 -0800</bug_when>
    <thetext>This issue blocks my ability as a library author to create a custom element called radio-group that supports slotted &lt;input type=&quot;radio&quot;&gt; and style those radio buttons from the context of the radio-group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809286</commentid>
    <comment_count>3</comment_count>
      <attachid>442599</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-27 09:49:55 -0700</bug_when>
    <thetext>Created attachment 442599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809351</commentid>
    <comment_count>4</comment_count>
      <attachid>442615</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-27 11:36:23 -0700</bug_when>
    <thetext>Created attachment 442615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809499</commentid>
    <comment_count>5</comment_count>
      <attachid>442615</attachid>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2021-10-27 17:14:09 -0700</bug_when>
    <thetext>Comment on attachment 442615
Patch

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

Looks sensible to me. non-reviewer r+ I guess :-)

&gt; Source/WebCore/css/SelectorChecker.cpp:431
&gt; +            slot = slot-&gt;assignedSlot();

Do you need to bail out if `scopeDepth` is not one after the loop?

&gt; Source/WebCore/css/SelectorChecker.cpp:1171
&gt; +            if (auto* subselector = context.selector-&gt;selectorList()-&gt;first()) {

Hmm, can this really be null?

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:347
&gt; +        // FIXME: A WPT indicates ::is/::where should be parsed but reduce to nothing as their content is not legal in the context.

nit: Only one colon before :is/:where

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:372
&gt; +    case CSSSelector::PseudoElementMarker:

Gecko also includes ::placeholder and ::file-selector-button, fwiw: https://searchfox.org/mozilla-central/rev/f8576fec48d866c5f988baaf1fa8d2f8cce2a82f/servo/components/style/gecko/pseudo_element.rs#40-41

&gt; Source/WebCore/style/ElementRuleCollector.cpp:-352
&gt; -    ASSERT(is&lt;HTMLSlotElement&gt;(element()));

It&apos;s nice to see this code gone fwiw.

&gt; Source/WebCore/style/ElementRuleCollector.cpp:445
&gt;          auto* selectorForMatching = selector;

You might want to remove this temporary and just use `selector` everywhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809564</commentid>
    <comment_count>6</comment_count>
      <attachid>442615</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-27 21:56:27 -0700</bug_when>
    <thetext>Comment on attachment 442615
Patch

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

&gt;&gt; Source/WebCore/css/SelectorChecker.cpp:431
&gt;&gt; +            slot = slot-&gt;assignedSlot();
&gt; 
&gt; Do you need to bail out if `scopeDepth` is not one after the loop?

(or 0). Yeah, probably.

&gt;&gt; Source/WebCore/css/SelectorChecker.cpp:1171
&gt;&gt; +            if (auto* subselector = context.selector-&gt;selectorList()-&gt;first()) {
&gt; 
&gt; Hmm, can this really be null?

Not really, should have failed parsing.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:347
&gt;&gt; +        // FIXME: A WPT indicates ::is/::where should be parsed but reduce to nothing as their content is not legal in the context.
&gt; 
&gt; nit: Only one colon before :is/:where

wonder if anyone gets these consistently right

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:372
&gt;&gt; +    case CSSSelector::PseudoElementMarker:
&gt; 
&gt; Gecko also includes ::placeholder and ::file-selector-button, fwiw: https://searchfox.org/mozilla-central/rev/f8576fec48d866c5f988baaf1fa8d2f8cce2a82f/servo/components/style/gecko/pseudo_element.rs#40-41

We don&apos;t have dedicated enum values for those for some reason. I&apos;ll add a comment and figure out what to do with them separately.

&gt;&gt; Source/WebCore/style/ElementRuleCollector.cpp:445
&gt;&gt;          auto* selectorForMatching = selector;
&gt; 
&gt; You might want to remove this temporary and just use `selector` everywhere?

true

&gt; LayoutTests/imported/w3c/web-platform-tests/css/css-scoping/slotted-parsing-expected.txt:23
&gt; +FAIL &quot;::slotted(*):is()&quot; should be a valid selector The string did not match the expected pattern.
&gt; +FAIL &quot;::slotted(*):is(:hover)&quot; should be a valid selector The string did not match the expected pattern.
&gt; +FAIL &quot;::slotted(*):is(#id)&quot; should be a valid selector The string did not match the expected pattern.
&gt; +FAIL &quot;::slotted(*):where()&quot; should be a valid selector The string did not match the expected pattern.
&gt; +FAIL &quot;::slotted(*):where(:hover)&quot; should be a valid selector The string did not match the expected pattern.
&gt; +FAIL &quot;::slotted(*):where(#id)&quot; should be a valid selector The string did not match the expected pattern.

Do you happen to know what is the logic/spec text behind these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809590</commentid>
    <comment_count>7</comment_count>
      <attachid>442680</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-27 23:59:16 -0700</bug_when>
    <thetext>Created attachment 442680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809601</commentid>
    <comment_count>8</comment_count>
      <attachid>442680</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-28 00:50:07 -0700</bug_when>
    <thetext>Comment on attachment 442680
Patch

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

&gt; Source/WebCore/style/ElementRuleCollector.cpp:-350
&gt; -std::unique_ptr&lt;RuleSet::RuleDataVector&gt; ElementRuleCollector::collectSlottedPseudoElementRulesForSlot()

Nice!

&gt; Source/WebCore/style/RuleFeature.cpp:91
&gt; +            // FIXME: Implement accurate invalidation.
&gt; +            return matchElement;

Do we have a test for this?
Can we add revalidation tests since we&apos;ve had a bunch of style revalidation bugs in this area in the past?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809602</commentid>
    <comment_count>9</comment_count>
    <who name="Alan Davalos">alanodaval</who>
    <bug_when>2021-10-28 01:22:12 -0700</bug_when>
    <thetext>Just a note on the side, I think this other issue: ( https://bugs.webkit.org/show_bug.cgi?id=223814 ) is a duplicate of sorts of this one, you might want to close it once the work here is done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809608</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-28 01:50:06 -0700</bug_when>
    <thetext>&gt; Do we have a test for this?
&gt; Can we add revalidation tests since we&apos;ve had a bunch of style revalidation
&gt; bugs in this area in the past?

There is a related invalidation WPT that we are failing. I&apos;ll look into this in that context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809610</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-28 01:59:10 -0700</bug_when>
    <thetext>Committed r284973 (243623@main): &lt;https://commits.webkit.org/243623@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442680.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809611</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-28 02:00:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/84748055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809631</commentid>
    <comment_count>13</comment_count>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2021-10-28 04:03:10 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #6)
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/css/css-scoping/slotted-parsing-expected.txt:23
&gt; &gt; +FAIL &quot;::slotted(*):is()&quot; should be a valid selector The string did not match the expected pattern.
&gt; &gt; +FAIL &quot;::slotted(*):is(:hover)&quot; should be a valid selector The string did not match the expected pattern.
&gt; &gt; +FAIL &quot;::slotted(*):is(#id)&quot; should be a valid selector The string did not match the expected pattern.
&gt; &gt; +FAIL &quot;::slotted(*):where()&quot; should be a valid selector The string did not match the expected pattern.
&gt; &gt; +FAIL &quot;::slotted(*):where(:hover)&quot; should be a valid selector The string did not match the expected pattern.
&gt; &gt; +FAIL &quot;::slotted(*):where(#id)&quot; should be a valid selector The string did not match the expected pattern.
&gt; 
&gt; Do you happen to know what is the logic/spec text behind these?

Hmm, so I changed that test in https://github.com/web-platform-tests/wpt/commit/6f085e0f00f64f40b6066edef20344eac8211ab4 because after other pseudos where pseudo-classes are allowed it makes sense to allow :where(). That said, spec-wise I guess it&apos;s not clear, I filed https://github.com/w3c/csswg-drafts/issues/5093 a while ago, and there seems to be consensus about that behavior... bug 212049 is relevant here.

For ::slotted(), where other pseudo-classes after it aren&apos;t allowed anywhere, I doubt it matters much either way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442599</attachid>
            <date>2021-10-27 09:49:55 -0700</date>
            <delta_ts>2021-10-27 11:36:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178237-20211027194954.patch</filename>
            <type>text/plain</type>
            <size>42143</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkNjY4YzY0OGQyNTY4
MjA5NjQ4NjA0YjIzZjJmNmIxMjUzMDE1NS4uMDBhOWEzNDg5Yjc1NzcyMTYzMzA5NTRjZjU5NjVh
ZDU0MGFmMmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTEwLTI3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IDo6YmVmb3Jl
IGFuZCA6OmFmdGVyIHBzZXVkbyBlbGVtZW50cyBhZnRlciA6OnNsb3R0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODIzNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgd2F5IHdlIHJl
c29sdmUgOjpzbG90dGVkIHRvIGltcHJvdmUgY29tcGF0aWJpbGl0eS4gV2Ugbm93IHRyYXZlcnNl
IHRocm91Z2ggdGhlIGFzc2luZ2VkIHNsb3QgY2hhaW4gaW4KKyAgICAgICAgYSBzaW5nbGUgcGFz
cywgc2ltaWxhciB0byA6OnBhcnQgbWF0Y2hpbmcuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisKKyAgICAgICAgQWRkIGEgbmV3IHNl
bGVjdGlvbiByZWxhdGlvbiBTaGFkb3dTbG90dGVkLCBzaW1pbGFyIHRvIHRoZSBleGlzdGluZyBT
aGFkb3dEZXNjZW5kYW50IGFuZCBTaGFkb3dQYXJ0RGVzY2VuZGFudCwKKyAgICAgICAgZm9yIHN3
aXRjaGluZyBzY29wZXMgZHVyaW5nIHNlbGVjdG9yIG1hdGNoaW5nLgorCisgICAgICAgICogY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6
Om1hdGNoUmVjdXJzaXZlbHkgY29uc3QpOgorCisgICAgICAgIEZpbmQgdGhlIHJpZ2h0IHNjb3Bl
IHRvIGNvbnRpbnVlIG1hdGNoaW5nIG9uIFNoYWRvd1Nsb3R0ZWQgcmVsYXRpb24uIFBhc3MgaW4g
dGhlIHNjb3BlIG9yZGluYWwgdG8gZmluZCB0aGUgc2NvcGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUgY29uc3QpOgorCisgICAgICAgIE1hdGNoIHRoZSA6
OnNsb3R0ZWQoKSBlbGVtZW50LgorCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgor
ICAgICAgICAqIGNzcy9TZWxlY3RvckZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xs
ZWN0U2VsZWN0b3JIYXNoZXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyU2VsZWN0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpuZWVkc0ltcGxpY2l0
U2hhZG93Q29tYmluYXRvckZvck1hdGNoaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzUHNldWRvQ2xhc3NW
YWxpZEFmdGVyUHNldWRvRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1RyZWVBYmlkaW5n
UHNldWRvRWxlbWVudCk6CisKKyAgICAgICAgQWRkIGEgc3BlYy10ZXJtZWQgaGVscGVyLgorCisg
ICAgICAgIChXZWJDb3JlOjppc1NpbXBsZVNlbGVjdG9yVmFsaWRBZnRlclBzZXVkb0VsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdElt
cGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9yKToKKworICAgICAgICBJbnNlcnQgU2hhZG93
U2xvdHRlZCByZWxhdGlvbiBmb3IgOjpzbG90dGVkKCkuCisKKyAgICAgICAgKiBjc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpm
cmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHNJbnRlcm5hbCk6CisgICAgICAgICog
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjbGVhck1hdGNoZWRSdWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoU2xvdHRlZFBzZXVkb0VsZW1l
bnRSdWxlcyk6CisKKyAgICAgICAgU2ltcGx5IGdldCB0aGUgcnVsZXMgZnJvbSBzY29wZXMgaW4g
dGhlIGFzc2luZ2VkIHNsb3QgY2hhaW5nIGFuZCBtYXRjaCBhZ2FpbnN0IHRoZW0uCisgICAgICAg
IE5vIG5lZWQgZm9yIHR3byBwYXNzZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0U2xvdHRl
ZFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNsb3QpOiBEZWxldGVkLgorCisgICAgICAgIE5vdCBuZWVk
ZWQgYW55bW9yZS4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmZpbmRTbG90dGVkUHNldWRv
RWxlbWVudFNlbGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29tcHV0ZU5leHRNYXRjaEVsZW1lbnQpOgor
CiAyMDIxLTEwLTI2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFUgUHJvY2Vzc10gYERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Z2V0Q1RNYCBzaG91
bGQgaW5jbHVkZSB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5jcHAKaW5kZXggZmFkZWViYzVlY2M0MjgwODc3ZTJhMzE0ZTNkMzg4NzYwYzEyMjhkMy4uNmNm
N2RlNTg3OTFmMTdkN2EwMTI0ZmFlMDhlZWQ1NGI5NTQ2YjE2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCkBAIC04MjMsNiArODIzLDcgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxl
Y3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAjZW5kaWYKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6U2hhZG93UGFydERlc2NlbmRhbnQ6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNo
YWRvd1Nsb3R0ZWQ6CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChyaWdodFNpZGUpOwogICAg
ICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dChidWlsZGVyLnRvU3RyaW5n
KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDQ2NTIyMDllYjBh
NmYwYmQzZmY5ZGU5MTQyYTdkMDAyOThkYmQwZDkuLjNkYzYxNjQwYWZiMDhiZjYxZmUzNTk1ODk3
N2IxY2M5YzNjMjEwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC04Nyw3ICs4Nyw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIERpcmVjdEFkamFjZW50LAogICAg
ICAgICAgICAgSW5kaXJlY3RBZGphY2VudCwKICAgICAgICAgICAgIFNoYWRvd0Rlc2NlbmRhbnQs
Ci0gICAgICAgICAgICBTaGFkb3dQYXJ0RGVzY2VuZGFudAorICAgICAgICAgICAgU2hhZG93UGFy
dERlc2NlbmRhbnQsCisgICAgICAgICAgICBTaGFkb3dTbG90dGVkCiAgICAgICAgIH07CiAKICAg
ICAgICAgZW51bSBQc2V1ZG9DbGFzc1R5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAppbmRleCBkODI2NGJhMjBmY2Q5YWNlYTJhNGQxZTRiYzA0MjhmNDdiOWQ0NDcxLi45
Mjc4NDExMTc3ZmI4NmFjNmIzMTk4ZTAwMDRmZDg3NmIzZjkwNWNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtNDA4LDIwICs0MDgsMzUgQEAgU2VsZWN0b3JDaGVj
a2VyOjpNYXRjaFJlc3VsdCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoQ2hlY2tp
bmdDb250ZXh0JgogICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0Ojp1cGRhdGVXaXRoTWF0
Y2hUeXBlKHJlc3VsdCwgbWF0Y2hUeXBlKTsKICAgICAgICAgfQogICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERl
c2NlbmRhbnQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpw
YXJ0KGJhcikgd2Ugc2tpcCBkaXJlY3RseSB0byB0aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgot
ICAgICAgICAgICAgYXV0byogc2hhZG93SG9zdCA9IHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpT
aGFkb3dQYXJ0RGVzY2VuZGFudCA/IGNoZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVs
ZVNjb3BlIDogY29udGV4dC5lbGVtZW50LT5zaGFkb3dIb3N0KCk7Ci0gICAgICAgICAgICBpZiAo
IXNoYWRvd0hvc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhN
YXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkpOwotICAgICAgICAgICAgbmV4dENvbnRleHQu
ZWxlbWVudCA9IHNoYWRvd0hvc3Q7Ci0gICAgICAgICAgICBuZXh0Q29udGV4dC5maXJzdFNlbGVj
dG9yT2ZUaGVGcmFnbWVudCA9IG5leHRDb250ZXh0LnNlbGVjdG9yOwotICAgICAgICAgICAgbmV4
dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQgPSBmYWxzZTsKLSAgICAgICAgICAg
IFBzZXVkb0lkU2V0IGlnbm9yZUR5bmFtaWNQc2V1ZG87Ci0gICAgICAgICAgICBNYXRjaFJlc3Vs
dCByZXN1bHQgPSBtYXRjaFJlY3Vyc2l2ZWx5KGNoZWNraW5nQ29udGV4dCwgbmV4dENvbnRleHQs
IGlnbm9yZUR5bmFtaWNQc2V1ZG8pOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnRE
ZXNjZW5kYW50OiB7CisgICAgICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpwYXJ0KGJhcikgd2Ug
c2tpcCBkaXJlY3RseSB0byB0aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgorICAgICAgICBhdXRv
KiBzaGFkb3dIb3N0ID0gcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5k
YW50ID8gY2hlY2tpbmdDb250ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgOiBjb250ZXh0
LmVsZW1lbnQtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgaWYgKCFzaGFkb3dIb3N0KQorICAgICAg
ICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhNYXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBs
ZXRlbHkpOworICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gc2hhZG93SG9zdDsKKyAgICAg
ICAgbmV4dENvbnRleHQuZmlyc3RTZWxlY3Rvck9mVGhlRnJhZ21lbnQgPSBuZXh0Q29udGV4dC5z
ZWxlY3RvcjsKKyAgICAgICAgbmV4dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQg
PSBmYWxzZTsKKyAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsKKyAgICAg
ICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0NvbnRleHQs
IG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKIAotICAgICAgICAgICAgcmV0dXJu
IE1hdGNoUmVzdWx0Ojp1cGRhdGVXaXRoTWF0Y2hUeXBlKHJlc3VsdCwgbWF0Y2hUeXBlKTsKLSAg
ICAgICAgfQorICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUo
cmVzdWx0LCBtYXRjaFR5cGUpOworICAgIH0KKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dT
bG90dGVkOiB7CisgICAgICAgIGF1dG8qIHNsb3QgPSBjb250ZXh0LmVsZW1lbnQtPmFzc2lnbmVk
U2xvdCgpOworICAgICAgICBpZiAoIXNsb3QpCisgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1
bHQ6OmZhaWxzKE1hdGNoOjpTZWxlY3RvckZhaWxzQ29tcGxldGVseSk7CisgICAgICAgIC8vIFdl
IGNvbnRpbnVlIG1hdGNoaW5nIGluIHRoZSBzY29wZSB3aGVyZSB0aGlzIHJ1bGUgY2FtZSBmcm9t
LgorICAgICAgICBhdXRvIHNjb3BlRGVwdGggPSBzdGF0aWNfY2FzdDxpbnQ+KGNoZWNraW5nQ29u
dGV4dC5zdHlsZVNjb3BlT3JkaW5hbCk7CisgICAgICAgIHdoaWxlIChzbG90LT5hc3NpZ25lZFNs
b3QoKSAmJiAtLXNjb3BlRGVwdGggPiAwKQorICAgICAgICAgICAgc2xvdCA9IHNsb3QtPmFzc2ln
bmVkU2xvdCgpOworICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gc2xvdDsKKyAgICAgICAg
bmV4dENvbnRleHQuZmlyc3RTZWxlY3Rvck9mVGhlRnJhZ21lbnQgPSBuZXh0Q29udGV4dC5zZWxl
Y3RvcjsKKyAgICAgICAgbmV4dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQgPSBm
YWxzZTsKKyAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsKKyAgICAgICAg
TWF0Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0NvbnRleHQsIG5l
eHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKKworICAgICAgICByZXR1cm4gTWF0Y2hS
ZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUocmVzdWx0LCBtYXRjaFR5cGUpOworICAgIH0KICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTExNTEsOSArMTE2NiwxOSBAQCBi
b29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoQ2hlY2tpbmdDb250ZXh0JiBjaGVja2luZ0Nv
bnRleHQsIGNvbnN0IExvY2FsQ29udAogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQ6Ci0gICAgICAgICAgICAvLyBXZSBzZWUg
OjpzbG90dGVkKCkgcHNldWRvIGVsZW1lbnRzIHdoZW4gY29sbGVjdGluZyBzbG90dGVkIHJ1bGVz
IGZyb20gdGhlIHNsb3Qgc2hhZG93IHRyZWUgb25seS4KLSAgICAgICAgICAgIEFTU0VSVChjaGVj
a2luZ0NvbnRleHQucmVzb2x2aW5nTW9kZSA9PSBNb2RlOjpDb2xsZWN0aW5nUnVsZXMpOwotICAg
ICAgICAgICAgcmV0dXJuIGlzPEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCk7CisgICAgICAgICAg
ICBpZiAoIWNvbnRleHQuZWxlbWVudC0+YXNzaWduZWRTbG90KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGF1dG8qIHN1YnNlbGVjdG9yID0gY29udGV4
dC5zZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCktPmZpcnN0KCkpIHsKKyAgICAgICAgICAgICAgICBM
b2NhbENvbnRleHQgc3ViY29udGV4dChjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBzdWJjb250
ZXh0LnNlbGVjdG9yID0gc3Vic2VsZWN0b3I7CisgICAgICAgICAgICAgICAgc3ViY29udGV4dC5m
aXJzdFNlbGVjdG9yT2ZUaGVGcmFnbWVudCA9IHN1YnNlbGVjdG9yOworICAgICAgICAgICAgICAg
IHN1YmNvbnRleHQucHNldWRvRWxlbWVudEVmZmVjdGl2ZSA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIHN1YmNvbnRleHQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVlOworICAgICAgICAg
ICAgICAgIFBzZXVkb0lkU2V0IGlnbm9yZWREeW5hbWljUHNldWRvOworICAgICAgICAgICAgICAg
IGlmIChtYXRjaFJlY3Vyc2l2ZWx5KGNoZWNraW5nQ29udGV4dCwgc3ViY29udGV4dCwgaWdub3Jl
ZER5bmFtaWNQc2V1ZG8pLm1hdGNoID09IE1hdGNoOjpTZWxlY3Rvck1hdGNoZXMpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRQYXJ0
OiB7CiAgICAgICAgICAgICBhdXRvIHRyYW5zbGF0ZVBhcnROYW1lVG9SdWxlU2NvcGUgPSBbJl0o
QXRvbVN0cmluZyBwYXJ0TmFtZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCmlu
ZGV4IDg0OGY4YzQ0NjVmNTEwMDhjMzYyMDU5NGM2YzAwMDVkOTQ2NTVjMmEuLjNjYzA3YWFmZTE0
MTY4YzE0NGU4YTlkNThjYmYyN2JmOWUzNjFjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZVJlbGF0aW9ucy5oIgorI2luY2x1ZGUg
IlN0eWxlU2NvcGVPcmRpbmFsLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTUsNiAr
OTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlIHsgbnVs
bHB0ciB9OwogICAgICAgICBib29sIGlzTWF0Y2hpbmdIb3N0UHNldWRvQ2xhc3MgeyBmYWxzZSB9
OwogICAgICAgICBjb25zdCBFbGVtZW50KiBzaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlIHsgbnVs
bHB0ciB9OworICAgICAgICBTdHlsZTo6U2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsIHsg
U3R5bGU6OlNjb3BlT3JkaW5hbDo6RWxlbWVudCB9OwogCiAgICAgICAgIC8vIEZJWE1FOiBJdCB3
b3VsZCBiZSBuaWNlciB0byBoYXZlIGEgc2VwYXJhdGUgb2JqZWN0IGZvciByZXR1cm4gdmFsdWVz
LiBUaGlzIHJlcXVpcmVzIHNvbWUgbW9yZSB3b3JrIGluIHRoZSBzZWxlY3RvciBjb21waWxlci4K
ICAgICAgICAgU3R5bGU6OlJlbGF0aW9ucyBzdHlsZVJlbGF0aW9uczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JGaWx0ZXIuY3BwCmluZGV4IDY5Mjk3YWU5ZDRiOWY4ZDcyYTM3ZTRhM2VkMTdjNzdh
MWZjNjcxNzguLjZiOTNkMjQ2Y2I2Yjk1YWMwMTFlMDc5YjgxYWYyN2Q4NzhkNmUxZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcApAQCAtMTk1LDYgKzE5NSw3IEBAIHN0YXRp
YyBDb2xsZWN0ZWRTZWxlY3Rvckhhc2hlcyBjb2xsZWN0U2VsZWN0b3JIYXNoZXMoY29uc3QgQ1NT
U2VsZWN0b3ImIHJpZ2h0bW9zCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRq
YWNlbnQ6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6CiAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5kYW50OgorICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOgogICAgICAgICAgICAgc2tpcE92ZXJTdWJzZWxl
Y3RvcnMgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OkRlc2NlbmRhbnRTcGFjZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyU2VsZWN0b3IuaAppbmRleCBlMzUwODkwNDM4YTlkOWJkYjYzNDQwMjIxYTAyMWQ3NGU5NWZj
MjEyLi42YjE4NTczNmE1NGM2MzQ4NDUxYjZmZGVmMjU4MGY3MzA3NjZlMDZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclNlbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJTZWxlY3Rvci5oCkBAIC0xMDMsNiArMTAz
LDcgQEAgaW5saW5lIGJvb2wgQ1NTUGFyc2VyU2VsZWN0b3I6Om5lZWRzSW1wbGljaXRTaGFkb3dD
b21iaW5hdG9yRm9yTWF0Y2hpbmcoKSBjb25zdAogICAgICAgICAgICAgfHwgcHNldWRvRWxlbWVu
dFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudEN1ZQogI2VuZGlmCiAgICAgICAg
ICAgICB8fCBwc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
UGFydAorICAgICAgICAgICAgfHwgcHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvRWxlbWVudFNsb3R0ZWQKICAgICAgICAgICAgIHx8IHBzZXVkb0VsZW1lbnRUeXBlKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0b21MZWdhY3lQcmVmaXhlZCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHAKaW5kZXggYjk2Y2UwOWFiMmQ0MDU5MzllMWVmZmMzZDIwYjJlY2ZmOWM3NzFlMC4uYTAzNTdl
Y2I1NmFmMWQwZmU3OWQ4ZmZlOTA3ZmU1ZDJiNTMzMzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTM0Myw2ICszNDMsOSBAQCBz
dGF0aWMgYm9vbCBpc1BzZXVkb0NsYXNzVmFsaWRBZnRlclBzZXVkb0VsZW1lbnQoQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzVHlwZSBwcwogICAgIHN3aXRjaCAoY29tcG91bmRQc2V1ZG9FbGVtZW50
KSB7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQ6CiAgICAgICAgIHJl
dHVybiAhaXNUcmVlU3RydWN0dXJhbFBzZXVkb0NsYXNzKHBzZXVkb0NsYXNzKTsKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50U2xvdHRlZDoKKyAgICAgICAgLy8gRklYTUU6IEEg
V1BUIGluZGljYXRlcyA6OmlzLzo6d2hlcmUgc2hvdWxkIGJlIHBhcnNlZCBidXQgcmVkdWNlIHRv
IG5vdGhpbmcgYXMgdGhlaXIgY29udGVudCBpcyBub3QgbGVnYWwgaW4gdGhlIGNvbnRleHQuCisg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
UmVzaXplcjoKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50U2Nyb2xsYmFyOgog
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRTY3JvbGxiYXJDb3JuZXI6CkBAIC0z
NjEsMTIgKzM2NCwyNCBAQCBzdGF0aWMgYm9vbCBpc1BzZXVkb0NsYXNzVmFsaWRBZnRlclBzZXVk
b0VsZW1lbnQoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSBwcwogICAgIH0KIH0KIAorc3Rh
dGljIGJvb2wgaXNUcmVlQWJpZGluZ1BzZXVkb0VsZW1lbnQoQ1NTU2VsZWN0b3I6OlBzZXVkb0Vs
ZW1lbnRUeXBlIHBzZXVkb0VsZW1lbnRUeXBlKQoreworICAgIHN3aXRjaCAocHNldWRvRWxlbWVu
dFR5cGUpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50QmVmb3JlOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRBZnRlcjoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9FbGVtZW50TWFya2VyOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiBzdGF0aWMgYm9vbCBpc1Np
bXBsZVNlbGVjdG9yVmFsaWRBZnRlclBzZXVkb0VsZW1lbnQoY29uc3QgQ1NTUGFyc2VyU2VsZWN0
b3ImIHNpbXBsZVNlbGVjdG9yLCBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFR5cGUgY29tcG91
bmRQc2V1ZG9FbGVtZW50KQogewogICAgIGlmIChjb21wb3VuZFBzZXVkb0VsZW1lbnQgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3duKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBpZiAoY29tcG91bmRQc2V1ZG9FbGVtZW50ID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
UGFydCkgewotICAgICAgICBpZiAoc2ltcGxlU2VsZWN0b3IubWF0Y2goKSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvRWxlbWVudCAmJiBzaW1wbGVTZWxlY3Rvci5wc2V1ZG9FbGVtZW50VHlwZSgpICE9
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydCkKKyAgICBpZiAoY29tcG91bmRQc2V1ZG9F
bGVtZW50ID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydCB8fCBjb21wb3VuZFBzZXVk
b0VsZW1lbnQgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRTbG90dGVkKSB7CisgICAgICAg
IGlmIChzaW1wbGVTZWxlY3Rvci5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
ICYmIGlzVHJlZUFiaWRpbmdQc2V1ZG9FbGVtZW50KHNpbXBsZVNlbGVjdG9yLnBzZXVkb0VsZW1l
bnRUeXBlKCkpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIGlmIChzaW1w
bGVTZWxlY3Rvci5tYXRjaCgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcykKQEAgLTEwNTks
NiArMTA3NCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2VsZWN0
b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhCiAgICAgLy8gOjpwYXJ0KCkgY29t
YmluZXMgd2l0aCBvdGhlciBwc2V1ZG8gZWxlbWVudHMuCiAgICAgYm9vbCBpc1BhcnQgPSBzcGxp
dEFmdGVyLT50YWdIaXN0b3J5KCktPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1l
bnQgJiYgc3BsaXRBZnRlci0+dGFnSGlzdG9yeSgpLT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydDsKIAorICAgIC8vIDo6c2xvdHRlZCgpIGNvbWJp
bmVzIHdpdGggb3RoZXIgcHNldWRvIGVsZW1lbnRzLgorICAgIGJvb2wgaXNTbG90dGVkID0gc3Bs
aXRBZnRlci0+dGFnSGlzdG9yeSgpLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVt
ZW50ICYmIHNwbGl0QWZ0ZXItPnRhZ0hpc3RvcnkoKS0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQ7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+IHNlY29uZENvbXBvdW5kOwogICAgIGlmIChjb250ZXh0Lm1vZGUg
PT0gVUFTaGVldE1vZGUgfHwgaXNQYXJ0KSB7CiAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzQ3CkBAIC0xMDY4LDcgKzEwODYsMTQg
QEAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBDU1NTZWxlY3RvclBhcnNlcjo6
c3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGEKICAgICB9IGVsc2UKICAgICAgICAgc2Vjb25kQ29t
cG91bmQgPSBzcGxpdEFmdGVyLT5yZWxlYXNlVGFnSGlzdG9yeSgpOwogCi0gICAgc2Vjb25kQ29t
cG91bmQtPmFwcGVuZFRhZ0hpc3RvcnkoaXNQYXJ0ID8gQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnRE
ZXNjZW5kYW50IDogQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQsIFdURk1vdmUoY29tcG91
bmRTZWxlY3RvcikpOworICAgIGF1dG8gcmVsYXRpb24gPSBbJl0geworICAgICAgICBpZiAoaXNT
bG90dGVkKQorICAgICAgICAgICAgcmV0dXJuIENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOwor
ICAgICAgICBpZiAoaXNQYXJ0KQorICAgICAgICAgICAgcmV0dXJuIENTU1NlbGVjdG9yOjpTaGFk
b3dQYXJ0RGVzY2VuZGFudDsKKyAgICAgICAgcmV0dXJuIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNj
ZW5kYW50OworICAgIH0oKTsKKyAgICBzZWNvbmRDb21wb3VuZC0+YXBwZW5kVGFnSGlzdG9yeShy
ZWxhdGlvbiwgV1RGTW92ZShjb21wb3VuZFNlbGVjdG9yKSk7CiAgICAgcmV0dXJuIHNlY29uZENv
bXBvdW5kOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAK
aW5kZXggODlmY2M3ODBjNWFkNzgxNDU4Yzg5NjdhYzI5NGRhZDQyZmJjODZmNS4uNTNkZjE4ZmJk
MTA1MTRhZDA0ZTVlYmI0MTE2YjJmMzgyZTAzZTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2pp
dC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtNTAxLDYgKzUwMSw3IEBAIHN0YXRpYyBpbmxpbmUg
RnJhZ21lbnRSZWxhdGlvbiBmcmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlvbihDU1NT
ZWxlY3Rvcjo6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U3Vic2VsZWN0b3I6CiAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFk
b3dQYXJ0RGVzY2VuZGFudDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xMzI2LDYgKzEzMjcsOSBAQCBzdGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVj
dEZyYWdtZW50c0ludGVybmFsKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWN0b3IsCiAgICAg
ICAgIGlmICgocmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQgfHwgcmVs
YXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5kYW50KSAmJiAhc2VsZWN0b3It
PmlzTGFzdEluVGFnSGlzdG9yeSgpKQogICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6
Q2Fubm90Q29tcGlsZTsKIAorICAgICAgICBpZiAocmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNo
YWRvd1Nsb3R0ZWQpCisgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21w
aWxlOworCiAgICAgICAgIGlmIChyZWxhdGlvbiA9PSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNl
bnQgfHwgcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQpIHsKICAgICAg
ICAgICAgIEZ1bmN0aW9uVHlwZSByZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDsKICAgICAgICAgICAgIGlmIChzZWxl
Y3RvckNvbnRleHQgPT0gU2VsZWN0b3JDb250ZXh0OjpRdWVyeVNlbGVjdG9yKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IGY0ZGViZmRmZDhj
NzBmNWYzMDJkNTUyZjNjNzBjOGY3MGZiMDE5ODIuLmI0NDQzYjM5YmVjODIzZGIwMmU2ZTdmOTg1
MmYxNjFmOTE2ZjA3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5jcHAKQEAgLTEyMCw3ICsxMjAsNiBAQCBpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNv
bGxlY3Rvcjo6YWRkTWF0Y2hlZFJ1bGUoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZwog
dm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y2xlYXJNYXRjaGVkUnVsZXMoKQogewogICAgIG1f
bWF0Y2hlZFJ1bGVzLmNsZWFyKCk7Ci0gICAgbV9rZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzLmNsZWFyKCk7CiAgICAgbV9tYXRjaGVkUnVsZVRyYW5zZmVySW5kZXggPSAwOwogfQog
CkBAIC0yODMsMTkgKzI4MiwxMSBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFNs
b3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKQogICAgICAgICBhdXRvJiBzdHlsZVNjb3BlID0gU2Nv
cGU6OmZvck5vZGUoKnNsb3QpOwogICAgICAgICBpZiAoIXN0eWxlU2NvcGUucmVzb2x2ZXIoKS5y
dWxlU2V0cygpLmlzQXV0aG9yU3R5bGVEZWZpbmVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgLy8gRmluZCBvdXQgaWYgdGhlcmUgYXJlIGFueSA6OnNsb3R0ZWQgcnVsZXMgaW4g
dGhlIHNoYWRvdyB0cmVlIG1hdGNoaW5nIHRoZSBjdXJyZW50IHNsb3QuCi0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIHJlYWxseSBwYXJ0IG9mIHRoZSBzbG90IHN0eWxlIGFuZCBjb3VsZCBiZSBj
YWNoZWQgd2hlbiByZXNvbHZpbmcgaXQuCi0gICAgICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIGNv
bGxlY3Rvcigqc2xvdCwgc3R5bGVTY29wZS5yZXNvbHZlcigpLnJ1bGVTZXRzKCkuYXV0aG9yU3R5
bGUoKSwgbnVsbHB0cik7Ci0gICAgICAgIGF1dG8gc2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcyA9
IGNvbGxlY3Rvci5jb2xsZWN0U2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNsb3QoKTsKLSAg
ICAgICAgaWYgKCFzbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIC8vIE1hdGNoIGluIHRoZSBjdXJyZW50IHNjb3BlLgotICAgICAgICBTZXRG
b3JTY29wZTxib29sPiBjaGFuZ2UobV9pc01hdGNoaW5nU2xvdHRlZFBzZXVkb0VsZW1lbnRzLCB0
cnVlKTsKIAotICAgICAgICBNYXRjaFJlcXVlc3Qgc2NvcGVNYXRjaFJlcXVlc3QobnVsbHB0ciwg
c3R5bGVTY29wZU9yZGluYWwpOwotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qo
c2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcy5nZXQoKSwgc2NvcGVNYXRjaFJlcXVlc3QpOworICAg
ICAgICBhdXRvJiBzY29wZUF1dGhvclJ1bGVzID0gc3R5bGVTY29wZS5yZXNvbHZlcigpLnJ1bGVT
ZXRzKCkuYXV0aG9yU3R5bGUoKTsKIAotICAgICAgICBtX2tlZXBBbGl2ZVNsb3R0ZWRQc2V1ZG9F
bGVtZW50UnVsZXMuYXBwZW5kKFdURk1vdmUoc2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcykpOwor
ICAgICAgICBNYXRjaFJlcXVlc3Qgc2NvcGVNYXRjaFJlcXVlc3QoJnNjb3BlQXV0aG9yUnVsZXMs
IHN0eWxlU2NvcGVPcmRpbmFsKTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0
KCZzY29wZUF1dGhvclJ1bGVzLnNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKSwgc2NvcGVNYXRj
aFJlcXVlc3QpOwogICAgIH0KIH0KIApAQCAtMzQ3LDI5ICszMzgsNiBAQCB2b2lkIEVsZW1lbnRS
dWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoY29u
c3QgTWF0Y2hSZQogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMuc2hh
ZG93UHNldWRvRWxlbWVudFJ1bGVzKHBzZXVkb0lkKSwgbWF0Y2hSZXF1ZXN0KTsKIH0KIAotc3Rk
Ojp1bmlxdWVfcHRyPFJ1bGVTZXQ6OlJ1bGVEYXRhVmVjdG9yPiBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6Y29sbGVjdFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTbG90KCkKLXsKLSAgICBBU1NF
UlQoaXM8SFRNTFNsb3RFbGVtZW50PihlbGVtZW50KCkpKTsKLQotICAgIGNsZWFyTWF0Y2hlZFJ1
bGVzKCk7Ci0KLSAgICBtX21vZGUgPSBTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdS
dWxlczsKLQotICAgIC8vIE1hdGNoIGdsb2JhbCBhdXRob3IgcnVsZXMuCi0gICAgTWF0Y2hSZXF1
ZXN0IG1hdGNoUmVxdWVzdChtX2F1dGhvclN0eWxlLnB0cigpKTsKLSAgICBjb2xsZWN0TWF0Y2hp
bmdSdWxlc0Zvckxpc3QoJm1fYXV0aG9yU3R5bGUtPnNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMo
KSwgbWF0Y2hSZXF1ZXN0KTsKLQotICAgIGlmIChtX21hdGNoZWRSdWxlcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBhdXRvIHJ1bGVEYXRhVmVjdG9yID0gbWFrZVVuaXF1
ZTxSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvcj4oKTsKLSAgICBydWxlRGF0YVZlY3Rvci0+cmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShtX21hdGNoZWRSdWxlcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYg
bWF0Y2hlZFJ1bGUgOiBtX21hdGNoZWRSdWxlcykKLSAgICAgICAgcnVsZURhdGFWZWN0b3ItPnVu
Y2hlY2tlZEFwcGVuZCgqbWF0Y2hlZFJ1bGUucnVsZURhdGEpOwotCi0gICAgcmV0dXJuIHJ1bGVE
YXRhVmVjdG9yOwotfQotCiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFVzZXJSdWxl
cygpCiB7CiAgICAgaWYgKCFtX3VzZXJTdHlsZSkKQEAgLTQwNywxOSArMzc1LDcgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1bGVzKGNvbnN0IFJ1bGVTZXQmIHJ1bGVzKQog
ICAgIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyhEZWNsYXJhdGlvbk9yaWdpbjo6VXNlckFn
ZW50KTsKIH0KIAotc3RhdGljIGNvbnN0IENTU1NlbGVjdG9yKiBmaW5kU2xvdHRlZFBzZXVkb0Vs
ZW1lbnRTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0gICAgZm9yICg7
IHNlbGVjdG9yOyBzZWxlY3RvciA9IHNlbGVjdG9yLT50YWdIaXN0b3J5KCkpIHsKLSAgICAgICAg
aWYgKHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNl
bGVjdG9yLT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
U2xvdHRlZCkgewotICAgICAgICAgICAgaWYgKGF1dG8qIGxpc3QgPSBzZWxlY3Rvci0+c2VsZWN0
b3JMaXN0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxpc3QtPmZpcnN0KCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH07Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0K
LWlubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxl
RGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkJiBzcGVjaWZpY2l0eSkKK2lubGluZSBib29sIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVu
c2lnbmVkJiBzcGVjaWZpY2l0eSwgU2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsKQogewog
ICAgIC8vIFdlIGtub3cgYSBzdWZmaWNpZW50bHkgc2ltcGxlIHNpbmdsZSBwYXJ0IHNlbGVjdG9y
IG1hdGNoZXMgc2ltcGx5IGJlY2F1c2Ugd2UgZm91bmQgaXQgZnJvbSB0aGUgcnVsZSBoYXNoIHdo
ZW4gZmlsdGVyaW5nIHRoZSBSdWxlU2V0LgogICAgIC8vIFRoaXMgaXMgbGltaXRlZCB0byBIVE1M
IG9ubHkgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgbmFtZXNwYWNlIChiZWNhdXNlIG9m
IHRhZyBuYW1lIG1hdGNoKS4KQEAgLTQ3NSw2ICs0MzEsNyBAQCBpbmxpbmUgYm9vbCBFbGVtZW50
UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNp
Z25lZAogICAgIGNvbnRleHQubmFtZUZvckhpZ2h0bGlnaHRQc2V1ZG9FbGVtZW50ID0gbV9wc2V1
ZG9FbGVtZW50UmVxdWVzdC5oaWdobGlnaHROYW1lOwogICAgIGNvbnRleHQuaXNNYXRjaGluZ0hv
c3RQc2V1ZG9DbGFzcyA9IG1faXNNYXRjaGluZ0hvc3RQc2V1ZG9DbGFzczsKICAgICBjb250ZXh0
LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgPSBtX3NoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUu
Z2V0KCk7CisgICAgY29udGV4dC5zdHlsZVNjb3BlT3JkaW5hbCA9IHN0eWxlU2NvcGVPcmRpbmFs
OwogCiAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXM7CiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9K
SVQpCkBAIC00ODYsMTEgKzQ0Myw2IEBAIGlubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9y
OjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkCiAgICAgewog
ICAgICAgICBhdXRvKiBzZWxlY3RvciA9IHJ1bGVEYXRhLnNlbGVjdG9yKCk7CiAgICAgICAgIGF1
dG8qIHNlbGVjdG9yRm9yTWF0Y2hpbmcgPSBzZWxlY3RvcjsKLSAgICAgICAgaWYgKG1faXNNYXRj
aGluZ1Nsb3R0ZWRQc2V1ZG9FbGVtZW50cykgewotICAgICAgICAgICAgc2VsZWN0b3JGb3JNYXRj
aGluZyA9IGZpbmRTbG90dGVkUHNldWRvRWxlbWVudFNlbGVjdG9yKHJ1bGVEYXRhLnNlbGVjdG9y
KCkpOwotICAgICAgICAgICAgaWYgKCFzZWxlY3RvckZvck1hdGNoaW5nKQotICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICAvLyBTbG93IHBhdGguCiAgICAg
ICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIoZWxlbWVudCgpLmRvY3VtZW50KCkp
OwogICAgICAgICBzZWxlY3Rvck1hdGNoZXMgPSBzZWxlY3RvckNoZWNrZXIubWF0Y2goKnNlbGVj
dG9yRm9yTWF0Y2hpbmcsIGVsZW1lbnQoKSwgY29udGV4dCk7CkBAIC01MzUsNyArNDg3LDcgQEAg
dm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNv
bnN0IFJ1bGVTZXQ6OlJ1bGVEYXRhVmUKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IHVuc2lnbmVkIHNwZWNpZmljaXR5OwotICAgICAgICBpZiAocnVsZU1hdGNoZXMocnVsZURhdGEs
IHNwZWNpZmljaXR5KSkKKyAgICAgICAgaWYgKHJ1bGVNYXRjaGVzKHJ1bGVEYXRhLCBzcGVjaWZp
Y2l0eSwgbWF0Y2hSZXF1ZXN0LnN0eWxlU2NvcGVPcmRpbmFsKSkKICAgICAgICAgICAgIGFkZE1h
dGNoZWRSdWxlKHJ1bGVEYXRhLCBzcGVjaWZpY2l0eSwgbWF0Y2hSZXF1ZXN0KTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAppbmRleCA2OTI0
ZDdhNmI3NjZhZGE5NWY0N2E4MTMyZmZjMzQ1ZDgxOTcwYmJlLi5jZDM1MjU0NDQ5MjBmYTcyZDAz
MGEyOWQ1N2IwOWVlZmFiYzE3ZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9F
bGVtZW50UnVsZUNvbGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmgKQEAgLTEzNSwxMSArMTM1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
YXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBTaGFkb3dSb290JiBzY29w
ZVNoYWRvd1Jvb3QpOwogCiAgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdTaGFkb3dQc2V1ZG9FbGVt
ZW50UnVsZXMoY29uc3QgTWF0Y2hSZXF1ZXN0Jik7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFJ1bGVT
ZXQ6OlJ1bGVEYXRhVmVjdG9yPiBjb2xsZWN0U2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNs
b3QoKTsKIAogICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nUnVsZXMoY29uc3QgTWF0Y2hSZXF1ZXN0
Jik7CiAgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgUnVsZVNldDo6
UnVsZURhdGFWZWN0b3IqLCBjb25zdCBNYXRjaFJlcXVlc3QmKTsKLSAgICBib29sIHJ1bGVNYXRj
aGVzKGNvbnN0IFJ1bGVEYXRhJiwgdW5zaWduZWQmIHNwZWNpZmljaXR5KTsKKyAgICBib29sIHJ1
bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiwgdW5zaWduZWQmIHNwZWNpZmljaXR5LCBTY29wZU9y
ZGluYWwpOwogCiAgICAgdm9pZCBzb3J0TWF0Y2hlZFJ1bGVzKCk7CiAKQEAgLTE2MywxMCArMTYy
LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcmludFN0eWxlIHsgZmFsc2UgfTsKICAgICBQ
c2V1ZG9FbGVtZW50UmVxdWVzdCBtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0IHsgUHNldWRvSWQ6Ok5v
bmUgfTsKICAgICBTZWxlY3RvckNoZWNrZXI6Ok1vZGUgbV9tb2RlIHsgU2VsZWN0b3JDaGVja2Vy
OjpNb2RlOjpSZXNvbHZpbmdTdHlsZSB9OwotICAgIGJvb2wgbV9pc01hdGNoaW5nU2xvdHRlZFBz
ZXVkb0VsZW1lbnRzIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNNYXRjaGluZ0hvc3RQc2V1ZG9D
bGFzcyB7IGZhbHNlIH07CiAgICAgUmVmUHRyPGNvbnN0IEVsZW1lbnQ+IG1fc2hhZG93SG9zdElu
UGFydFJ1bGVTY29wZTsKLSAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ1bGVTZXQ6OlJ1bGVE
YXRhVmVjdG9yPj4gbV9rZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzOwogCiAgICAg
VmVjdG9yPE1hdGNoZWRSdWxlLCA2ND4gbV9tYXRjaGVkUnVsZXM7CiAgICAgc2l6ZV90IG1fbWF0
Y2hlZFJ1bGVUcmFuc2ZlckluZGV4IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZUZlYXR1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUu
Y3BwCmluZGV4IDc0MWU0OWNjZmY4MGUwYWNlMTM1NDQ2OWYzZDIyZmVmMGJjNTY0ZTEuLmJlMzNl
ZjIzZTQ1NmNjZDY2ZWZkMDU5YmNlMDIzYzUxYThhMDAyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlRmVhdHVyZS5jcHAKQEAgLTg2LDYgKzg2LDkgQEAgTWF0Y2hFbGVtZW50IFJ1bGVGZWF0dXJl
U2V0Ojpjb21wdXRlTmV4dE1hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50LAog
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OgogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDoKICAgICAgICAgICAgIHJldHVybiBN
YXRjaEVsZW1lbnQ6Okhvc3Q7CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1Nsb3R0
ZWQ6CisgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFjY3VyYXRlIGludmFsaWRhdGlv
bi4KKyAgICAgICAgICAgIHJldHVybiBtYXRjaEVsZW1lbnQ7CiAgICAgICAgIH07CiAgICAgfQog
ICAgIHN3aXRjaCAocmVsYXRpb24pIHsKQEAgLTEwMCw2ICsxMDMsOSBAQCBNYXRjaEVsZW1lbnQg
UnVsZUZlYXR1cmVTZXQ6OmNvbXB1dGVOZXh0TWF0Y2hFbGVtZW50KE1hdGNoRWxlbWVudCBtYXRj
aEVsZW1lbnQsCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICBj
YXNlIENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDoKICAgICAgICAgcmV0dXJuIE1h
dGNoRWxlbWVudDo6SG9zdDsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOgor
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFjY3VyYXRlIGludmFsaWRhdGlvbi4KKyAgICAg
ICAgcmV0dXJuIG1hdGNoRWxlbWVudDsKICAgICB9OwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBtYXRjaEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjU5MDk2Y2QyZWFiNTBhNTEwMWM3
ZWZkZGJiNzFiZjQ5YjJlZTMxMC4uNzZmOTNhNjNmNGIyOTgxMWMzMGE1YjA1ZTBjNTkxNjg2ZTc4
YWQyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTI3ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IDo6YmVmb3JlIGFuZCA6OmFmdGVy
IHBzZXVkbyBlbGVtZW50cyBhZnRlciA6OnNsb3R0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMC0y
NiAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAogICAgICAgICBbIEJp
Z1N1ciB3azIgRGVidWcgYXJtNjQgXSBpbnNwZWN0b3IvYXVkaXQvcnVuLWFjY2Vzc2liaWxpdHku
aHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCA1MTc1NTcyYmRkNjIyYmJmOGEwN2QxYmM5OTE3NTAzZDUyNzk1NzU3Li4zYTdkNTZjZTNkNDEy
ZDZiYjI4N2U5OTI5OGE0NjhlNmExMWMwOGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0xMC0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCA6OmJlZm9yZSBhbmQgOjphZnRlciBwc2V1ZG8g
ZWxlbWVudHMgYWZ0ZXIgOjpzbG90dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzgyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIHRlc3RzIGZyb20gV1BUIHJlcG8uCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJz
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtcGFyc2luZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bp
bmcvaG9zdC1wYXJzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjb3Bpbmcva2V5ZnJhbWVzLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNh
Y2hlLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1zdHlsZS1jYWNoZS0wMDEuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVk
LWxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtcGFyc2luZy5odG1sOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvdzNjLWltcG9ydC5sb2c6CisK
IDIwMjEtMTAtMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
aGFuZ2luZyB0aGUgc3JjIGF0dHJpYnV0ZSBvZiB0aGUgPGltZz4gZWxlbWVudCBpbnNpZGUgYW4g
SW1hZ2VEb2N1bWVudCBkb2VzIG5vdCB0cmlnZ2VyIGEgbG9hZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggODNiZjMyNzg2M2UzZTYzN2MxMDBjOTU2ZmMyYTg3ZGZiZDRjNDE4My4uZTM1NGU4MTg2Y2Jm
YjVkZjVlMjNjZmQ1OWMwYjg0Zjc4MzFhNTFiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMDk3
LDcgKzMwOTcsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZGlz
cGxheS9ydW4taW4vcnVuLWluLXRhYmxlLXJvdy1iZXR3ZWVuLQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWRpc3BsYXkvcnVuLWluL3J1bi1pbi10ZXh0LWJldHdlZW4t
MDA0LnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWRpc3BsYXkvcnVuLWluL3J1bi1pbi10ZXh0LWJldHdlZW4tMDA1LnhodCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXBzZXVkby9wbGFjZWhvbGRlci1pbnB1dC1udW1iZXIuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xv
dHRlZC13aXRoLXBzZXVkby1lbGVtZW50Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0LWRlY29yL3RleHQtZW1waGFz
aXMtY29sb3ItMDAxLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQtZGVjb3IvdGV4dC1lbXBoYXNpcy1wb3NpdGlvbi1h
Ym92ZS1sZWZ0LTAwMS54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0LWRlY29yL3RleHQtZW1waGFzaXMtcG9zaXRpb24t
YWJvdmUtbGVmdC0wMDIueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC0zMjA4LDcgKzMyMDcs
NiBAQCB3ZWJraXQub3JnL2IvMTkwMDMyIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3NjYWxl
LXJvdGF0aW9uLXRyYW5zaXRpb24tb3ZlcmxhcAogd2Via2l0Lm9yZy9iLzE5MDAzMiBjb21wb3Np
dGluZy9sYXllci1jcmVhdGlvbi90cmFuc2xhdGUtc2NhbGUtdHJhbnNpdGlvbi1vdmVybGFwLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xOTAwMzIgY29tcG9zaXRpbmcvbGF5ZXItY3Jl
YXRpb24vdHJhbnNsYXRlLXRyYW5zaXRpb24tb3ZlcmxhcC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMTkwMDMyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1s
b2dpY2FsL2FuaW1hdGlvbi0wMDMudGVudGF0aXZlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8xOTAwMzIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bp
bmcva2V5ZnJhbWVzLTAwMS5odG1sIFsgRmFpbHVyZSBdCiAKICMgRklYTUU6IE5lZWQgdG8gaW1w
bGVtZW50IE1lZGlhUmVjb3JkZXIgZGF0YWF2YWlsYWJsZSBldmVudCB0byBzdXBwb3J0IHRoZXNl
IHRlc3RjYXNlcwogZmFzdC9tZWRpYWNhcHR1cmVmcm9tZWxlbWVudC9DYW52YXNDYXB0dXJlTWVk
aWFTdHJlYW0taW1hZ2ViaXRtYXByZW5kZXJpbmdjb250ZXh0Lmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtY29u
dGV4dC1wYXJzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTVhYThhNTdkMmNlZTc5NjU5
NWNlMDE4ZDMzODdlZWNiZWVkYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1jb250ZXh0
LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitGQUlMICI6aG9zdC1jb250
ZXh0KC5hKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90IG1h
dGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorRkFJTCAiOmhvc3QtY29udGV4dChkaXYuYSkiIHNo
b3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhw
ZWN0ZWQgcGF0dGVybi4KK1BBU1MgIjpob3N0LWNvbnRleHQiIHNob3VsZCBiZSBhbiBpbnZhbGlk
IHNlbGVjdG9yCitQQVNTICI6aG9zdC1jb250ZXh0KCkiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNl
bGVjdG9yCitQQVNTICI6aG9zdC1jb250ZXh0KC5hLCAuYikiIHNob3VsZCBiZSBhbiBpbnZhbGlk
IHNlbGVjdG9yCitQQVNTICI6aG9zdC1jb250ZXh0KC5hICsgLmIpIiBzaG91bGQgYmUgYW4gaW52
YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QtY29udGV4dCguYSArIC5iLCAjYyA+ICNkKSIgc2hv
dWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1jb250ZXh0
LXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTYwNTVlY2U2MzczM2U4YzU4YzZhZGQ2NjE1NjY1NzIzNTZkNjdhYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+VGVzdCBwYXJzaW5nIG9mIHRoZSBob3N0LWNvbnRleHQoKSBwc2V1
ZG8tY2xhc3NlczwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3Mtc2NvcGluZy8jc2VsZWN0b3JkZWYtaG9zdC1jb250ZXh0Ij4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvY3NzL3N1cHBvcnQvcGFyc2luZy10ZXN0Y29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoLmEpJyk7CisgIHRlc3RfdmFs
aWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoZGl2LmEpJyk7CisKKyAgdGVzdF9pbnZhbGlkX3Nl
bGVjdG9yKCc6aG9zdC1jb250ZXh0Jyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3Qt
Y29udGV4dCgpJyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3QtY29udGV4dCguYSwg
LmIpJyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3QtY29udGV4dCguYSArIC5iKScp
OworICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoLmEgKyAuYiwgI2MgPiAj
ZCknKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1wYXJzaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y29waW5nL2hvc3QtcGFyc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU4YzI0OTMxMDJh
Y2MyYzc4YzJiOThiY2Y1MmRlODliNjdmZmFkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3Qt
cGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1MgIjpob3N0IiBzaG91
bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QoLmEpIiBzaG91bGQgYmUgYSB2YWxp
ZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QoZGl2LmEpIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3Rv
cgorUEFTUyAiOmhvc3QoKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKK0ZBSUwgIjpo
b3N0KC5hLCAuYikiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yIGFzc2VydF90aHJvd3Nf
ZG9tOiAiOmhvc3QoLmEsIC5iKSIgc2hvdWxkIHRocm93IGluIHF1ZXJ5U2VsZWN0b3IgZnVuY3Rp
b24gIigpID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpIiBkaWQgbm90IHRocm93
CitQQVNTICI6aG9zdCguYSArIC5iKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKK1BB
U1MgIjpob3N0KC5hICsgLmIsICNjID4gI2QpIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3Rv
cgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtcGFyc2luZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEzOTQzM2FmNDgzYTk0YTQzYzcwYTdmNDI5YTIyMWY3NTlkMGM4YTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDE2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5UZXN0IHBhcnNpbmcgb2YgdGhlIDpob3N0L2hvc3Qo
KSBwc2V1ZG8tY2xhc3NlczwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2NvcGluZy8jc2VsZWN0b3JkZWYtaG9zdC1mdW5jdGlvbiI+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL2Nzcy9zdXBwb3J0L3BhcnNpbmctdGVzdGNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCc6aG9zdCcpOworICB0ZXN0X3ZhbGlkX3Nl
bGVjdG9yKCc6aG9zdCguYSknKTsKKyAgdGVzdF92YWxpZF9zZWxlY3RvcignOmhvc3QoZGl2LmEp
Jyk7CisKKyAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCc6aG9zdCgpJyk7CisgIHRlc3RfaW52YWxp
ZF9zZWxlY3RvcignOmhvc3QoLmEsIC5iKScpOworICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoJzpo
b3N0KC5hICsgLmIpJyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3QoLmEgKyAuYiwg
I2MgPiAjZCknKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcva2V5ZnJhbWVzLTAwMS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2NvcGluZy9rZXlmcmFtZXMtMDAxLWV4cGVjdGVkLnR4dAppbmRleCA2YmM4ZGNkNzIx
NjU5NjQxMGQ2M2EyNDlhZjhkNWQ2NDdmYTI5YmJlLi4yZjg3M2QxMjZjOGNkNTYwNWI5ZDk5YTli
OGQ1YjllY2Y0ZTZlM2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9rZXlmcmFtZXMtMDAxLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZy9rZXlmcmFtZXMtMDAxLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBAa2V5ZnJhbWVzIGFwcGxpZXMgaW4gdGhlIHNoYWRvdyB0cmVlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIEBrZXlmcmFtZXMgYXBwbGllcyBpbiB0aGUgc2hh
ZG93IHRyZWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1zdHlsZS1jYWNoZS0wMDEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1zdHlsZS1jYWNoZS0wMDEtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUzMjNiZjNhN2IxYmIyODVmNTI3NmM0MmVkZWM0MjNhNzJjZDI4M2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNhY2hlLTAwMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgU2hhcmVkIHN0eWxlIGludmFsaWRhdGlv
biB3aXRoIHJlbW92YWxzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3NoYWRvdy1zaGFyZWQtc3R5bGUtY2Fj
aGUtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNhY2hlLTAwMS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4MGI0ZDFjNDJhYWEyMzM3NzE1YjdhNzAyNjBkZGMzZjNlMzY4MTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNhY2hlLTAwMS5odG1sCkBAIC0wLDAg
KzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PlNoYXJlZCBzdHlsZSBpbnZhbGlkYXRpb24gd2l0aCByZW1vdmFsczwvdGl0bGU+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MDcxMTYiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLXNjb3BpbmcvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86ZW1p
bGlvQGNyaXNhbC5pbyIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiI+Cis8bGluayByZWw9
ImF1dGhvciIgaHJlZj0iaHR0cHM6Ly9tb3ppbGxhLm9yZyIgdGl0bGU9Ik1vemlsbGEiPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0i
aG9zdC0xIj48L2Rpdj4KKzxkaXYgaWQ9Imhvc3QtMiI+PC9kaXY+Cis8c2NyaXB0PgorY29uc3Qg
SU5JVElBTExZX0NPTU1PTl9TVFlMRSA9IGA8c3R5bGU+Omhvc3QgeyBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQgIWltcG9ydGFudCB9PC9zdHlsZT5gOworbGV0IGhlbHBlciA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoIiNob3N0LTEiKTsKK2xldCBob3N0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
I2hvc3QtMiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBoZWxwZXIuYXR0YWNoU2hhZG93KHsg
bW9kZTogIm9wZW4iIH0pLmlubmVySFRNTCA9IElOSVRJQUxMWV9DT01NT05fU1RZTEU7CisgIGFz
c2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShoZWxwZXIpLmJhY2tncm91bmRDb2xvciwgInJn
YigyNTUsIDAsIDApIiwgIkNvbW1vbiBzdHlsZSBzaG91bGQgYXBwbHkgdG8gaGVscGVyIik7CisK
KyAgaG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSkuaW5uZXJIVE1MID0gSU5JVElB
TExZX0NPTU1PTl9TVFlMRTsKKyAgYXNzZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKGhvc3Qp
LmJhY2tncm91bmRDb2xvciwgInJnYigyNTUsIDAsIDApIiwgIkNvbW1vbiBzdHlsZSBzaG91bGQg
YXBwbHkgdG8gaG9zdCIpOworCisgIGhvc3Quc2hhZG93Um9vdC5pbm5lckhUTUwgPSBgPHN0eWxl
Pjpob3N0IHsgYmFja2dyb3VuZC1jb2xvcjogbGltZTsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyB9PC9zdHlsZT5gOworICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoaG9zdCku
YmFja2dyb3VuZENvbG9yLCAicmdiKDAsIDI1NSwgMCkiLCAiQ29tbW9uIHN0eWxlIHNob3VsZCBu
byBsb25nZXIgYXBwbHkgdG8gaG9zdCIpOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5n
L3Nsb3R0ZWQtbGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLWxpbmstZXhwZWN0ZWQudHh0
CmluZGV4IDRlZjcxYmI1MTY3ZDRjOGVjYWMwZjgwN2E0Yzg0ZjdkNDRjYTU3N2MuLjc1N2I2NDE1
YjFmMTI2MjIwNGU1NzZlMDJmOGVjZmRlODQwYzcwZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQt
bGluay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1saW5rLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDQgQEAKIFRoaXMgbGluayBzaG91bGQgYmUgZ3JlZW4uCiAKLUZBSUwgQ2hlY2sgdGhh
dCB3ZSBtYXRjaCA6bGluayBhbmQgbm90IDp2aXNpdGVkIGZvciBzbG90dGVkIGFuY2hvci4gYXNz
ZXJ0X2VxdWFsczogVW52aXNpdGVkIGxpbmsgc2hvdWxkIGJlIGdyZWVuLiBleHBlY3RlZCAicmdi
KDAsIDEyOCwgMCkiIGJ1dCBnb3QgInJnYigyNTUsIDAsIDApIgorUEFTUyBDaGVjayB0aGF0IHdl
IG1hdGNoIDpsaW5rIGFuZCBub3QgOnZpc2l0ZWQgZm9yIHNsb3R0ZWQgYW5jaG9yLgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJz
aW5nLWV4cGVjdGVkLnR4dAppbmRleCAxZmIxYzQ0NzU3OWE2NmFkZThiOThkNmEyMjAyZTE1YTNm
ODljMjlhLi5kZDI4NWZkNDU4YmI2MmRlNDVhYjEzNGIxNWQxYjUwMDhmOWE4NWRkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2NvcGluZy9zbG90dGVkLXBhcnNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtcGFy
c2luZy1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsNiBAQCBQQVNTICI6OnNsb3R0ZWQoKilbYXR0
cl0iIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6aG9z
dCIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKIFBBU1MgIjo6c2xvdHRlZCgqKTpob3N0
KGRpdikiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6
aG92ZXIiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCi1QQVNTICI6OnNsb3R0ZWQoKik6
aXMoOmhvdmVyKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKLVBBU1MgIjo6c2xvdHRl
ZCgqKTp3aGVyZSg6aG92ZXIpIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgotUEFTUyAi
OjpzbG90dGVkKCopOmlzKCNpZCkiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCi1QQVNT
ICI6OnNsb3R0ZWQoKik6d2hlcmUoI2lkKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IK
IFBBU1MgIjo6c2xvdHRlZCgqKTpyZWFkLW9ubHkiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVj
dG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6OnNsb3R0ZWQoKikiIHNob3VsZCBiZSBhbiBpbnZhbGlk
IHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6OmJlZm9yZTo6c2xvdHRlZCgqKSIgc2hvdWxk
IGJlIGFuIGludmFsaWQgc2VsZWN0b3IKQEAgLTE5LDEwICsxNSwxNiBAQCBQQVNTICI6OnNsb3R0
ZWQoKikiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoZGl2KSIg
c2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKIFBBU1MgIjo6c2xvdHRlZChbYXR0cl06aG92ZXIp
IiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgogUEFTUyAiOjpzbG90dGVkKDpub3QoLmEpKSIg
c2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKLUZBSUwgIjo6c2xvdHRlZCgqKTo6YmVmb3JlIiBz
aG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4
cGVjdGVkIHBhdHRlcm4uCi1GQUlMICI6OnNsb3R0ZWQoKik6OmFmdGVyIiBzaG91bGQgYmUgYSB2
YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRl
cm4uCitGQUlMICI6OnNsb3R0ZWQoKik6aXMoKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3Ig
VGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorRkFJTCAiOjpz
bG90dGVkKCopOmlzKDpob3ZlcikiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJp
bmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4KK0ZBSUwgIjo6c2xvdHRlZCgq
KTppcygjaWQpIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3Qg
bWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uCitGQUlMICI6OnNsb3R0ZWQoKik6d2hlcmUoKSIg
c2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBl
eHBlY3RlZCBwYXR0ZXJuLgorRkFJTCAiOjpzbG90dGVkKCopOndoZXJlKDpob3ZlcikiIHNob3Vs
ZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0
ZWQgcGF0dGVybi4KK0ZBSUwgIjo6c2xvdHRlZCgqKTp3aGVyZSgjaWQpIiBzaG91bGQgYmUgYSB2
YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRl
cm4uCitQQVNTICI6OnNsb3R0ZWQoKik6OmJlZm9yZSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0
b3IKK1BBU1MgIjo6c2xvdHRlZCgqKTo6YWZ0ZXIiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9y
CiBGQUlMICI6OnNsb3R0ZWQoKik6OnBsYWNlaG9sZGVyIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxl
Y3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uCi1GQUlM
ICI6OnNsb3R0ZWQoKik6Om1hcmtlciIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0
cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorUEFTUyAiOjpzbG90dGVk
KCopOjptYXJrZXIiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQo
Kik6OmZpcnN0LWxpbmUiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNs
b3R0ZWQoKik6OmZpcnN0LWxldHRlciIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKIFBB
U1MgIjo6c2xvdHRlZCgqKTo6c2VsZWN0aW9uIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3Rv
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLXBhcnNp
bmcuaHRtbAppbmRleCBmMDA2MmM4Njc0NGYwN2ExNTIyYjE2NGU0NTNkMjZjODRhZTJmOTQ4Li4y
NWIwMDMwOTFmYWRiMDA0YjkwZjUyZWMxYmE0MTc5YmYxYTIyMGM4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9z
bG90dGVkLXBhcnNpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmcuaHRtbApAQCAtMTcs
MTAgKzE3LDYgQEAKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aG9zdCIp
OwogICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTpob3N0KGRpdikiKTsKICAg
dGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aG92ZXIiKTsKLSAgdGVzdF9pbnZh
bGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aXMoOmhvdmVyKSIpOwotICB0ZXN0X2ludmFsaWRf
c2VsZWN0b3IoIjo6c2xvdHRlZCgqKTp3aGVyZSg6aG92ZXIpIik7Ci0gIHRlc3RfaW52YWxpZF9z
ZWxlY3RvcigiOjpzbG90dGVkKCopOmlzKCNpZCkiKTsKLSAgdGVzdF9pbnZhbGlkX3NlbGVjdG9y
KCI6OnNsb3R0ZWQoKik6d2hlcmUoI2lkKSIpOwogICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoIjo6
c2xvdHRlZCgqKTpyZWFkLW9ubHkiKTsKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0
ZWQoKik6OnNsb3R0ZWQoKikiKTsKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQo
Kik6OmJlZm9yZTo6c2xvdHRlZCgqKSIpOwpAQCAtMzEsNiArMjcsMTQgQEAKICAgdGVzdF92YWxp
ZF9zZWxlY3RvcigiOjpzbG90dGVkKFthdHRyXTpob3ZlcikiKTsKICAgdGVzdF92YWxpZF9zZWxl
Y3RvcigiOjpzbG90dGVkKDpub3QoLmEpKSIpOwogCisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6
c2xvdHRlZCgqKTppcygpIik7CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTpp
cyg6aG92ZXIpIiwgIjo6c2xvdHRlZCgqKTppcygpIik7CisgIHRlc3RfdmFsaWRfc2VsZWN0b3Io
Ijo6c2xvdHRlZCgqKTppcygjaWQpIiwgIjo6c2xvdHRlZCgqKTppcygpIik7CisKKyAgdGVzdF92
YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOndoZXJlKCkiKTsKKyAgdGVzdF92YWxpZF9zZWxl
Y3RvcigiOjpzbG90dGVkKCopOndoZXJlKDpob3ZlcikiLCAiOjpzbG90dGVkKCopOndoZXJlKCki
KTsKKyAgdGVzdF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOndoZXJlKCNpZCkiLCAiOjpz
bG90dGVkKCopOndoZXJlKCkiKTsKKwogICAvLyBBbGxvdyB0cmVlLWFiaWRpbmcgcHNldWRvIGVs
ZW1lbnRzIGFmdGVyIDo6c2xvdHRlZAogICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQo
Kik6OmJlZm9yZSIpOwogICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6OmFmdGVy
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2NvcGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3czYy1pbXBvcnQubG9nCmlu
ZGV4IDhhMjBhNGRlNjVhZWYxYzU0MDU0MGU0ODgyZThmNWU3MjQ2Y2VmNjUuLmM5YzMxNDdhODYy
YWFhOGZmYWJjNzZiZTE4MTViNGMzMzZlZjg0NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3czYy1pbXBvcnQu
bG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zY29waW5nL3czYy1pbXBvcnQubG9nCkBAIC01Miw2ICs1Miw3IEBAIExpc3Qgb2YgZmls
ZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNjb3BpbmcvY3NzLXNjb3Bpbmctc2hhZG93LXdpdGgtcnVsZXMtbm8tc3R5bGUtbGVhay1leHBl
Y3RlZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjb3BpbmcvY3NzLXNjb3Bpbmctc2hhZG93LXdpdGgtcnVsZXMtbm8tc3R5bGUtbGVh
ay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXNjb3BpbmcvY3NzLXNjb3Bpbmctc2hhZG93LXdpdGgtcnVsZXMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3Qt
Y29udGV4dC1wYXJzaW5nLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtc3BlY2lmaWNpdHktMDAxLWV4
cGVjdGVkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtc3BlY2lmaWNpdHktMDAxLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9o
b3N0LWNvbnRleHQtc3BlY2lmaWNpdHktMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTY5LDYgKzcwLDcg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LW11bHRpcGxlLTAwMS5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1u
ZXN0ZWQtMDAxLWV4cGVjdGVkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LW5lc3RlZC0wMDEuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hv
c3QtcGFyc2luZy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1zbG90dGVkLTAwMS1leHBlY3RlZC5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
aG9zdC1zbG90dGVkLTAwMS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1zcGVjaWZpY2l0eS0wMDItZXhwZWN0ZWQu
aHRtbApAQCAtMTI1LDYgKzEyNyw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXJlYXNz
aWduLWR5bmFtaWMtMDA0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctcm9vdC1pbnNlcnQtaW50by1kb2N1bWVu
dC1leHBlY3RlZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXJvb3QtaW5zZXJ0LWludG8tZG9jdW1lbnQuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y29waW5nL3NoYWRvdy1zaGFyZWQtc3R5bGUtY2FjaGUtMDAxLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90LW5vbi1o
dG1sLWRpc3BsYXktdmFsdWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtaW52YWxpZGF0aW9uLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGlu
Zy9zbG90dGVkLWxpbmsuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442615</attachid>
            <date>2021-10-27 11:36:23 -0700</date>
            <delta_ts>2021-10-27 23:59:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178237-20211027213621.patch</filename>
            <type>text/plain</type>
            <size>42228</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkNjY4YzY0OGQyNTY4
MjA5NjQ4NjA0YjIzZjJmNmIxMjUzMDE1NS4uMDBhOWEzNDg5Yjc1NzcyMTYzMzA5NTRjZjU5NjVh
ZDU0MGFmMmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTEwLTI3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IDo6YmVmb3Jl
IGFuZCA6OmFmdGVyIHBzZXVkbyBlbGVtZW50cyBhZnRlciA6OnNsb3R0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODIzNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgd2F5IHdlIHJl
c29sdmUgOjpzbG90dGVkIHRvIGltcHJvdmUgY29tcGF0aWJpbGl0eS4gV2Ugbm93IHRyYXZlcnNl
IHRocm91Z2ggdGhlIGFzc2luZ2VkIHNsb3QgY2hhaW4gaW4KKyAgICAgICAgYSBzaW5nbGUgcGFz
cywgc2ltaWxhciB0byA6OnBhcnQgbWF0Y2hpbmcuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisKKyAgICAgICAgQWRkIGEgbmV3IHNl
bGVjdGlvbiByZWxhdGlvbiBTaGFkb3dTbG90dGVkLCBzaW1pbGFyIHRvIHRoZSBleGlzdGluZyBT
aGFkb3dEZXNjZW5kYW50IGFuZCBTaGFkb3dQYXJ0RGVzY2VuZGFudCwKKyAgICAgICAgZm9yIHN3
aXRjaGluZyBzY29wZXMgZHVyaW5nIHNlbGVjdG9yIG1hdGNoaW5nLgorCisgICAgICAgICogY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6
Om1hdGNoUmVjdXJzaXZlbHkgY29uc3QpOgorCisgICAgICAgIEZpbmQgdGhlIHJpZ2h0IHNjb3Bl
IHRvIGNvbnRpbnVlIG1hdGNoaW5nIG9uIFNoYWRvd1Nsb3R0ZWQgcmVsYXRpb24uIFBhc3MgaW4g
dGhlIHNjb3BlIG9yZGluYWwgdG8gZmluZCB0aGUgc2NvcGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUgY29uc3QpOgorCisgICAgICAgIE1hdGNoIHRoZSA6
OnNsb3R0ZWQoKSBlbGVtZW50LgorCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgor
ICAgICAgICAqIGNzcy9TZWxlY3RvckZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xs
ZWN0U2VsZWN0b3JIYXNoZXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyU2VsZWN0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpuZWVkc0ltcGxpY2l0
U2hhZG93Q29tYmluYXRvckZvck1hdGNoaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzUHNldWRvQ2xhc3NW
YWxpZEFmdGVyUHNldWRvRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1RyZWVBYmlkaW5n
UHNldWRvRWxlbWVudCk6CisKKyAgICAgICAgQWRkIGEgc3BlYy10ZXJtZWQgaGVscGVyLgorCisg
ICAgICAgIChXZWJDb3JlOjppc1NpbXBsZVNlbGVjdG9yVmFsaWRBZnRlclBzZXVkb0VsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdElt
cGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9yKToKKworICAgICAgICBJbnNlcnQgU2hhZG93
U2xvdHRlZCByZWxhdGlvbiBmb3IgOjpzbG90dGVkKCkuCisKKyAgICAgICAgKiBjc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpm
cmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHNJbnRlcm5hbCk6CisgICAgICAgICog
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjbGVhck1hdGNoZWRSdWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoU2xvdHRlZFBzZXVkb0VsZW1l
bnRSdWxlcyk6CisKKyAgICAgICAgU2ltcGx5IGdldCB0aGUgcnVsZXMgZnJvbSBzY29wZXMgaW4g
dGhlIGFzc2luZ2VkIHNsb3QgY2hhaW5nIGFuZCBtYXRjaCBhZ2FpbnN0IHRoZW0uCisgICAgICAg
IE5vIG5lZWQgZm9yIHR3byBwYXNzZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0U2xvdHRl
ZFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNsb3QpOiBEZWxldGVkLgorCisgICAgICAgIE5vdCBuZWVk
ZWQgYW55bW9yZS4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmZpbmRTbG90dGVkUHNldWRv
RWxlbWVudFNlbGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29tcHV0ZU5leHRNYXRjaEVsZW1lbnQpOgor
CiAyMDIxLTEwLTI2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFUgUHJvY2Vzc10gYERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Z2V0Q1RNYCBzaG91
bGQgaW5jbHVkZSB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5jcHAKaW5kZXggZmFkZWViYzVlY2M0MjgwODc3ZTJhMzE0ZTNkMzg4NzYwYzEyMjhkMy4uNmNm
N2RlNTg3OTFmMTdkN2EwMTI0ZmFlMDhlZWQ1NGI5NTQ2YjE2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCkBAIC04MjMsNiArODIzLDcgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxl
Y3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAjZW5kaWYKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6U2hhZG93UGFydERlc2NlbmRhbnQ6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNo
YWRvd1Nsb3R0ZWQ6CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChyaWdodFNpZGUpOwogICAg
ICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dChidWlsZGVyLnRvU3RyaW5n
KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDQ2NTIyMDllYjBh
NmYwYmQzZmY5ZGU5MTQyYTdkMDAyOThkYmQwZDkuLjNkYzYxNjQwYWZiMDhiZjYxZmUzNTk1ODk3
N2IxY2M5YzNjMjEwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC04Nyw3ICs4Nyw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIERpcmVjdEFkamFjZW50LAogICAg
ICAgICAgICAgSW5kaXJlY3RBZGphY2VudCwKICAgICAgICAgICAgIFNoYWRvd0Rlc2NlbmRhbnQs
Ci0gICAgICAgICAgICBTaGFkb3dQYXJ0RGVzY2VuZGFudAorICAgICAgICAgICAgU2hhZG93UGFy
dERlc2NlbmRhbnQsCisgICAgICAgICAgICBTaGFkb3dTbG90dGVkCiAgICAgICAgIH07CiAKICAg
ICAgICAgZW51bSBQc2V1ZG9DbGFzc1R5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAppbmRleCBkODI2NGJhMjBmY2Q5YWNlYTJhNGQxZTRiYzA0MjhmNDdiOWQ0NDcxLi45
Mjc4NDExMTc3ZmI4NmFjNmIzMTk4ZTAwMDRmZDg3NmIzZjkwNWNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtNDA4LDIwICs0MDgsMzUgQEAgU2VsZWN0b3JDaGVj
a2VyOjpNYXRjaFJlc3VsdCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoQ2hlY2tp
bmdDb250ZXh0JgogICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0Ojp1cGRhdGVXaXRoTWF0
Y2hUeXBlKHJlc3VsdCwgbWF0Y2hUeXBlKTsKICAgICAgICAgfQogICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERl
c2NlbmRhbnQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpw
YXJ0KGJhcikgd2Ugc2tpcCBkaXJlY3RseSB0byB0aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgot
ICAgICAgICAgICAgYXV0byogc2hhZG93SG9zdCA9IHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpT
aGFkb3dQYXJ0RGVzY2VuZGFudCA/IGNoZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVs
ZVNjb3BlIDogY29udGV4dC5lbGVtZW50LT5zaGFkb3dIb3N0KCk7Ci0gICAgICAgICAgICBpZiAo
IXNoYWRvd0hvc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhN
YXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkpOwotICAgICAgICAgICAgbmV4dENvbnRleHQu
ZWxlbWVudCA9IHNoYWRvd0hvc3Q7Ci0gICAgICAgICAgICBuZXh0Q29udGV4dC5maXJzdFNlbGVj
dG9yT2ZUaGVGcmFnbWVudCA9IG5leHRDb250ZXh0LnNlbGVjdG9yOwotICAgICAgICAgICAgbmV4
dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQgPSBmYWxzZTsKLSAgICAgICAgICAg
IFBzZXVkb0lkU2V0IGlnbm9yZUR5bmFtaWNQc2V1ZG87Ci0gICAgICAgICAgICBNYXRjaFJlc3Vs
dCByZXN1bHQgPSBtYXRjaFJlY3Vyc2l2ZWx5KGNoZWNraW5nQ29udGV4dCwgbmV4dENvbnRleHQs
IGlnbm9yZUR5bmFtaWNQc2V1ZG8pOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnRE
ZXNjZW5kYW50OiB7CisgICAgICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpwYXJ0KGJhcikgd2Ug
c2tpcCBkaXJlY3RseSB0byB0aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgorICAgICAgICBhdXRv
KiBzaGFkb3dIb3N0ID0gcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5k
YW50ID8gY2hlY2tpbmdDb250ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgOiBjb250ZXh0
LmVsZW1lbnQtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgaWYgKCFzaGFkb3dIb3N0KQorICAgICAg
ICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhNYXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBs
ZXRlbHkpOworICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gc2hhZG93SG9zdDsKKyAgICAg
ICAgbmV4dENvbnRleHQuZmlyc3RTZWxlY3Rvck9mVGhlRnJhZ21lbnQgPSBuZXh0Q29udGV4dC5z
ZWxlY3RvcjsKKyAgICAgICAgbmV4dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQg
PSBmYWxzZTsKKyAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsKKyAgICAg
ICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0NvbnRleHQs
IG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKIAotICAgICAgICAgICAgcmV0dXJu
IE1hdGNoUmVzdWx0Ojp1cGRhdGVXaXRoTWF0Y2hUeXBlKHJlc3VsdCwgbWF0Y2hUeXBlKTsKLSAg
ICAgICAgfQorICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUo
cmVzdWx0LCBtYXRjaFR5cGUpOworICAgIH0KKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dT
bG90dGVkOiB7CisgICAgICAgIGF1dG8qIHNsb3QgPSBjb250ZXh0LmVsZW1lbnQtPmFzc2lnbmVk
U2xvdCgpOworICAgICAgICBpZiAoIXNsb3QpCisgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1
bHQ6OmZhaWxzKE1hdGNoOjpTZWxlY3RvckZhaWxzQ29tcGxldGVseSk7CisgICAgICAgIC8vIFdl
IGNvbnRpbnVlIG1hdGNoaW5nIGluIHRoZSBzY29wZSB3aGVyZSB0aGlzIHJ1bGUgY2FtZSBmcm9t
LgorICAgICAgICBhdXRvIHNjb3BlRGVwdGggPSBzdGF0aWNfY2FzdDxpbnQ+KGNoZWNraW5nQ29u
dGV4dC5zdHlsZVNjb3BlT3JkaW5hbCk7CisgICAgICAgIHdoaWxlIChzbG90LT5hc3NpZ25lZFNs
b3QoKSAmJiAtLXNjb3BlRGVwdGggPiAwKQorICAgICAgICAgICAgc2xvdCA9IHNsb3QtPmFzc2ln
bmVkU2xvdCgpOworICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gc2xvdDsKKyAgICAgICAg
bmV4dENvbnRleHQuZmlyc3RTZWxlY3Rvck9mVGhlRnJhZ21lbnQgPSBuZXh0Q29udGV4dC5zZWxl
Y3RvcjsKKyAgICAgICAgbmV4dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQgPSBm
YWxzZTsKKyAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsKKyAgICAgICAg
TWF0Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0NvbnRleHQsIG5l
eHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKKworICAgICAgICByZXR1cm4gTWF0Y2hS
ZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUocmVzdWx0LCBtYXRjaFR5cGUpOworICAgIH0KICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTExNTEsOSArMTE2NiwxOSBAQCBi
b29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoQ2hlY2tpbmdDb250ZXh0JiBjaGVja2luZ0Nv
bnRleHQsIGNvbnN0IExvY2FsQ29udAogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQ6Ci0gICAgICAgICAgICAvLyBXZSBzZWUg
OjpzbG90dGVkKCkgcHNldWRvIGVsZW1lbnRzIHdoZW4gY29sbGVjdGluZyBzbG90dGVkIHJ1bGVz
IGZyb20gdGhlIHNsb3Qgc2hhZG93IHRyZWUgb25seS4KLSAgICAgICAgICAgIEFTU0VSVChjaGVj
a2luZ0NvbnRleHQucmVzb2x2aW5nTW9kZSA9PSBNb2RlOjpDb2xsZWN0aW5nUnVsZXMpOwotICAg
ICAgICAgICAgcmV0dXJuIGlzPEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCk7CisgICAgICAgICAg
ICBpZiAoIWNvbnRleHQuZWxlbWVudC0+YXNzaWduZWRTbG90KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGF1dG8qIHN1YnNlbGVjdG9yID0gY29udGV4
dC5zZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCktPmZpcnN0KCkpIHsKKyAgICAgICAgICAgICAgICBM
b2NhbENvbnRleHQgc3ViY29udGV4dChjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBzdWJjb250
ZXh0LnNlbGVjdG9yID0gc3Vic2VsZWN0b3I7CisgICAgICAgICAgICAgICAgc3ViY29udGV4dC5m
aXJzdFNlbGVjdG9yT2ZUaGVGcmFnbWVudCA9IHN1YnNlbGVjdG9yOworICAgICAgICAgICAgICAg
IHN1YmNvbnRleHQucHNldWRvRWxlbWVudEVmZmVjdGl2ZSA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIHN1YmNvbnRleHQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVlOworICAgICAgICAg
ICAgICAgIFBzZXVkb0lkU2V0IGlnbm9yZWREeW5hbWljUHNldWRvOworICAgICAgICAgICAgICAg
IGlmIChtYXRjaFJlY3Vyc2l2ZWx5KGNoZWNraW5nQ29udGV4dCwgc3ViY29udGV4dCwgaWdub3Jl
ZER5bmFtaWNQc2V1ZG8pLm1hdGNoID09IE1hdGNoOjpTZWxlY3Rvck1hdGNoZXMpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRQYXJ0
OiB7CiAgICAgICAgICAgICBhdXRvIHRyYW5zbGF0ZVBhcnROYW1lVG9SdWxlU2NvcGUgPSBbJl0o
QXRvbVN0cmluZyBwYXJ0TmFtZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCmlu
ZGV4IDg0OGY4YzQ0NjVmNTEwMDhjMzYyMDU5NGM2YzAwMDVkOTQ2NTVjMmEuLjNjYzA3YWFmZTE0
MTY4YzE0NGU4YTlkNThjYmYyN2JmOWUzNjFjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZVJlbGF0aW9ucy5oIgorI2luY2x1ZGUg
IlN0eWxlU2NvcGVPcmRpbmFsLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTUsNiAr
OTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlIHsgbnVs
bHB0ciB9OwogICAgICAgICBib29sIGlzTWF0Y2hpbmdIb3N0UHNldWRvQ2xhc3MgeyBmYWxzZSB9
OwogICAgICAgICBjb25zdCBFbGVtZW50KiBzaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlIHsgbnVs
bHB0ciB9OworICAgICAgICBTdHlsZTo6U2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsIHsg
U3R5bGU6OlNjb3BlT3JkaW5hbDo6RWxlbWVudCB9OwogCiAgICAgICAgIC8vIEZJWE1FOiBJdCB3
b3VsZCBiZSBuaWNlciB0byBoYXZlIGEgc2VwYXJhdGUgb2JqZWN0IGZvciByZXR1cm4gdmFsdWVz
LiBUaGlzIHJlcXVpcmVzIHNvbWUgbW9yZSB3b3JrIGluIHRoZSBzZWxlY3RvciBjb21waWxlci4K
ICAgICAgICAgU3R5bGU6OlJlbGF0aW9ucyBzdHlsZVJlbGF0aW9uczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JGaWx0ZXIuY3BwCmluZGV4IDY5Mjk3YWU5ZDRiOWY4ZDcyYTM3ZTRhM2VkMTdjNzdh
MWZjNjcxNzguLjZiOTNkMjQ2Y2I2Yjk1YWMwMTFlMDc5YjgxYWYyN2Q4NzhkNmUxZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcApAQCAtMTk1LDYgKzE5NSw3IEBAIHN0YXRp
YyBDb2xsZWN0ZWRTZWxlY3Rvckhhc2hlcyBjb2xsZWN0U2VsZWN0b3JIYXNoZXMoY29uc3QgQ1NT
U2VsZWN0b3ImIHJpZ2h0bW9zCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRq
YWNlbnQ6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6CiAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5kYW50OgorICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOgogICAgICAgICAgICAgc2tpcE92ZXJTdWJzZWxl
Y3RvcnMgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OkRlc2NlbmRhbnRTcGFjZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyU2VsZWN0b3IuaAppbmRleCBlMzUwODkwNDM4YTlkOWJkYjYzNDQwMjIxYTAyMWQ3NGU5NWZj
MjEyLi42YjE4NTczNmE1NGM2MzQ4NDUxYjZmZGVmMjU4MGY3MzA3NjZlMDZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlclNlbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJTZWxlY3Rvci5oCkBAIC0xMDMsNiArMTAz
LDcgQEAgaW5saW5lIGJvb2wgQ1NTUGFyc2VyU2VsZWN0b3I6Om5lZWRzSW1wbGljaXRTaGFkb3dD
b21iaW5hdG9yRm9yTWF0Y2hpbmcoKSBjb25zdAogICAgICAgICAgICAgfHwgcHNldWRvRWxlbWVu
dFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudEN1ZQogI2VuZGlmCiAgICAgICAg
ICAgICB8fCBwc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
UGFydAorICAgICAgICAgICAgfHwgcHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvRWxlbWVudFNsb3R0ZWQKICAgICAgICAgICAgIHx8IHBzZXVkb0VsZW1lbnRUeXBlKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0b21MZWdhY3lQcmVmaXhlZCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHAKaW5kZXggYjk2Y2UwOWFiMmQ0MDU5MzllMWVmZmMzZDIwYjJlY2ZmOWM3NzFlMC4uZmEzYTU1
NzI2N2IzZTdkMjhkNzA5YTNhODcwYWU0MmMxYWY4NDI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTM0Myw2ICszNDMsOSBAQCBz
dGF0aWMgYm9vbCBpc1BzZXVkb0NsYXNzVmFsaWRBZnRlclBzZXVkb0VsZW1lbnQoQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzVHlwZSBwcwogICAgIHN3aXRjaCAoY29tcG91bmRQc2V1ZG9FbGVtZW50
KSB7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQ6CiAgICAgICAgIHJl
dHVybiAhaXNUcmVlU3RydWN0dXJhbFBzZXVkb0NsYXNzKHBzZXVkb0NsYXNzKTsKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50U2xvdHRlZDoKKyAgICAgICAgLy8gRklYTUU6IEEg
V1BUIGluZGljYXRlcyA6OmlzLzo6d2hlcmUgc2hvdWxkIGJlIHBhcnNlZCBidXQgcmVkdWNlIHRv
IG5vdGhpbmcgYXMgdGhlaXIgY29udGVudCBpcyBub3QgbGVnYWwgaW4gdGhlIGNvbnRleHQuCisg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
UmVzaXplcjoKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50U2Nyb2xsYmFyOgog
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRTY3JvbGxiYXJDb3JuZXI6CkBAIC0z
NjEsNiArMzY0LDE4IEBAIHN0YXRpYyBib29sIGlzUHNldWRvQ2xhc3NWYWxpZEFmdGVyUHNldWRv
RWxlbWVudChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzCiAgICAgfQogfQogCitzdGF0
aWMgYm9vbCBpc1RyZWVBYmlkaW5nUHNldWRvRWxlbWVudChDU1NTZWxlY3Rvcjo6UHNldWRvRWxl
bWVudFR5cGUgcHNldWRvRWxlbWVudFR5cGUpCit7CisgICAgc3dpdGNoIChwc2V1ZG9FbGVtZW50
VHlwZSkgeworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRCZWZvcmU6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudEFmdGVyOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0VsZW1lbnRNYXJrZXI6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIHN0YXRpYyBib29sIGlzU2lt
cGxlU2VsZWN0b3JWYWxpZEFmdGVyUHNldWRvRWxlbWVudChjb25zdCBDU1NQYXJzZXJTZWxlY3Rv
ciYgc2ltcGxlU2VsZWN0b3IsIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBjb21wb3Vu
ZFBzZXVkb0VsZW1lbnQpCiB7CiAgICAgaWYgKGNvbXBvdW5kUHNldWRvRWxlbWVudCA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRWxlbWVudFVua25vd24pCkBAIC0zNjksNiArMzg0LDEwIEBAIHN0YXRp
YyBib29sIGlzU2ltcGxlU2VsZWN0b3JWYWxpZEFmdGVyUHNldWRvRWxlbWVudChjb25zdCBDU1NQ
YXJzZXJTZWxlY3RvciYgc2ltCiAgICAgICAgIGlmIChzaW1wbGVTZWxlY3Rvci5tYXRjaCgpID09
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNpbXBsZVNlbGVjdG9yLnBzZXVkb0VsZW1l
bnRUeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRQYXJ0KQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQorICAgIGlmIChjb21wb3VuZFBzZXVkb0VsZW1lbnQgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRTbG90dGVkKSB7CisgICAgICAgIGlmIChzaW1wbGVTZWxl
Y3Rvci5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIGlzVHJlZUFiaWRp
bmdQc2V1ZG9FbGVtZW50KHNpbXBsZVNlbGVjdG9yLnBzZXVkb0VsZW1lbnRUeXBlKCkpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgIGlmIChzaW1wbGVTZWxlY3Rvci5tYXRj
aCgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvID0gc2ltcGxlU2VsZWN0b3Iu
cHNldWRvQ2xhc3NUeXBlKCk7CkBAIC0xMDU5LDYgKzEwNzgsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1NlbGVjdG9yUGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBs
aWNpdFNoYQogICAgIC8vIDo6cGFydCgpIGNvbWJpbmVzIHdpdGggb3RoZXIgcHNldWRvIGVsZW1l
bnRzLgogICAgIGJvb2wgaXNQYXJ0ID0gc3BsaXRBZnRlci0+dGFnSGlzdG9yeSgpLT5tYXRjaCgp
ID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNwbGl0QWZ0ZXItPnRhZ0hpc3Rvcnko
KS0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQ7
CiAKKyAgICAvLyA6OnNsb3R0ZWQoKSBjb21iaW5lcyB3aXRoIG90aGVyIHBzZXVkbyBlbGVtZW50
cy4KKyAgICBib29sIGlzU2xvdHRlZCA9IHNwbGl0QWZ0ZXItPnRhZ0hpc3RvcnkoKS0+bWF0Y2go
KSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBzcGxpdEFmdGVyLT50YWdIaXN0b3J5
KCktPnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRTbG90
dGVkOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWNvbmRDb21w
b3VuZDsKICAgICBpZiAoY29udGV4dC5tb2RlID09IFVBU2hlZXRNb2RlIHx8IGlzUGFydCkgewog
ICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTc0NwpAQCAtMTA2OCw3ICsxMDkwLDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4gQ1NTU2VsZWN0b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhCiAg
ICAgfSBlbHNlCiAgICAgICAgIHNlY29uZENvbXBvdW5kID0gc3BsaXRBZnRlci0+cmVsZWFzZVRh
Z0hpc3RvcnkoKTsKIAotICAgIHNlY29uZENvbXBvdW5kLT5hcHBlbmRUYWdIaXN0b3J5KGlzUGFy
dCA/IENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudCA6IENTU1NlbGVjdG9yOjpTaGFk
b3dEZXNjZW5kYW50LCBXVEZNb3ZlKGNvbXBvdW5kU2VsZWN0b3IpKTsKKyAgICBhdXRvIHJlbGF0
aW9uID0gWyZdIHsKKyAgICAgICAgaWYgKGlzU2xvdHRlZCkKKyAgICAgICAgICAgIHJldHVybiBD
U1NTZWxlY3Rvcjo6U2hhZG93U2xvdHRlZDsKKyAgICAgICAgaWYgKGlzUGFydCkKKyAgICAgICAg
ICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERlc2NlbmRhbnQ7CisgICAgICAgIHJl
dHVybiBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDsKKyAgICB9KCk7CisgICAgc2Vjb25k
Q29tcG91bmQtPmFwcGVuZFRhZ0hpc3RvcnkocmVsYXRpb24sIFdURk1vdmUoY29tcG91bmRTZWxl
Y3RvcikpOwogICAgIHJldHVybiBzZWNvbmRDb21wb3VuZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDg5ZmNjNzgwYzVhZDc4MTQ1OGM4OTY3
YWMyOTRkYWQ0MmZiYzg2ZjUuLjUzZGYxOGZiZDEwNTE0YWQwNGU1ZWJiNDExNmIyZjM4MmUwM2Uz
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTUw
MSw2ICs1MDEsNyBAQCBzdGF0aWMgaW5saW5lIEZyYWdtZW50UmVsYXRpb24gZnJhZ21lbnRSZWxh
dGlvbkZvclNlbGVjdG9yUmVsYXRpb24oQ1NTU2VsZWN0b3I6OgogICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlN1YnNlbGVjdG9yOgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6
CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERlc2NlbmRhbnQ6CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6U2hhZG93U2xvdHRlZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTMyNiw2ICsxMzI3LDkgQEAg
c3RhdGljIEZ1bmN0aW9uVHlwZSBjb25zdHJ1Y3RGcmFnbWVudHNJbnRlcm5hbChjb25zdCBDU1NT
ZWxlY3Rvciogcm9vdFNlbGVjdG9yLAogICAgICAgICBpZiAoKHJlbGF0aW9uID09IENTU1NlbGVj
dG9yOjpTaGFkb3dEZXNjZW5kYW50IHx8IHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpTaGFkb3dQ
YXJ0RGVzY2VuZGFudCkgJiYgIXNlbGVjdG9yLT5pc0xhc3RJblRhZ0hpc3RvcnkoKSkKICAgICAg
ICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CiAKKyAgICAgICAgaWYg
KHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkKQorICAgICAgICAgICAgcmV0
dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZTsKKwogICAgICAgICBpZiAocmVsYXRpb24g
PT0gQ1NTU2VsZWN0b3I6OkRpcmVjdEFkamFjZW50IHx8IHJlbGF0aW9uID09IENTU1NlbGVjdG9y
OjpJbmRpcmVjdEFkamFjZW50KSB7CiAgICAgICAgICAgICBGdW5jdGlvblR5cGUgcmVsYXRpb25G
dW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQ7CiAgICAgICAgICAgICBpZiAoc2VsZWN0b3JDb250ZXh0ID09IFNlbGVjdG9yQ29udGV4
dDo6UXVlcnlTZWxlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29s
bGVjdG9yLmNwcAppbmRleCBmNGRlYmZkZmQ4YzcwZjVmMzAyZDU1MmYzYzcwYzhmNzBmYjAxOTgy
Li5iNDQ0M2IzOWJlYzgyM2RiMDJlNmU3Zjk4NTJmMTYxZjkxNmYwNzI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0xMjAsNyArMTIwLDYg
QEAgaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRSdWxlKGNvbnN0
IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWcKIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNs
ZWFyTWF0Y2hlZFJ1bGVzKCkKIHsKICAgICBtX21hdGNoZWRSdWxlcy5jbGVhcigpOwotICAgIG1f
a2VlcEFsaXZlU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcy5jbGVhcigpOwogICAgIG1fbWF0Y2hl
ZFJ1bGVUcmFuc2ZlckluZGV4ID0gMDsKIH0KIApAQCAtMjgzLDE5ICsyODIsMTEgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCkKICAg
ICAgICAgYXV0byYgc3R5bGVTY29wZSA9IFNjb3BlOjpmb3JOb2RlKCpzbG90KTsKICAgICAgICAg
aWYgKCFzdHlsZVNjb3BlLnJlc29sdmVyKCkucnVsZVNldHMoKS5pc0F1dGhvclN0eWxlRGVmaW5l
ZCgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIC8vIEZpbmQgb3V0IGlmIHRoZXJl
IGFyZSBhbnkgOjpzbG90dGVkIHJ1bGVzIGluIHRoZSBzaGFkb3cgdHJlZSBtYXRjaGluZyB0aGUg
Y3VycmVudCBzbG90LgotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyByZWFsbHkgcGFydCBvZiB0
aGUgc2xvdCBzdHlsZSBhbmQgY291bGQgYmUgY2FjaGVkIHdoZW4gcmVzb2x2aW5nIGl0LgotICAg
ICAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBjb2xsZWN0b3IoKnNsb3QsIHN0eWxlU2NvcGUucmVz
b2x2ZXIoKS5ydWxlU2V0cygpLmF1dGhvclN0eWxlKCksIG51bGxwdHIpOwotICAgICAgICBhdXRv
IHNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMgPSBjb2xsZWN0b3IuY29sbGVjdFNsb3R0ZWRQc2V1
ZG9FbGVtZW50UnVsZXNGb3JTbG90KCk7Ci0gICAgICAgIGlmICghc2xvdHRlZFBzZXVkb0VsZW1l
bnRSdWxlcykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAvLyBNYXRjaCBpbiB0aGUg
Y3VycmVudCBzY29wZS4KLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNNYXRj
aGluZ1Nsb3R0ZWRQc2V1ZG9FbGVtZW50cywgdHJ1ZSk7CiAKLSAgICAgICAgTWF0Y2hSZXF1ZXN0
IHNjb3BlTWF0Y2hSZXF1ZXN0KG51bGxwdHIsIHN0eWxlU2NvcGVPcmRpbmFsKTsKLSAgICAgICAg
Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMuZ2V0
KCksIHNjb3BlTWF0Y2hSZXF1ZXN0KTsKKyAgICAgICAgYXV0byYgc2NvcGVBdXRob3JSdWxlcyA9
IHN0eWxlU2NvcGUucmVzb2x2ZXIoKS5ydWxlU2V0cygpLmF1dGhvclN0eWxlKCk7CiAKLSAgICAg
ICAgbV9rZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzLmFwcGVuZChXVEZNb3ZlKHNs
b3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMpKTsKKyAgICAgICAgTWF0Y2hSZXF1ZXN0IHNjb3BlTWF0
Y2hSZXF1ZXN0KCZzY29wZUF1dGhvclJ1bGVzLCBzdHlsZVNjb3BlT3JkaW5hbCk7CisgICAgICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCgmc2NvcGVBdXRob3JSdWxlcy5zbG90dGVkUHNl
dWRvRWxlbWVudFJ1bGVzKCksIHNjb3BlTWF0Y2hSZXF1ZXN0KTsKICAgICB9CiB9CiAKQEAgLTM0
NywyOSArMzM4LDYgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5n
U2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKGNvbnN0IE1hdGNoUmUKICAgICAgICAgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLnNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhwc2V1ZG9J
ZCksIG1hdGNoUmVxdWVzdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxlRGF0
YVZlY3Rvcj4gRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RTbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzRm9yU2xvdCgpCi17Ci0gICAgQVNTRVJUKGlzPEhUTUxTbG90RWxlbWVudD4oZWxlbWVu
dCgpKSk7Ci0KLSAgICBjbGVhck1hdGNoZWRSdWxlcygpOwotCi0gICAgbV9tb2RlID0gU2VsZWN0
b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXM7Ci0KLSAgICAvLyBNYXRjaCBnbG9iYWwg
YXV0aG9yIHJ1bGVzLgotICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVlc3QobV9hdXRob3JTdHls
ZS5wdHIoKSk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KCZtX2F1dGhvclN0eWxl
LT5zbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCksIG1hdGNoUmVxdWVzdCk7Ci0KLSAgICBpZiAo
bV9tYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgYXV0
byBydWxlRGF0YVZlY3RvciA9IG1ha2VVbmlxdWU8UnVsZVNldDo6UnVsZURhdGFWZWN0b3I+KCk7
Ci0gICAgcnVsZURhdGFWZWN0b3ItPnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9tYXRjaGVkUnVs
ZXMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8mIG1hdGNoZWRSdWxlIDogbV9tYXRjaGVkUnVsZXMp
Ci0gICAgICAgIHJ1bGVEYXRhVmVjdG9yLT51bmNoZWNrZWRBcHBlbmQoKm1hdGNoZWRSdWxlLnJ1
bGVEYXRhKTsKLQotICAgIHJldHVybiBydWxlRGF0YVZlY3RvcjsKLX0KLQogdm9pZCBFbGVtZW50
UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyUnVsZXMoKQogewogICAgIGlmICghbV91c2VyU3R5bGUp
CkBAIC00MDcsMTkgKzM3NSw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoVUFS
dWxlcyhjb25zdCBSdWxlU2V0JiBydWxlcykKICAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVs
ZXMoRGVjbGFyYXRpb25PcmlnaW46OlVzZXJBZ2VudCk7CiB9CiAKLXN0YXRpYyBjb25zdCBDU1NT
ZWxlY3RvciogZmluZFNsb3R0ZWRQc2V1ZG9FbGVtZW50U2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0
b3IqIHNlbGVjdG9yKQotewotICAgIGZvciAoOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBzZWxlY3Rv
ci0+dGFnSGlzdG9yeSgpKSB7Ci0gICAgICAgIGlmIChzZWxlY3Rvci0+bWF0Y2goKSA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBzZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUoKSA9
PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQpIHsKLSAgICAgICAgICAgIGlmIChh
dXRvKiBsaXN0ID0gc2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBsaXN0LT5maXJzdCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9
OwotICAgIHJldHVybiBudWxscHRyOwotfQotCi1pbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZCYgc3Bl
Y2lmaWNpdHkpCitpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMo
Y29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZCYgc3BlY2lmaWNpdHksIFNjb3BlT3Jk
aW5hbCBzdHlsZVNjb3BlT3JkaW5hbCkKIHsKICAgICAvLyBXZSBrbm93IGEgc3VmZmljaWVudGx5
IHNpbXBsZSBzaW5nbGUgcGFydCBzZWxlY3RvciBtYXRjaGVzIHNpbXBseSBiZWNhdXNlIHdlIGZv
dW5kIGl0IGZyb20gdGhlIHJ1bGUgaGFzaCB3aGVuIGZpbHRlcmluZyB0aGUgUnVsZVNldC4KICAg
ICAvLyBUaGlzIGlzIGxpbWl0ZWQgdG8gSFRNTCBvbmx5IHNvIHdlIGRvbid0IG5lZWQgdG8gY2hl
Y2sgdGhlIG5hbWVzcGFjZSAoYmVjYXVzZSBvZiB0YWcgbmFtZSBtYXRjaCkuCkBAIC00NzUsNiAr
NDMxLDcgQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNv
bnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQKICAgICBjb250ZXh0Lm5hbWVGb3JIaWdo
dGxpZ2h0UHNldWRvRWxlbWVudCA9IG1fcHNldWRvRWxlbWVudFJlcXVlc3QuaGlnaGxpZ2h0TmFt
ZTsKICAgICBjb250ZXh0LmlzTWF0Y2hpbmdIb3N0UHNldWRvQ2xhc3MgPSBtX2lzTWF0Y2hpbmdI
b3N0UHNldWRvQ2xhc3M7CiAgICAgY29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlID0g
bV9zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlLmdldCgpOworICAgIGNvbnRleHQuc3R5bGVTY29w
ZU9yZGluYWwgPSBzdHlsZVNjb3BlT3JkaW5hbDsKIAogICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVz
OwogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQpAQCAtNDg2LDExICs0NDMsNiBAQCBpbmxp
bmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEm
IHJ1bGVEYXRhLCB1bnNpZ25lZAogICAgIHsKICAgICAgICAgYXV0byogc2VsZWN0b3IgPSBydWxl
RGF0YS5zZWxlY3RvcigpOwogICAgICAgICBhdXRvKiBzZWxlY3RvckZvck1hdGNoaW5nID0gc2Vs
ZWN0b3I7Ci0gICAgICAgIGlmIChtX2lzTWF0Y2hpbmdTbG90dGVkUHNldWRvRWxlbWVudHMpIHsK
LSAgICAgICAgICAgIHNlbGVjdG9yRm9yTWF0Y2hpbmcgPSBmaW5kU2xvdHRlZFBzZXVkb0VsZW1l
bnRTZWxlY3RvcihydWxlRGF0YS5zZWxlY3RvcigpKTsKLSAgICAgICAgICAgIGlmICghc2VsZWN0
b3JGb3JNYXRjaGluZykKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0K
ICAgICAgICAgLy8gU2xvdyBwYXRoLgogICAgICAgICBTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JD
aGVja2VyKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0g
c2VsZWN0b3JDaGVja2VyLm1hdGNoKCpzZWxlY3RvckZvck1hdGNoaW5nLCBlbGVtZW50KCksIGNv
bnRleHQpOwpAQCAtNTM1LDcgKzQ4Nyw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNv
bGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTsKLSAgICAg
ICAgaWYgKHJ1bGVNYXRjaGVzKHJ1bGVEYXRhLCBzcGVjaWZpY2l0eSkpCisgICAgICAgIGlmIChy
dWxlTWF0Y2hlcyhydWxlRGF0YSwgc3BlY2lmaWNpdHksIG1hdGNoUmVxdWVzdC5zdHlsZVNjb3Bl
T3JkaW5hbCkpCiAgICAgICAgICAgICBhZGRNYXRjaGVkUnVsZShydWxlRGF0YSwgc3BlY2lmaWNp
dHksIG1hdGNoUmVxdWVzdCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmgKaW5kZXggNjkyNGQ3YTZiNzY2YWRhOTVmNDdhODEzMmZmYzM0NWQ4
MTk3MGJiZS4uY2QzNTI1NDQ0OTIwZmE3MmQwMzBhMjlkNTdiMDllZWZhYmMxN2VmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCkBAIC0xMzUsMTEgKzEz
NSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9y
U2NvcGUoY29uc3QgU2hhZG93Um9vdCYgc2NvcGVTaGFkb3dSb290KTsKIAogICAgIHZvaWQgY29s
bGVjdE1hdGNoaW5nU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYp
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvcj4gY29sbGVjdFNs
b3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTbG90KCk7CiAKICAgICB2b2lkIGNvbGxlY3RNYXRj
aGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYpOwogICAgIHZvaWQgY29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KGNvbnN0IFJ1bGVTZXQ6OlJ1bGVEYXRhVmVjdG9yKiwgY29uc3QgTWF0Y2hS
ZXF1ZXN0Jik7Ci0gICAgYm9vbCBydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYsIHVuc2lnbmVk
JiBzcGVjaWZpY2l0eSk7CisgICAgYm9vbCBydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYsIHVu
c2lnbmVkJiBzcGVjaWZpY2l0eSwgU2NvcGVPcmRpbmFsKTsKIAogICAgIHZvaWQgc29ydE1hdGNo
ZWRSdWxlcygpOwogCkBAIC0xNjMsMTAgKzE2Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
UHJpbnRTdHlsZSB7IGZhbHNlIH07CiAgICAgUHNldWRvRWxlbWVudFJlcXVlc3QgbV9wc2V1ZG9F
bGVtZW50UmVxdWVzdCB7IFBzZXVkb0lkOjpOb25lIH07CiAgICAgU2VsZWN0b3JDaGVja2VyOjpN
b2RlIG1fbW9kZSB7IFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6UmVzb2x2aW5nU3R5bGUgfTsKLSAg
ICBib29sIG1faXNNYXRjaGluZ1Nsb3R0ZWRQc2V1ZG9FbGVtZW50cyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzTWF0Y2hpbmdIb3N0UHNldWRvQ2xhc3MgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxj
b25zdCBFbGVtZW50PiBtX3NoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGU7Ci0gICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvcj4+IG1fa2VlcEFsaXZlU2xvdHRl
ZFBzZXVkb0VsZW1lbnRSdWxlczsKIAogICAgIFZlY3RvcjxNYXRjaGVkUnVsZSwgNjQ+IG1fbWF0
Y2hlZFJ1bGVzOwogICAgIHNpemVfdCBtX21hdGNoZWRSdWxlVHJhbnNmZXJJbmRleCB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcAppbmRleCA3NDFlNDljY2ZmODBlMGFjZTEz
NTQ0NjlmM2QyMmZlZjBiYzU2NGUxLi5iZTMzZWYyM2U0NTZjY2Q2NmVmZDA1OWJjZTAyM2M1MWE4
YTAwMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCkBAIC04Niw2ICs4Niw5
IEBAIE1hdGNoRWxlbWVudCBSdWxlRmVhdHVyZVNldDo6Y29tcHV0ZU5leHRNYXRjaEVsZW1lbnQo
TWF0Y2hFbGVtZW50IG1hdGNoRWxlbWVudCwKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hh
ZG93RGVzY2VuZGFudDoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERlc2Nl
bmRhbnQ6CiAgICAgICAgICAgICByZXR1cm4gTWF0Y2hFbGVtZW50OjpIb3N0OworICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOgorICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCBhY2N1cmF0ZSBpbnZhbGlkYXRpb24uCisgICAgICAgICAgICByZXR1cm4gbWF0Y2hF
bGVtZW50OwogICAgICAgICB9OwogICAgIH0KICAgICBzd2l0Y2ggKHJlbGF0aW9uKSB7CkBAIC0x
MDAsNiArMTAzLDkgQEAgTWF0Y2hFbGVtZW50IFJ1bGVGZWF0dXJlU2V0Ojpjb21wdXRlTmV4dE1h
dGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0Y2hFbGVtZW50LAogICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERl
c2NlbmRhbnQ6CiAgICAgICAgIHJldHVybiBNYXRjaEVsZW1lbnQ6Okhvc3Q7CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6U2hhZG93U2xvdHRlZDoKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBh
Y2N1cmF0ZSBpbnZhbGlkYXRpb24uCisgICAgICAgIHJldHVybiBtYXRjaEVsZW1lbnQ7CiAgICAg
fTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbWF0Y2hFbGVtZW50Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGI1OTA5NmNkMmVhYjUwYTUxMDFjN2VmZGRiYjcxYmY0OWIyZWUzMTAuLjc2ZjkzYTYz
ZjRiMjk4MTFjMzBhNWIwNWUwYzU5MTY4NmU3OGFkMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMS0xMC0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VwcG9ydCA6OmJlZm9yZSBhbmQgOjphZnRlciBwc2V1ZG8gZWxlbWVudHMgYWZ0ZXIgOjpzbG90
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgy
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTAtMjYgIEF5dW1pIEtvamltYSAgPGF5dW1pX2tvamlt
YUBhcHBsZS5jb20+CiAKICAgICAgICAgWyBCaWdTdXIgd2syIERlYnVnIGFybTY0IF0gaW5zcGVj
dG9yL2F1ZGl0L3J1bi1hY2Nlc3NpYmlsaXR5Lmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNTE3NTU3MmJkZDYyMmJiZjhhMDdkMWJjOTkx
NzUwM2Q1Mjc5NTc1Ny4uM2E3ZDU2Y2UzZDQxMmQ2YmIyODdlOTkyOThhNDY4ZTZhMTFjMDhiOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTAt
MjcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQg
OjpiZWZvcmUgYW5kIDo6YWZ0ZXIgcHNldWRvIGVsZW1lbnRzIGFmdGVyIDo6c2xvdHRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0
ZXN0cyBmcm9tIFdQVCByZXBvLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1jb250ZXh0LXBh
cnNpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2NvcGluZy9ob3N0LXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtcGFyc2luZy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2tleWZyYW1lcy0w
MDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
b3Bpbmcvc2hhZG93LXNoYXJlZC1zdHlsZS1jYWNoZS0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3NoYWRvdy1zaGFy
ZWQtc3R5bGUtY2FjaGUtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1saW5rLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtcGFyc2luZy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9z
bG90dGVkLXBhcnNpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY29waW5nL3czYy1pbXBvcnQubG9nOgorCiAyMDIxLTEwLTI2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdpbmcgdGhlIHNyYyBhdHRyaWJ1dGUgb2Yg
dGhlIDxpbWc+IGVsZW1lbnQgaW5zaWRlIGFuIEltYWdlRG9jdW1lbnQgZG9lcyBub3QgdHJpZ2dl
ciBhIGxvYWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgzYmYzMjc4NjNlM2U2MzdjMTAwYzk1NmZj
MmE4N2RmYmQ0YzQxODMuLmUzNTRlODE4NmNiZmI1ZGY1ZTIzY2ZkNTljMGI4NGY3ODMxYTUxYjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzA5Nyw3ICszMDk3LDYgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWRpc3BsYXkvcnVuLWluL3J1bi1pbi10YWJsZS1yb3ct
YmV0d2Vlbi0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1kaXNwbGF5
L3J1bi1pbi9ydW4taW4tdGV4dC1iZXR3ZWVuLTAwNC54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1kaXNwbGF5L3J1bi1pbi9y
dW4taW4tdGV4dC1iZXR3ZWVuLTAwNS54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wc2V1ZG8vcGxhY2Vob2xkZXItaW5wdXQt
bnVtYmVyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtd2l0aC1wc2V1ZG8tZWxlbWVudC5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC1kZWNvci90ZXh0LWVtcGhhc2lzLWNvbG9yLTAwMS54aHQgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0LWRl
Y29yL3RleHQtZW1waGFzaXMtcG9zaXRpb24tYWJvdmUtbGVmdC0wMDEueGh0IFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdGV4dC1k
ZWNvci90ZXh0LWVtcGhhc2lzLXBvc2l0aW9uLWFib3ZlLWxlZnQtMDAyLnhodCBbIEltYWdlT25s
eUZhaWx1cmUgXQpAQCAtMzIwOCw3ICszMjA3LDYgQEAgd2Via2l0Lm9yZy9iLzE5MDAzMiBjb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9zY2FsZS1yb3RhdGlvbi10cmFuc2l0aW9uLW92ZXJsYXAK
IHdlYmtpdC5vcmcvYi8xOTAwMzIgY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vdHJhbnNsYXRl
LXNjYWxlLXRyYW5zaXRpb24tb3ZlcmxhcC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MTkwMDMyIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3RyYW5zbGF0ZS10cmFuc2l0aW9uLW92
ZXJsYXAuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE5MDAzMiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbG9naWNhbC9hbmltYXRpb24tMDAzLnRlbnRhdGl2
ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTkwMDMyIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2tleWZyYW1lcy0wMDEuaHRtbCBbIEZhaWx1
cmUgXQogCiAjIEZJWE1FOiBOZWVkIHRvIGltcGxlbWVudCBNZWRpYVJlY29yZGVyIGRhdGFhdmFp
bGFibGUgZXZlbnQgdG8gc3VwcG9ydCB0aGVzZSB0ZXN0Y2FzZXMKIGZhc3QvbWVkaWFjYXB0dXJl
ZnJvbWVsZW1lbnQvQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtLWltYWdlYml0bWFwcmVuZGVyaW5n
Y29udGV4dC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2lu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2luZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDU1YWE4YTU3ZDJjZWU3OTY1OTVjZTAxOGQzMzg3ZWVjYmVlZGIzMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKKworRkFJTCAiOmhvc3QtY29udGV4dCguYSkiIHNob3VsZCBiZSBhIHZhbGlkIHNl
bGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4KK0ZB
SUwgIjpob3N0LWNvbnRleHQoZGl2LmEpIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUg
c3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uCitQQVNTICI6aG9zdC1j
b250ZXh0IiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QtY29udGV4
dCgpIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QtY29udGV4dCgu
YSwgLmIpIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QtY29udGV4
dCguYSArIC5iKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKK1BBU1MgIjpob3N0LWNv
bnRleHQoLmEgKyAuYiwgI2MgPiAjZCkiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRl
eHQtcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2MDU1ZWNlNjM3MzNlOGM1OGM2YWRkNjYxNTY2
NTcyMzU2ZDY3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2luZy5o
dG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlRlc3QgcGFyc2lu
ZyBvZiB0aGUgaG9zdC1jb250ZXh0KCkgcHNldWRvLWNsYXNzZXM8L3RpdGxlPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXNjb3BpbmcvI3NlbGVj
dG9yZGVmLWhvc3QtY29udGV4dCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2Nzcy9zdXBwb3J0L3BhcnNpbmctdGVzdGNv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCc6aG9z
dC1jb250ZXh0KC5hKScpOworICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCc6aG9zdC1jb250ZXh0KGRp
di5hKScpOworCisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3QtY29udGV4dCcpOworICB0
ZXN0X2ludmFsaWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoKScpOworICB0ZXN0X2ludmFsaWRf
c2VsZWN0b3IoJzpob3N0LWNvbnRleHQoLmEsIC5iKScpOworICB0ZXN0X2ludmFsaWRfc2VsZWN0
b3IoJzpob3N0LWNvbnRleHQoLmEgKyAuYiknKTsKKyAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCc6
aG9zdC1jb250ZXh0KC5hICsgLmIsICNjID4gI2QpJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29w
aW5nL2hvc3QtcGFyc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU1OGMyNDkzMTAyYWNjMmM3OGMyYjk4YmNmNTJkZTg5YjY3ZmZhZDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorCitQQVNTICI6aG9zdCIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKK1BBU1Mg
Ijpob3N0KC5hKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKK1BBU1MgIjpob3N0KGRpdi5h
KSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKK1BBU1MgIjpob3N0KCkiIHNob3VsZCBiZSBh
biBpbnZhbGlkIHNlbGVjdG9yCitGQUlMICI6aG9zdCguYSwgLmIpIiBzaG91bGQgYmUgYW4gaW52
YWxpZCBzZWxlY3RvciBhc3NlcnRfdGhyb3dzX2RvbTogIjpob3N0KC5hLCAuYikiIHNob3VsZCB0
aHJvdyBpbiBxdWVyeVNlbGVjdG9yIGZ1bmN0aW9uICIoKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKHNlbGVjdG9yKSIgZGlkIG5vdCB0aHJvdworUEFTUyAiOmhvc3QoLmEgKyAuYikiIHNob3Vs
ZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCitQQVNTICI6aG9zdCguYSArIC5iLCAjYyA+ICNkKSIg
c2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1wYXJz
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzk0MzNhZjQ4M2E5
NGE0M2M3MGE3ZjQyOWEyMjFmNzU5ZDBjOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1w
YXJzaW5nLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+VGVz
dCBwYXJzaW5nIG9mIHRoZSA6aG9zdC9ob3N0KCkgcHNldWRvLWNsYXNzZXM8L3RpdGxlPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXNjb3Bpbmcv
I3NlbGVjdG9yZGVmLWhvc3QtZnVuY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jc3Mvc3VwcG9ydC9wYXJzaW5n
LXRlc3Rjb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgdGVzdF92YWxpZF9zZWxlY3Rv
cignOmhvc3QnKTsKKyAgdGVzdF92YWxpZF9zZWxlY3RvcignOmhvc3QoLmEpJyk7CisgIHRlc3Rf
dmFsaWRfc2VsZWN0b3IoJzpob3N0KGRpdi5hKScpOworCisgIHRlc3RfaW52YWxpZF9zZWxlY3Rv
cignOmhvc3QoKScpOworICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoJzpob3N0KC5hLCAuYiknKTsK
KyAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCc6aG9zdCguYSArIC5iKScpOworICB0ZXN0X2ludmFs
aWRfc2VsZWN0b3IoJzpob3N0KC5hICsgLmIsICNjID4gI2QpJyk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY29waW5nL2tleWZyYW1lcy0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcva2V5ZnJhbWVzLTAwMS1l
eHBlY3RlZC50eHQKaW5kZXggNmJjOGRjZDcyMTY1OTY0MTBkNjNhMjQ5YWY4ZDVkNjQ3ZmEyOWJi
ZS4uMmY4NzNkMTI2YzhjZDU2MDViOWQ5OWE5YjhkNWI5ZWNmNGU2ZTNlNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bp
bmcva2V5ZnJhbWVzLTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcva2V5ZnJhbWVzLTAwMS1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQGtleWZyYW1lcyBhcHBsaWVzIGluIHRo
ZSBzaGFkb3cgdHJlZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBA
a2V5ZnJhbWVzIGFwcGxpZXMgaW4gdGhlIHNoYWRvdyB0cmVlCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3No
YWRvdy1zaGFyZWQtc3R5bGUtY2FjaGUtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3NoYWRvdy1zaGFy
ZWQtc3R5bGUtY2FjaGUtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzIzYmYzYTdiMWJi
Mjg1ZjUyNzZjNDJlZGVjNDIzYTcyY2QyODNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93
LXNoYXJlZC1zdHlsZS1jYWNoZS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFNoYXJlZCBzdHlsZSBpbnZhbGlkYXRpb24gd2l0aCByZW1vdmFscworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nv
cGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNhY2hlLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJl
ZC1zdHlsZS1jYWNoZS0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODBiNGQxYzQyYWFhMjMzNzcxNWI3
YTcwMjYwZGRjM2YzZTM2ODEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1z
dHlsZS1jYWNoZS0wMDEuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5TaGFyZWQgc3R5bGUgaW52YWxpZGF0aW9uIHdp
dGggcmVtb3ZhbHM8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2J1Z3pp
bGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA3MTE2Ij4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1zY29waW5nLyI+Cis8bGluayBy
ZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwuaW8iIHRpdGxlPSJFbWlsaW8g
Q29ib3Mgw4FsdmFyZXoiPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHBzOi8vbW96aWxs
YS5vcmciIHRpdGxlPSJNb3ppbGxhIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9Imhvc3QtMSI+PC9kaXY+Cis8ZGl2IGlkPSJob3N0
LTIiPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IElOSVRJQUxMWV9DT01NT05fU1RZTEUgPSBgPHN0
eWxlPjpob3N0IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkICFpbXBvcnRhbnQgfTwvc3R5bGU+YDsK
K2xldCBoZWxwZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG9zdC0xIik7CitsZXQgaG9z
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNob3N0LTIiKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgaGVscGVyLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KS5pbm5lckhUTUwgPSBJ
TklUSUFMTFlfQ09NTU9OX1NUWUxFOworICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUo
aGVscGVyKS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAwLCAwKSIsICJDb21tb24gc3R5bGUg
c2hvdWxkIGFwcGx5IHRvIGhlbHBlciIpOworCisgIGhvc3QuYXR0YWNoU2hhZG93KHsgbW9kZTog
Im9wZW4iIH0pLmlubmVySFRNTCA9IElOSVRJQUxMWV9DT01NT05fU1RZTEU7CisgIGFzc2VydF9l
cXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShob3N0KS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAw
LCAwKSIsICJDb21tb24gc3R5bGUgc2hvdWxkIGFwcGx5IHRvIGhvc3QiKTsKKworICBob3N0LnNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gYDxzdHlsZT46aG9zdCB7IGJhY2tncm91bmQtY29sb3I6IGxp
bWU7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgfTwvc3R5bGU+YDsKKyAgYXNzZXJ0X2Vx
dWFscyhnZXRDb21wdXRlZFN0eWxlKGhvc3QpLmJhY2tncm91bmRDb2xvciwgInJnYigwLCAyNTUs
IDApIiwgIkNvbW1vbiBzdHlsZSBzaG91bGQgbm8gbG9uZ2VyIGFwcGx5IHRvIGhvc3QiKTsKK30p
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLWxpbmstZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bp
bmcvc2xvdHRlZC1saW5rLWV4cGVjdGVkLnR4dAppbmRleCA0ZWY3MWJiNTE2N2Q0YzhlY2FjMGY4
MDdhNGM4NGY3ZDQ0Y2E1NzdjLi43NTdiNjQxNWIxZjEyNjIyMDRlNTc2ZTAyZjhlY2ZkZTg0MGM3
MGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLWxpbmstZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Ns
b3R0ZWQtbGluay1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiBUaGlzIGxpbmsgc2hvdWxk
IGJlIGdyZWVuLgogCi1GQUlMIENoZWNrIHRoYXQgd2UgbWF0Y2ggOmxpbmsgYW5kIG5vdCA6dmlz
aXRlZCBmb3Igc2xvdHRlZCBhbmNob3IuIGFzc2VydF9lcXVhbHM6IFVudmlzaXRlZCBsaW5rIHNo
b3VsZCBiZSBncmVlbi4gZXhwZWN0ZWQgInJnYigwLCAxMjgsIDApIiBidXQgZ290ICJyZ2IoMjU1
LCAwLCAwKSIKK1BBU1MgQ2hlY2sgdGhhdCB3ZSBtYXRjaCA6bGluayBhbmQgbm90IDp2aXNpdGVk
IGZvciBzbG90dGVkIGFuY2hvci4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtcGFyc2luZy1leHBlY3RlZC50eHQKaW5kZXggMWZiMWM0
NDc1NzlhNjZhZGU4Yjk4ZDZhMjIwMmUxNWEzZjg5YzI5YS4uZGQyODVmZDQ1OGJiNjJkZTQ1YWIx
MzRiMTVkMWI1MDA4ZjlhODVkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3
LDYgQEAgUEFTUyAiOjpzbG90dGVkKCopW2F0dHJdIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxl
Y3RvcgogUEFTUyAiOjpzbG90dGVkKCopOmhvc3QiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVj
dG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6aG9zdChkaXYpIiBzaG91bGQgYmUgYW4gaW52YWxpZCBz
ZWxlY3RvcgogUEFTUyAiOjpzbG90dGVkKCopOmhvdmVyIiBzaG91bGQgYmUgYW4gaW52YWxpZCBz
ZWxlY3RvcgotUEFTUyAiOjpzbG90dGVkKCopOmlzKDpob3ZlcikiIHNob3VsZCBiZSBhbiBpbnZh
bGlkIHNlbGVjdG9yCi1QQVNTICI6OnNsb3R0ZWQoKik6d2hlcmUoOmhvdmVyKSIgc2hvdWxkIGJl
IGFuIGludmFsaWQgc2VsZWN0b3IKLVBBU1MgIjo6c2xvdHRlZCgqKTppcygjaWQpIiBzaG91bGQg
YmUgYW4gaW52YWxpZCBzZWxlY3RvcgotUEFTUyAiOjpzbG90dGVkKCopOndoZXJlKCNpZCkiIHNo
b3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6cmVhZC1vbmx5
IiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgogUEFTUyAiOjpzbG90dGVkKCopOjpzbG90
dGVkKCopIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgogUEFTUyAiOjpzbG90dGVkKCop
OjpiZWZvcmU6OnNsb3R0ZWQoKikiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCkBAIC0x
OSwxMCArMTUsMTYgQEAgUEFTUyAiOjpzbG90dGVkKCopIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxl
Y3RvcgogUEFTUyAiOjpzbG90dGVkKGRpdikiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCiBQ
QVNTICI6OnNsb3R0ZWQoW2F0dHJdOmhvdmVyKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IK
IFBBU1MgIjo6c2xvdHRlZCg6bm90KC5hKSkiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCi1G
QUlMICI6OnNsb3R0ZWQoKik6OmJlZm9yZSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhl
IHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgotRkFJTCAiOjpzbG90
dGVkKCopOjphZnRlciIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQg
bm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorRkFJTCAiOjpzbG90dGVkKCopOmlzKCki
IHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUg
ZXhwZWN0ZWQgcGF0dGVybi4KK0ZBSUwgIjo6c2xvdHRlZCgqKTppcyg6aG92ZXIpIiBzaG91bGQg
YmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVk
IHBhdHRlcm4uCitGQUlMICI6OnNsb3R0ZWQoKik6aXMoI2lkKSIgc2hvdWxkIGJlIGEgdmFsaWQg
c2VsZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgor
RkFJTCAiOjpzbG90dGVkKCopOndoZXJlKCkiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRo
ZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4KK0ZBSUwgIjo6c2xv
dHRlZCgqKTp3aGVyZSg6aG92ZXIpIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3Ry
aW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uCitGQUlMICI6OnNsb3R0ZWQo
Kik6d2hlcmUoI2lkKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQg
bm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorUEFTUyAiOjpzbG90dGVkKCopOjpiZWZv
cmUiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCitQQVNTICI6OnNsb3R0ZWQoKik6OmFmdGVy
IiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgogRkFJTCAiOjpzbG90dGVkKCopOjpwbGFjZWhv
bGRlciIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90IG1hdGNo
IHRoZSBleHBlY3RlZCBwYXR0ZXJuLgotRkFJTCAiOjpzbG90dGVkKCopOjptYXJrZXIiIHNob3Vs
ZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0
ZWQgcGF0dGVybi4KK1BBU1MgIjo6c2xvdHRlZCgqKTo6bWFya2VyIiBzaG91bGQgYmUgYSB2YWxp
ZCBzZWxlY3RvcgogUEFTUyAiOjpzbG90dGVkKCopOjpmaXJzdC1saW5lIiBzaG91bGQgYmUgYW4g
aW52YWxpZCBzZWxlY3RvcgogUEFTUyAiOjpzbG90dGVkKCopOjpmaXJzdC1sZXR0ZXIiIHNob3Vs
ZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6OnNlbGVjdGlvbiIg
c2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtcGFy
c2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLmh0bWwKaW5kZXggZjAwNjJjODY3NDRmMDdh
MTUyMmIxNjRlNDUzZDI2Yzg0YWUyZjk0OC4uMjViMDAzMDkxZmFkYjAwNGI5MGY1MmVjMWJhNDE3
OWJmMWEyMjBjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
c2xvdHRlZC1wYXJzaW5nLmh0bWwKQEAgLTE3LDEwICsxNyw2IEBACiAgIHRlc3RfaW52YWxpZF9z
ZWxlY3RvcigiOjpzbG90dGVkKCopOmhvc3QiKTsKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6
OnNsb3R0ZWQoKik6aG9zdChkaXYpIik7CiAgIHRlc3RfaW52YWxpZF9zZWxlY3RvcigiOjpzbG90
dGVkKCopOmhvdmVyIik7Ci0gIHRlc3RfaW52YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOmlz
KDpob3ZlcikiKTsKLSAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6d2hlcmUo
OmhvdmVyKSIpOwotICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTppcygjaWQp
Iik7Ci0gIHRlc3RfaW52YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOndoZXJlKCNpZCkiKTsK
ICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6cmVhZC1vbmx5Iik7CiAgIHRl
c3RfaW52YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOjpzbG90dGVkKCopIik7CiAgIHRlc3Rf
aW52YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOjpiZWZvcmU6OnNsb3R0ZWQoKikiKTsKQEAg
LTMxLDYgKzI3LDE0IEBACiAgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZChbYXR0cl06
aG92ZXIpIik7CiAgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCg6bm90KC5hKSkiKTsK
IAorICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aXMoKSIpOworICB0ZXN0X3Zh
bGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aXMoOmhvdmVyKSIsICI6OnNsb3R0ZWQoKik6aXMo
KSIpOworICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aXMoI2lkKSIsICI6OnNs
b3R0ZWQoKik6aXMoKSIpOworCisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTp3
aGVyZSgpIik7CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTp3aGVyZSg6aG92
ZXIpIiwgIjo6c2xvdHRlZCgqKTp3aGVyZSgpIik7CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6
c2xvdHRlZCgqKTp3aGVyZSgjaWQpIiwgIjo6c2xvdHRlZCgqKTp3aGVyZSgpIik7CisKICAgLy8g
QWxsb3cgdHJlZS1hYmlkaW5nIHBzZXVkbyBlbGVtZW50cyBhZnRlciA6OnNsb3R0ZWQKICAgdGVz
dF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOjpiZWZvcmUiKTsKICAgdGVzdF92YWxpZF9z
ZWxlY3RvcigiOjpzbG90dGVkKCopOjphZnRlciIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZy93M2MtaW1wb3J0LmxvZwppbmRleCA4YTIwYTRkZTY1YWVmMWM1NDA1NDBlNDg4
MmU4ZjVlNzI0NmNlZjY1Li5jOWMzMTQ3YTg2MmFhYThmZmFiYzc2YmUxODE1YjRjMzM2ZWY4NDVk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2NvcGluZy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy93M2MtaW1wb3J0LmxvZwpA
QCAtNTIsNiArNTIsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2Nzcy1zY29waW5nLXNoYWRvdy13
aXRoLXJ1bGVzLW5vLXN0eWxlLWxlYWstZXhwZWN0ZWQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2Nzcy1zY29waW5nLXNo
YWRvdy13aXRoLXJ1bGVzLW5vLXN0eWxlLWxlYWsuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2Nzcy1zY29waW5nLXNoYWRv
dy13aXRoLXJ1bGVzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2luZy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9z
dC1jb250ZXh0LXNwZWNpZmljaXR5LTAwMS1leHBlY3RlZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1jb250ZXh0
LXNwZWNpZmljaXR5LTAwMS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1jb250ZXh0LXNwZWNpZmljaXR5LTAwMi1l
eHBlY3RlZC5odG1sCkBAIC02OSw2ICs3MCw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1t
dWx0aXBsZS0wMDEuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtbmVzdGVkLTAwMS1leHBlY3RlZC5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
aG9zdC1uZXN0ZWQtMDAxLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmcuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3Qtc2xv
dHRlZC0wMDEtZXhwZWN0ZWQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3Qtc2xvdHRlZC0wMDEuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hv
c3Qtc3BlY2lmaWNpdHktMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTEyNSw2ICsxMjcsNyBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY29waW5nL3NoYWRvdy1yZWFzc2lnbi1keW5hbWljLTAwNC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hh
ZG93LXJvb3QtaW5zZXJ0LWludG8tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3NoYWRvdy1y
b290LWluc2VydC1pbnRvLWRvY3VtZW50Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNh
Y2hlLTAwMS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdC1ub24taHRtbC1kaXNwbGF5LXZhbHVlLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9z
bG90dGVkLWludmFsaWRhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1saW5rLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442680</attachid>
            <date>2021-10-27 23:59:16 -0700</date>
            <delta_ts>2021-10-28 01:59:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178237-20211028095914.patch</filename>
            <type>text/plain</type>
            <size>42668</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkNjY4YzY0OGQyNTY4
MjA5NjQ4NjA0YjIzZjJmNmIxMjUzMDE1NS4uYzYxMzcwNjBmZDFiNDYwNmFmNzMwOGMyMzIxNzIz
ZGYzYmE0Nzk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTEwLTI3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IDo6YmVmb3Jl
IGFuZCA6OmFmdGVyIHBzZXVkbyBlbGVtZW50cyBhZnRlciA6OnNsb3R0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODIzNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgd2F5IHdlIHJl
c29sdmUgOjpzbG90dGVkIHRvIGltcHJvdmUgY29tcGF0aWJpbGl0eS4gV2Ugbm93IHRyYXZlcnNl
IHRocm91Z2ggdGhlIGFzc2lnbmVkIHNsb3QgY2hhaW4gaW4KKyAgICAgICAgYSBzaW5nbGUgcGFz
cywgc2ltaWxhciB0byA6OnBhcnQgbWF0Y2hpbmcuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisKKyAgICAgICAgQWRkIGEgbmV3IHNl
bGVjdGlvbiByZWxhdGlvbiBTaGFkb3dTbG90dGVkLCBzaW1pbGFyIHRvIHRoZSBleGlzdGluZyBT
aGFkb3dEZXNjZW5kYW50IGFuZCBTaGFkb3dQYXJ0RGVzY2VuZGFudCwKKyAgICAgICAgZm9yIHN3
aXRjaGluZyBzY29wZXMgZHVyaW5nIHNlbGVjdG9yIG1hdGNoaW5nLgorCisgICAgICAgICogY3Nz
L1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6
Om1hdGNoUmVjdXJzaXZlbHkgY29uc3QpOgorCisgICAgICAgIEZpbmQgdGhlIHJpZ2h0IHNjb3Bl
IHRvIGNvbnRpbnVlIG1hdGNoaW5nIG9uIFNoYWRvd1Nsb3R0ZWQgcmVsYXRpb24uIFBhc3MgaW4g
dGhlIHNjb3BlIG9yZGluYWwgdG8gZmluZCB0aGUgc2NvcGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUgY29uc3QpOgorCisgICAgICAgIE1hdGNoIHRoZSA6
OnNsb3R0ZWQoKSBlbGVtZW50LgorCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgor
ICAgICAgICAqIGNzcy9TZWxlY3RvckZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xs
ZWN0U2VsZWN0b3JIYXNoZXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyU2VsZWN0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpuZWVkc0ltcGxpY2l0
U2hhZG93Q29tYmluYXRvckZvck1hdGNoaW5nIGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzUHNldWRvQ2xhc3NW
YWxpZEFmdGVyUHNldWRvRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1RyZWVBYmlkaW5n
UHNldWRvRWxlbWVudCk6CisKKyAgICAgICAgQWRkIGEgc3BlYy10ZXJtZWQgaGVscGVyLgorCisg
ICAgICAgIChXZWJDb3JlOjppc1NpbXBsZVNlbGVjdG9yVmFsaWRBZnRlclBzZXVkb0VsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdElt
cGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9yKToKKworICAgICAgICBJbnNlcnQgU2hhZG93
U2xvdHRlZCByZWxhdGlvbiBmb3IgOjpzbG90dGVkKCkuCisKKyAgICAgICAgKiBjc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpm
cmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHNJbnRlcm5hbCk6CisgICAgICAgICog
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjbGVhck1hdGNoZWRSdWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoU2xvdHRlZFBzZXVkb0VsZW1l
bnRSdWxlcyk6CisKKyAgICAgICAgU2ltcGx5IGdldCB0aGUgcnVsZXMgZnJvbSBzY29wZXMgaW4g
dGhlIGFzc2luZ2VkIHNsb3QgY2hhaW5nIGFuZCBtYXRjaCBhZ2FpbnN0IHRoZW0uCisgICAgICAg
IE5vIG5lZWQgZm9yIHR3byBwYXNzZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0U2xvdHRl
ZFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNsb3QpOiBEZWxldGVkLgorCisgICAgICAgIE5vdCBuZWVk
ZWQgYW55bW9yZS4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmZpbmRTbG90dGVkUHNldWRv
RWxlbWVudFNlbGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29tcHV0ZU5leHRNYXRjaEVsZW1lbnQpOgor
CiAyMDIxLTEwLTI2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFUgUHJvY2Vzc10gYERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Z2V0Q1RNYCBzaG91
bGQgaW5jbHVkZSB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5jcHAKaW5kZXggZmFkZWViYzVlY2M0MjgwODc3ZTJhMzE0ZTNkMzg4NzYwYzEyMjhkMy4uNmNm
N2RlNTg3OTFmMTdkN2EwMTI0ZmFlMDhlZWQ1NGI5NTQ2YjE2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCkBAIC04MjMsNiArODIzLDcgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxl
Y3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAjZW5kaWYKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6U2hhZG93UGFydERlc2NlbmRhbnQ6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNo
YWRvd1Nsb3R0ZWQ6CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChyaWdodFNpZGUpOwogICAg
ICAgICAgICAgcmV0dXJuIHRhZ0hpc3RvcnktPnNlbGVjdG9yVGV4dChidWlsZGVyLnRvU3RyaW5n
KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDQ2NTIyMDllYjBh
NmYwYmQzZmY5ZGU5MTQyYTdkMDAyOThkYmQwZDkuLjNkYzYxNjQwYWZiMDhiZjYxZmUzNTk1ODk3
N2IxY2M5YzNjMjEwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC04Nyw3ICs4Nyw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIERpcmVjdEFkamFjZW50LAogICAg
ICAgICAgICAgSW5kaXJlY3RBZGphY2VudCwKICAgICAgICAgICAgIFNoYWRvd0Rlc2NlbmRhbnQs
Ci0gICAgICAgICAgICBTaGFkb3dQYXJ0RGVzY2VuZGFudAorICAgICAgICAgICAgU2hhZG93UGFy
dERlc2NlbmRhbnQsCisgICAgICAgICAgICBTaGFkb3dTbG90dGVkCiAgICAgICAgIH07CiAKICAg
ICAgICAgZW51bSBQc2V1ZG9DbGFzc1R5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAppbmRleCBkODI2NGJhMjBmY2Q5YWNlYTJhNGQxZTRiYzA0MjhmNDdiOWQ0NDcxLi4w
YWNkZTNmMmM3Yzc2ZTUzZjJkNThhNDAxOTRhOTE4MTc1ZjIzMTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtNDA4LDIwICs0MDgsMzggQEAgU2VsZWN0b3JDaGVj
a2VyOjpNYXRjaFJlc3VsdCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoQ2hlY2tp
bmdDb250ZXh0JgogICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0Ojp1cGRhdGVXaXRoTWF0
Y2hUeXBlKHJlc3VsdCwgbWF0Y2hUeXBlKTsKICAgICAgICAgfQogICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93UGFydERl
c2NlbmRhbnQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpw
YXJ0KGJhcikgd2Ugc2tpcCBkaXJlY3RseSB0byB0aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgot
ICAgICAgICAgICAgYXV0byogc2hhZG93SG9zdCA9IHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpT
aGFkb3dQYXJ0RGVzY2VuZGFudCA/IGNoZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVs
ZVNjb3BlIDogY29udGV4dC5lbGVtZW50LT5zaGFkb3dIb3N0KCk7Ci0gICAgICAgICAgICBpZiAo
IXNoYWRvd0hvc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhN
YXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkpOwotICAgICAgICAgICAgbmV4dENvbnRleHQu
ZWxlbWVudCA9IHNoYWRvd0hvc3Q7Ci0gICAgICAgICAgICBuZXh0Q29udGV4dC5maXJzdFNlbGVj
dG9yT2ZUaGVGcmFnbWVudCA9IG5leHRDb250ZXh0LnNlbGVjdG9yOwotICAgICAgICAgICAgbmV4
dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQgPSBmYWxzZTsKLSAgICAgICAgICAg
IFBzZXVkb0lkU2V0IGlnbm9yZUR5bmFtaWNQc2V1ZG87Ci0gICAgICAgICAgICBNYXRjaFJlc3Vs
dCByZXN1bHQgPSBtYXRjaFJlY3Vyc2l2ZWx5KGNoZWNraW5nQ29udGV4dCwgbmV4dENvbnRleHQs
IGlnbm9yZUR5bmFtaWNQc2V1ZG8pOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnRE
ZXNjZW5kYW50OiB7CisgICAgICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpwYXJ0KGJhcikgd2Ug
c2tpcCBkaXJlY3RseSB0byB0aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgorICAgICAgICBhdXRv
KiBzaGFkb3dIb3N0ID0gcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5k
YW50ID8gY2hlY2tpbmdDb250ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgOiBjb250ZXh0
LmVsZW1lbnQtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgaWYgKCFzaGFkb3dIb3N0KQorICAgICAg
ICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhNYXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBs
ZXRlbHkpOworICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gc2hhZG93SG9zdDsKKyAgICAg
ICAgbmV4dENvbnRleHQuZmlyc3RTZWxlY3Rvck9mVGhlRnJhZ21lbnQgPSBuZXh0Q29udGV4dC5z
ZWxlY3RvcjsKKyAgICAgICAgbmV4dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVsZW1lbnQg
PSBmYWxzZTsKKyAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsKKyAgICAg
ICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0NvbnRleHQs
IG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKIAotICAgICAgICAgICAgcmV0dXJu
IE1hdGNoUmVzdWx0Ojp1cGRhdGVXaXRoTWF0Y2hUeXBlKHJlc3VsdCwgbWF0Y2hUeXBlKTsKLSAg
ICAgICAgfQorICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUo
cmVzdWx0LCBtYXRjaFR5cGUpOworICAgIH0KKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dT
bG90dGVkOiB7CisgICAgICAgIGF1dG8qIHNsb3QgPSBjb250ZXh0LmVsZW1lbnQtPmFzc2lnbmVk
U2xvdCgpOworICAgICAgICBpZiAoIXNsb3QpCisgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1
bHQ6OmZhaWxzKE1hdGNoOjpTZWxlY3RvckZhaWxzQ29tcGxldGVseSk7CisgICAgICAgIC8vIFdl
IGNvbnRpbnVlIG1hdGNoaW5nIGluIHRoZSBzY29wZSB3aGVyZSB0aGlzIHJ1bGUgY2FtZSBmcm9t
LgorICAgICAgICBhdXRvIHNjb3BlRGVwdGggPSBzdGF0aWNfY2FzdDxpbnQ+KGNoZWNraW5nQ29u
dGV4dC5zdHlsZVNjb3BlT3JkaW5hbCk7CisgICAgICAgIHdoaWxlICgtLXNjb3BlRGVwdGggJiYg
c2xvdC0+YXNzaWduZWRTbG90KCkpCisgICAgICAgICAgICBzbG90ID0gc2xvdC0+YXNzaWduZWRT
bG90KCk7CisgICAgICAgIGlmIChzY29wZURlcHRoKQorICAgICAgICAgICAgcmV0dXJuIE1hdGNo
UmVzdWx0OjpmYWlscyhNYXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkpOworCisgICAgICAg
IG5leHRDb250ZXh0LmVsZW1lbnQgPSBzbG90OworICAgICAgICBuZXh0Q29udGV4dC5maXJzdFNl
bGVjdG9yT2ZUaGVGcmFnbWVudCA9IG5leHRDb250ZXh0LnNlbGVjdG9yOworICAgICAgICBuZXh0
Q29udGV4dC5pc1N1YmplY3RPckFkamFjZW50RWxlbWVudCA9IGZhbHNlOworICAgICAgICBQc2V1
ZG9JZFNldCBpZ25vcmVEeW5hbWljUHNldWRvOworICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQg
PSBtYXRjaFJlY3Vyc2l2ZWx5KGNoZWNraW5nQ29udGV4dCwgbmV4dENvbnRleHQsIGlnbm9yZUR5
bmFtaWNQc2V1ZG8pOworCisgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdDo6dXBkYXRlV2l0aE1h
dGNoVHlwZShyZXN1bHQsIG1hdGNoVHlwZSk7CisgICAgfQogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMTE1MCwxMSArMTE2OCwxOCBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmUoQ2hlY2tpbmdDb250ZXh0JiBjaGVja2luZ0NvbnRleHQsIGNvbnN0IExvY2Fs
Q29udAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAjZW5kaWYKLSAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQ6Ci0gICAgICAgICAgICAv
LyBXZSBzZWUgOjpzbG90dGVkKCkgcHNldWRvIGVsZW1lbnRzIHdoZW4gY29sbGVjdGluZyBzbG90
dGVkIHJ1bGVzIGZyb20gdGhlIHNsb3Qgc2hhZG93IHRyZWUgb25seS4KLSAgICAgICAgICAgIEFT
U0VSVChjaGVja2luZ0NvbnRleHQucmVzb2x2aW5nTW9kZSA9PSBNb2RlOjpDb2xsZWN0aW5nUnVs
ZXMpOwotICAgICAgICAgICAgcmV0dXJuIGlzPEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCk7Ci0K
KyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQ6IHsKKyAgICAg
ICAgICAgIGlmICghY29udGV4dC5lbGVtZW50LT5hc3NpZ25lZFNsb3QoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBhdXRvKiBzdWJzZWxlY3RvciA9IGNvbnRl
eHQuc2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOworICAgICAgICAgICAgTG9jYWxD
b250ZXh0IHN1YmNvbnRleHQoY29udGV4dCk7CisgICAgICAgICAgICBzdWJjb250ZXh0LnNlbGVj
dG9yID0gc3Vic2VsZWN0b3I7CisgICAgICAgICAgICBzdWJjb250ZXh0LmZpcnN0U2VsZWN0b3JP
ZlRoZUZyYWdtZW50ID0gc3Vic2VsZWN0b3I7CisgICAgICAgICAgICBzdWJjb250ZXh0LnBzZXVk
b0VsZW1lbnRFZmZlY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIHN1YmNvbnRleHQuaW5GdW5j
dGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVlOworICAgICAgICAgICAgUHNldWRvSWRTZXQgaWdub3Jl
ZER5bmFtaWNQc2V1ZG87CisgICAgICAgICAgICByZXR1cm4gbWF0Y2hSZWN1cnNpdmVseShjaGVj
a2luZ0NvbnRleHQsIHN1YmNvbnRleHQsIGlnbm9yZWREeW5hbWljUHNldWRvKS5tYXRjaCA9PSBN
YXRjaDo6U2VsZWN0b3JNYXRjaGVzOworICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0VsZW1lbnRQYXJ0OiB7CiAgICAgICAgICAgICBhdXRvIHRyYW5zbGF0ZVBhcnRO
YW1lVG9SdWxlU2NvcGUgPSBbJl0oQXRvbVN0cmluZyBwYXJ0TmFtZSkgewogICAgICAgICAgICAg
ICAgIFZlY3RvcjxBdG9tU3RyaW5nLCAxPiBtYXBwZWROYW1lcyB7IHBhcnROYW1lIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKaW5kZXggODQ4ZjhjNDQ2NWY1MTAwOGMzNjIwNTk0
YzZjMDAwNWQ5NDY1NWMyYS4uM2NjMDdhYWZlMTQxNjhjMTQ0ZThhOWQ1OGNiZjI3YmY5ZTM2MWMw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUg
IlN0eWxlUmVsYXRpb25zLmgiCisjaW5jbHVkZSAiU3R5bGVTY29wZU9yZGluYWwuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC05NSw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICAgICAgY29u
c3QgQ29udGFpbmVyTm9kZSogc2NvcGUgeyBudWxscHRyIH07CiAgICAgICAgIGJvb2wgaXNNYXRj
aGluZ0hvc3RQc2V1ZG9DbGFzcyB7IGZhbHNlIH07CiAgICAgICAgIGNvbnN0IEVsZW1lbnQqIHNo
YWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgeyBudWxscHRyIH07CisgICAgICAgIFN0eWxlOjpTY29w
ZU9yZGluYWwgc3R5bGVTY29wZU9yZGluYWwgeyBTdHlsZTo6U2NvcGVPcmRpbmFsOjpFbGVtZW50
IH07CiAKICAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2VyIHRvIGhhdmUgYSBzZXBh
cmF0ZSBvYmplY3QgZm9yIHJldHVybiB2YWx1ZXMuIFRoaXMgcmVxdWlyZXMgc29tZSBtb3JlIHdv
cmsgaW4gdGhlIHNlbGVjdG9yIGNvbXBpbGVyLgogICAgICAgICBTdHlsZTo6UmVsYXRpb25zIHN0
eWxlUmVsYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yRmls
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAKaW5kZXggNjky
OTdhZTlkNGI5ZjhkNzJhMzdlNGEzZWQxN2M3N2ExZmM2NzE3OC4uNmI5M2QyNDZjYjZiOTVhYzAx
MWUwNzliODFhZjI3ZDg3OGQ2ZTFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIu
Y3BwCkBAIC0xOTUsNiArMTk1LDcgQEAgc3RhdGljIENvbGxlY3RlZFNlbGVjdG9ySGFzaGVzIGNv
bGxlY3RTZWxlY3Rvckhhc2hlcyhjb25zdCBDU1NTZWxlY3RvciYgcmlnaHRtb3MKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6SW5kaXJlY3RBZGphY2VudDoKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6U2hhZG93RGVzY2VuZGFudDoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93
UGFydERlc2NlbmRhbnQ6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd1Nsb3R0ZWQ6
CiAgICAgICAgICAgICBza2lwT3ZlclN1YnNlbGVjdG9ycyA9IHRydWU7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RGVzY2VuZGFudFNwYWNlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJTZWxlY3Rvci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJTZWxlY3Rvci5oCmluZGV4IGUzNTA4OTA0
MzhhOWQ5YmRiNjM0NDAyMjFhMDIxZDc0ZTk1ZmMyMTIuLjZiMTg1NzM2YTU0YzYzNDg0NTFiNmZk
ZWYyNTgwZjczMDc2NmUwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlclNlbGVjdG9yLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBpbmxpbmUgYm9vbCBDU1NQYXJzZXJT
ZWxlY3Rvcjo6bmVlZHNJbXBsaWNpdFNoYWRvd0NvbWJpbmF0b3JGb3JNYXRjaGluZygpIGNvbnN0
CiAgICAgICAgICAgICB8fCBwc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50Q3VlCiAjZW5kaWYKICAgICAgICAgICAgIHx8IHBzZXVkb0VsZW1lbnRUeXBlKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRQYXJ0CisgICAgICAgICAgICB8fCBwc2V1ZG9F
bGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50U2xvdHRlZAogICAgICAg
ICAgICAgfHwgcHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVu
dFdlYktpdEN1c3RvbUxlZ2FjeVByZWZpeGVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcAppbmRleCBiOTZjZTA5YWIyZDQwNTkzOWUx
ZWZmYzNkMjBiMmVjZmY5Yzc3MWUwLi41YjU2MjE3NjY0OTVhM2FjMjdkMDc0NDU5YTA1ODM3ZTkz
MWU2OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFy
c2VyLmNwcApAQCAtMzQzLDYgKzM0Myw5IEBAIHN0YXRpYyBib29sIGlzUHNldWRvQ2xhc3NWYWxp
ZEFmdGVyUHNldWRvRWxlbWVudChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzCiAgICAg
c3dpdGNoIChjb21wb3VuZFBzZXVkb0VsZW1lbnQpIHsKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9FbGVtZW50UGFydDoKICAgICAgICAgcmV0dXJuICFpc1RyZWVTdHJ1Y3R1cmFsUHNldWRv
Q2xhc3MocHNldWRvQ2xhc3MpOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRT
bG90dGVkOgorICAgICAgICAvLyBGSVhNRTogQSBXUFQgaW5kaWNhdGVzIDppcy86d2hlcmUgc2hv
dWxkIGJlIHBhcnNlZCBidXQgcmVkdWNlIHRvIG5vdGhpbmcgYXMgdGhlaXIgY29udGVudCBpcyBu
b3QgbGVnYWwgaW4gdGhlIGNvbnRleHQuCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UmVzaXplcjoKICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9FbGVtZW50U2Nyb2xsYmFyOgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Vs
ZW1lbnRTY3JvbGxiYXJDb3JuZXI6CkBAIC0zNjEsNiArMzY0LDE5IEBAIHN0YXRpYyBib29sIGlz
UHNldWRvQ2xhc3NWYWxpZEFmdGVyUHNldWRvRWxlbWVudChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NUeXBlIHBzCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBpc1RyZWVBYmlkaW5nUHNldWRvRWxl
bWVudChDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFR5cGUgcHNldWRvRWxlbWVudFR5cGUpCit7
CisgICAgc3dpdGNoIChwc2V1ZG9FbGVtZW50VHlwZSkgeworICAgIC8vIEZJWE1FOiBUaGlzIGxp
c3Qgc2hvdWxkIGFsc28gaW5jbHVkZSA6OnBsYWNlaG9sZGVyIGFuZCA6OmZpbGUtc2VsZWN0b3It
YnV0dG9uCisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudEJlZm9yZToKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50QWZ0ZXI6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvRWxlbWVudE1hcmtlcjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogc3RhdGljIGJvb2wgaXNTaW1w
bGVTZWxlY3RvclZhbGlkQWZ0ZXJQc2V1ZG9FbGVtZW50KGNvbnN0IENTU1BhcnNlclNlbGVjdG9y
JiBzaW1wbGVTZWxlY3RvciwgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRUeXBlIGNvbXBvdW5k
UHNldWRvRWxlbWVudCkKIHsKICAgICBpZiAoY29tcG91bmRQc2V1ZG9FbGVtZW50ID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbGVtZW50VW5rbm93bikKQEAgLTM2OSw2ICszODUsMTAgQEAgc3RhdGlj
IGJvb2wgaXNTaW1wbGVTZWxlY3RvclZhbGlkQWZ0ZXJQc2V1ZG9FbGVtZW50KGNvbnN0IENTU1Bh
cnNlclNlbGVjdG9yJiBzaW0KICAgICAgICAgaWYgKHNpbXBsZVNlbGVjdG9yLm1hdGNoKCkgPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYgc2ltcGxlU2VsZWN0b3IucHNldWRvRWxlbWVu
dFR5cGUoKSAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgaWYgKGNvbXBvdW5kUHNldWRvRWxlbWVudCA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0ZWQpIHsKKyAgICAgICAgaWYgKHNpbXBsZVNlbGVj
dG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYgaXNUcmVlQWJpZGlu
Z1BzZXVkb0VsZW1lbnQoc2ltcGxlU2VsZWN0b3IucHNldWRvRWxlbWVudFR5cGUoKSkpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgaWYgKHNpbXBsZVNlbGVjdG9yLm1hdGNo
KCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSBwc2V1ZG8gPSBzaW1wbGVTZWxlY3Rvci5w
c2V1ZG9DbGFzc1R5cGUoKTsKQEAgLTEwNTksNiArMTA3OSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2VsZWN0b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdEltcGxp
Y2l0U2hhCiAgICAgLy8gOjpwYXJ0KCkgY29tYmluZXMgd2l0aCBvdGhlciBwc2V1ZG8gZWxlbWVu
dHMuCiAgICAgYm9vbCBpc1BhcnQgPSBzcGxpdEFmdGVyLT50YWdIaXN0b3J5KCktPm1hdGNoKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYgc3BsaXRBZnRlci0+dGFnSGlzdG9yeSgp
LT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydDsK
IAorICAgIC8vIDo6c2xvdHRlZCgpIGNvbWJpbmVzIHdpdGggb3RoZXIgcHNldWRvIGVsZW1lbnRz
LgorICAgIGJvb2wgaXNTbG90dGVkID0gc3BsaXRBZnRlci0+dGFnSGlzdG9yeSgpLT5tYXRjaCgp
ID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNwbGl0QWZ0ZXItPnRhZ0hpc3Rvcnko
KS0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFNsb3R0
ZWQ7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlY29uZENvbXBv
dW5kOwogICAgIGlmIChjb250ZXh0Lm1vZGUgPT0gVUFTaGVldE1vZGUgfHwgaXNQYXJ0KSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYxNzQ3CkBAIC0xMDY4LDcgKzEwOTEsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNl
bGVjdG9yPiBDU1NTZWxlY3RvclBhcnNlcjo6c3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGEKICAg
ICB9IGVsc2UKICAgICAgICAgc2Vjb25kQ29tcG91bmQgPSBzcGxpdEFmdGVyLT5yZWxlYXNlVGFn
SGlzdG9yeSgpOwogCi0gICAgc2Vjb25kQ29tcG91bmQtPmFwcGVuZFRhZ0hpc3RvcnkoaXNQYXJ0
ID8gQ1NTU2VsZWN0b3I6OlNoYWRvd1BhcnREZXNjZW5kYW50IDogQ1NTU2VsZWN0b3I6OlNoYWRv
d0Rlc2NlbmRhbnQsIFdURk1vdmUoY29tcG91bmRTZWxlY3RvcikpOworICAgIGF1dG8gcmVsYXRp
b24gPSBbJl0geworICAgICAgICBpZiAoaXNTbG90dGVkKQorICAgICAgICAgICAgcmV0dXJuIENT
U1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOworICAgICAgICBpZiAoaXNQYXJ0KQorICAgICAgICAg
ICAgcmV0dXJuIENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDsKKyAgICAgICAgcmV0
dXJuIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OworICAgIH0oKTsKKyAgICBzZWNvbmRD
b21wb3VuZC0+YXBwZW5kVGFnSGlzdG9yeShyZWxhdGlvbiwgV1RGTW92ZShjb21wb3VuZFNlbGVj
dG9yKSk7CiAgICAgcmV0dXJuIHNlY29uZENvbXBvdW5kOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggODlmY2M3ODBjNWFkNzgxNDU4Yzg5Njdh
YzI5NGRhZDQyZmJjODZmNS4uNTNkZjE4ZmJkMTA1MTRhZDA0ZTVlYmI0MTE2YjJmMzgyZTAzZTNh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtNTAx
LDYgKzUwMSw3IEBAIHN0YXRpYyBpbmxpbmUgRnJhZ21lbnRSZWxhdGlvbiBmcmFnbWVudFJlbGF0
aW9uRm9yU2VsZWN0b3JSZWxhdGlvbihDU1NTZWxlY3Rvcjo6CiAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6U3Vic2VsZWN0b3I6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoK
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpTaGFkb3dTbG90dGVkOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzI2LDYgKzEzMjcsOSBAQCBz
dGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVjdEZyYWdtZW50c0ludGVybmFsKGNvbnN0IENTU1Nl
bGVjdG9yKiByb290U2VsZWN0b3IsCiAgICAgICAgIGlmICgocmVsYXRpb24gPT0gQ1NTU2VsZWN0
b3I6OlNoYWRvd0Rlc2NlbmRhbnQgfHwgcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd1Bh
cnREZXNjZW5kYW50KSAmJiAhc2VsZWN0b3ItPmlzTGFzdEluVGFnSGlzdG9yeSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZTsKIAorICAgICAgICBpZiAo
cmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd1Nsb3R0ZWQpCisgICAgICAgICAgICByZXR1
cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOworCiAgICAgICAgIGlmIChyZWxhdGlvbiA9
PSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQgfHwgcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6
OkluZGlyZWN0QWRqYWNlbnQpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZSByZWxhdGlvbkZ1
bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dDsKICAgICAgICAgICAgIGlmIChzZWxlY3RvckNvbnRleHQgPT0gU2VsZWN0b3JDb250ZXh0
OjpRdWVyeVNlbGVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwCmluZGV4IGY0ZGViZmRmZDhjNzBmNWYzMDJkNTUyZjNjNzBjOGY3MGZiMDE5ODIu
LjVmMjE5OGQyZjBjZmIzOTEzNDBjMTNlM2NlMGFkODcwMTQ5YjQ2MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTEyMCw3ICsxMjAsNiBA
QCBpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFJ1bGUoY29uc3Qg
UnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZwogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y2xl
YXJNYXRjaGVkUnVsZXMoKQogewogICAgIG1fbWF0Y2hlZFJ1bGVzLmNsZWFyKCk7Ci0gICAgbV9r
ZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzLmNsZWFyKCk7CiAgICAgbV9tYXRjaGVk
UnVsZVRyYW5zZmVySW5kZXggPSAwOwogfQogCkBAIC0yODMsMTkgKzI4MiwxMSBAQCB2b2lkIEVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKQogICAg
ICAgICBhdXRvJiBzdHlsZVNjb3BlID0gU2NvcGU6OmZvck5vZGUoKnNsb3QpOwogICAgICAgICBp
ZiAoIXN0eWxlU2NvcGUucmVzb2x2ZXIoKS5ydWxlU2V0cygpLmlzQXV0aG9yU3R5bGVEZWZpbmVk
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgLy8gRmluZCBvdXQgaWYgdGhlcmUg
YXJlIGFueSA6OnNsb3R0ZWQgcnVsZXMgaW4gdGhlIHNoYWRvdyB0cmVlIG1hdGNoaW5nIHRoZSBj
dXJyZW50IHNsb3QuCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHJlYWxseSBwYXJ0IG9mIHRo
ZSBzbG90IHN0eWxlIGFuZCBjb3VsZCBiZSBjYWNoZWQgd2hlbiByZXNvbHZpbmcgaXQuCi0gICAg
ICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIGNvbGxlY3Rvcigqc2xvdCwgc3R5bGVTY29wZS5yZXNv
bHZlcigpLnJ1bGVTZXRzKCkuYXV0aG9yU3R5bGUoKSwgbnVsbHB0cik7Ci0gICAgICAgIGF1dG8g
c2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcyA9IGNvbGxlY3Rvci5jb2xsZWN0U2xvdHRlZFBzZXVk
b0VsZW1lbnRSdWxlc0ZvclNsb3QoKTsKLSAgICAgICAgaWYgKCFzbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIC8vIE1hdGNoIGluIHRoZSBj
dXJyZW50IHNjb3BlLgotICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pc01hdGNo
aW5nU2xvdHRlZFBzZXVkb0VsZW1lbnRzLCB0cnVlKTsKIAotICAgICAgICBNYXRjaFJlcXVlc3Qg
c2NvcGVNYXRjaFJlcXVlc3QobnVsbHB0ciwgc3R5bGVTY29wZU9yZGluYWwpOwotICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qoc2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcy5nZXQo
KSwgc2NvcGVNYXRjaFJlcXVlc3QpOworICAgICAgICBhdXRvJiBzY29wZUF1dGhvclJ1bGVzID0g
c3R5bGVTY29wZS5yZXNvbHZlcigpLnJ1bGVTZXRzKCkuYXV0aG9yU3R5bGUoKTsKIAotICAgICAg
ICBtX2tlZXBBbGl2ZVNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMuYXBwZW5kKFdURk1vdmUoc2xv
dHRlZFBzZXVkb0VsZW1lbnRSdWxlcykpOworICAgICAgICBNYXRjaFJlcXVlc3Qgc2NvcGVNYXRj
aFJlcXVlc3QoJnNjb3BlQXV0aG9yUnVsZXMsIHN0eWxlU2NvcGVPcmRpbmFsKTsKKyAgICAgICAg
Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KCZzY29wZUF1dGhvclJ1bGVzLnNsb3R0ZWRQc2V1
ZG9FbGVtZW50UnVsZXMoKSwgc2NvcGVNYXRjaFJlcXVlc3QpOwogICAgIH0KIH0KIApAQCAtMzQ3
LDI5ICszMzgsNiBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdT
aGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoY29uc3QgTWF0Y2hSZQogICAgICAgICBjb2xsZWN0TWF0
Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMuc2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKHBzZXVkb0lk
KSwgbWF0Y2hSZXF1ZXN0KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFJ1bGVTZXQ6OlJ1bGVEYXRh
VmVjdG9yPiBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdFNsb3R0ZWRQc2V1ZG9FbGVtZW50
UnVsZXNGb3JTbG90KCkKLXsKLSAgICBBU1NFUlQoaXM8SFRNTFNsb3RFbGVtZW50PihlbGVtZW50
KCkpKTsKLQotICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7Ci0KLSAgICBtX21vZGUgPSBTZWxlY3Rv
ckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxlczsKLQotICAgIC8vIE1hdGNoIGdsb2JhbCBh
dXRob3IgcnVsZXMuCi0gICAgTWF0Y2hSZXF1ZXN0IG1hdGNoUmVxdWVzdChtX2F1dGhvclN0eWxl
LnB0cigpKTsKLSAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoJm1fYXV0aG9yU3R5bGUt
PnNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKLQotICAgIGlmICht
X21hdGNoZWRSdWxlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBhdXRv
IHJ1bGVEYXRhVmVjdG9yID0gbWFrZVVuaXF1ZTxSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvcj4oKTsK
LSAgICBydWxlRGF0YVZlY3Rvci0+cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX21hdGNoZWRSdWxl
cy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgbWF0Y2hlZFJ1bGUgOiBtX21hdGNoZWRSdWxlcykK
LSAgICAgICAgcnVsZURhdGFWZWN0b3ItPnVuY2hlY2tlZEFwcGVuZCgqbWF0Y2hlZFJ1bGUucnVs
ZURhdGEpOwotCi0gICAgcmV0dXJuIHJ1bGVEYXRhVmVjdG9yOwotfQotCiB2b2lkIEVsZW1lbnRS
dWxlQ29sbGVjdG9yOjptYXRjaFVzZXJSdWxlcygpCiB7CiAgICAgaWYgKCFtX3VzZXJTdHlsZSkK
QEAgLTQwNywxOSArMzc1LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1
bGVzKGNvbnN0IFJ1bGVTZXQmIHJ1bGVzKQogICAgIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxl
cyhEZWNsYXJhdGlvbk9yaWdpbjo6VXNlckFnZW50KTsKIH0KIAotc3RhdGljIGNvbnN0IENTU1Nl
bGVjdG9yKiBmaW5kU2xvdHRlZFBzZXVkb0VsZW1lbnRTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rv
ciogc2VsZWN0b3IpCi17Ci0gICAgZm9yICg7IHNlbGVjdG9yOyBzZWxlY3RvciA9IHNlbGVjdG9y
LT50YWdIaXN0b3J5KCkpIHsKLSAgICAgICAgaWYgKHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNlbGVjdG9yLT5wc2V1ZG9FbGVtZW50VHlwZSgpID09
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50U2xvdHRlZCkgewotICAgICAgICAgICAgaWYgKGF1
dG8qIGxpc3QgPSBzZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGxpc3QtPmZpcnN0KCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH07
Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLWlubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVj
dG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkJiBzcGVj
aWZpY2l0eSkKK2lubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhj
b25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkJiBzcGVjaWZpY2l0eSwgU2NvcGVPcmRp
bmFsIHN0eWxlU2NvcGVPcmRpbmFsKQogewogICAgIC8vIFdlIGtub3cgYSBzdWZmaWNpZW50bHkg
c2ltcGxlIHNpbmdsZSBwYXJ0IHNlbGVjdG9yIG1hdGNoZXMgc2ltcGx5IGJlY2F1c2Ugd2UgZm91
bmQgaXQgZnJvbSB0aGUgcnVsZSBoYXNoIHdoZW4gZmlsdGVyaW5nIHRoZSBSdWxlU2V0LgogICAg
IC8vIFRoaXMgaXMgbGltaXRlZCB0byBIVE1MIG9ubHkgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVj
ayB0aGUgbmFtZXNwYWNlIChiZWNhdXNlIG9mIHRhZyBuYW1lIG1hdGNoKS4KQEAgLTQ3NSw2ICs0
MzEsNyBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29u
c3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogICAgIGNvbnRleHQubmFtZUZvckhpZ2h0
bGlnaHRQc2V1ZG9FbGVtZW50ID0gbV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5oaWdobGlnaHROYW1l
OwogICAgIGNvbnRleHQuaXNNYXRjaGluZ0hvc3RQc2V1ZG9DbGFzcyA9IG1faXNNYXRjaGluZ0hv
c3RQc2V1ZG9DbGFzczsKICAgICBjb250ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgPSBt
X3NoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUuZ2V0KCk7CisgICAgY29udGV4dC5zdHlsZVNjb3Bl
T3JkaW5hbCA9IHN0eWxlU2NvcGVPcmRpbmFsOwogCiAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXM7
CiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCkBAIC00ODUsMTUgKzQ0Miw5IEBAIGlubGlu
ZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYg
cnVsZURhdGEsIHVuc2lnbmVkCiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAg
ICAgewogICAgICAgICBhdXRvKiBzZWxlY3RvciA9IHJ1bGVEYXRhLnNlbGVjdG9yKCk7Ci0gICAg
ICAgIGF1dG8qIHNlbGVjdG9yRm9yTWF0Y2hpbmcgPSBzZWxlY3RvcjsKLSAgICAgICAgaWYgKG1f
aXNNYXRjaGluZ1Nsb3R0ZWRQc2V1ZG9FbGVtZW50cykgewotICAgICAgICAgICAgc2VsZWN0b3JG
b3JNYXRjaGluZyA9IGZpbmRTbG90dGVkUHNldWRvRWxlbWVudFNlbGVjdG9yKHJ1bGVEYXRhLnNl
bGVjdG9yKCkpOwotICAgICAgICAgICAgaWYgKCFzZWxlY3RvckZvck1hdGNoaW5nKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICAvLyBTbG93IHBhdGgu
CiAgICAgICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIoZWxlbWVudCgpLmRvY3Vt
ZW50KCkpOwotICAgICAgICBzZWxlY3Rvck1hdGNoZXMgPSBzZWxlY3RvckNoZWNrZXIubWF0Y2go
KnNlbGVjdG9yRm9yTWF0Y2hpbmcsIGVsZW1lbnQoKSwgY29udGV4dCk7CisgICAgICAgIHNlbGVj
dG9yTWF0Y2hlcyA9IHNlbGVjdG9yQ2hlY2tlci5tYXRjaCgqc2VsZWN0b3IsIGVsZW1lbnQoKSwg
Y29udGV4dCk7CiAgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMpCiAgICAgICAgICAgICBzcGVj
aWZpY2l0eSA9IHNlbGVjdG9yLT5jb21wdXRlU3BlY2lmaWNpdHkoKTsKICAgICB9CkBAIC01MzUs
NyArNDg2LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVs
ZXNGb3JMaXN0KGNvbnN0IFJ1bGVTZXQ6OlJ1bGVEYXRhVmUKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5OwotICAgICAgICBpZiAocnVsZU1hdGNo
ZXMocnVsZURhdGEsIHNwZWNpZmljaXR5KSkKKyAgICAgICAgaWYgKHJ1bGVNYXRjaGVzKHJ1bGVE
YXRhLCBzcGVjaWZpY2l0eSwgbWF0Y2hSZXF1ZXN0LnN0eWxlU2NvcGVPcmRpbmFsKSkKICAgICAg
ICAgICAgIGFkZE1hdGNoZWRSdWxlKHJ1bGVEYXRhLCBzcGVjaWZpY2l0eSwgbWF0Y2hSZXF1ZXN0
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3Iu
aAppbmRleCA2OTI0ZDdhNmI3NjZhZGE5NWY0N2E4MTMyZmZjMzQ1ZDgxOTcwYmJlLi5jZDM1MjU0
NDQ5MjBmYTcyZDAzMGEyOWQ1N2IwOWVlZmFiYzE3ZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKQEAgLTEzNSwxMSArMTM1LDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBTaGFk
b3dSb290JiBzY29wZVNoYWRvd1Jvb3QpOwogCiAgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdTaGFk
b3dQc2V1ZG9FbGVtZW50UnVsZXMoY29uc3QgTWF0Y2hSZXF1ZXN0Jik7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPFJ1bGVTZXQ6OlJ1bGVEYXRhVmVjdG9yPiBjb2xsZWN0U2xvdHRlZFBzZXVkb0VsZW1l
bnRSdWxlc0ZvclNsb3QoKTsKIAogICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nUnVsZXMoY29uc3Qg
TWF0Y2hSZXF1ZXN0Jik7CiAgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29u
c3QgUnVsZVNldDo6UnVsZURhdGFWZWN0b3IqLCBjb25zdCBNYXRjaFJlcXVlc3QmKTsKLSAgICBi
b29sIHJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiwgdW5zaWduZWQmIHNwZWNpZmljaXR5KTsK
KyAgICBib29sIHJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiwgdW5zaWduZWQmIHNwZWNpZmlj
aXR5LCBTY29wZU9yZGluYWwpOwogCiAgICAgdm9pZCBzb3J0TWF0Y2hlZFJ1bGVzKCk7CiAKQEAg
LTE2MywxMCArMTYyLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcmludFN0eWxlIHsgZmFs
c2UgfTsKICAgICBQc2V1ZG9FbGVtZW50UmVxdWVzdCBtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0IHsg
UHNldWRvSWQ6Ok5vbmUgfTsKICAgICBTZWxlY3RvckNoZWNrZXI6Ok1vZGUgbV9tb2RlIHsgU2Vs
ZWN0b3JDaGVja2VyOjpNb2RlOjpSZXNvbHZpbmdTdHlsZSB9OwotICAgIGJvb2wgbV9pc01hdGNo
aW5nU2xvdHRlZFBzZXVkb0VsZW1lbnRzIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNNYXRjaGlu
Z0hvc3RQc2V1ZG9DbGFzcyB7IGZhbHNlIH07CiAgICAgUmVmUHRyPGNvbnN0IEVsZW1lbnQ+IG1f
c2hhZG93SG9zdEluUGFydFJ1bGVTY29wZTsKLSAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ1
bGVTZXQ6OlJ1bGVEYXRhVmVjdG9yPj4gbV9rZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVudFJ1
bGVzOwogCiAgICAgVmVjdG9yPE1hdGNoZWRSdWxlLCA2ND4gbV9tYXRjaGVkUnVsZXM7CiAgICAg
c2l6ZV90IG1fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
UnVsZUZlYXR1cmUuY3BwCmluZGV4IDc0MWU0OWNjZmY4MGUwYWNlMTM1NDQ2OWYzZDIyZmVmMGJj
NTY0ZTEuLmJlMzNlZjIzZTQ1NmNjZDY2ZWZkMDU5YmNlMDIzYzUxYThhMDAyM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKQEAgLTg2LDYgKzg2LDkgQEAgTWF0Y2hFbGVtZW50
IFJ1bGVGZWF0dXJlU2V0Ojpjb21wdXRlTmV4dE1hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQgbWF0
Y2hFbGVtZW50LAogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50Ogog
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDoKICAgICAgICAg
ICAgIHJldHVybiBNYXRjaEVsZW1lbnQ6Okhvc3Q7CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlNoYWRvd1Nsb3R0ZWQ6CisgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFjY3VyYXRl
IGludmFsaWRhdGlvbi4KKyAgICAgICAgICAgIHJldHVybiBtYXRjaEVsZW1lbnQ7CiAgICAgICAg
IH07CiAgICAgfQogICAgIHN3aXRjaCAocmVsYXRpb24pIHsKQEAgLTEwMCw2ICsxMDMsOSBAQCBN
YXRjaEVsZW1lbnQgUnVsZUZlYXR1cmVTZXQ6OmNvbXB1dGVOZXh0TWF0Y2hFbGVtZW50KE1hdGNo
RWxlbWVudCBtYXRjaEVsZW1lbnQsCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2Vu
ZGFudDoKICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDoKICAgICAg
ICAgcmV0dXJuIE1hdGNoRWxlbWVudDo6SG9zdDsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFk
b3dTbG90dGVkOgorICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFjY3VyYXRlIGludmFsaWRh
dGlvbi4KKyAgICAgICAgcmV0dXJuIG1hdGNoRWxlbWVudDsKICAgICB9OwogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBtYXRjaEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjU5MDk2Y2Qy
ZWFiNTBhNTEwMWM3ZWZkZGJiNzFiZjQ5YjJlZTMxMC4uNzZmOTNhNjNmNGIyOTgxMWMzMGE1YjA1
ZTBjNTkxNjg2ZTc4YWQyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTI3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IDo6YmVmb3Jl
IGFuZCA6OmFmdGVyIHBzZXVkbyBlbGVtZW50cyBhZnRlciA6OnNsb3R0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODIzNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAyMS0xMC0yNiAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbIEJpZ1N1ciB3azIgRGVidWcgYXJtNjQgXSBpbnNwZWN0b3IvYXVkaXQvcnVuLWFj
Y2Vzc2liaWxpdHkuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCA1MTc1NTcyYmRkNjIyYmJmOGEwN2QxYmM5OTE3NTAzZDUyNzk1NzU3Li4z
YTdkNTZjZTNkNDEyZDZiYjI4N2U5OTI5OGE0NjhlNmExMWMwOGI4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0xMC0yNyAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCA6OmJlZm9yZSBhbmQgOjph
ZnRlciBwc2V1ZG8gZWxlbWVudHMgYWZ0ZXIgOjpzbG90dGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyMzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIHRlc3RzIGZyb20gV1BUIHJl
cG8uCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3Qt
Y29udGV4dC1wYXJzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtcGFyc2luZy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtcGFy
c2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjb3BpbmcvaG9zdC1wYXJzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcva2V5ZnJhbWVzLTAwMS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hh
cmVkLXN0eWxlLWNhY2hlLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1zdHlsZS1jYWNoZS0w
MDEuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nv
cGluZy9zbG90dGVkLWxpbmstZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtcGFyc2luZy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvdzNjLWlt
cG9ydC5sb2c6CisKIDIwMjEtMTAtMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBDaGFuZ2luZyB0aGUgc3JjIGF0dHJpYnV0ZSBvZiB0aGUgPGltZz4gZWxlbWVu
dCBpbnNpZGUgYW4gSW1hZ2VEb2N1bWVudCBkb2VzIG5vdCB0cmlnZ2VyIGEgbG9hZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggODNiZjMyNzg2M2UzZTYzN2MxMDBjOTU2ZmMyYTg3ZGZiZDRjNDE4My4u
ZTM1NGU4MTg2Y2JmYjVkZjVlMjNjZmQ1OWMwYjg0Zjc4MzFhNTFiOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zMDk3LDcgKzMwOTcsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZGlzcGxheS9ydW4taW4vcnVuLWluLXRhYmxlLXJvdy1iZXR3ZWVuLQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWRpc3BsYXkvcnVuLWluL3J1bi1pbi10
ZXh0LWJldHdlZW4tMDA0LnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWRpc3BsYXkvcnVuLWluL3J1bi1pbi10ZXh0LWJldHdl
ZW4tMDA1LnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXBzZXVkby9wbGFjZWhvbGRlci1pbnB1dC1udW1iZXIuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNjb3Bpbmcvc2xvdHRlZC13aXRoLXBzZXVkby1lbGVtZW50Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0LWRlY29y
L3RleHQtZW1waGFzaXMtY29sb3ItMDAxLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQtZGVjb3IvdGV4dC1lbXBoYXNp
cy1wb3NpdGlvbi1hYm92ZS1sZWZ0LTAwMS54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0LWRlY29yL3RleHQtZW1waGFz
aXMtcG9zaXRpb24tYWJvdmUtbGVmdC0wMDIueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC0z
MjA4LDcgKzMyMDcsNiBAQCB3ZWJraXQub3JnL2IvMTkwMDMyIGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL3NjYWxlLXJvdGF0aW9uLXRyYW5zaXRpb24tb3ZlcmxhcAogd2Via2l0Lm9yZy9iLzE5
MDAzMiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi90cmFuc2xhdGUtc2NhbGUtdHJhbnNpdGlv
bi1vdmVybGFwLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xOTAwMzIgY29tcG9zaXRp
bmcvbGF5ZXItY3JlYXRpb24vdHJhbnNsYXRlLXRyYW5zaXRpb24tb3ZlcmxhcC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMTkwMDMyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1sb2dpY2FsL2FuaW1hdGlvbi0wMDMudGVudGF0aXZlLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8xOTAwMzIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjb3Bpbmcva2V5ZnJhbWVzLTAwMS5odG1sIFsgRmFpbHVyZSBdCiAKICMgRklYTUU6
IE5lZWQgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgZGF0YWF2YWlsYWJsZSBldmVudCB0byBz
dXBwb3J0IHRoZXNlIHRlc3RjYXNlcwogZmFzdC9tZWRpYWNhcHR1cmVmcm9tZWxlbWVudC9DYW52
YXNDYXB0dXJlTWVkaWFTdHJlYW0taW1hZ2ViaXRtYXByZW5kZXJpbmdjb250ZXh0Lmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29w
aW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTVhYThh
NTdkMmNlZTc5NjU5NWNlMDE4ZDMzODdlZWNiZWVkYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
aG9zdC1jb250ZXh0LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitGQUlM
ICI6aG9zdC1jb250ZXh0KC5hKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmlu
ZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorRkFJTCAiOmhvc3QtY29udGV4
dChkaXYuYSkiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBt
YXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4KK1BBU1MgIjpob3N0LWNvbnRleHQiIHNob3VsZCBi
ZSBhbiBpbnZhbGlkIHNlbGVjdG9yCitQQVNTICI6aG9zdC1jb250ZXh0KCkiIHNob3VsZCBiZSBh
biBpbnZhbGlkIHNlbGVjdG9yCitQQVNTICI6aG9zdC1jb250ZXh0KC5hLCAuYikiIHNob3VsZCBi
ZSBhbiBpbnZhbGlkIHNlbGVjdG9yCitQQVNTICI6aG9zdC1jb250ZXh0KC5hICsgLmIpIiBzaG91
bGQgYmUgYW4gaW52YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QtY29udGV4dCguYSArIC5iLCAj
YyA+ICNkKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
aG9zdC1jb250ZXh0LXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTYwNTVlY2U2MzczM2U4YzU4YzZhZGQ2NjE1NjY1NzIzNTZkNjdhYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLmh0bWwKQEAgLTAsMCArMSwx
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+VGVzdCBwYXJzaW5nIG9mIHRoZSBob3N0LWNv
bnRleHQoKSBwc2V1ZG8tY2xhc3NlczwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2NvcGluZy8jc2VsZWN0b3JkZWYtaG9zdC1jb250
ZXh0Ij4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvY3NzL3N1cHBvcnQvcGFyc2luZy10ZXN0Y29tbW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoLmEpJyk7
CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoZGl2LmEpJyk7CisKKyAgdGVz
dF9pbnZhbGlkX3NlbGVjdG9yKCc6aG9zdC1jb250ZXh0Jyk7CisgIHRlc3RfaW52YWxpZF9zZWxl
Y3RvcignOmhvc3QtY29udGV4dCgpJyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3Qt
Y29udGV4dCguYSwgLmIpJyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3QtY29udGV4
dCguYSArIC5iKScpOworICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoJzpob3N0LWNvbnRleHQoLmEg
KyAuYiwgI2MgPiAjZCknKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1wYXJzaW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY29waW5nL2hvc3QtcGFyc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTU4YzI0OTMxMDJhY2MyYzc4YzJiOThiY2Y1MmRlODliNjdmZmFkMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y29waW5nL2hvc3QtcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1Mg
Ijpob3N0IiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QoLmEpIiBzaG91
bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QoZGl2LmEpIiBzaG91bGQgYmUgYSB2
YWxpZCBzZWxlY3RvcgorUEFTUyAiOmhvc3QoKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0
b3IKK0ZBSUwgIjpob3N0KC5hLCAuYikiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yIGFz
c2VydF90aHJvd3NfZG9tOiAiOmhvc3QoLmEsIC5iKSIgc2hvdWxkIHRocm93IGluIHF1ZXJ5U2Vs
ZWN0b3IgZnVuY3Rpb24gIigpID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpIiBk
aWQgbm90IHRocm93CitQQVNTICI6aG9zdCguYSArIC5iKSIgc2hvdWxkIGJlIGFuIGludmFsaWQg
c2VsZWN0b3IKK1BBU1MgIjpob3N0KC5hICsgLmIsICNjID4gI2QpIiBzaG91bGQgYmUgYW4gaW52
YWxpZCBzZWxlY3RvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2hv
c3QtcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOTQzM2FmNDgzYTk0YTQzYzcwYTdmNDI5YTIy
MWY3NTlkMGM4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LXBhcnNpbmcuaHRtbApAQCAt
MCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5UZXN0IHBhcnNpbmcgb2YgdGhl
IDpob3N0L2hvc3QoKSBwc2V1ZG8tY2xhc3NlczwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2NvcGluZy8jc2VsZWN0b3JkZWYtaG9z
dC1mdW5jdGlvbiI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2Nzcy9zdXBwb3J0L3BhcnNpbmctdGVzdGNvbW1vbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCc6aG9zdCcpOworICB0
ZXN0X3ZhbGlkX3NlbGVjdG9yKCc6aG9zdCguYSknKTsKKyAgdGVzdF92YWxpZF9zZWxlY3Rvcign
Omhvc3QoZGl2LmEpJyk7CisKKyAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCc6aG9zdCgpJyk7Cisg
IHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhvc3QoLmEsIC5iKScpOworICB0ZXN0X2ludmFsaWRf
c2VsZWN0b3IoJzpob3N0KC5hICsgLmIpJyk7CisgIHRlc3RfaW52YWxpZF9zZWxlY3RvcignOmhv
c3QoLmEgKyAuYiwgI2MgPiAjZCknKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcva2V5ZnJh
bWVzLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9rZXlmcmFtZXMtMDAxLWV4cGVjdGVkLnR4dAppbmRl
eCA2YmM4ZGNkNzIxNjU5NjQxMGQ2M2EyNDlhZjhkNWQ2NDdmYTI5YmJlLi4yZjg3M2QxMjZjOGNk
NTYwNWI5ZDk5YTliOGQ1YjllY2Y0ZTZlM2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9rZXlmcmFtZXMtMDAx
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9rZXlmcmFtZXMtMDAxLWV4cGVjdGVkLnR4dApAQCAtMSwz
ICsxLDMgQEAKIAotRkFJTCBAa2V5ZnJhbWVzIGFwcGxpZXMgaW4gdGhlIHNoYWRvdyB0cmVlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIEBrZXlmcmFtZXMgYXBwbGll
cyBpbiB0aGUgc2hhZG93IHRyZWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1zdHls
ZS1jYWNoZS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXNoYXJlZC1zdHlsZS1jYWNoZS0w
MDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzMjNiZjNhN2IxYmIyODVmNTI3NmM0MmVkZWM0
MjNhNzJjZDI4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNh
Y2hlLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgU2hhcmVkIHN0eWxl
IGludmFsaWRhdGlvbiB3aXRoIHJlbW92YWxzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3NoYWRvdy1zaGFy
ZWQtc3R5bGUtY2FjaGUtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNhY2hlLTAw
MS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU4MGI0ZDFjNDJhYWEyMzM3NzE1YjdhNzAyNjBkZGMzZjNlMzY4
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctc2hhcmVkLXN0eWxlLWNhY2hlLTAwMS5o
dG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPlNoYXJlZCBzdHlsZSBpbnZhbGlkYXRpb24gd2l0aCByZW1vdmFsczwvdGl0
bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MDcxMTYiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXNjb3BpbmcvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiI+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0iaHR0cHM6Ly9tb3ppbGxhLm9yZyIgdGl0bGU9Ik1v
emlsbGEiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD0iaG9zdC0xIj48L2Rpdj4KKzxkaXYgaWQ9Imhvc3QtMiI+PC9kaXY+Cis8c2Ny
aXB0PgorY29uc3QgSU5JVElBTExZX0NPTU1PTl9TVFlMRSA9IGA8c3R5bGU+Omhvc3QgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQgIWltcG9ydGFudCB9PC9zdHlsZT5gOworbGV0IGhlbHBlciA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNob3N0LTEiKTsKK2xldCBob3N0ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI2hvc3QtMiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBoZWxwZXIuYXR0
YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iIH0pLmlubmVySFRNTCA9IElOSVRJQUxMWV9DT01NT05f
U1RZTEU7CisgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShoZWxwZXIpLmJhY2tncm91
bmRDb2xvciwgInJnYigyNTUsIDAsIDApIiwgIkNvbW1vbiBzdHlsZSBzaG91bGQgYXBwbHkgdG8g
aGVscGVyIik7CisKKyAgaG9zdC5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSkuaW5uZXJI
VE1MID0gSU5JVElBTExZX0NPTU1PTl9TVFlMRTsKKyAgYXNzZXJ0X2VxdWFscyhnZXRDb21wdXRl
ZFN0eWxlKGhvc3QpLmJhY2tncm91bmRDb2xvciwgInJnYigyNTUsIDAsIDApIiwgIkNvbW1vbiBz
dHlsZSBzaG91bGQgYXBwbHkgdG8gaG9zdCIpOworCisgIGhvc3Quc2hhZG93Um9vdC5pbm5lckhU
TUwgPSBgPHN0eWxlPjpob3N0IHsgYmFja2dyb3VuZC1jb2xvcjogbGltZTsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyB9PC9zdHlsZT5gOworICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVk
U3R5bGUoaG9zdCkuYmFja2dyb3VuZENvbG9yLCAicmdiKDAsIDI1NSwgMCkiLCAiQ29tbW9uIHN0
eWxlIHNob3VsZCBubyBsb25nZXIgYXBwbHkgdG8gaG9zdCIpOworfSk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zY29waW5nL3Nsb3R0ZWQtbGluay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLWxpbmst
ZXhwZWN0ZWQudHh0CmluZGV4IDRlZjcxYmI1MTY3ZDRjOGVjYWMwZjgwN2E0Yzg0ZjdkNDRjYTU3
N2MuLjc1N2I2NDE1YjFmMTI2MjIwNGU1NzZlMDJmOGVjZmRlODQwYzcwZDIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29w
aW5nL3Nsb3R0ZWQtbGluay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1saW5rLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIFRoaXMgbGluayBzaG91bGQgYmUgZ3JlZW4uCiAKLUZB
SUwgQ2hlY2sgdGhhdCB3ZSBtYXRjaCA6bGluayBhbmQgbm90IDp2aXNpdGVkIGZvciBzbG90dGVk
IGFuY2hvci4gYXNzZXJ0X2VxdWFsczogVW52aXNpdGVkIGxpbmsgc2hvdWxkIGJlIGdyZWVuLiBl
eHBlY3RlZCAicmdiKDAsIDEyOCwgMCkiIGJ1dCBnb3QgInJnYigyNTUsIDAsIDApIgorUEFTUyBD
aGVjayB0aGF0IHdlIG1hdGNoIDpsaW5rIGFuZCBub3QgOnZpc2l0ZWQgZm9yIHNsb3R0ZWQgYW5j
aG9yLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
c2xvdHRlZC1wYXJzaW5nLWV4cGVjdGVkLnR4dAppbmRleCAxZmIxYzQ0NzU3OWE2NmFkZThiOThk
NmEyMjAyZTE1YTNmODljMjlhLi5kZDI4NWZkNDU4YmI2MmRlNDVhYjEzNGIxNWQxYjUwMDhmOWE4
NWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5n
L3Nsb3R0ZWQtcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsNiBAQCBQQVNTICI6OnNs
b3R0ZWQoKilbYXR0cl0iIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNs
b3R0ZWQoKik6aG9zdCIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKIFBBU1MgIjo6c2xv
dHRlZCgqKTpob3N0KGRpdikiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6
OnNsb3R0ZWQoKik6aG92ZXIiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9yCi1QQVNTICI6
OnNsb3R0ZWQoKik6aXMoOmhvdmVyKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKLVBB
U1MgIjo6c2xvdHRlZCgqKTp3aGVyZSg6aG92ZXIpIiBzaG91bGQgYmUgYW4gaW52YWxpZCBzZWxl
Y3RvcgotUEFTUyAiOjpzbG90dGVkKCopOmlzKCNpZCkiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNl
bGVjdG9yCi1QQVNTICI6OnNsb3R0ZWQoKik6d2hlcmUoI2lkKSIgc2hvdWxkIGJlIGFuIGludmFs
aWQgc2VsZWN0b3IKIFBBU1MgIjo6c2xvdHRlZCgqKTpyZWFkLW9ubHkiIHNob3VsZCBiZSBhbiBp
bnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6OnNsb3R0ZWQoKikiIHNob3VsZCBi
ZSBhbiBpbnZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNsb3R0ZWQoKik6OmJlZm9yZTo6c2xvdHRl
ZCgqKSIgc2hvdWxkIGJlIGFuIGludmFsaWQgc2VsZWN0b3IKQEAgLTE5LDEwICsxNSwxNiBAQCBQ
QVNTICI6OnNsb3R0ZWQoKikiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCiBQQVNTICI6OnNs
b3R0ZWQoZGl2KSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKIFBBU1MgIjo6c2xvdHRlZChb
YXR0cl06aG92ZXIpIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgogUEFTUyAiOjpzbG90dGVk
KDpub3QoLmEpKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IKLUZBSUwgIjo6c2xvdHRlZCgq
KTo6YmVmb3JlIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3Qg
bWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uCi1GQUlMICI6OnNsb3R0ZWQoKik6OmFmdGVyIiBz
aG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4
cGVjdGVkIHBhdHRlcm4uCitGQUlMICI6OnNsb3R0ZWQoKik6aXMoKSIgc2hvdWxkIGJlIGEgdmFs
aWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJu
LgorRkFJTCAiOjpzbG90dGVkKCopOmlzKDpob3ZlcikiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVj
dG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4KK0ZBSUwg
Ijo6c2xvdHRlZCgqKTppcygjaWQpIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3Ry
aW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uCitGQUlMICI6OnNsb3R0ZWQo
Kik6d2hlcmUoKSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90
IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorRkFJTCAiOjpzbG90dGVkKCopOndoZXJlKDpo
b3ZlcikiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yIFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRj
aCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4KK0ZBSUwgIjo6c2xvdHRlZCgqKTp3aGVyZSgjaWQpIiBz
aG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4
cGVjdGVkIHBhdHRlcm4uCitQQVNTICI6OnNsb3R0ZWQoKik6OmJlZm9yZSIgc2hvdWxkIGJlIGEg
dmFsaWQgc2VsZWN0b3IKK1BBU1MgIjo6c2xvdHRlZCgqKTo6YWZ0ZXIiIHNob3VsZCBiZSBhIHZh
bGlkIHNlbGVjdG9yCiBGQUlMICI6OnNsb3R0ZWQoKik6OnBsYWNlaG9sZGVyIiBzaG91bGQgYmUg
YSB2YWxpZCBzZWxlY3RvciBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBh
dHRlcm4uCi1GQUlMICI6OnNsb3R0ZWQoKik6Om1hcmtlciIgc2hvdWxkIGJlIGEgdmFsaWQgc2Vs
ZWN0b3IgVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorUEFT
UyAiOjpzbG90dGVkKCopOjptYXJrZXIiIHNob3VsZCBiZSBhIHZhbGlkIHNlbGVjdG9yCiBQQVNT
ICI6OnNsb3R0ZWQoKik6OmZpcnN0LWxpbmUiIHNob3VsZCBiZSBhbiBpbnZhbGlkIHNlbGVjdG9y
CiBQQVNTICI6OnNsb3R0ZWQoKik6OmZpcnN0LWxldHRlciIgc2hvdWxkIGJlIGFuIGludmFsaWQg
c2VsZWN0b3IKIFBBU1MgIjo6c2xvdHRlZCgqKTo6c2VsZWN0aW9uIiBzaG91bGQgYmUgYW4gaW52
YWxpZCBzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2xvdHRlZC1wYXJzaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9z
bG90dGVkLXBhcnNpbmcuaHRtbAppbmRleCBmMDA2MmM4Njc0NGYwN2ExNTIyYjE2NGU0NTNkMjZj
ODRhZTJmOTQ4Li4yNWIwMDMwOTFmYWRiMDA0YjkwZjUyZWMxYmE0MTc5YmYxYTIyMGM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zbG90dGVkLXBhcnNpbmcu
aHRtbApAQCAtMTcsMTAgKzE3LDYgQEAKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0
ZWQoKik6aG9zdCIpOwogICB0ZXN0X2ludmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTpob3N0
KGRpdikiKTsKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aG92ZXIiKTsK
LSAgdGVzdF9pbnZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6aXMoOmhvdmVyKSIpOwotICB0
ZXN0X2ludmFsaWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTp3aGVyZSg6aG92ZXIpIik7Ci0gIHRl
c3RfaW52YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOmlzKCNpZCkiKTsKLSAgdGVzdF9pbnZh
bGlkX3NlbGVjdG9yKCI6OnNsb3R0ZWQoKik6d2hlcmUoI2lkKSIpOwogICB0ZXN0X2ludmFsaWRf
c2VsZWN0b3IoIjo6c2xvdHRlZCgqKTpyZWFkLW9ubHkiKTsKICAgdGVzdF9pbnZhbGlkX3NlbGVj
dG9yKCI6OnNsb3R0ZWQoKik6OnNsb3R0ZWQoKikiKTsKICAgdGVzdF9pbnZhbGlkX3NlbGVjdG9y
KCI6OnNsb3R0ZWQoKik6OmJlZm9yZTo6c2xvdHRlZCgqKSIpOwpAQCAtMzEsNiArMjcsMTQgQEAK
ICAgdGVzdF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKFthdHRyXTpob3ZlcikiKTsKICAgdGVz
dF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKDpub3QoLmEpKSIpOwogCisgIHRlc3RfdmFsaWRf
c2VsZWN0b3IoIjo6c2xvdHRlZCgqKTppcygpIik7CisgIHRlc3RfdmFsaWRfc2VsZWN0b3IoIjo6
c2xvdHRlZCgqKTppcyg6aG92ZXIpIiwgIjo6c2xvdHRlZCgqKTppcygpIik7CisgIHRlc3RfdmFs
aWRfc2VsZWN0b3IoIjo6c2xvdHRlZCgqKTppcygjaWQpIiwgIjo6c2xvdHRlZCgqKTppcygpIik7
CisKKyAgdGVzdF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOndoZXJlKCkiKTsKKyAgdGVz
dF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOndoZXJlKDpob3ZlcikiLCAiOjpzbG90dGVk
KCopOndoZXJlKCkiKTsKKyAgdGVzdF92YWxpZF9zZWxlY3RvcigiOjpzbG90dGVkKCopOndoZXJl
KCNpZCkiLCAiOjpzbG90dGVkKCopOndoZXJlKCkiKTsKKwogICAvLyBBbGxvdyB0cmVlLWFiaWRp
bmcgcHNldWRvIGVsZW1lbnRzIGFmdGVyIDo6c2xvdHRlZAogICB0ZXN0X3ZhbGlkX3NlbGVjdG9y
KCI6OnNsb3R0ZWQoKik6OmJlZm9yZSIpOwogICB0ZXN0X3ZhbGlkX3NlbGVjdG9yKCI6OnNsb3R0
ZWQoKik6OmFmdGVyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3czYy1p
bXBvcnQubG9nCmluZGV4IDhhMjBhNGRlNjVhZWYxYzU0MDU0MGU0ODgyZThmNWU3MjQ2Y2VmNjUu
LmM5YzMxNDdhODYyYWFhOGZmYWJjNzZiZTE4MTViNGMzMzZlZjg0NWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5n
L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3czYy1pbXBvcnQubG9nCkBAIC01Miw2ICs1Miw3IEBA
IExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjb3BpbmcvY3NzLXNjb3Bpbmctc2hhZG93LXdpdGgtcnVsZXMtbm8tc3R5
bGUtbGVhay1leHBlY3RlZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvY3NzLXNjb3Bpbmctc2hhZG93LXdpdGgtcnVsZXMt
bm8tc3R5bGUtbGVhay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvY3NzLXNjb3Bpbmctc2hhZG93LXdpdGgtcnVsZXMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y29waW5nL2hvc3QtY29udGV4dC1wYXJzaW5nLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtc3BlY2lm
aWNpdHktMDAxLWV4cGVjdGVkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtc3BlY2lmaWNpdHktMDAx
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZy9ob3N0LWNvbnRleHQtc3BlY2lmaWNpdHktMDAyLWV4cGVjdGVkLmh0bWwKQEAg
LTY5LDYgKzcwLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LW11bHRpcGxlLTAwMS5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
b3BpbmcvaG9zdC1uZXN0ZWQtMDAxLWV4cGVjdGVkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9ob3N0LW5lc3RlZC0wMDEu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY29waW5nL2hvc3QtcGFyc2luZy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1zbG90dGVkLTAwMS1leHBlY3Rl
ZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXNjb3BpbmcvaG9zdC1zbG90dGVkLTAwMS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvaG9zdC1zcGVjaWZpY2l0eS0w
MDItZXhwZWN0ZWQuaHRtbApAQCAtMTI1LDYgKzEyNyw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcv
c2hhZG93LXJlYXNzaWduLWR5bmFtaWMtMDA0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9zaGFkb3ctcm9vdC1pbnNlcnQt
aW50by1kb2N1bWVudC1leHBlY3RlZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3Bpbmcvc2hhZG93LXJvb3QtaW5zZXJ0LWludG8t
ZG9jdW1lbnQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY29waW5nL3NoYWRvdy1zaGFyZWQtc3R5bGUtY2FjaGUtMDAxLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGlu
Zy9zbG90LW5vbi1odG1sLWRpc3BsYXktdmFsdWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL3Nsb3R0ZWQtaW52YWxpZGF0
aW9uLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2NvcGluZy9zbG90dGVkLWxpbmsuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>