<?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>198091</bug_id>
          
          <creation_ts>2019-05-21 15:50:06 -0700</creation_ts>
          <short_desc>Layer flashing and poor perf during scrolling of message list on gmail.com and hotmail.com - overlap testing needs to constrained to clipping scopes</short_desc>
          <delta_ts>2019-05-21 17:13:08 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1538021</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-21 15:50:06 -0700</bug_when>
    <thetext>Layer flashing and poor perf during scrolling of message list on gmail.com and hotmail.com - overlap testing needs to constrained to clipping scopes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538036</commentid>
    <comment_count>1</comment_count>
      <attachid>370354</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-21 16:27:32 -0700</bug_when>
    <thetext>Created attachment 370354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538037</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-21 16:28:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/49403082&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538052</commentid>
    <comment_count>3</comment_count>
      <attachid>370354</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-21 16:53:21 -0700</bug_when>
    <thetext>Comment on attachment 370354
Patch

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

&gt; Source/WebCore/rendering/LayerOverlapMap.cpp:180
&gt; +    auto* clippingScope = findClippingScopeForLayers(enclosingClippingLayers);
&gt; +    if (!clippingScope)
&gt; +        return false;

Does this happen and what does it mean if it does? Could we assert here instead?

&gt; Source/WebCore/rendering/LayerOverlapMap.cpp:246
&gt; +OverlapMapContainer::ClippingScope* OverlapMapContainer::findClippingScopeForLayers(const Vector&lt;LayerOverlapMap::LayerAndBounds&gt;&amp; enclosingClippingLayers) const
&gt; +{
&gt; +    ASSERT(enclosingClippingLayers.size());
&gt; +    ASSERT(enclosingClippingLayers[0].layer.isRenderViewLayer());
&gt; +
&gt; +    const auto* currScope = &amp;m_rootScope;
&gt; +    for (unsigned i = 1; i &lt; enclosingClippingLayers.size(); ++i) {
&gt; +        auto&amp; scopeLayerAndBounds = enclosingClippingLayers[i];
&gt; +        auto* childScope = currScope-&gt;childWithLayer(scopeLayerAndBounds.layer);
&gt; +        if (!childScope)
&gt; +            return nullptr;
&gt; +
&gt; +        currScope = childScope;
&gt; +    }
&gt; +
&gt; +    return const_cast&lt;ClippingScope*&gt;(currScope);

As discussed, maybe this can be replaced with a side hashmap? That might make the code easier to follow and avoid passing the full enclosingClippingLayers stack.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1811
&gt; +    for (const auto* currLayer = layer.parent(); currLayer; currLayer = currLayer-&gt;parent()) {

Not a fan of the &apos;currFoo&apos; naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538062</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-21 17:13:08 -0700</bug_when>
    <thetext>https://trac.webkit.org/r245602</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370354</attachid>
            <date>2019-05-21 16:27:32 -0700</date>
            <delta_ts>2019-05-21 16:53:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198091-20190521162731.patch</filename>
            <type>text/plain</type>
            <size>66175</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyM2QwZTkxZGUxZjNl
ZGExNjA0YzgxZDM0MmRjNzM1MTM0NTk3Ny4uOGM2NmVkNWI2NjU3N2NjYzllZDUyODhkZGNkMzk2
ZDgzNmE5YWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE5LTA1LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIExheWVyIGZsYXNo
aW5nIGFuZCBwb29yIHBlcmYgZHVyaW5nIHNjcm9sbGluZyBvZiBtZXNzYWdlIGxpc3Qgb24gZ21h
aWwuY29tIGFuZCBob3RtYWlsLmNvbSAtIG92ZXJsYXAgdGVzdGluZyBuZWVkcyB0byBjb25zdHJh
aW5lZCB0byBjbGlwcGluZyBzY29wZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5ODA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk0MDMwODI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAg
ICBXaGVuIG92ZXJmbG93OnNjcm9sbCBpcyBzY3JvbGxlZCBhc3luY2hyb25vdXNseSwgd2UgbmVl
ZCB0byBoYXZlIGFscmVhZHkgY3JlYXRlZCBjb21wb3NpdGluZyBsYXllcnMgd2hlcmUgbmVjZXNz
YXJ5CisgICAgICAgIGZvciBjbGlwcGVkLW91dCBsYXllcnMgaW4gdGhlIHNjcm9sbGVkIGNvbnRl
bnQgc28gdGhhdCB3ZSBoYXZlIHNvbWV0aGluZyB0byByZXZlYWwuIFdlIGFsc28gaGF2ZSBlbnN1
cmUKKyAgICAgICAgdGhhdCBsYXllcnMgaW5zaWRlIHRoZSBzY3JvbGxlciAoYnV0IHNjcm9sbGVk
IG91dCBvZiB2aWV3KSBkb24ndCB0cmlnZ2VyIG92ZXJsYXAgd2l0aCBsYXllcnMgb3V0c2lkZSB0
aGUgc2Nyb2xsZXIuCisgICAgICAgIEFsbCB0aGlzIGhhcyB0byB3b3JrIHdoZW4gdGhlIGNvbnRh
aW5pbmcgYmxvY2sgaGllcmFyY2h5IChjbGlwcGluZy9zY3JvbGxpbmcpIGRvZXNuJ3QgbWF0Y2gg
dGhlIHBhaW50IG9yZGVyIGhpZXJhcmNoeSAoc3RydWN0dXJlCisgICAgICAgIG9mIHRoZSB6LW9y
ZGVyIGFuZCBjb21wb3NpdGluZyB0cmVlcykuCisKKyAgICAgICAgT3ZlcmxhcCB0ZXN0aW5nIHBy
ZXZpb3VzbHkgc2ltcGx5IHVzZWQgYSBsaXN0IG9mIHJlY3RhbmdsZXMgcGVyIGNvbXBvc2l0aW5n
IGNvbnRhaW5lciAoT3ZlcmxhcE1hcENvbnRhaW5lcikuIFRoaXMgaXMKKyAgICAgICAgYSBzZXJp
ZXMgb2YgbGF5ZXIgYm91bmRzLCBidWlsdCB1cCBhcyB3ZSB0cmF2ZXIgdGhlIGxheWVyIHRyZWUg
aW4gei1vcmRlci4gTGF5ZXJzIGNvbnRyaWJ1dGUgdG8gY29udGFpbmVyIE4tMiwgYW5kIHRlc3QK
KyAgICAgICAgYWdhaW5zdCBjb250YWluZXIgTi0xLgorICAgICAgICAKKyAgICAgICAgVG8gaGFu
ZGxlIG92ZXJsYXAgd2l0aCBub24tc3RhY2tpbmctY29udGV4dCBzY3JvbGxlcnMsIGludHJvZHVj
ZSB0aGUgY29uY2VwdCBvZiBhIENsaXBwaW5nU2NvcGUsIHdoaWNoIGVuY29tcGFzc2VzCisgICAg
ICAgIGEgc2V0IG9mIGxheWVycyBzaGFyaW5nIHRoZSBzYW1lIGNvbXBvc2l0ZWQtc2Nyb2xsaW5n
IGNvbnRhaW5pbmctYmxvY2sgYW5jZXN0b3IuIFdpdGhpbiBhIENsaXBwaW5nU2NvcGUsIGxheWVy
IGJvdW5kcworICAgICAgICBhcmUgY29tcHV0ZWQgdW5jbGlwcGVkLiBCZXR3ZWVuIHRoZW0sIGJv
dW5kcyBhcmUgdGVzdGVkIGNsaXBwZWQuCisgICAgICAgIAorICAgICAgICBDb25jZXB0dWFsbHks
IGVhY2ggT3ZlcmxhcE1hcENvbnRhaW5lciBoYXMgYSB0cmVlIG9mIENsaXBwaW5nU2NvcGVzIChy
ZWZsZWN0aW5nIHRoZSBjb250YWluaW5nLWJsb2NrIG9yZGVyIHRyZWUgb2YKKyAgICAgICAgY29t
cG9zaXRlZCBvdmVyZmxvdyBzY3JvbGwpLCBhbmQgcmVjdHMgYXJlIGFkZGVkIHRvIHRoZSBhcHBy
b3ByaWF0ZSBDbGlwcGluZ1Njb3BlLiBUaGlzIHRyZWUgaXMgY3VycmVudGx5IGFsd2F5cworICAg
ICAgICByb290LXJlbGF0aXZlOyB0aGUgcm9vdCBub2RlIGlzIHRoZSBSZW5kZXJWaWV3J3MgUmVu
ZGVyTGF5ZXIsIGFuZCB3aWxsIGFjY3VtdWxhdGUgdGhlIGJvdW5kcyBvZiBsYXllcnMgbm90IGlu
c2lkZQorICAgICAgICBjb21wb3NpdGVkIG92ZXJmbG93IHNjcm9sbCAoanVzdCBsaWtlIHRoZSBv
bGQgY29kZSkuCisgICAgICAgIAorICAgICAgICBXaGVuIGEgT3ZlcmxhcE1hcENvbnRhaW5lciBp
cyBwb3BwZWQsIHRoZSBsaXN0IG9mIHJlY3RhbmdsZXMgaW4gaXRzIENsaXBwaW5nU2NvcGUgdHJl
ZSBpcyBtZXJnZWQgd2l0aCB0aGF0IG9mIHRoZSBwcmV2aW91cworICAgICAgICBjb250YWluZXIu
CisKKyAgICAgICAgVGVzdHM6IGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNj
b3BlL25lc3RlZC1zY3JvbGxlci1vdmVybGFwLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0
aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJsYXAtY29uc3RyYWluZWQtaW5z
aWRlLXNjcm9sbGVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0
aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJsYXAtY29uc3RyYWluZWQtaW5zaWRlLXN0YWNraW5nLWNv
bnRleHQtc2Nyb2xsZXIuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvbGF5ZXItY3Jl
YXRpb24vY2xpcHBpbmctc2NvcGUvc2Nyb2xsZXItd2l0aC1uZWdhdGl2ZS16LWNoaWxkcmVuLmh0
bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNj
b3BlL3NoYXJlZC1sYXllcnMtaW4tc2Nyb2xsZXIuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5n
L0xheWVyT3ZlcmxhcE1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok92ZXJsYXBNYXBDb250YWluZXI6Ok92ZXJsYXBNYXBDb250YWluZXIp
OgorICAgICAgICAoV2ViQ29yZTo6T3ZlcmxhcE1hcENvbnRhaW5lcjo6Q2xpcHBpbmdTY29wZTo6
Q2xpcHBpbmdTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjpD
bGlwcGluZ1Njb3BlOjpjaGlsZFdpdGhMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpP
dmVybGFwTWFwQ29udGFpbmVyOjpDbGlwcGluZ1Njb3BlOjphZGRDaGlsZFdpdGhMYXllckFuZEJv
dW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjpDbGlwcGluZ1Nj
b3BlOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjpD
bGlwcGluZ1Njb3BlOjphcHBlbmRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok92ZXJsYXBNYXBD
b250YWluZXI6OmNsaXBwaW5nU2NvcGVDb250YWluaW5nTGF5ZXJDaGlsZFJlY3Vyc2l2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjpzY29wZUNvbnRhaW5pbmdMYXll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjpyb290U2Nv
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6T3ZlcmxhcE1hcENvbnRhaW5lcjo6cm9vdFNj
b3BlKToKKyAgICAgICAgKFdlYkNvcmU6Ok92ZXJsYXBNYXBDb250YWluZXI6OmFkZCk6CisgICAg
ICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjpvdmVybGFwc0xheWVycyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjptZXJnZUNsaXBwaW5nU2Nv
cGVzUmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok92ZXJsYXBNYXBDb250YWluZXI6OmFw
cGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpPdmVybGFwTWFwQ29udGFpbmVyOjplbnN1cmVDbGlw
cGluZ1Njb3BlRm9yTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok92ZXJsYXBNYXBDb250YWlu
ZXI6OmZpbmRDbGlwcGluZ1Njb3BlRm9yTGF5ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok92ZXJsYXBNYXBDb250YWluZXI6OnJlY3Vyc2l2ZU91dHB1dFRvU3RyZWFtIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok92ZXJsYXBNYXBDb250YWluZXI6OmR1bXAgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJPdmVybGFwTWFwOjpMYXllck92ZXJsYXBNYXApOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJPdmVybGFwTWFwOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJP
dmVybGFwTWFwOjpvdmVybGFwc0xheWVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ck92ZXJsYXBNYXA6OnB1c2hDb21wb3NpdGluZ0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllck92ZXJsYXBNYXA6OnBvcENvbXBvc2l0aW5nQ29udGFpbmVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok92ZXJsYXBNYXBDb250YWluZXI6OnVuaXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok92ZXJsYXBNYXBDb250YWluZXI6OnJlY3RMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvTGF5ZXJPdmVybGFwTWFwLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3RhdGU6OmFwcGVuZFNoYXJpbmdMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3Rh
dGU6OnVwZGF0ZUJlZm9yZURlc2NlbmRhbnRUcmF2ZXJzYWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVp
cmVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnRyYXZl
cnNlVW5jaGFuZ2VkU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmNvbXB1dGVFeHRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlc0Ns
aXBwaW5nU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nQ2xpcHBpbmdTY29wZXMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBN
YXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRh
dGVPdmVybGFwTWFwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bGF5ZXJPdmVybGFwcyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorCiAyMDE5LTA1LTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDb21wYXRpYmlsaXR5IG1vdXNlIGV2ZW50cyBh
cmVuJ3QgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBvbiBwb2ludGVyZG93
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheWVyT3ZlcmxhcE1hcC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5ZXJPdmVybGFwTWFwLmNwcAppbmRleCAz
MWY5NTUwOGRjZGJiNWE0MjZkOGZlMWMzYzk1OGJlYjE1ZDIxYTFmLi43OTRhNDgzNzJjM2U1Y2Jj
NzJlZTY1MTUwNDE1MDVjMmM0NzE3NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5ZXJPdmVybGFwTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGF5ZXJPdmVybGFwTWFwLmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiTGF5ZXJPdmVybGFwTWFwLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTU4LDMxICs1OSwyMTUgQEAgc3RydWN0IFJlY3RMaXN0IHsKICAgICB9CiB9OwogCitz
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVjdExp
c3QmIHJlY3RMaXN0KQoreworICAgIHRzIDw8ICJib3VuZHMgIiA8PCByZWN0TGlzdC5ib3VuZGlu
Z1JlY3QgPDwgIiAoIiA8PCByZWN0TGlzdC5yZWN0cyA8PCAiIHJlY3RzKSI7CisgICAgcmV0dXJu
IHRzOworfQorCisvLyBVc2VkIHRvIHN0b3JlIG92ZXJsYXAgcmVjdHMgaW4gYSB3YXkgdGhhdCB0
YWtlcyBvdmVyZmxvdyBpbnRvIGFjY291bnQuCisvLyBJdCBzdG9yZXMgYSB0cmVlIHdob3NlIG5v
ZGVzIGFyZSBsYXllcnMgd2l0aCBjb21wb3NpdGVkIHNjcm9sbGluZy4gVGhlIHRyZWUgaXMgYnVp
bHQgbGF6aWx5IGFzIGxheWVycyBhcmUgYWRkZWQgd2hvc2UgY29udGFpbmluZyBibG9jaworLy8g
Y2hhaW5zIGNvbnRhaW4gY29tcG9zaXRlZCBzY3JvbGxlcnMuIFRoZSB0cmVlIGFsd2F5cyBzdGFy
dHMgYXQgdGhlIHJvb3QgbGF5ZXIuCisvLyBDaGVja2luZyBmb3Igb3ZlcmxhcCBpbnZvbHZlcyBm
aW5kaW5nIHRoZSBub2RlIGZvciB0aGUgY2xpcHBpbmcgbGF5ZXIgZW5jbG9zaW5nIHRoZSBnaXZl
biBsYXllciAob3IgdGhlIHJvb3QpLAorLy8gYW5kIGNvbXBhcmluZyBhZ2FpbnN0IHRoZSBib3Vu
ZHMgb2YgZWFybGllciBzaWJsaW5ncy4KIGNsYXNzIE92ZXJsYXBNYXBDb250YWluZXIgewogcHVi
bGljOgotICAgIHZvaWQgYWRkKGNvbnN0IExheW91dFJlY3QmIGJvdW5kcykKKyAgICBPdmVybGFw
TWFwQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyJiByb290TGF5ZXIpCisgICAgICAgIDogbV9y
b290U2NvcGUocm9vdExheWVyKQogICAgIHsKLSAgICAgICAgbV9yZWN0TGlzdC5hcHBlbmQoYm91
bmRzKTsKICAgICB9CiAKLSAgICBib29sIG92ZXJsYXBzTGF5ZXJzKGNvbnN0IExheW91dFJlY3Qm
IGJvdW5kcykgY29uc3QKKyAgICAvLyBMYXllcnMgYXJlIGFkZGVkIGluIHotb3JkZXIsIGxhemls
eSBjcmVhdGluZyBjbGlwcGluZyBzY29wZXMgYXMgbmVjZXNzYXJ5LgorICAgIHZvaWQgYWRkKGNv
bnN0IFJlbmRlckxheWVyJiwgY29uc3QgTGF5b3V0UmVjdCYgYm91bmRzLCBjb25zdCBWZWN0b3I8
TGF5ZXJPdmVybGFwTWFwOjpMYXllckFuZEJvdW5kcz4mIGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJz
KTsKKyAgICBib29sIG92ZXJsYXBzTGF5ZXJzKGNvbnN0IFJlbmRlckxheWVyJiwgY29uc3QgTGF5
b3V0UmVjdCYgYm91bmRzLCBjb25zdCBWZWN0b3I8TGF5ZXJPdmVybGFwTWFwOjpMYXllckFuZEJv
dW5kcz4mIGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzKSBjb25zdDsKKyAgICB2b2lkIGFwcGVuZChz
dGQ6OnVuaXF1ZV9wdHI8T3ZlcmxhcE1hcENvbnRhaW5lcj4mJik7CisgICAgCisgICAgU3RyaW5n
IGR1bXAodW5zaWduZWQpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBDbGlwcGluZ1Nj
b3BlIHsKKyAgICAgICAgQ2xpcHBpbmdTY29wZShjb25zdCBSZW5kZXJMYXllciYgaW5MYXllcikK
KyAgICAgICAgICAgIDogbGF5ZXIoaW5MYXllcikKKyAgICAgICAgeworICAgICAgICB9CisKKyAg
ICAgICAgQ2xpcHBpbmdTY29wZShjb25zdCBMYXllck92ZXJsYXBNYXA6OkxheWVyQW5kQm91bmRz
JiBsYXllckFuZEJvdW5kcykKKyAgICAgICAgICAgIDogbGF5ZXIobGF5ZXJBbmRCb3VuZHMubGF5
ZXIpCisgICAgICAgICAgICAsIGJvdW5kcyhsYXllckFuZEJvdW5kcy5ib3VuZHMpCisgICAgICAg
IHsKKyAgICAgICAgfQorCisgICAgICAgIENsaXBwaW5nU2NvcGUqIGNoaWxkV2l0aExheWVyKGNv
bnN0IFJlbmRlckxheWVyJiBsYXllcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKSB7CisgICAgICAgICAgICAgICAgaWYgKCZjaGlsZC5s
YXllciA9PSAmbGF5ZXIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PENs
aXBwaW5nU2NvcGUqPigmY2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBDbGlwcGluZ1Njb3BlKiBhZGRDaGlsZFdp
dGhMYXllckFuZEJvdW5kcyhjb25zdCBMYXllck92ZXJsYXBNYXA6OkxheWVyQW5kQm91bmRzJiBs
YXllckFuZEJvdW5kcykKKyAgICAgICAgeworICAgICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKHsg
bGF5ZXJBbmRCb3VuZHMgfSk7CisgICAgICAgICAgICByZXR1cm4gJmNoaWxkcmVuLmxhc3QoKTsK
KyAgICAgICAgfQorCisgICAgICAgIENsaXBwaW5nU2NvcGUqIGFkZENoaWxkKGNvbnN0IENsaXBw
aW5nU2NvcGUmIGNoaWxkKQorICAgICAgICB7CisgICAgICAgICAgICBjaGlsZHJlbi5hcHBlbmQo
Y2hpbGQpOworICAgICAgICAgICAgcmV0dXJuICZjaGlsZHJlbi5sYXN0KCk7CisgICAgICAgIH0K
KworICAgICAgICB2b2lkIGFwcGVuZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgYm91bmRzKQorICAg
ICAgICB7CisgICAgICAgICAgICByZWN0TGlzdC5hcHBlbmQoYm91bmRzKTsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IFJlbmRlckxheWVyJiBsYXllcjsKKyAgICAgICAgTGF5b3V0UmVjdCBi
b3VuZHM7IC8vIEJvdW5kcyBvZiB0aGUgY29tcG9zaXRlZCBjbGlwLgorICAgICAgICBWZWN0b3I8
Q2xpcHBpbmdTY29wZT4gY2hpbGRyZW47CisgICAgICAgIFJlY3RMaXN0IHJlY3RMaXN0OworICAg
IH07CisKKyAgICBzdGF0aWMgQ2xpcHBpbmdTY29wZSogY2xpcHBpbmdTY29wZUNvbnRhaW5pbmdM
YXllckNoaWxkUmVjdXJzaXZlKGNvbnN0IENsaXBwaW5nU2NvcGUmIGN1cnJOb2RlLCBjb25zdCBS
ZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gbV9yZWN0TGlzdC5pbnRl
cnNlY3RzKGJvdW5kcyk7CisgICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBjdXJyTm9kZS5jaGls
ZHJlbikgeworICAgICAgICAgICAgaWYgKCZsYXllciA9PSAmY2hpbGQubGF5ZXIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2xpcHBpbmdTY29wZSo+KCZjdXJyTm9kZSk7CisK
KyAgICAgICAgICAgIGlmIChhdXRvKiBmb3VuZE5vZGUgPSBjbGlwcGluZ1Njb3BlQ29udGFpbmlu
Z0xheWVyQ2hpbGRSZWN1cnNpdmUoY2hpbGQsIGxheWVyKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZm91bmROb2RlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCi0gICAgdm9pZCB1bml0ZShjb25zdCBPdmVybGFwTWFwQ29udGFpbmVyJiBvdGhlckNvbnRh
aW5lcikKKyAgICBDbGlwcGluZ1Njb3BlKiBzY29wZUNvbnRhaW5pbmdMYXllcihjb25zdCBSZW5k
ZXJMYXllciYgbGF5ZXIpIGNvbnN0CiAgICAgewotICAgICAgICBtX3JlY3RMaXN0LmFwcGVuZChv
dGhlckNvbnRhaW5lci5tX3JlY3RMaXN0KTsKKyAgICAgICAgcmV0dXJuIGNsaXBwaW5nU2NvcGVD
b250YWluaW5nTGF5ZXJDaGlsZFJlY3Vyc2l2ZShtX3Jvb3RTY29wZSwgbGF5ZXIpOwogICAgIH0K
ICAgICAKLSAgICBjb25zdCBSZWN0TGlzdCYgcmVjdExpc3QoKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3RMaXN0OyB9CisgICAgc3RhdGljIHZvaWQgbWVyZ2VDbGlwcGluZ1Njb3Blc1JlY3Vyc2l2ZShj
b25zdCBDbGlwcGluZ1Njb3BlJiBzb3VyY2VTY29wZSwgQ2xpcHBpbmdTY29wZSYgZGVzdFNjb3Bl
KTsKIAotcHJpdmF0ZToKLSAgICBSZWN0TGlzdCBtX3JlY3RMaXN0OworICAgIENsaXBwaW5nU2Nv
cGUqIGVuc3VyZUNsaXBwaW5nU2NvcGVGb3JMYXllcnMoY29uc3QgVmVjdG9yPExheWVyT3Zlcmxh
cE1hcDo6TGF5ZXJBbmRCb3VuZHM+JiBlbmNsb3NpbmdDbGlwcGluZ0xheWVycyk7CisgICAgQ2xp
cHBpbmdTY29wZSogZmluZENsaXBwaW5nU2NvcGVGb3JMYXllcnMoY29uc3QgVmVjdG9yPExheWVy
T3ZlcmxhcE1hcDo6TGF5ZXJBbmRCb3VuZHM+JiBlbmNsb3NpbmdDbGlwcGluZ0xheWVycykgY29u
c3Q7CisKKyAgICB2b2lkIHJlY3Vyc2l2ZU91dHB1dFRvU3RyZWFtKFRleHRTdHJlYW0mLCBjb25z
dCBDbGlwcGluZ1Njb3BlJiwgdW5zaWduZWQgZGVwdGgpIGNvbnN0OworCisgICAgY29uc3QgQ2xp
cHBpbmdTY29wZSYgcm9vdFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9yb290U2NvcGU7IH0KKyAg
ICBDbGlwcGluZ1Njb3BlJiByb290U2NvcGUoKSB7IHJldHVybiBtX3Jvb3RTY29wZTsgfQorCisg
ICAgQ2xpcHBpbmdTY29wZSBtX3Jvb3RTY29wZTsKIH07CiAKLUxheWVyT3ZlcmxhcE1hcDo6TGF5
ZXJPdmVybGFwTWFwKCkKK3ZvaWQgT3ZlcmxhcE1hcENvbnRhaW5lcjo6YWRkKGNvbnN0IFJlbmRl
ckxheWVyJiwgY29uc3QgTGF5b3V0UmVjdCYgYm91bmRzLCBjb25zdCBWZWN0b3I8TGF5ZXJPdmVy
bGFwTWFwOjpMYXllckFuZEJvdW5kcz4mIGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzKQoreworICAg
IGF1dG8qIGxheWVyU2NvcGUgPSBlbnN1cmVDbGlwcGluZ1Njb3BlRm9yTGF5ZXJzKGVuY2xvc2lu
Z0NsaXBwaW5nTGF5ZXJzKTsKKyAgICBsYXllclNjb3BlLT5hcHBlbmRSZWN0KGJvdW5kcyk7Cit9
CisKK2Jvb2wgT3ZlcmxhcE1hcENvbnRhaW5lcjo6b3ZlcmxhcHNMYXllcnMoY29uc3QgUmVuZGVy
TGF5ZXImLCBjb25zdCBMYXlvdXRSZWN0JiBib3VuZHMsIGNvbnN0IFZlY3RvcjxMYXllck92ZXJs
YXBNYXA6OkxheWVyQW5kQm91bmRzPiYgZW5jbG9zaW5nQ2xpcHBpbmdMYXllcnMpIGNvbnN0Cit7
CisgICAgaWYgKG1fcm9vdFNjb3BlLnJlY3RMaXN0LmludGVyc2VjdHMoYm91bmRzKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAobV9yb290U2NvcGUuY2hpbGRyZW4uaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBGaW5kIHRoZSBDbGlwcGluZ1Njb3Bl
IGZvciB3aGljaCB0aGlzIGxheWVyIGlzIGEgY2hpbGQuCisgICAgYXV0byogY2xpcHBpbmdTY29w
ZSA9IGZpbmRDbGlwcGluZ1Njb3BlRm9yTGF5ZXJzKGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzKTsK
KyAgICBpZiAoIWNsaXBwaW5nU2NvcGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
IChjbGlwcGluZ1Njb3BlLT5yZWN0TGlzdC5pbnRlcnNlY3RzKGJvdW5kcykpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgLy8gRklYTUU6IEluIHNvbWUgY2FzZXMgZG8gd2UgaGF2ZSB0byB3
YWxrIHVwIHRoZSBhbmNlc3RvciBjbGlwcGluZyBzY29wZSBjaGFpbj8KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgT3ZlcmxhcE1hcENvbnRhaW5lcjo6bWVyZ2VDbGlwcGluZ1Njb3Blc1Jl
Y3Vyc2l2ZShjb25zdCBDbGlwcGluZ1Njb3BlJiBzb3VyY2VTY29wZSwgQ2xpcHBpbmdTY29wZSYg
ZGVzdFNjb3BlKQoreworICAgIEFTU0VSVCgmc291cmNlU2NvcGUubGF5ZXIgPT0gJmRlc3RTY29w
ZS5sYXllcik7CisgICAgZGVzdFNjb3BlLnJlY3RMaXN0LmFwcGVuZChzb3VyY2VTY29wZS5yZWN0
TGlzdCk7CisKKyAgICBmb3IgKGF1dG8mIHNvdXJjZUNoaWxkU2NvcGUgOiBzb3VyY2VTY29wZS5j
aGlsZHJlbikgeworICAgICAgICBDbGlwcGluZ1Njb3BlKiBkZXN0Q2hpbGQgPSBkZXN0U2NvcGUu
Y2hpbGRXaXRoTGF5ZXIoc291cmNlQ2hpbGRTY29wZS5sYXllcik7CisgICAgICAgIGlmIChkZXN0
Q2hpbGQpIHsKKyAgICAgICAgICAgIGRlc3RDaGlsZC0+cmVjdExpc3QuYXBwZW5kKHNvdXJjZUNo
aWxkU2NvcGUucmVjdExpc3QpOworICAgICAgICAgICAgbWVyZ2VDbGlwcGluZ1Njb3Blc1JlY3Vy
c2l2ZShzb3VyY2VDaGlsZFNjb3BlLCAqZGVzdENoaWxkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIC8vIE5ldyBjaGlsZCwganVzdCBjb3B5IHRoZSB3aG9sZSBzdWJ0cmVlLgorICAg
ICAgICAgICAgZGVzdFNjb3BlLmFkZENoaWxkKHNvdXJjZVNjb3BlKTsKKyAgICAgICAgfQorICAg
IH0KK30KKwordm9pZCBPdmVybGFwTWFwQ29udGFpbmVyOjphcHBlbmQoc3RkOjp1bmlxdWVfcHRy
PE92ZXJsYXBNYXBDb250YWluZXI+JiYgb3RoZXJDb250YWluZXIpCit7CisgICAgbWVyZ2VDbGlw
cGluZ1Njb3Blc1JlY3Vyc2l2ZShvdGhlckNvbnRhaW5lci0+cm9vdFNjb3BlKCksIG1fcm9vdFNj
b3BlKTsKK30KKworT3ZlcmxhcE1hcENvbnRhaW5lcjo6Q2xpcHBpbmdTY29wZSogT3ZlcmxhcE1h
cENvbnRhaW5lcjo6ZW5zdXJlQ2xpcHBpbmdTY29wZUZvckxheWVycyhjb25zdCBWZWN0b3I8TGF5
ZXJPdmVybGFwTWFwOjpMYXllckFuZEJvdW5kcz4mIGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzKQor
eworICAgIEFTU0VSVChlbmNsb3NpbmdDbGlwcGluZ0xheWVycy5zaXplKCkpOworICAgIEFTU0VS
VChlbmNsb3NpbmdDbGlwcGluZ0xheWVyc1swXS5sYXllci5pc1JlbmRlclZpZXdMYXllcigpKTsK
KworICAgIGF1dG8qIGN1cnJTY29wZSA9ICZtX3Jvb3RTY29wZTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgZW5jbG9zaW5nQ2xpcHBpbmdMYXllcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgc2NvcGVMYXllckFuZEJvdW5kcyA9IGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzW2ld
OworICAgICAgICBhdXRvKiBjaGlsZFNjb3BlID0gY3VyclNjb3BlLT5jaGlsZFdpdGhMYXllcihz
Y29wZUxheWVyQW5kQm91bmRzLmxheWVyKTsKKyAgICAgICAgaWYgKCFjaGlsZFNjb3BlKSB7Cisg
ICAgICAgICAgICBjdXJyU2NvcGUgPSBjdXJyU2NvcGUtPmFkZENoaWxkV2l0aExheWVyQW5kQm91
bmRzKHNjb3BlTGF5ZXJBbmRCb3VuZHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KworICAgICAgICBjdXJyU2NvcGUgPSBjaGlsZFNjb3BlOworICAgIH0KKworICAgIHJldHVybiBj
b25zdF9jYXN0PENsaXBwaW5nU2NvcGUqPihjdXJyU2NvcGUpOworfQorCitPdmVybGFwTWFwQ29u
dGFpbmVyOjpDbGlwcGluZ1Njb3BlKiBPdmVybGFwTWFwQ29udGFpbmVyOjpmaW5kQ2xpcHBpbmdT
Y29wZUZvckxheWVycyhjb25zdCBWZWN0b3I8TGF5ZXJPdmVybGFwTWFwOjpMYXllckFuZEJvdW5k
cz4mIGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzKSBjb25zdAoreworICAgIEFTU0VSVChlbmNsb3Np
bmdDbGlwcGluZ0xheWVycy5zaXplKCkpOworICAgIEFTU0VSVChlbmNsb3NpbmdDbGlwcGluZ0xh
eWVyc1swXS5sYXllci5pc1JlbmRlclZpZXdMYXllcigpKTsKKworICAgIGNvbnN0IGF1dG8qIGN1
cnJTY29wZSA9ICZtX3Jvb3RTY29wZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgZW5j
bG9zaW5nQ2xpcHBpbmdMYXllcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byYgc2NvcGVM
YXllckFuZEJvdW5kcyA9IGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzW2ldOworICAgICAgICBhdXRv
KiBjaGlsZFNjb3BlID0gY3VyclNjb3BlLT5jaGlsZFdpdGhMYXllcihzY29wZUxheWVyQW5kQm91
bmRzLmxheWVyKTsKKyAgICAgICAgaWYgKCFjaGlsZFNjb3BlKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICAgICAgY3VyclNjb3BlID0gY2hpbGRTY29wZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gY29uc3RfY2FzdDxDbGlwcGluZ1Njb3BlKj4oY3VyclNjb3BlKTsKK30KKwordm9p
ZCBPdmVybGFwTWFwQ29udGFpbmVyOjpyZWN1cnNpdmVPdXRwdXRUb1N0cmVhbShUZXh0U3RyZWFt
JiB0cywgY29uc3QgQ2xpcHBpbmdTY29wZSYgc2NvcGUsIHVuc2lnbmVkIGRlcHRoKSBjb25zdAor
eworICAgIHRzIDw8ICJcbiIgPDwgaW5kZW50IDw8IFRleHRTdHJlYW06OlJlcGVhdCB7IDIgKiBk
ZXB0aCwgJyAnIH0gPDwgIiBzY29wZSBmb3IgbGF5ZXIgIiA8PCAmc2NvcGUubGF5ZXIgPDwgIiBy
ZWN0cyAiIDw8IHNjb3BlLnJlY3RMaXN0OworICAgIGZvciAoYXV0byYgY2hpbGRTY29wZSA6IHNj
b3BlLmNoaWxkcmVuKQorICAgICAgICByZWN1cnNpdmVPdXRwdXRUb1N0cmVhbSh0cywgY2hpbGRT
Y29wZSwgZGVwdGggKyAxKTsKK30KKworU3RyaW5nIE92ZXJsYXBNYXBDb250YWluZXI6OmR1bXAo
dW5zaWduZWQgaW5kZW50KSBjb25zdAoreworICAgIFRleHRTdHJlYW0gbXVsdGlsaW5lU3RyZWFt
OworICAgIG11bHRpbGluZVN0cmVhbS5pbmNyZWFzZUluZGVudChpbmRlbnQpOworICAgIG11bHRp
bGluZVN0cmVhbSA8PCAib3ZlcmxhcCBjb250YWluZXIgLSByb290IHNjb3BlIGxheWVyICIgPDwg
ICZtX3Jvb3RTY29wZS5sYXllciA8PCAiIHJlY3RzICIgPDwgbV9yb290U2NvcGUucmVjdExpc3Q7
CisKKyAgICBmb3IgKGF1dG8mIGNoaWxkU2NvcGUgOiBtX3Jvb3RTY29wZS5jaGlsZHJlbikKKyAg
ICAgICAgcmVjdXJzaXZlT3V0cHV0VG9TdHJlYW0obXVsdGlsaW5lU3RyZWFtLCBjaGlsZFNjb3Bl
LCAxKTsKKworICAgIHJldHVybiBtdWx0aWxpbmVTdHJlYW0ucmVsZWFzZSgpOworfQorCitMYXll
ck92ZXJsYXBNYXA6OkxheWVyT3ZlcmxhcE1hcChjb25zdCBSZW5kZXJMYXllciYgcm9vdExheWVy
KQogICAgIDogbV9nZW9tZXRyeU1hcChVc2VUcmFuc2Zvcm1zKQorICAgICwgbV9yb290TGF5ZXIo
cm9vdExheWVyKQogewogICAgIC8vIEJlZ2luIGFzc3VtaW5nIHRoZSByb290IGxheWVyIHdpbGwg
YmUgY29tcG9zaXRlZCBzbyB0aGF0IHRoZXJlIGlzCiAgICAgLy8gc29tZXRoaW5nIG9uIHRoZSBz
dGFjay4gVGhlIHJvb3QgbGF5ZXIgc2hvdWxkIGFsc28gbmV2ZXIgZ2V0IGFuCkBAIC05Miw0MSAr
Mjc3LDM2IEBAIExheWVyT3ZlcmxhcE1hcDo6TGF5ZXJPdmVybGFwTWFwKCkKIAogTGF5ZXJPdmVy
bGFwTWFwOjp+TGF5ZXJPdmVybGFwTWFwKCkgPSBkZWZhdWx0OwogCi12b2lkIExheWVyT3Zlcmxh
cE1hcDo6YWRkKGNvbnN0IExheW91dFJlY3QmIGJvdW5kcykKK3ZvaWQgTGF5ZXJPdmVybGFwTWFw
OjphZGQoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBib3VuZHMs
IGNvbnN0IFZlY3RvcjxMYXllckFuZEJvdW5kcz4mIGVuY2xvc2luZ0NsaXBwaW5nTGF5ZXJzKQog
ewogICAgIC8vIExheWVycyBkbyBub3QgY29udHJpYnV0ZSB0byBvdmVybGFwIGltbWVkaWF0ZWx5
LS1pbnN0ZWFkLCB0aGV5IHdpbGwKICAgICAvLyBjb250cmlidXRlIHRvIG92ZXJsYXAgYXMgc29v
biBhcyB0aGVpciBjb21wb3NpdGVkIGFuY2VzdG9yIGhhcyBiZWVuCiAgICAgLy8gcmVjdXJzaXZl
bHkgcHJvY2Vzc2VkIGFuZCBwb3BwZWQgb2ZmIHRoZSBzdGFjay4KICAgICBBU1NFUlQobV9vdmVy
bGFwU3RhY2suc2l6ZSgpID49IDIpOwotICAgIG1fb3ZlcmxhcFN0YWNrW21fb3ZlcmxhcFN0YWNr
LnNpemUoKSAtIDJdLT5hZGQoYm91bmRzKTsKKyAgICBtX292ZXJsYXBTdGFja1ttX292ZXJsYXBT
dGFjay5zaXplKCkgLSAyXS0+YWRkKGxheWVyLCBib3VuZHMsIGVuY2xvc2luZ0NsaXBwaW5nTGF5
ZXJzKTsKKyAgICAKICAgICBtX2lzRW1wdHkgPSBmYWxzZTsKIH0KIAotYm9vbCBMYXllck92ZXJs
YXBNYXA6Om92ZXJsYXBzTGF5ZXJzKGNvbnN0IExheW91dFJlY3QmIGJvdW5kcykgY29uc3QKK2Jv
b2wgTGF5ZXJPdmVybGFwTWFwOjpvdmVybGFwc0xheWVycyhjb25zdCBSZW5kZXJMYXllciYgbGF5
ZXIsIGNvbnN0IExheW91dFJlY3QmIGJvdW5kcywgY29uc3QgVmVjdG9yPExheWVyQW5kQm91bmRz
PiYgZW5jbG9zaW5nQ2xpcHBpbmdMYXllcnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fb3Zlcmxh
cFN0YWNrLmxhc3QoKS0+b3ZlcmxhcHNMYXllcnMoYm91bmRzKTsKKyAgICByZXR1cm4gbV9vdmVy
bGFwU3RhY2subGFzdCgpLT5vdmVybGFwc0xheWVycyhsYXllciwgYm91bmRzLCBlbmNsb3NpbmdD
bGlwcGluZ0xheWVycyk7CiB9CiAKIHZvaWQgTGF5ZXJPdmVybGFwTWFwOjpwdXNoQ29tcG9zaXRp
bmdDb250YWluZXIoKQogewotICAgIG1fb3ZlcmxhcFN0YWNrLmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPE92ZXJsYXBNYXBDb250YWluZXI+KCkpOworICAgIG1fb3ZlcmxhcFN0YWNrLmFwcGVuZChz
dGQ6Om1ha2VfdW5pcXVlPE92ZXJsYXBNYXBDb250YWluZXI+KG1fcm9vdExheWVyKSk7CiB9CiAK
IHZvaWQgTGF5ZXJPdmVybGFwTWFwOjpwb3BDb21wb3NpdGluZ0NvbnRhaW5lcigpCiB7Ci0gICAg
bV9vdmVybGFwU3RhY2tbbV9vdmVybGFwU3RhY2suc2l6ZSgpIC0gMl0tPnVuaXRlKCptX292ZXJs
YXBTdGFjay5sYXN0KCkpOworICAgIG1fb3ZlcmxhcFN0YWNrW21fb3ZlcmxhcFN0YWNrLnNpemUo
KSAtIDJdLT5hcHBlbmQoV1RGTW92ZShtX292ZXJsYXBTdGFjay5sYXN0KCkpKTsKICAgICBtX292
ZXJsYXBTdGFjay5yZW1vdmVMYXN0KCk7CiB9CiAKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZWN0TGlzdCYgcmVjdExpc3QpCi17Ci0gICAgdHMg
PDwgImJvdW5kcyAiIDw8IHJlY3RMaXN0LmJvdW5kaW5nUmVjdCA8PCAiICgiIDw8IHJlY3RMaXN0
LnJlY3RzIDw8ICIgcmVjdHMpIjsKLSAgICByZXR1cm4gdHM7Ci19Ci0KIHN0YXRpYyBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBPdmVybGFwTWFwQ29udGFpbmVy
JiBjb250YWluZXIpCiB7Ci0gICAgdHMgPDwgY29udGFpbmVyLnJlY3RMaXN0KCk7CisgICAgdHMg
PDwgY29udGFpbmVyLmR1bXAodHMuaW5kZW50KCkpOwogICAgIHJldHVybiB0czsKIH0KIApAQCAt
MTM1LDEzICszMTUsMjEgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgTGF5ZXJPdmVybGFwTWFwJiBvdmVybGFwTWFwKQogICAgIFRleHRTdHJlYW0gbXVsdGls
aW5lU3RyZWFtOwogCiAgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBzY29wZSh0cyk7Ci0gICAg
bXVsdGlsaW5lU3RyZWFtIDw8IGluZGVudCA8PCAiTGF5ZXJPdmVybGFwTWFwXG4iOworICAgIG11
bHRpbGluZVN0cmVhbSA8PCAiTGF5ZXJPdmVybGFwTWFwXG4iOworICAgIG11bHRpbGluZVN0cmVh
bS5pbmNyZWFzZUluZGVudCgyKTsKIAotICAgIGZvciAoYXV0byYgY29udGFpbmVyIDogb3Zlcmxh
cE1hcC5vdmVybGFwU3RhY2soKSkKLSAgICAgICAgbXVsdGlsaW5lU3RyZWFtIDw8ICIgICIgPDwg
KmNvbnRhaW5lciA8PCAiXG4iOworICAgIGJvb2wgbmVlZE5ld2xpbmUgPSBmYWxzZTsKKyAgICBm
b3IgKGF1dG8mIGNvbnRhaW5lciA6IG92ZXJsYXBNYXAub3ZlcmxhcFN0YWNrKCkpIHsKKyAgICAg
ICAgaWYgKG5lZWROZXdsaW5lKQorICAgICAgICAgICAgbXVsdGlsaW5lU3RyZWFtIDw8ICJcbiI7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5lZWROZXdsaW5lID0gdHJ1ZTsKKyAgICAgICAg
bXVsdGlsaW5lU3RyZWFtIDw8IGluZGVudCA8PCAqY29udGFpbmVyOworICAgIH0KIAogICAgIHRz
IDw8IG11bHRpbGluZVN0cmVhbS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIHRzOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXllck92ZXJsYXBNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXllck92ZXJs
YXBNYXAuaAppbmRleCAyYjQwYTQzYmY3YWNiYTc4NDk1OTcyMmE1YTdmZmIxNzg5OGQ4N2Y2Li5l
MzA2MWYwOTQwYTY2Mjk3MTBjY2NkZjNjNjY5MzM4MGU2M2I0NDI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5ZXJPdmVybGFwTWFwLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheWVyT3ZlcmxhcE1hcC5oCkBAIC0zNCwxNiArMzQsMjMgQEAgY2xhc3Mg
VGV4dFN0cmVhbTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBPdmVyZmxvd0F3YXJl
T3ZlcmxhcENvbnRhaW5lcjsKIGNsYXNzIE92ZXJsYXBNYXBDb250YWluZXI7CitjbGFzcyBSZW5k
ZXJMYXllcjsKIAogY2xhc3MgTGF5ZXJPdmVybGFwTWFwIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShMYXllck92ZXJsYXBNYXApOwogcHVibGljOgotICAgIExheWVyT3ZlcmxhcE1hcCgpOwor
ICAgIExheWVyT3ZlcmxhcE1hcChjb25zdCBSZW5kZXJMYXllciYgcm9vdExheWVyKTsKICAgICB+
TGF5ZXJPdmVybGFwTWFwKCk7CisgICAgCisgICAgc3RydWN0IExheWVyQW5kQm91bmRzIHsKKyAg
ICAgICAgUmVuZGVyTGF5ZXImIGxheWVyOworICAgICAgICBMYXlvdXRSZWN0IGJvdW5kczsKKyAg
ICB9OwogCi0gICAgdm9pZCBhZGQoY29uc3QgTGF5b3V0UmVjdCYgYm91bmRzKTsKLSAgICBib29s
IG92ZXJsYXBzTGF5ZXJzKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKyAgICB2b2lkIGFkZChj
b25zdCBSZW5kZXJMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBWZWN0b3I8TGF5ZXJB
bmRCb3VuZHM+JiBlbmNsb3NpbmdDbGlwcGluZ0xheWVycyk7CisgICAgYm9vbCBvdmVybGFwc0xh
eWVycyhjb25zdCBSZW5kZXJMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBWZWN0b3I8
TGF5ZXJBbmRCb3VuZHM+JiBlbmNsb3NpbmdDbGlwcGluZ0xheWVycykgY29uc3Q7CiAgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9pc0VtcHR5OyB9CiAKICAgICB2b2lkIHB1c2hD
b21wb3NpdGluZ0NvbnRhaW5lcigpOwpAQCAtNTcsNiArNjQsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8T3ZlcmxhcE1hcENvbnRhaW5lcj4+IG1fb3Zl
cmxhcFN0YWNrOwogICAgIFJlbmRlckdlb21ldHJ5TWFwIG1fZ2VvbWV0cnlNYXA7CisgICAgY29u
c3QgUmVuZGVyTGF5ZXImIG1fcm9vdExheWVyOwogICAgIGJvb2wgbV9pc0VtcHR5IHsgdHJ1ZSB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAppbmRleCBmOWJmMmM1Njc0ZmVkZTIyNzk1NGNmNzU0ZTZlYTBkZTg2YmIxYTMy
Li45M2I0NGNmOTY0OTE5ZGZmNWE5MzMzNTgzMjBiZTcwZGE2YTkwMDRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjA1
LDcgKzIwNSw2IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGFwcGVuZFNoYXJpbmdMYXllcihS
ZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9z
aXRpbmcsIHN0cmVhbSA8PCAmbGF5ZXIgPDwgIiBhcHBlbmRTaGFyaW5nTGF5ZXIgIiA8PCAmbGF5
ZXIgPDwgIiBmb3IgYmFja2luZyBwcm92aWRlciAiIDw8IG1fYmFja2luZ1Byb3ZpZGVyQ2FuZGlk
YXRlKTsKICAgICAgICAgbV9iYWNraW5nU2hhcmluZ0xheWVycy5hcHBlbmQobWFrZVdlYWtQdHIo
bGF5ZXIpKTsKICAgICB9CiAKQEAgLTI0OSw3ICsyNDgsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6QmFja2luZ1NoYXJpbmdTdGF0ZTo6dXBkYXRlQmVmb3JlRGVzY2VuZGFudFRyYXZl
cnNhbAogICAgIC8vIEEgbGF5ZXIgdGhhdCBjb21wb3NpdGVzIHJlc2V0cyBiYWNraW5nLXNoYXJp
bmcsIHNpbmNlIHN1YnNlcXVlbnQgbGF5ZXJzIG5lZWQgdG8gY29tcG9zaXRlIHRvIG92ZXJsYXAg
aXQuCiAgICAgaWYgKHdpbGxCZUNvbXBvc2l0ZWQpIHsKICAgICAgICAgbV9iYWNraW5nU2hhcmlu
Z0xheWVycy5yZW1vdmVBbGwoJmxheWVyKTsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbXBv
c2l0aW5nLCBzdHJlYW0gPDwgIlByZS1kZXNjZW5kYW50IGNvbXBvc2l0aW5nIG9mICIgPDwgJmxh
eWVyIDw8ICIsIGVuZGluZyBzaGFyaW5nIHNlcXVlbmNlIGZvciAiIDw8IG1fYmFja2luZ1Byb3Zp
ZGVyQ2FuZGlkYXRlIDw8ICIgd2l0aCAiIDw8IG1fYmFja2luZ1NoYXJpbmdMYXllcnMuc2l6ZSgp
IDw8ICIgc2hhcmluZyBsYXllcnMiKTsKICAgICAgICAgZW5kQmFja2luZ1NoYXJpbmdTZXF1ZW5j
ZSgpOwogICAgIH0KIH0KQEAgLTc2OCwxMiArNzY2LDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBk
YXRlCiAKICAgICAvLyBGSVhNRTogb3B0aW1pemUgcm9vdC1vbmx5IHVwZGF0ZS4KICAgICBpZiAo
dXBkYXRlUm9vdC0+aGFzRGVzY2VuZGFudE5lZWRpbmdDb21wb3NpdGluZ1JlcXVpcmVtZW50c1Ry
YXZlcnNhbCgpIHx8IHVwZGF0ZVJvb3QtPm5lZWRzQ29tcG9zaXRpbmdSZXF1aXJlbWVudHNUcmF2
ZXJzYWwoKSkgeworICAgICAgICBhdXRvJiByb290TGF5ZXIgPSByb290UmVuZGVyTGF5ZXIoKTsK
ICAgICAgICAgQ29tcG9zaXRpbmdTdGF0ZSBjb21wb3NpdGluZ1N0YXRlKHVwZGF0ZVJvb3QpOwog
ICAgICAgICBCYWNraW5nU2hhcmluZ1N0YXRlIGJhY2tpbmdTaGFyaW5nU3RhdGU7Ci0gICAgICAg
IExheWVyT3ZlcmxhcE1hcCBvdmVybGFwTWFwOworICAgICAgICBMYXllck92ZXJsYXBNYXAgb3Zl
cmxhcE1hcChyb290TGF5ZXIpOwogCiAgICAgICAgIGJvb2wgZGVzY2VuZGFudEhhczNEVHJhbnNm
b3JtID0gZmFsc2U7Ci0gICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhudWxs
cHRyLCByb290UmVuZGVyTGF5ZXIoKSwgb3ZlcmxhcE1hcCwgY29tcG9zaXRpbmdTdGF0ZSwgYmFj
a2luZ1NoYXJpbmdTdGF0ZSwgZGVzY2VuZGFudEhhczNEVHJhbnNmb3JtKTsKKyAgICAgICAgY29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKG51bGxwdHIsIHJvb3RMYXllciwgb3ZlcmxhcE1h
cCwgY29tcG9zaXRpbmdTdGF0ZSwgYmFja2luZ1NoYXJpbmdTdGF0ZSwgZGVzY2VuZGFudEhhczNE
VHJhbnNmb3JtKTsKICAgICB9CiAKICAgICBMT0coQ29tcG9zaXRpbmcsICJcblJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMgLSBtaWQiKTsKQEAgLTg4MywxMCAr
ODgyLDggQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKIAogICAgIC8vIElmIHdlIGtub3cgZm9y
IHN1cmUgdGhlIGxheWVyIGlzIGdvaW5nIHRvIGJlIGNvbXBvc2l0ZWQsIGRvbid0IGJvdGhlciBs
b29raW5nIGl0IHVwIGluIHRoZSBvdmVybGFwIG1hcAogICAgIGlmICghd2lsbEJlQ29tcG9zaXRl
ZCAmJiAhb3ZlcmxhcE1hcC5pc0VtcHR5KCkgJiYgY29tcG9zaXRpbmdTdGF0ZS50ZXN0aW5nT3Zl
cmxhcCkgewotICAgICAgICBjb21wdXRlRXh0ZW50KG92ZXJsYXBNYXAsIGxheWVyLCBsYXllckV4
dGVudCk7Ci0KICAgICAgICAgLy8gSWYgd2UncmUgdGVzdGluZyBmb3Igb3ZlcmxhcCwgd2Ugb25s
eSBuZWVkIHRvIGNvbXBvc2l0ZSBpZiB3ZSBvdmVybGFwIHNvbWV0aGluZyB0aGF0IGlzIGFscmVh
ZHkgY29tcG9zaXRlZC4KLSAgICAgICAgaWYgKG92ZXJsYXBNYXAub3ZlcmxhcHNMYXllcnMobGF5
ZXJFeHRlbnQuYm91bmRzKSkgeworICAgICAgICBpZiAobGF5ZXJPdmVybGFwcyhvdmVybGFwTWFw
LCBsYXllciwgbGF5ZXJFeHRlbnQpKSB7CiAgICAgICAgICAgICBpZiAoYmFja2luZ1NoYXJpbmdT
dGF0ZS5iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUoKSAmJiBjYW5CZUNvbXBvc2l0ZWQobGF5ZXIp
ICYmIGJhY2tpbmdQcm92aWRlckxheWVyQ2FuSW5jbHVkZUxheWVyKCpiYWNraW5nU2hhcmluZ1N0
YXRlLmJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpLCBsYXllcikpIHsKICAgICAgICAgICAgICAg
ICBiYWNraW5nU2hhcmluZ1N0YXRlLmFwcGVuZFNoYXJpbmdMYXllcihsYXllcik7CiAgICAgICAg
ICAgICAgICAgTE9HKENvbXBvc2l0aW5nLCAiIGxheWVyICVwIGNhbiBzaGFyZSB3aXRoICVwIiwg
JmxheWVyLCBiYWNraW5nU2hhcmluZ1N0YXRlLmJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpKTsK
QEAgLTE3ODYsNyArMTc4Myw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRl
RXh0ZW50KGNvbnN0IExheWVyT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uCiAgICAgaWYgKGV4
dGVudC5ib3VuZHMuaXNFbXB0eSgpKQogICAgICAgICBleHRlbnQuYm91bmRzLnNldFNpemUoTGF5
b3V0U2l6ZSgxLCAxKSk7CiAKLQogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVy
ID0gbGF5ZXIucmVuZGVyZXIoKTsKICAgICBpZiAocmVuZGVyZXIuaXNGaXhlZFBvc2l0aW9uZWQo
KSAmJiByZW5kZXJlci5jb250YWluZXIoKSA9PSAmbV9yZW5kZXJWaWV3KSB7CiAgICAgICAgIC8v
IEJlY2F1c2UgZml4ZWQgZWxlbWVudHMgZ2V0IG1vdmVkIGFyb3VuZCB3aXRob3V0IHJlLWNvbXB1
dGluZyBvdmVybGFwLCB3ZSBoYXZlIHRvIGNvbXB1dGUgYW4gb3ZlcmxhcApAQCAtMTc5OCw2ICsx
Nzk0LDQ0IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlRXh0ZW50KGNvbnN0
IExheWVyT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uCiAgICAgZXh0ZW50LmV4dGVudENvbXB1
dGVkID0gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgY3JlYXRlc0NsaXBwaW5nU2NvcGUoY29uc3Qg
UmVuZGVyTGF5ZXImIGxheWVyKQoreworICAgIHJldHVybiBsYXllci5oYXNDb21wb3NpdGVkU2Ny
b2xsYWJsZU92ZXJmbG93KCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8TGF5ZXJPdmVybGFwTWFwOjpM
YXllckFuZEJvdW5kcz4gZW5jbG9zaW5nQ2xpcHBpbmdTY29wZXMoY29uc3QgUmVuZGVyTGF5ZXIm
IGxheWVyLCBjb25zdCBSZW5kZXJMYXllciYgcm9vdExheWVyKQoreworICAgIFZlY3RvcjxMYXll
ck92ZXJsYXBNYXA6OkxheWVyQW5kQm91bmRzPiBjbGlwcGluZ1Njb3BlczsKKyAgICBjbGlwcGlu
Z1Njb3Blcy5hcHBlbmQoeyBjb25zdF9jYXN0PFJlbmRlckxheWVyJj4ocm9vdExheWVyKSwgeyB9
IH0pOworCisgICAgaWYgKCFsYXllci5oYXNDb21wb3NpdGVkU2Nyb2xsaW5nQW5jZXN0b3IoKSkK
KyAgICAgICAgcmV0dXJuIGNsaXBwaW5nU2NvcGVzOworCisgICAgYm9vbCBjb250YWluaW5nQmxv
Y2tDYW5Ta2lwTGF5ZXJzID0gbGF5ZXIucmVuZGVyZXIoKS5pc0Fic29sdXRlbHlQb3NpdGlvbmVk
KCk7CisgICAgZm9yIChjb25zdCBhdXRvKiBjdXJyTGF5ZXIgPSBsYXllci5wYXJlbnQoKTsgY3Vy
ckxheWVyOyBjdXJyTGF5ZXIgPSBjdXJyTGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGJvb2wg
aW5Db250YWluaW5nQmxvY2tDaGFpbiA9IHRydWU7CisgICAgICAgIGlmIChjb250YWluaW5nQmxv
Y2tDYW5Ta2lwTGF5ZXJzKSB7CisgICAgICAgICAgICBpbkNvbnRhaW5pbmdCbG9ja0NoYWluID0g
Y3VyckxheWVyLT5yZW5kZXJlcigpLmNhbkNvbnRhaW5BYnNvbHV0ZWx5UG9zaXRpb25lZE9iamVj
dHMoKTsKKyAgICAgICAgICAgIGlmIChpbkNvbnRhaW5pbmdCbG9ja0NoYWluKQorICAgICAgICAg
ICAgICAgIGNvbnRhaW5pbmdCbG9ja0NhblNraXBMYXllcnMgPSBjdXJyTGF5ZXItPnJlbmRlcmVy
KCkuaXNBYnNvbHV0ZWx5UG9zaXRpb25lZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBpZiAoaW5Db250YWluaW5nQmxvY2tDaGFpbiAmJiBjcmVhdGVzQ2xpcHBpbmdTY29wZSgqY3Vy
ckxheWVyKSkgeworICAgICAgICAgICAgTGF5b3V0UmVjdCBjbGlwUmVjdDsKKyAgICAgICAgICAg
IGlmIChpczxSZW5kZXJCb3g+KGN1cnJMYXllci0+cmVuZGVyZXIoKSkpIHsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBleHBlbnNpdmUuIEJyb2tlbiB3aXRoIHRyYW5zZm9ybXMu
CisgICAgICAgICAgICAgICAgTGF5b3V0UG9pbnQgb2Zmc2V0RnJvbVJvb3QgPSBjdXJyTGF5ZXIt
PmNvbnZlcnRUb0xheWVyQ29vcmRzKCZyb290TGF5ZXIsIHsgfSk7CisgICAgICAgICAgICAgICAg
Y2xpcFJlY3QgPSBkb3duY2FzdDxSZW5kZXJCb3g+KGN1cnJMYXllci0+cmVuZGVyZXIoKSkub3Zl
cmZsb3dDbGlwUmVjdChvZmZzZXRGcm9tUm9vdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIExheWVyT3ZlcmxhcE1hcDo6TGF5ZXJBbmRCb3VuZHMgbGF5ZXJBbmRCb3VuZHMgeyBjb25z
dF9jYXN0PFJlbmRlckxheWVyJj4oKmN1cnJMYXllciksIGNsaXBSZWN0IH07CisgICAgICAgICAg
ICBjbGlwcGluZ1Njb3Blcy5pbnNlcnQoMSwgbGF5ZXJBbmRCb3VuZHMpOyAvLyBPcmRlciBpcyBy
b290cyB0byBsZWF2ZXMuCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY2xpcHBpbmdT
Y29wZXM7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXAo
TGF5ZXJPdmVybGFwTWFwJiBvdmVybGFwTWFwLCBjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIE92
ZXJsYXBFeHRlbnQmIGV4dGVudCkgY29uc3QKIHsKICAgICBpZiAobGF5ZXIuaXNSZW5kZXJWaWV3
TGF5ZXIoKSkKQEAgLTE4MDUsMTMgKzE4MzksMjkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmFkZFRvT3ZlcmxhcE1hcChMYXllck92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIGNvbnN0IFIK
IAogICAgIGNvbXB1dGVFeHRlbnQob3ZlcmxhcE1hcCwgbGF5ZXIsIGV4dGVudCk7CiAKLSAgICBM
YXlvdXRSZWN0IGNsaXBSZWN0ID0gbGF5ZXIuYmFja2dyb3VuZENsaXBSZWN0KFJlbmRlckxheWVy
OjpDbGlwUmVjdHNDb250ZXh0KCZyb290UmVuZGVyTGF5ZXIoKSwgQWJzb2x1dGVDbGlwUmVjdHMp
KS5yZWN0KCk7IC8vIEZJWE1FOiBJbmNvcnJlY3QgZm9yIENTUyByZWdpb25zLgorICAgIC8vIEZJ
WE1FOiBjb25zdHJhaW4gdGhlIHNjb3BlcyAoYnkgY29tcG9zaXRlZCBzdGFja2luZyBjb250ZXh0
IGFuY2VzdG9yIEkgdGhpbmspLgorICAgIGF1dG8gY2xpcHBpbmdTY29wZXMgPSBlbmNsb3NpbmdD
bGlwcGluZ1Njb3BlcyhsYXllciwgcm9vdFJlbmRlckxheWVyKCkpOwogCi0gICAgLy8gT24gaU9T
LCBwYWdlU2NhbGVGYWN0b3IoKSBpcyBub3QgYXBwbGllZCBieSBSZW5kZXJWaWV3LCBzbyB3ZSBz
aG91bGQgbm90IHNjYWxlIGhlcmUuCi0gICAgaWYgKCFtX3JlbmRlclZpZXcuc2V0dGluZ3MoKS5k
ZWxlZ2F0ZXNQYWdlU2NhbGluZygpKQotICAgICAgICBjbGlwUmVjdC5zY2FsZShwYWdlU2NhbGVG
YWN0b3IoKSk7Ci0gICAgY2xpcFJlY3QuaW50ZXJzZWN0KGV4dGVudC5ib3VuZHMpOwotICAgIG92
ZXJsYXBNYXAuYWRkKGNsaXBSZWN0KTsKKyAgICBMYXlvdXRSZWN0IGNsaXBSZWN0OworICAgIGlm
IChsYXllci5oYXNDb21wb3NpdGVkU2Nyb2xsaW5nQW5jZXN0b3IoKSkgeworICAgICAgICAvLyBD
b21wdXRlIGEgY2xpcCB1cCB0byB0aGUgY29tcG9zaXRlZCBzY3JvbGxpbmcgYW5jZXN0b3IsIHRo
ZW4gY29udmVydCBpdCB0byBhYnNvbHV0ZSBjb29yZGluYXRlcy4KKyAgICAgICAgYXV0byYgc2Ny
b2xsaW5nU2NvcGUgPSBjbGlwcGluZ1Njb3Blcy5sYXN0KCk7CisgICAgICAgIGNsaXBSZWN0ID0g
bGF5ZXIuYmFja2dyb3VuZENsaXBSZWN0KFJlbmRlckxheWVyOjpDbGlwUmVjdHNDb250ZXh0KCZz
Y3JvbGxpbmdTY29wZS5sYXllciwgVGVtcG9yYXJ5Q2xpcFJlY3RzLCBJZ25vcmVPdmVybGF5U2Ny
b2xsYmFyU2l6ZSwgSWdub3JlT3ZlcmZsb3dDbGlwKSkucmVjdCgpOworICAgICAgICBpZiAoIWNs
aXBSZWN0LmlzSW5maW5pdGUoKSkKKyAgICAgICAgICAgIGNsaXBSZWN0LnNldExvY2F0aW9uKGxh
eWVyLmNvbnZlcnRUb0xheWVyQ29vcmRzKCZyb290UmVuZGVyTGF5ZXIoKSwgY2xpcFJlY3QubG9j
YXRpb24oKSkpOworICAgIH0gZWxzZQorICAgICAgICBjbGlwUmVjdCA9IGxheWVyLmJhY2tncm91
bmRDbGlwUmVjdChSZW5kZXJMYXllcjo6Q2xpcFJlY3RzQ29udGV4dCgmcm9vdFJlbmRlckxheWVy
KCksIEFic29sdXRlQ2xpcFJlY3RzKSkucmVjdCgpOyAvLyBGSVhNRTogSW5jb3JyZWN0IGZvciBD
U1MgcmVnaW9ucy4KKworICAgIGF1dG8gY2xpcHBlZEJvdW5kcyA9IGV4dGVudC5ib3VuZHM7Cisg
ICAgaWYgKCFjbGlwUmVjdC5pc0luZmluaXRlKCkpIHsKKyAgICAgICAgLy8gT24gaU9TLCBwYWdl
U2NhbGVGYWN0b3IoKSBpcyBub3QgYXBwbGllZCBieSBSZW5kZXJWaWV3LCBzbyB3ZSBzaG91bGQg
bm90IHNjYWxlIGhlcmUuCisgICAgICAgIGlmICghbV9yZW5kZXJWaWV3LnNldHRpbmdzKCkuZGVs
ZWdhdGVzUGFnZVNjYWxpbmcoKSkKKyAgICAgICAgICAgIGNsaXBSZWN0LnNjYWxlKHBhZ2VTY2Fs
ZUZhY3RvcigpKTsKKworICAgICAgICBjbGlwcGVkQm91bmRzLmludGVyc2VjdChjbGlwUmVjdCk7
CisgICAgfQorCisgICAgb3ZlcmxhcE1hcC5hZGQobGF5ZXIsIGNsaXBwZWRCb3VuZHMsIGNsaXBw
aW5nU2NvcGVzKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZERlc2NlbmRh
bnRzVG9PdmVybGFwTWFwUmVjdXJzaXZlKExheWVyT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29u
c3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllcikg
Y29uc3QKQEAgLTE4NDcsNiArMTg5Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjph
ZGREZXNjZW5kYW50c1RvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShMYXllck92ZXJsYXBNYXAmCiB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmxhcE1hcChMYXllck92ZXJsYXBNYXAm
IG92ZXJsYXBNYXAsIGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgT3ZlcmxhcEV4dGVudCYgbGF5
ZXJFeHRlbnQsIGJvb2wgZGlkUHVzaENvbnRhaW5lciwgYm9vbCBhZGRMYXllclRvT3ZlcmxhcCwg
Ym9vbCBhZGREZXNjZW5kYW50c1RvT3ZlcmxhcCkgY29uc3QKIHsKICAgICBpZiAoYWRkTGF5ZXJU
b092ZXJsYXApIHsKKyAgICAgICAgYXV0byBjbGlwcGluZ1Njb3BlcyA9IGVuY2xvc2luZ0NsaXBw
aW5nU2NvcGVzKGxheWVyLCByb290UmVuZGVyTGF5ZXIoKSk7CiAgICAgICAgIGFkZFRvT3Zlcmxh
cE1hcChvdmVybGFwTWFwLCBsYXllciwgbGF5ZXJFeHRlbnQpOwogICAgICAgICBMT0dfV0lUSF9T
VFJFQU0oQ29tcG9zaXRpbmdPdmVybGFwLCBzdHJlYW0gPDwgImxheWVyICIgPDwgJmxheWVyIDw8
ICIgY29udHJpYnV0ZXMgdG8gb3ZlcmxhcCwgYWRkZWQgdG8gbWFwICIgPDwgb3ZlcmxhcE1hcCk7
CiAgICAgfQpAQCAtMTg2Myw2ICsxOTE0LDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp1cGRhdGVPdmVybGFwTWFwKExheWVyT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uc3QKICAg
ICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllck92ZXJsYXBzKGNvbnN0
IExheWVyT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBP
dmVybGFwRXh0ZW50JiBsYXllckV4dGVudCkgY29uc3QKK3sKKyAgICBjb21wdXRlRXh0ZW50KG92
ZXJsYXBNYXAsIGxheWVyLCBsYXllckV4dGVudCk7CisKKyAgICBhdXRvIGNsaXBwaW5nU2NvcGVz
ID0gZW5jbG9zaW5nQ2xpcHBpbmdTY29wZXMobGF5ZXIsIHJvb3RSZW5kZXJMYXllcigpKTsKKyAg
ICByZXR1cm4gb3ZlcmxhcE1hcC5vdmVybGFwc0xheWVycyhsYXllciwgbGF5ZXJFeHRlbnQuYm91
bmRzLCBjbGlwcGluZ1Njb3Blcyk7Cit9CisKICNpZiBFTkFCTEUoVklERU8pCiBib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKFJlbmRlclZpZGVv
JiB2aWRlbykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaAppbmRleCA3ZjY2ZDE4NjZkY2MyYjY2YjExMTJhYjg0ODcwODNlZmYy
Y2EwN2RmLi4xMmMxMzUzYzRmYWVkYTRmMzBkODM2OTMzZjFkNjRiODQ3ZWJhZDEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00
MDksNiArNDA5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFRvT3ZlcmxhcE1hcChMYXllck92
ZXJsYXBNYXAmLCBjb25zdCBSZW5kZXJMYXllciYsIE92ZXJsYXBFeHRlbnQmKSBjb25zdDsKICAg
ICB2b2lkIGFkZERlc2NlbmRhbnRzVG9PdmVybGFwTWFwUmVjdXJzaXZlKExheWVyT3ZlcmxhcE1h
cCYsIGNvbnN0IFJlbmRlckxheWVyJiwgY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIg
PSBudWxscHRyKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZU92ZXJsYXBNYXAoTGF5ZXJPdmVybGFw
TWFwJiwgY29uc3QgUmVuZGVyTGF5ZXImLCBPdmVybGFwRXh0ZW50JiwgYm9vbCBkaWRQdXNoQ29u
dGFpbmVyLCBib29sIGFkZExheWVyVG9PdmVybGFwLCBib29sIGFkZERlc2NlbmRhbnRzVG9PdmVy
bGFwID0gZmFsc2UpIGNvbnN0OworICAgIGJvb2wgbGF5ZXJPdmVybGFwcyhjb25zdCBMYXllck92
ZXJsYXBNYXAmLCBjb25zdCBSZW5kZXJMYXllciYsIE92ZXJsYXBFeHRlbnQmKSBjb25zdDsKIAog
ICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lckZpcmVkKCk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
OTIwYTNkMzRkMGM4OTMxMGFlZDk4NmRkZWZiNjhlODMwYTk2NmRiLi4wODJlOTVjZWI1MjQ4ODg2
M2MxMWYxNTM5NTljMGI4ZTM4ZGI3N2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTktMDUt
MjEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTGF5
ZXIgZmxhc2hpbmcgYW5kIHBvb3IgcGVyZiBkdXJpbmcgc2Nyb2xsaW5nIG9mIG1lc3NhZ2UgbGlz
dCBvbiBnbWFpbC5jb20gYW5kIGhvdG1haWwuY29tIC0gb3ZlcmxhcCB0ZXN0aW5nIG5lZWRzIHRv
IGNvbnN0cmFpbmVkIHRvIGNsaXBwaW5nIHNjb3BlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MDkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
OTQwMzA4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRp
b24vY2xpcHBpbmctc2NvcGUvbmVzdGVkLXNjcm9sbGVyLW92ZXJsYXAtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29w
ZS9uZXN0ZWQtc2Nyb2xsZXItb3ZlcmxhcC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFpbmVkLWlu
c2lkZS1zY3JvbGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJsYXAtY29uc3RyYWluZWQtaW5zaWRl
LXNjcm9sbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0
aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJsYXAtY29uc3RyYWluZWQtaW5zaWRlLXN0YWNraW5nLWNv
bnRleHQtc2Nyb2xsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFpbmVkLWluc2lk
ZS1zdGFja2luZy1jb250ZXh0LXNjcm9sbGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL3Njcm9sbGVyLXdpdGgtbmVnYXRp
dmUtei1jaGlsZHJlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL3Njcm9sbGVyLXdpdGgtbmVnYXRpdmUtei1j
aGlsZHJlbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlv
bi9jbGlwcGluZy1zY29wZS9zaGFyZWQtbGF5ZXJzLWluLXNjcm9sbGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2Nv
cGUvc2hhcmVkLWxheWVycy1pbi1zY3JvbGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdr
Mi9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9uZXN0ZWQtc2Nyb2xs
ZXItb3ZlcmxhcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13
azIvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvb3ZlcmxhcC1jb25z
dHJhaW5lZC1pbnNpZGUtc2Nyb2xsZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3Bl
L292ZXJsYXAtY29uc3RyYWluZWQtaW5zaWRlLXN0YWNraW5nLWNvbnRleHQtc2Nyb2xsZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL3Njcm9sbGVyLXdpdGgtbmVnYXRpdmUtei1j
aGlsZHJlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIv
Y29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvc2hhcmVkLWxheWVycy1p
bi1zY3JvbGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0wNS0yMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgUlRML292ZXJmbG93IHNjcm9sbCB0ZXN0cyBmYWlsIHdp
dGggYXN5bmMgb3ZlcmZsb3cgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDk2NzExOTJh
NWU4YjEyZTQ1NDkxZDU2YzUxNzVmN2Y1YTQwMWIxMS4uOTljZmVjNWZjNWI2ZTlmYTc5MmYwMmJl
OTA0NjczYzZmNTA5NmI5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC02Myw2ICs2Myw3IEBAIGZh
c3QvbWVkaWEvaW9zIFsgU2tpcCBdCiAjIFJlcXVpcmVzIGFzeW5jIG92ZXJmbG93IHNjcm9sbGlu
ZwogY29tcG9zaXRpbmcvc2hhcmVkLWJhY2tpbmcvb3ZlcmZsb3ctc2Nyb2xsIFsgU2tpcCBdCiBj
b21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Nyb2xsaW5nIFsgU2tpcCBdCitj
b21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZSBbIFNraXAgXQogCiAjIFdl
YktpdDIgb25seS4KIHByaW50aW5nL3ByaW50aW5nLWV2ZW50cy5odG1sIFsgU2tpcCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1z
Y29wZS9uZXN0ZWQtc2Nyb2xsZXItb3ZlcmxhcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9uZXN0ZWQtc2Nyb2xsZXIt
b3ZlcmxhcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwODU2OWEzNzNkNDQzYzlmZDk1YWU3
ODNmZDNlN2E1YWZiMmNlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL25lc3RlZC1zY3JvbGxlci1vdmVybGFw
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExMiBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hv
ciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNv
bnRlbnRzT3BhcXVlIDEpCisgICAgICAoY2hpbGRyZW4gNworICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyMy4wMCAxMDUuMDApCisgICAgICAgICAgKGJvdW5kcyA0
MDIuMDAgMzUyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKG9mZnNl
dEZyb21SZW5kZXJlciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDM4NS4wMCAzNTAuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAg
ICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5k
cyAzODUuMDAgODMyLjAwKQorICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAocG9zaXRp
b24gMjAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAg
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGJvdW5kcyAyODUuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRl
cmVyIHdpZHRoPTEgaGVpZ2h0PTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5j
aG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgMjg1
LjAwIDI4MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRl
cmVyIHdpZHRoPS0xMCBoZWlnaHQ9LTEwKQorICAgICAgICAgIChwb3NpdGlvbiAyNC4wMCAxMDYu
MDApCisgICAgICAgICAgKGJvdW5kcyAzODUuMDAgMzUwLjAwKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDgwLjAwKQorICAgICAg
ICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisg
ICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTAu
MDAgMTAuMDApCisgICAgICAgICAgKGJvdW5kcyA2MC4wMCA1NTAuMDApCisgICAgICAgICkKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRo
PS0xMCBoZWlnaHQ9LTEwKQorICAgICAgICAgIChwb3NpdGlvbiA0NS4wMCAyMTcuMDApCisgICAg
ICAgICAgKGJvdW5kcyAyODUuMDAgMjAwLjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDgwLjAwKQorICAgICAgICAgICAgICAo
Y29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdp
ZHRoPS0xMCBoZWlnaHQ9LTEwMCkKKyAgICAgICAgICAocG9zaXRpb24gNDUuMDAgMjE3LjAwKQor
ICAgICAgICAgIChib3VuZHMgMjg1LjAwIDIwMC4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAw
IDEwMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgODAuMDApCisgICAgICAgICAg
ICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVy
ZXIgd2lkdGg9LTEwIGhlaWdodD0tMTkwKQorICAgICAgICAgIChwb3NpdGlvbiA0NS4wMCAyMTcu
MDApCisgICAgICAgICAgKGJvdW5kcyAyODUuMDAgMjAwLjAwKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTAuMDAgMTkwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCA4MC4wMCkKKyAgICAg
ICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE4
LjAwIDQ3Mi4wMCkKKyAgICAgICAgICAoYm91bmRzIDEwMC4wMCA4MC4wMCkKKyAgICAgICAgICAo
Y29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGlu
Zy1zY29wZS9uZXN0ZWQtc2Nyb2xsZXItb3ZlcmxhcC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvbmVzdGVkLXNjcm9sbGVyLW92ZXJs
YXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NmZhMGI3OTRjMDc5OTFjYWZmYzk4MmMzMTQ2YmJlMzczMWY1
YWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3Jl
YXRpb24vY2xpcHBpbmctc2NvcGUvbmVzdGVkLXNjcm9sbGVyLW92ZXJsYXAuaHRtbApAQCAtMCww
ICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRl
cm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG92ZXJm
bG93LXk6IHNjcm9sbDsKKwkJCW1hcmdpbjogMTVweDsKKyAgICAgICAgICAgIGhlaWdodDogMzUw
cHg7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmlubmVyIHsKKyAgICAg
ICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
ICAgICBtYXJnaW46IDIwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgLmJveCB7CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7
CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLnRyaWdnZXIgeworICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMHB4OworICAgICAg
ICAgICAgbGVmdDogMTBweDsKKyAgICAgICAgICAgIHdpZHRoOiA2MHB4OworICAgICAgICAgICAg
aGVpZ2h0OiA1NTBweDsKKyAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI4LCAxMjgsIDIwMCwgMC43KTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm91dHNpZGUgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JheTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLnNwYWNlciB7
CisgICAgICAgICAgICBoZWlnaHQ6IDUwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKwk8
c2NyaXB0PgorCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQl0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworCQl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKwkJCWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJz
JykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQp
OworCQl9LCBmYWxzZSk7CisJPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNs
YXNzPSJvdXRzaWRlIGJveCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJpbm5lciBib3giPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJp
bm5lciBzY3JvbGxlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmlnZ2VyIj48L2Rpdj4K
KyAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc2lkZSBib3giPjwvZGl2PgorICAgICAgICAgICAg
PGRpdiBjbGFzcz0iaW5zaWRlIGJveCI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJp
bnNpZGUgYm94Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNw
YWNlciI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ib3V0c2lkZSBib3giPjwv
ZGl2PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcHJlPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3Jl
YXRpb24vY2xpcHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNpZGUtc2Nyb2xsZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xp
cHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNpZGUtc2Nyb2xsZXItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJlNjA0NGFiMjEwOTcyMTBjM2YzYTEzZDcyNTIyNmZlYzFmMTYwMzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlv
bi9jbGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFpbmVkLWluc2lkZS1zY3JvbGxlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4MCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAw
IDAuMDApCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRz
T3BhcXVlIDEpCisgICAgICAoY2hpbGRyZW4gNQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAgICAgKGJvdW5kcyAzMDIuMDAgMzAy
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKG9mZnNldEZyb21SZW5k
ZXJlciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDI4NS4wMCAzMDAuMDApCisgICAgICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
ICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAgICAgICAgICAg
ICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAyODUuMDAg
NTAwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9LTEwIGhlaWdodD0tMTApCisgICAgICAgICAg
KHBvc2l0aW9uIDkuMDAgOS4wMCkKKyAgICAgICAgICAoYm91bmRzIDI4NS4wMCAzMDAuMDApCisg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyA1MC4w
MCAyMDAuMDApCisgICAgICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9LTQwIGhlaWdodD0tMjApCisgICAgICAgICAg
KHBvc2l0aW9uIDkuMDAgOS4wMCkKKyAgICAgICAgICAoYm91bmRzIDI4NS4wMCAzMDAuMDApCisg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiA0MC4wMCAyMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAu
MDAgMTAwLjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRoPS00MCBoZWlnaHQ9LTE0MCkKKyAgICAgICAg
ICAocG9zaXRpb24gOS4wMCA5LjAwKQorICAgICAgICAgIChib3VuZHMgMjg1LjAwIDMwMC4wMCkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDQwLjAwIDE0MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
MDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRoPS00MCBoZWlnaHQ9LTI2MCkKKyAgICAg
ICAgICAocG9zaXRpb24gOS4wMCA5LjAwKQorICAgICAgICAgIChib3VuZHMgMjg1LjAwIDMwMC4w
MCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDQwLjAwIDI2MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xp
cHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNpZGUtc2Nyb2xsZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJs
YXAtY29uc3RyYWluZWQtaW5zaWRlLXNjcm9sbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI2ODM3Mjgx
MDkxZDUyYWY0NDFiMzQ2MDYwYjQ3MmM1OTE2MTFkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJsYXAt
Y29uc3RyYWluZWQtaW5zaWRlLXNjcm9sbGVyLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+
CisJCS5zY3JvbGxlciB7CisJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQlvdmVyZmxvdy15OiBz
Y3JvbGw7CisJCQl3aWR0aDogMzAwcHg7CisJCQloZWlnaHQ6IDMwMHB4OworCQkJYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisJCX0KKwkJCisJCS5ib3ggeworCQkJcG9zaXRpb246IHJlbGF0aXZl
OworCQkJbWFyZ2luOiAyMHB4OworCQkgICAgd2lkdGg6IDEwMHB4OworCQkgICAgaGVpZ2h0OiAx
MDBweDsKKwkJICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworCQl9CisKKwkJLmluc2lkZSB7
CisJCQlsZWZ0OiAyMHB4OworCQl9CisKKwkJLm91dHNpZGUgeworCQkJcG9zaXRpb246IHJlbGF0
aXZlOworCQkJbWFyZ2luOiAyMHB4OworCQkgICAgd2lkdGg6IDEwMHB4OworCQkgICAgaGVpZ2h0
OiAxMDBweDsKKwkJICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKwkJfQorCisJCS50cmln
Z2VyIHsKKwkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMTBweDsKKwkJ
CWxlZnQ6IDEwcHg7CisJCQl3aWR0aDogNTBweDsKKwkJCWhlaWdodDogMjAwcHg7CisJCQliYWNr
Z3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisJCSAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisJ
CX0KKyAgICA8L3N0eWxlPgorCTxzY3JpcHQ+CisJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJ
CXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgKCkgPT4geworCQkJaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCWRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCk7CisJCX0sIGZhbHNlKTsKKwk8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorCTxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKwkJPGRpdiBjbGFzcz0idHJpZ2dlciI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9Imluc2lkZSBib3giPjwvZGl2PgorICAgICAgICA8
ZGl2IGNsYXNzPSJpbnNpZGUgYm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW5zaWRl
IGJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9Imluc2lkZSBib3giPjwvZGl2PgorCTwv
ZGl2PgorCTxkaXYgY2xhc3M9Im91dHNpZGUiPjwvZGl2PgorPHByZSBpZD0ibGF5ZXJzIj5MYXll
ciB0cmVlIGdvZXMgaGVyZTwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvb3Zlcmxh
cC1jb25zdHJhaW5lZC1pbnNpZGUtc3RhY2tpbmctY29udGV4dC1zY3JvbGxlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29w
ZS9vdmVybGFwLWNvbnN0cmFpbmVkLWluc2lkZS1zdGFja2luZy1jb250ZXh0LXNjcm9sbGVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTRmNThhYzk5MWUxZmQyZTIzMjI5NDlhYzY2MDE2NTg5
YmM1NTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXIt
Y3JlYXRpb24vY2xpcHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNpZGUtc3RhY2tp
bmctY29udGV4dC1zY3JvbGxlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MCBAQAorKEdyYXBo
aWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAg
NjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAg
ICAgICAgKGJvdW5kcyAzMDIuMDAgMzAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDI4NS4wMCAz
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBo
ZWlnaHQ9MSkKKyAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAyODUuMDAgNTAwLjAwKQorICAgICAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAocG9zaXRpb24gMTAu
MDAgMTAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA1MC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAocG9zaXRpb24gNDAuMDAgMjAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJv
dW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50c09wYXF1
ZSAxKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgKHBvc2l0aW9uIDQwLjAwIDE0MC4wMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgICAg
ICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xp
cHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNpZGUtc3RhY2tpbmctY29udGV4dC1z
Y3JvbGxlci5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xp
cHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNpZGUtc3RhY2tpbmctY29udGV4dC1z
Y3JvbGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkNjJiMTQ5ZDdlZWU0ODdlZTM3YjYzOWRiYTg2MDY0
NmMwMjNlZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXll
ci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFpbmVkLWluc2lkZS1zdGFj
a2luZy1jb250ZXh0LXNjcm9sbGVyLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisJCS5z
Y3JvbGxlciB7CisJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl6LWluZGV4OiAwOworCQkJb3Zl
cmZsb3cteTogc2Nyb2xsOworCQkJd2lkdGg6IDMwMHB4OworCQkJaGVpZ2h0OiAzMDBweDsKKwkJ
CWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworCQl9CisJCQorCQkuYm94IHsKKwkJCXBvc2l0aW9u
OiByZWxhdGl2ZTsKKwkJCW1hcmdpbjogMjBweDsKKwkJICAgIHdpZHRoOiAxMDBweDsKKwkJICAg
IGhlaWdodDogMTAwcHg7CisJCSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKwkJfQorCisJ
CS5pbnNpZGUgeworCQkJbGVmdDogMjBweDsKKwkJfQorCisJCS5vdXRzaWRlIHsKKwkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKKwkJCW1hcmdpbjogMjBweDsKKwkJICAgIHdpZHRoOiAxMDBweDsKKwkJ
ICAgIGhlaWdodDogMTAwcHg7CisJCSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisJCX0K
KworCQkudHJpZ2dlciB7CisJCQlwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6
IDEwcHg7CisJCQlsZWZ0OiAxMHB4OworCQkJd2lkdGg6IDUwcHg7CisJCQloZWlnaHQ6IDIwMHB4
OworCQkJYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworCQkgICAgdHJhbnNmb3JtOiB0cmFuc2xh
dGVaKDApOworCQl9CisgICAgPC9zdHlsZT4KKwk8c2NyaXB0PgorCQlpZiAod2luZG93LnRlc3RS
dW5uZXIpCisJCQl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworCQl3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsICgpID0+IHsKKwkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQlk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworCQl9LCBmYWxzZSk7CisJPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKwk8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisJCTxkaXYgY2xhc3M9
InRyaWdnZXIiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbnNpZGUgYm94Ij48L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaW5zaWRlIGJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9Imluc2lkZSBib3giPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbnNpZGUgYm94Ij48
L2Rpdj4KKwk8L2Rpdj4KKwk8ZGl2IGNsYXNzPSJvdXRzaWRlIj48L2Rpdj4KKzxwcmUgaWQ9Imxh
eWVycyI+TGF5ZXIgdHJlZSBnb2VzIGhlcmU8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNj
b3BlL3Njcm9sbGVyLXdpdGgtbmVnYXRpdmUtei1jaGlsZHJlbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9zY3JvbGxl
ci13aXRoLW5lZ2F0aXZlLXotY2hpbGRyZW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YTk5
YTJlMDBhY2MyZjI5NWU1NzNlZTVhNWY3NTUxNGEyOThkNTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9zY3Jv
bGxlci13aXRoLW5lZ2F0aXZlLXotY2hpbGRyZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjgg
QEAKKyhHcmFwaGljc0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4w
MCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4
LjAwKQorICAgICAgICAgIChib3VuZHMgMzAyLjAwIDMwMi4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAyODUuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVy
IHdpZHRoPTEgaGVpZ2h0PTEpCisgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMjg1LjAwIDUwMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVy
IHdpZHRoPS0xMCBoZWlnaHQ9LTEwKQorICAgICAgICAgIChwb3NpdGlvbiA5LjAwIDkuMDApCisg
ICAgICAgICAgKGJvdW5kcyAyODUuMDAgMzAwLjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAg
MTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgNTAuMDAgMjAwLjAwKQorICAgICAgICAgICAg
ICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVy
IHdpZHRoPS00MCBoZWlnaHQ9LTIwKQorICAgICAgICAgIChwb3NpdGlvbiA5LjAwIDkuMDApCisg
ICAgICAgICAgKGJvdW5kcyAyODUuMDAgMzAwLjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gNDAuMDAg
MjAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAg
ICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKG9mZnNldEZyb21SZW5kZXJl
ciB3aWR0aD0tNDAgaGVpZ2h0PS0yNjApCisgICAgICAgICAgKHBvc2l0aW9uIDkuMDAgOS4wMCkK
KyAgICAgICAgICAoYm91bmRzIDI4NS4wMCAzMDAuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiA0MC4w
MCAyNjAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAg
ICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL3Njcm9sbGVyLXdpdGgt
bmVnYXRpdmUtei1jaGlsZHJlbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXIt
Y3JlYXRpb24vY2xpcHBpbmctc2NvcGUvc2Nyb2xsZXItd2l0aC1uZWdhdGl2ZS16LWNoaWxkcmVu
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhiNTEyNDU3ZjM4OTJkOWU1YmQxYzk2YmZmZDQ2NzU4NDlkOWNl
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0
aW9uL2NsaXBwaW5nLXNjb3BlL3Njcm9sbGVyLXdpdGgtbmVnYXRpdmUtei1jaGlsZHJlbi5odG1s
CkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorCQkuc2Nyb2xsZXIgeworCQkJcG9zaXRpb246IHJl
bGF0aXZlOworCQkJb3ZlcmZsb3cteTogc2Nyb2xsOworCQkJd2lkdGg6IDMwMHB4OworCQkJaGVp
Z2h0OiAzMDBweDsKKwkJCWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworCQl9CisJCQorCQkuYm94
IHsKKwkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCW1hcmdpbjogMjBweDsKKwkJICAgIHdpZHRo
OiAxMDBweDsKKwkJICAgIGhlaWdodDogMTAwcHg7CisJCSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKwkJfQorCisJCS5pbnNpZGUgeworCQkJbGVmdDogMjBweDsKKwkJfQorCQkKKwkJLm5l
Z2F0aXZlIHsKKwkJCXotaW5kZXg6IC0xOworCQl9CisKKwkJLm91dHNpZGUgeworCQkJcG9zaXRp
b246IHJlbGF0aXZlOworCQkJbWFyZ2luOiAyMHB4OworCQkgICAgd2lkdGg6IDEwMHB4OworCQkg
ICAgaGVpZ2h0OiAxMDBweDsKKwkJICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKwkJfQor
CisJCS50cmlnZ2VyIHsKKwkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDog
MTBweDsKKwkJCWxlZnQ6IDEwcHg7CisJCQl3aWR0aDogNTBweDsKKwkJCWhlaWdodDogMjAwcHg7
CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisJCSAgICB0cmFuc2Zvcm06IHRyYW5zbGF0
ZVooMCk7CisJCX0KKyAgICA8L3N0eWxlPgorCTxzY3JpcHQ+CisJCWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKwkJCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisJCXdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgKCkgPT4geworCQkJaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCWRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJu
YWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CisJCX0sIGZhbHNlKTsKKwk8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorCTxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKwkJPGRpdiBjbGFzcz0i
dHJpZ2dlciI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9Imluc2lkZSBib3giPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGNsYXNzPSJpbnNpZGUgbmVnYXRpdmUgYm94Ij48L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaW5zaWRlIGJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9Imluc2lk
ZSBib3giPjwvZGl2PgorCTwvZGl2PgorCTxkaXYgY2xhc3M9Im91dHNpZGUiPjwvZGl2PgorPHBy
ZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcHJlPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xp
cHBpbmctc2NvcGUvc2hhcmVkLWxheWVycy1pbi1zY3JvbGxlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9zaGFyZWQt
bGF5ZXJzLWluLXNjcm9sbGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzAzMjNiYzk0Y2Ni
NGM0MDEyZjEwMzk4OGY2NmQyNDZlMmQ4MmY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvc2hhcmVkLWxheWVy
cy1pbi1zY3JvbGxlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorKEdyYXBoaWNzTGF5
ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAw
KQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAgICAg
KGJvdW5kcyAzMDIuMDAgMzAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAgICAgICAo
cG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDI4NS4wMCAzMDAuMDAp
CisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9
MSkKKyAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAyODUuMDAgNTAwLjAwKQorICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiA3OC4wMCAzMDAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAw
KQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICApCisgICAgICApCisgICAg
KQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL2NsaXBwaW5nLXNjb3BlL3NoYXJlZC1sYXllcnMtaW4tc2Nyb2xsZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL3NoYXJl
ZC1sYXllcnMtaW4tc2Nyb2xsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODdkZGQ5MTBkMTI5NTBlNjk5
NWQwOTllNDIwMjZhN2MxNjIzYjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvc2hhcmVkLWxheWVycy1pbi1z
Y3JvbGxlci5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorCQkuc2Nyb2xsZXIgeworCQkJ
b3ZlcmZsb3cteTogc2Nyb2xsOworCQkJd2lkdGg6IDMwMHB4OworCQkJaGVpZ2h0OiAzMDBweDsK
KwkJCWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworCQl9CisJCQorCQkuYm94IHsKKwkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKKwkJCW1hcmdpbjogMjBweDsKKwkJICAgIHdpZHRoOiAxMDBweDsKKwkJ
ICAgIGhlaWdodDogMTAwcHg7CisJCSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKwkJfQor
CQkKKwkJLnNwYWNlciB7CisJCQloZWlnaHQ6IDIwMHB4OworCQkJd2lkdGg6IDEwcHg7CisJCQli
YWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisJCX0KKwkJCisJCS5vdXRzaWRlIHsKKwkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKKwkJCXRvcDogLTMwcHg7CisJCQlsZWZ0OiA1MHB4OworCQkJYmFja2dy
b3VuZC1jb2xvcjogZ3JheTsKKwkJfQorCQkKKyAgICA8L3N0eWxlPgorCTxzY3JpcHQ+CisJCWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisJCXdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworCQkJaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnMnKS5pbm5lclRleHQg
PSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CisJCX0sIGZhbHNl
KTsKKwk8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCTxkaXYgY2xhc3M9InNjcm9sbGVyIj4K
KwkJPGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKwkJPGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKwkJ
PGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKwkJPGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKwk8L2Rp
dj4KKwk8ZGl2IGNsYXNzPSJvdXRzaWRlIGJveCI+PC9kaXY+Cis8cHJlIGlkPSJsYXllcnMiPkxh
eWVyIHRyZWUgZ29lcyBoZXJlPC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDgwOTlhZmYxZWQ3MWU5
MDJkNWUwMDUxMDU4NGI0YzE0ZWMzOWM5NS4uNjgwY2FkM2FkMTNjYjA5YjA0MTk3YzAyNGYyYzgz
YmE4YTMyOGNiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtOSw2ICs5LDcgQEAKIGNvbXBvc2l0aW5nL2lvcyBbIFBhc3MgXQogY29tcG9z
aXRpbmcvc2hhcmVkLWJhY2tpbmcvb3ZlcmZsb3ctc2Nyb2xsIFsgUGFzcyBdCiBjb21wb3NpdGlu
Zy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Nyb2xsaW5nIFsgUGFzcyBdCitjb21wb3NpdGlu
Zy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZSBbIFBhc3MgXQogZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24gWyBQYXNzIF0KIGZhc3QvaGlzdG9yeS9pb3MgWyBQYXNzIF0KIGZhc3Qvc2Nyb2xs
aW5nL2lvcyBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9uZXN0ZWQtc2Nyb2xs
ZXItb3ZlcmxhcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2Nv
bXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL25lc3RlZC1zY3JvbGxlci1v
dmVybGFwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmE3NGNkZjM1MzM5YzU3YmM3MDdmMGE4
NTBjMzk5M2Q5YTVkNjViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9uZXN0ZWQt
c2Nyb2xsZXItb3ZlcmxhcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMTIgQEAKKyhHcmFwaGlj
c0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYw
MC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGNoaWxkcmVuIDcKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjMuMDAgMTA1LjAwKQorICAg
ICAgICAgIChib3VuZHMgNDAyLjAwIDM1Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyA0MDAuMDAg
MzUwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRoPTEg
aGVpZ2h0PTEpCisgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAg
ICAgICAgICAgIChib3VuZHMgNDAwLjAwIDgzMi4wMCkKKyAgICAgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAo
Ym91bmRzIDMwMi4wMCAyMDIuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzT3Bh
cXVlIDEpCisgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdp
ZHRoPTEgaGVpZ2h0PTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAwLjAwIDIwMC4wMCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYm91bmRzIDMwMC4wMCAyODAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0tMTAgaGVpZ2h0PS0xMCkKKyAgICAgICAgICAocG9z
aXRpb24gMjQuMDAgMTA2LjAwKQorICAgICAgICAgIChib3VuZHMgNDAwLjAwIDM1MC4wMCkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDEwMC4w
MCA4MC4wMCkKKyAgICAgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgIChib3VuZHMgNjAuMDAgNTUwLjAw
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKG9mZnNldEZy
b21SZW5kZXJlciB3aWR0aD0tMTAgaGVpZ2h0PS0xMCkKKyAgICAgICAgICAocG9zaXRpb24gNDUu
MDAgMjE3LjAwKQorICAgICAgICAgIChib3VuZHMgMzAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCA4MC4wMCkK
KyAgICAgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKG9mZnNl
dEZyb21SZW5kZXJlciB3aWR0aD0tMTAgaGVpZ2h0PS0xMDApCisgICAgICAgICAgKHBvc2l0aW9u
IDQ1LjAwIDIxNy4wMCkKKyAgICAgICAgICAoYm91bmRzIDMwMC4wMCAyMDAuMDApCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxMC4wMCAxMDAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDgw
LjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
b2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRoPS0xMCBoZWlnaHQ9LTE5MCkKKyAgICAgICAgICAocG9z
aXRpb24gNDUuMDAgMjE3LjAwKQorICAgICAgICAgIChib3VuZHMgMzAwLjAwIDIwMC4wMCkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEwLjAwIDE5MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAu
MDAgODAuMDApCisgICAgICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAxOC4wMCA0NzIuMDApCisgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgODAu
MDApCisgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICkKKyAgICAgICkKKyAg
ICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9j
b21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFp
bmVkLWluc2lkZS1zY3JvbGxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlL292ZXJsYXAt
Y29uc3RyYWluZWQtaW5zaWRlLXNjcm9sbGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGY4
MzE4OWFjOTU2MzAwNzA1YjM5NTNkMGI1MDcxOWIyY2MyMDM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9j
bGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFpbmVkLWluc2lkZS1zY3JvbGxlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw4MCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAu
MDApCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3Bh
cXVlIDEpCisgICAgICAoY2hpbGRyZW4gNQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAgICAgKGJvdW5kcyAzMDIuMDAgMzAyLjAw
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKG9mZnNldEZyb21SZW5kZXJl
ciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAg
IChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAgICAgICAgICAgICAg
IChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgNTAw
LjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9LTEwIGhlaWdodD0tMTApCisgICAgICAgICAgKHBv
c2l0aW9uIDkuMDAgOS4wMCkKKyAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyA1MC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9LTQwIGhlaWdodD0tMjApCisgICAgICAgICAgKHBv
c2l0aW9uIDkuMDAgOS4wMCkKKyAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiA0MC4wMCAyMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAuMDAg
MTAwLjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRoPS00MCBoZWlnaHQ9LTE0MCkKKyAgICAgICAgICAo
cG9zaXRpb24gOS4wMCA5LjAwKQorICAgICAgICAgIChib3VuZHMgMzAwLjAwIDMwMC4wMCkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDQwLjAwIDE0MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAu
MDAgMTAwLjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAob2Zmc2V0RnJvbVJlbmRlcmVyIHdpZHRoPS00MCBoZWlnaHQ9LTI2MCkKKyAgICAgICAg
ICAocG9zaXRpb24gOS4wMCA5LjAwKQorICAgICAgICAgIChib3VuZHMgMzAwLjAwIDMwMC4wMCkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDQwLjAwIDI2MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
MDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy9sYXll
ci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9vdmVybGFwLWNvbnN0cmFpbmVkLWluc2lkZS1zdGFj
a2luZy1jb250ZXh0LXNjcm9sbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvb3Zlcmxh
cC1jb25zdHJhaW5lZC1pbnNpZGUtc3RhY2tpbmctY29udGV4dC1zY3JvbGxlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmI1YjFjZTFjM2NkMWRhYmFkMDk5ZDU2MDI5ZDMxNmZhNzdiNTQ5NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRp
bmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUvb3ZlcmxhcC1jb25zdHJhaW5lZC1pbnNp
ZGUtc3RhY2tpbmctY29udGV4dC1zY3JvbGxlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MCBA
QAorKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAw
IDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5k
cyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDgu
MDApCisgICAgICAgICAgKGJvdW5kcyAzMDIuMDAgMzAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0xIGhlaWdodD0xKQor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChvZmZzZXRGcm9tUmVuZGVyZXIg
d2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQor
ICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgNTAwLjAwKQorICAgICAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDMKKyAgICAg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAocG9z
aXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyA1MC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAocG9zaXRpb24gNDAuMDAgMjAuMDApCisgICAgICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgKHBvc2l0aW9uIDQwLjAwIDE0
MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICAp
CisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9zY3JvbGxlci13aXRoLW5lZ2F0
aXZlLXotY2hpbGRyZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZS9zY3JvbGxlci13aXRo
LW5lZ2F0aXZlLXotY2hpbGRyZW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YjQyNjM0NTU4
YmM0NGRkYWEyNDUzOTRiNzk1NmI2MzMzZTc0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5n
LXNjb3BlL3Njcm9sbGVyLXdpdGgtbmVnYXRpdmUtei1jaGlsZHJlbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2OCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChi
b3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisg
ICAgICAoY2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiA4LjAwIDguMDApCisgICAgICAgICAgKGJvdW5kcyAzMDIuMDAgMzAyLjAwKQorICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0x
IGhlaWdodD0xKQorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChvZmZzZXRG
cm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAgICAgICAgICAgICAgIChhbmNob3Ig
MC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgNTAwLjAwKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChvZmZzZXRG
cm9tUmVuZGVyZXIgd2lkdGg9LTEwIGhlaWdodD0tMTApCisgICAgICAgICAgKHBvc2l0aW9uIDku
MDAgOS4wMCkKKyAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyA1MC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChvZmZzZXRG
cm9tUmVuZGVyZXIgd2lkdGg9LTQwIGhlaWdodD0tMjApCisgICAgICAgICAgKHBvc2l0aW9uIDku
MDAgOS4wMCkKKyAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiA0MC4wMCAyMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAwKQor
ICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAob2Zmc2V0
RnJvbVJlbmRlcmVyIHdpZHRoPS00MCBoZWlnaHQ9LTI2MCkKKyAgICAgICAgICAocG9zaXRpb24g
OS4wMCA5LjAwKQorICAgICAgICAgIChib3VuZHMgMzAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDQwLjAwIDI2MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAw
KQorICAgICAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9j
bGlwcGluZy1zY29wZS9zaGFyZWQtbGF5ZXJzLWluLXNjcm9sbGVyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xp
cHBpbmctc2NvcGUvc2hhcmVkLWxheWVycy1pbi1zY3JvbGxlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDQzZjkwMzMyZDdlMTJmMDkxNjExN2MzMDlhNzJmMzQ5NGY1ZjI2NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvY29tcG9zaXRpbmcvbGF5ZXIt
Y3JlYXRpb24vY2xpcHBpbmctc2NvcGUvc2hhcmVkLWxheWVycy1pbi1zY3JvbGxlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzOCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAu
MDApCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3Bh
cXVlIDEpCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAgICAgKGJvdW5kcyAzMDIuMDAgMzAyLjAw
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKG9mZnNldEZyb21SZW5kZXJl
ciB3aWR0aD0xIGhlaWdodD0xKQorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAg
IChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MSBoZWlnaHQ9MSkKKyAgICAgICAgICAgICAgICAg
IChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgNTAw
LjAwKQorICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAg
KQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA3OC4wMCAzMDAu
MDApCisgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgIChjb250ZW50
c09wYXF1ZSAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZGViZWQ5MDQ0
MzkzYzQ0NmQyNzdmZDA5MDJjMTg0YzQxNjUwNmY1Li5iMjM3Y2I5ZWExYWU3N2EyN2JiZjIxMThi
NDQ4ZDJkYjEwYmE4NTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogCiBjb21wb3NpdGluZy9zaGFyZWQtYmFja2lu
Zy9vdmVyZmxvdy1zY3JvbGwgWyBQYXNzIF0KIGNvbXBvc2l0aW5nL3Njcm9sbGluZy9hc3luYy1v
dmVyZmxvdy1zY3JvbGxpbmcgWyBQYXNzIF0KK2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2Ns
aXBwaW5nLXNjb3BlIFsgUGFzcyBdCiBlZGl0aW5nL2ZpbmQgWyBQYXNzIF0KIGVkaXRpbmcvdW5k
by1tYW5hZ2VyIFsgUGFzcyBdCiBmYXN0L2Zvcm1zL3NlbGVjdC9tYWMtd2syIFsgUGFzcyBdCg==
</data>
<flag name="review"
          id="386319"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>