<?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>141382</bug_id>
          
          <creation_ts>2015-02-09 01:37:37 -0800</creation_ts>
          <short_desc>SVGUseElement follow-up improvements</short_desc>
          <delta_ts>2015-02-12 08:49:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067770</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-09 01:37:37 -0800</bug_when>
    <thetext>SVGUseElement follow-up improvements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067778</commentid>
    <comment_count>1</comment_count>
      <attachid>246261</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-09 02:27:17 -0800</bug_when>
    <thetext>Created attachment 246261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067821</commentid>
    <comment_count>2</comment_count>
      <attachid>246272</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-09 07:57:14 -0800</bug_when>
    <thetext>Created attachment 246272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067941</commentid>
    <comment_count>3</comment_count>
      <attachid>246272</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-09 15:32:59 -0800</bug_when>
    <thetext>Comment on attachment 246272
Patch

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

&gt; Source/WebCore/svg/SVGElement.cpp:968
&gt; +            return title;

I do not know any use for this code.  My understanding is the title() function is used mainly for hit testing and the UI tooltip text. The hit testing never hits an instance element inside an SVG.  This means for the tooltip text, we never call to this function with an instance element. We always walk the tree up starting from the use element till we find a non-empty title or we reach the the root of the svg. I do not think also we can hit this function with an instance element though DOM. There is nothing in the SVGElement which can return its UI title. 

But if there a way, which I am not aware of, to can call this function with an instance element, I think we should return the useElement-&gt;title() always regardless whether it is empty or not.  We should not return the title of the instance element ever.

&gt; Source/WebCore/svg/SVGUseElement.cpp:402
&gt;      }

Do not we need if-else here? If correspondingElement is not null then we need to search the original tree and we do not need to search for cycles in the instance tree.  In other words do we need to search for cycles in the instance tree?

&gt; Source/WebCore/svg/SVGUseElement.cpp:519
&gt; +    invalidateShadowTree();

Why do we need to move this statement here? My understanding is this function gets called when a &lt;use&gt; element is referencing an element in an external document. When the external document finishes loading, the &lt;use&gt; element gets notified by this function so it can build its shadow tree.  If the &lt;use&gt; element is removed from the document before it the external document finishes loading, we might need to do invalidateShadowTree() in this case since the element is going to be deleted anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067985</commentid>
    <comment_count>4</comment_count>
      <attachid>246272</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-09 20:51:39 -0800</bug_when>
    <thetext>Comment on attachment 246272
Patch

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

&gt;&gt; Source/WebCore/svg/SVGElement.cpp:968
&gt;&gt; +            return title;
&gt; 
&gt; I do not know any use for this code.  My understanding is the title() function is used mainly for hit testing and the UI tooltip text. The hit testing never hits an instance element inside an SVG.  This means for the tooltip text, we never call to this function with an instance element. We always walk the tree up starting from the use element till we find a non-empty title or we reach the the root of the svg. I do not think also we can hit this function with an instance element though DOM. There is nothing in the SVGElement which can return its UI title. 
&gt; 
&gt; But if there a way, which I am not aware of, to can call this function with an instance element, I think we should return the useElement-&gt;title() always regardless whether it is empty or not.  We should not return the title of the instance element ever.

I see your point. As you say, we won’t hit this through the DOM. If someone has a pointer to the instance and uses it to call title, they also could have called lots of other functions on that element, such as getAttribute or className. I don’t see what’s special about title. Normally what we do is to prevent them from having a pointer to the instance. I think all of this points to the fact that we should just remove this code.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:402
&gt;&gt;      }
&gt; 
&gt; Do not we need if-else here? If correspondingElement is not null then we need to search the original tree and we do not need to search for cycles in the instance tree.  In other words do we need to search for cycles in the instance tree?

I think you are saying we only need the second loop. I am having trouble thinking this through.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:519
&gt;&gt; +    invalidateShadowTree();
&gt; 
&gt; Why do we need to move this statement here? My understanding is this function gets called when a &lt;use&gt; element is referencing an element in an external document. When the external document finishes loading, the &lt;use&gt; element gets notified by this function so it can build its shadow tree.  If the &lt;use&gt; element is removed from the document before it the external document finishes loading, we might need to do invalidateShadowTree() in this case since the element is going to be deleted anyway.

We don’t really need to move it; but it also does no harm. I like it slightly better before the check, because the invalidation is always a good/safe idea and will do no harm if not needed. But I don’t think notifyFinished can ever be called when inDocument() will return false, because we remove ourselves as a client from the cached resource whenever the element is removed from the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068051</commentid>
    <comment_count>5</comment_count>
      <attachid>246272</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-10 07:19:53 -0800</bug_when>
    <thetext>Comment on attachment 246272
Patch

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

&gt;&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:402
&gt;&gt;&gt;      }
&gt;&gt; 
&gt;&gt; Do not we need if-else here? If correspondingElement is not null then we need to search the original tree and we do not need to search for cycles in the instance tree.  In other words do we need to search for cycles in the instance tree?
&gt; 
&gt; I think you are saying we only need the second loop. I am having trouble thinking this through.

OK, I think I figured it out. The algorithm for preventing cycles is to check whether the target is something we already cloned to make one of our parents. There’s no need to prevent any other kind of cycle; they’ll all end up trying to clone the same target twice and that’s all we need to check for. Accordingly we only need the first loop, not the second one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068065</commentid>
    <comment_count>6</comment_count>
      <attachid>246326</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-10 08:25:54 -0800</bug_when>
    <thetext>Created attachment 246326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068066</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-10 08:26:15 -0800</bug_when>
    <thetext>New patch incorporates all the feedback from Said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068269</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-10 22:50:18 -0800</bug_when>
    <thetext>Need to find a reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068377</commentid>
    <comment_count>9</comment_count>
      <attachid>246326</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-11 09:40:50 -0800</bug_when>
    <thetext>Comment on attachment 246326
Patch

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

&gt; Source/WebCore/svg/SVGUseElement.cpp:102
&gt;      else if (name == SVGNames::heightAttr)
&gt;          setHeightBaseValue(SVGLength::construct(LengthModeHeight, value, parseError, ForbidNegativeLengths));
&gt; -    else if (SVGLangSpace::parseAttribute(name, value)
&gt; -             || SVGExternalResourcesRequired::parseAttribute(name, value)
&gt; -             || SVGURIReference::parseAttribute(name, value)) {
&gt; -    } else
&gt; -        ASSERT_NOT_REACHED();
&gt;  
&gt;      reportAttributeParsingError(parseError, name, value);
&gt; -}
&gt;  
&gt; -#if !ASSERT_DISABLED
&gt; -static inline bool isWellFormedDocument(Document&amp; document)
&gt; -{
&gt; -    if (document.isSVGDocument() || document.isXHTMLDocument())
&gt; -        return static_cast&lt;XMLDocumentParser*&gt;(document.parser())-&gt;wellFormed();
&gt; -    return true;
&gt; +    SVGExternalResourcesRequired::parseAttribute(name, value);
&gt; +    SVGGraphicsElement::parseAttribute(name, value);
&gt; +    SVGLangSpace::parseAttribute(name, value);
&gt; +    SVGURIReference::parseAttribute(name, value);

Looks like this could bail out when someone handles the attribute. Maybe not a worthwhile optimization.

&gt; Source/WebCore/svg/SVGUseElement.cpp:376
&gt; +    SVGElement* correspondingElement = this-&gt;correspondingElement();
&gt; +    const SVGUseElement&amp; original = correspondingElement ? downcast&lt;SVGUseElement&gt;(*correspondingElement) : *this;
&gt; +
&gt; +    Element* targetCandidate = targetElementFromIRIString(original.href(), original.document(), targetID, original.externalDocument());

I would use auto in all these.

&gt; Source/WebCore/svg/SVGUseElement.cpp:387
&gt; +    SVGElement&amp; target = downcast&lt;SVGElement&gt;(*targetCandidate);

Here too.

&gt; Source/WebCore/svg/SVGUseElement.cpp:-501
&gt; -    if (cachedDocumentIsStillLoading())
&gt; -        return;

Any idea why this check was here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068419</commentid>
    <comment_count>10</comment_count>
      <attachid>246326</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-11 11:46:00 -0800</bug_when>
    <thetext>Comment on attachment 246326
Patch

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

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:102
&gt;&gt; +    SVGURIReference::parseAttribute(name, value);
&gt; 
&gt; Looks like this could bail out when someone handles the attribute. Maybe not a worthwhile optimization.

This is a salient topic for all the SVG element code. There’s a non-trivial amount of code to implement “bail out when someone handles an attribute” including HashSets and such. I’m not sure we ever need to do that optimization. If the performance cost of more atomic string comparisons and function call overhead was really significant, then I’d think we’d want to make a bigger change, not just these early exits.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:376
&gt;&gt; +    Element* targetCandidate = targetElementFromIRIString(original.href(), original.document(), targetID, original.externalDocument());
&gt; 
&gt; I would use auto in all these.

OK, I’ll do some more.

&gt;&gt; Source/WebCore/svg/SVGUseElement.cpp:-501
&gt;&gt; -        return;
&gt; 
&gt; Any idea why this check was here?

Yes, I do understand it. The old code went out of its way to not build a shadow tree at all when any document was loading. But there’s no reason for that. We can build the partial tree at first, then rebuild the whole tree once the loading is done. I don’t think there’s a “flash of unsettled content” issue and the extra code to handle the loading state specially doesn’t seem to provide any significant benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068536</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-11 19:53:54 -0800</bug_when>
    <thetext>Committed r179980: &lt;http://trac.webkit.org/changeset/179980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068626</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-02-12 08:49:47 -0800</bug_when>
    <thetext>Something about those braces causes Visual Studio debug builds to have internal errors like this one:

1&gt;c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\svg\svgsvgelement.cpp(540): fatal error C1001: An internal error has occurred in the compiler.

https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/85500/steps/compile-webkit/logs/stdio

Fix committed to http://trac.webkit.org/changeset/179991</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246261</attachid>
            <date>2015-02-09 02:27:17 -0800</date>
            <delta_ts>2015-02-09 07:57:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141382-20150209022718.patch</filename>
            <type>text/plain</type>
            <size>116073</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZkZDFlY2RlOTM2OGI3
NzlkZjhlMmRlMGQzODA3ZGQwNGYxNTZjNS4uM2E0MWUzZjA4ZTI0NWUxNTczMDg3ZDA5NTU5NjM0
NTVkZTNkNjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NSBAQAorMjAxNS0wMi0wOSAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHVXNlRWxlbWVudCBmb2xs
b3ctdXAgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudENsaWVudC5oOiBSZW1v
dmVkIHVubmVlZGVkIGZvcndhcmQgZGVjbGFyYXRpb24uCisKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZSBvZiBTVkdVc2VFbGVtZW50Lmgu
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA6
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmNsZWFyVGFyZ2V0RGVwZW5kZW5j
aWVzKTogUmVtb3ZlZCB0b28tc3BlY2lmaWMKKyAgICAgICAgY2hlY2sgdGhhdCBhc3N1bWVkIHRo
YXQgU1ZHIGVsZW1lbnRzIGluIHNoYWRvdyB0cmVlcyBhcmUgYWx3YXlzIGZvciA8dXNlPiBlbGVt
ZW50cy4KKyAgICAgICAgVGhpcyBhbW91bnRlZCB0byBhbiB1bm5lZWRlZCBvcHRpbWl6YXRpb24g
dGhhdCBjb3VsZCBiZSByZW1vdmVkIHdpdGggbm8gYmFkIGVmZmVjdC4KKworICAgICAgICAqIHN2
Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNvcnJlc3Bv
bmRpbmdFbGVtZW50KTogUmVtb3ZlZCB0aGUgYXNzZXJ0aW9ucyBzbyB0aGlzIGNvdWxkCisgICAg
ICAgIGJlIHVzZWQgbW9yZSBmcmVlbHkgb3V0c2lkZSBvZiBjYXNlcyB3aGVyZSB0aGUgc2hhZG93
IHRyZWUgc3RhdGUgaXMgZnVsbHkgY29uc2lzdGVudC4KKyAgICAgICAgSXQncyBmaW5lIHRvIGhh
dmUgdGhpcyBqdXN0IGJlIGEgbWVjaGFuaWNhbCBnZXR0ZXI7IHRoZXJlJ3Mgbm90aGluZyBzdXBl
ci10cmlja3kKKyAgICAgICAgaGVyZSB0aGF0IG5lZWRzIHRvIGJlIGNhdWdodCBieSB0aGUgYXNz
ZXJ0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6dGl0bGUpOiBSZXBsYWNlZCB0
aGUgY29tcGxleCB0aXRsZSBjb2RlIHdpdGggYSBjYWxsIHRvIHRoZQorICAgICAgICBjb3JyZXNw
b25kaW5nVXNlRWxlbWVudCBmdW5jdGlvbi4KKworICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQgYW4gb3Zl
cmxvYWQgdGhhdCBkb2Vzbid0IHJlcXVpcmUgZXhwbGljaXRseQorICAgICAgICBwYXNzaW5nIGlu
IHRoZSB0YWcgbmFtZS4KKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuaDogRGl0dG8uCisgICAg
ICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxl
bWVudDo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDogRGl0
dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6IFJlbW92ZWQgYSBsb3Qgb2Yg
dW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpTVkdV
c2VFbGVtZW50KTogUmVtb3ZlZCBjb2RlIHRvIGluaXRpYWxpemUgc29tZSBib29sZWFucy4KKyAg
ICAgICAgV2UgZG8gdGhhdCBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiBub3cuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpjcmVhdGUpOiBSZW1vdmVkIHRoZSBjb2RlIHRoYXQgY2Fs
bHMgdGhlCisgICAgICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QgZnVuY3Rpb24gdW5jb25k
aXRpb25hbGx5LiBUaGF0J3MgcHJvcGVybHkgZG9uZSB3aGVuCisgICAgICAgIG5lZWRlZDsgbm8g
bmVlZCB0byBkbyBpdCBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6flNW
R1VzZUVsZW1lbnQpOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gZGVzdHJveSB0aGUKKyAgICAg
ICAgc2hhZG93IHRyZWUgKHRoYXQgaGFwcGVucyBhdXRvbWF0aWNhbGx5KSBhbmQgc2ltcGxpZmll
ZCB0aGUgY29kZSB0byBzdG9wIGxvYWRpbmcKKyAgICAgICAgdGhlIGV4dGVybmFsIGRvY3VtZW50
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOiBTaW1wbGlmaWVkIHRoaXMuIFJlbW92ZWQgYXNzdW1wdGlvbnMKKyAgICAgICAgYWJvdXQg
dGhlIGludGVyc2VjdGlvbiBvZiB2YXJpb3VzIHNldHMgb2YgYXR0cmlidXRlcywgYW5kIGFsc28g
cmVtb3ZlZCB0aGUKKyAgICAgICAgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUgZnVuY3Rpb24uIFRoaXMg
c2VlbXMgdG8gc2VydmUgbm8gcHVycG9zZSBoZXJlLCBvciBpbiBhbnkKKyAgICAgICAgb3RoZXIg
U1ZHIGVsZW1lbnQgY2xhc3MuIEkgcGxhbiB0byByZW1vdmUgaXQgZXZlcnl3aGVyZSBvdmVyIHRp
bWUuCisgICAgICAgIChXZWJDb3JlOjppc1dlbGxGb3JtZWREb2N1bWVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjppbnNlcnRlZEludG8pOiBTaW1wbGlmaWVk
IGNvZGUgYnkgcmVtb3ZpbmcgYWxsIHRoZQorICAgICAgICBzcGVjaWFsIGNhc2VzIGR1cmluZyBp
bml0aWFsIHBhcnNpbmcsIGFuZCBkaWQgdGhlIGludmFsaWRhdGlvbiBoZXJlIHJhdGhlciB0aGFu
CisgICAgICAgIGRlZmVycmluZyBpdCB0byBkaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9ucy4gQWRk
ZWQgYSBjYWxsIHRvIHRoZSBuZXcgZnVuY3Rpb24sCisgICAgICAgIHVwZGF0ZUV4dGVybmFsRG9j
dW1lbnQsIHNpbmNlIHRoYXQgd29uJ3QgZG8gYW55dGhpbmcgd2hlbiB0aGUgZWxlbWVudCBpcyBu
b3QKKyAgICAgICAgaW4gYSBkb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OmRpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR1VzZUVsZW1lbnQ6OnJlbW92ZWRGcm9tKTogQWRkZWQgY29kZSB0byBjYWxsIGNsZWFy
U2hhZG93VHJlZSBhbmQKKyAgICAgICAgdXBkYXRlRXh0ZXJuYWxEb2N1bWVudC4gQm90aCBhcmUg
ZWZmaWNpZW50IHdoZW4gZG9pbmcgbm90aGluZywgYW5kIGJvdGggYXJlCisgICAgICAgIGFwcHJv
cHJpYXRlIHNpbmNlIHRoZSBlbGVtZW50IGlzIG5vIGxvbmdlciBpbiBhIGRvY3VtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cmVmZXJlbmNlZERvY3VtZW50KTogRGVsZXRl
ZC4gTm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4
dGVybmFsRG9jdW1lbnQpOiBTdHJlYW1saW5lZCB0aGUgbG9naWMgaGVyZSwgcmVtb3ZpbmcKKyAg
ICAgICAgbXVsdGlwbGUgdW5uZWVkZWQgY2hlY2tzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNl
RWxlbWVudDo6dHJhbnNmZXJTaXplQXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUpOiBSZW5hbWVkIHNp
bmNlCisgICAgICAgICJ0YXJnZXQgY2xvbmUiIGlzIGNsZWFyIGVub3VnaCB3aXRoaW4gdGhpcyBj
bGFzcywgd2l0aG91dCBleHBsaWNpdGx5IHN0YXRpbmcKKyAgICAgICAgInNoYWRvdyB0cmVlIi4g
QWxsIHRoZSBjbG9uZXMgYXJlIGluIHRoZSBzaGFkb3cgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOiBSZW1vdmVkIHVubmVlZGVkIGNv
ZGUgY2FsbGluZworICAgICAgICBpc1N1cHBvcnRlZEF0dHJpYnV0ZS4gQ2hhbmdlZCB0aGUgY29k
ZSB0aGF0IGRldGVjdHMgY2hhbmdlcyBpbiBocmVmIHRvIGp1c3QKKyAgICAgICAgY2FsbCB1cGRh
dGVFeHRlcm5hbERvY3VtZW50IChmb3IgdGhlIGRvY3VtZW50IFVSTCkgYW5kIGludmFsaWRhdGVT
aGFkb3dUcmVlCisgICAgICAgIChmb3IgdGhlIGZyYWdtZW50KS4gQWxzbyB1cGRhdGVkIHRoZSB0
cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSBsb2dpYworICAgICAgICB0byBvbmx5
IHRyaWdnZXIgb24gd2lkdGggYW5kIGhlaWdodCBhbmQgdXBkYXRlZCBuYW1lcy4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OndpbGxBdHRhY2hSZW5kZXJlcnMpOiBVcGRhdGVkIGZv
ciB0aGUgbmV3IG5hbWUgb2YKKyAgICAgICAgbV9zaG91bGRSZWJ1aWxkU2hhZG93VHJlZSBhbmQg
YWRkZWQgYSBjYWxsIHRocm91Z2ggdG8gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBbGxvd2VkRWxlbWVudFNldCk6IEFkZGVkLiBBIG1vcmUgZWZmaWNpZW50IHdheSB0
byBpbXBsZW1lbnQKKyAgICAgICAgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBzZXQgZm9yIGlz
RGlzYWxsb3dlZEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjppc0Rpc2FsbG93ZWRFbGVtZW50
KTogU2ltcGxpZmllZCB0aGlzIGJ5IHVzaW5nIHRoZSBmdW5jdGlvbiBhYm92ZSwKKyAgICAgICAg
YW5kIGFsc28gb3ZlcmxvYWRlZCBmb3IgYm90aCBTVkdFbGVtZW50IGFuZCBFbGVtZW50IGZvciBh
IHRpbnkgZWZmaWNpZW5jeSBib29zdC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6
OmNsZWFyU2hhZG93VHJlZSk6IFJlbmFtZWQgZm9ybSBjbGVhclJlc291cmNlUmVmZXJlbmNlcy4K
KyAgICAgICAgVGhpcyBpcyBhIG11Y2ggbW9yZSBzdHJhaWdodGZvcndhcmQgbmFtZS4gQWxzbyBk
ZWxldGVkIHRoZSBjb2RlIHRoYXQgc2V0cyB0aGUKKyAgICAgICAgbV9uZWVkc1NoYWRvd1RyZWVS
ZWNyZWF0aW9uIGZsYWcgdG8gZmFsc2UuIFRoYXQgc2hvdWxkIGJlIGRvbmUgYnkgdGhlIGJ1aWxk
CisgICAgICAgIGZ1bmN0aW9uLCBub3QgaGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKTogTWFkZSB0aGlzIGp1c3QgaW52YWxpZGF0ZSB0
aGUKKyAgICAgICAgc2hhZG93IHRyZWUgbm93IGluc3RlYWQgb2YgZXhwbGljaXRseSBidWlsZGlu
ZyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnVwZGF0ZVNoYWRvd1RyZWUp
OiBNb3ZlZCB0aGUgY29kZSB0byBjcmVhdGUgYSBzaGFkb3cKKyAgICAgICAgdHJlZSBoZXJlIGZy
b20gYnVpbGRQZW5kaW5nUmVzb3VyY2UuIEFMc28gY2hhbmdlZCB0aGUgbG9naWMgc28gdGhhdCB3
ZQorICAgICAgICBhbHdheXMgYmxvdyBhd2F5IHRoZSBvbGQgc2hhZG93IHRyZWUuIE1vdmVkIHRo
ZSBjb21tZW50IGFib3V0IHJlYnVpbGRpbmcgdGhpbmdzCisgICAgICAgIGV2ZXJ5IHRpbWUgaGVy
ZS4gVXBkYXRlZCB0aGUgY29kZSB0byB1c2UgdGhlIGZpbmRUYXJnZXQgYW5kIGNsb25lVGFyZ2V0
IGZ1bmN0aW9ucywKKyAgICAgICAgZWxpbWluYXRpbmcgdGhlIGJ1aWxkU2hhZG93VHJlZSBmdW5j
dGlvbiBlbnRpcmVseS4gTW92ZWQgdGhlIGNhbGwgdG8KKyAgICAgICAgdHJhbnNmZXJTaXplQXR0
cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENsb25lIGluc2lkZSBjbG9uZVRhcmdldC4gQWxzbyB1
cGRhdGVkCisgICAgICAgIGZvciB0aGUgbmFtZSBjaGFuZ2UgZm9yIG1fc2hvdWxkUmVidWlsZFNo
YWRvd1RyZWUuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp0YXJnZXRDbG9uZSk6
IFJlbmFtZWQgZnJvbSBzaGFkb3dUcmVlVGFyZ2V0Q2xvbmUuCisgICAgICAgIE5vIG5lZWQgdG8g
ZW1waGFzaXplICJzaGFkb3cgdHJlZSIgc2luY2UgdGhhdCdzIHdoZXJlIGFsbCBjbG9uZXMgYXJl
LgorICAgICAgICAoV2ViQ29yZTo6aXNEaXJlY3RSZWZlcmVuY2UpOiBTdHJlYW1saW5lZCBhIGJp
dCB1c2luZyAidXNpbmcgbmFtZXNwYWNlIi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OnRvQ2xpcFBhdGgpOiBSZXdyb3RlIHRvIHVzZSBlYXJseSByZXR1cm4gYW5kIHVwZGF0ZWQK
KyAgICAgICAgZm9yIG5hbWUgY2hhbmdlcy4gQWxzbyB1c2VkIEFTQ0lJTGl0ZXJhbC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnJlbmRlcmVyQ2xpcENoaWxkKTogQ2hhbmdlZCBs
b2NhbCB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRF
bGVtZW50c0Zyb21TdWJ0cmVlKTogV3JvdGUgdGhlIGl0ZXJhdGlvbiBpbiBhCisgICAgICAgIHNs
aWdodGx5IG1vcmUgaWRpb21hdGljIHN0eWxlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxl
bWVudDo6ZmluZFRhcmdldCk6IEFkZGVkLiBUaGlzIG5ldyBmdW5jdGlvbiBpbXBsZW1lbnRzCisg
ICAgICAgIHRoZSBydWxlIGZvciBmaW5kaW5nIGEgdmFsaWQgdGFyZ2V0IGZvciBhIHVzZSBlbGVt
ZW50LiBUaGlzIHJlcGxhY2VzIGxvZ2ljCisgICAgICAgIHRoYXQgd2FzIGR1cGxpY2F0ZWQgaW4g
dHdvIGRpZmZlcmVudCBwbGFjZXMgYW5kIGl0IGFsc28gaW5jbHVkZXMgYWxsIHRoZQorICAgICAg
ICBydWxlcyB0aGF0IHdlcmUgZm9ybWVybHkgaW4gdGhlIGlzVmFsaWRUYXJnZXQgZnVuY3Rpb24u
IEFsc28sIHRoaXMgaW1wbGVtZW50cworICAgICAgICBhIGNvcnJlY3QgY2hlY2sgZm9yIGEgY3lj
bGUgdGhhdCBoYW5kbGVzIGNhc2VzIHRoZSBjb2RlIGluIGlzVmFsaWRUYXJnZXQgZGlkIG5vdC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmlzVmFsaWRUYXJnZXQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQpOiBBZGRlZC4g
SGVscGVyIGZ1bmN0aW9uIHVzZWQgYm90aCB3aGVuCisgICAgICAgIGNsb25pbmcgdGhlIHRhcmdl
dCBvZiB0aGUgdG9wIGxldmVsIDx1c2U+IGVsZW1lbnRzIGFuZCBmb3Igb3RoZXIgPHVzZT4gZWxl
bWVudHMKKyAgICAgICAgaW5zaWRlIHRoZSBzaGFkb3cgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6
OmNsb25lRGF0YUFuZENoaWxkcmVuKTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiB0aGF0IGFsbG93
cyBib3RoIHRoZQorICAgICAgICA8dXNlPiBhbmQgPHN5bWJvbD4gZWxlbWVudCBleHBhbmRpbmcg
ZnVuY3Rpb25zIHRvIGJlIHNob3J0ZXIgYW5kIHNoYXJlIG1vcmUgY29kZS4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKTogUmVt
b3ZlZCB1bm5lZWRlZCBjaGVja3MKKyAgICAgICAgb2YgY2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9h
ZGluZy4gVXNlZCB0aGUgbmV3IGZpbmRUYXJnZXQgZnVuY3Rpb24sIHdoaWNoIGhhbmRsZXMKKyAg
ICAgICAgZmluZGluZyB0aGUgdGFyZ2V0IGNyb3NzLWRvY3VtZW50IGNvcnJlY3RseS4gUmVtb3Zl
ZCB0aGUgaW5jb3JyZWN0IHVzZSBvZgorICAgICAgICByZWZlcmVuY2VkRG9jdW1lbnQgd2hlbiBj
cmVhdGluZyBuZXcgZWxlbWVudHMgYW5kIGZpbmRpbmcgdGFyZ2V0cy4gUmVmYWN0b3JlZAorICAg
ICAgICB0byB1c2UgdGhlIG5ldyBjbG9uZURhdGFBbmRDaGlsZHJlbiBmdW5jdGlvbiBhbmQgYWxz
byBtb3ZlZCB0aGUgY29kZSB0aGF0IHJlbW92ZXMKKyAgICAgICAgdGhlIHNwZWNpYWwgYXR0cmli
dXRlcyBoZXJlLCByZXBsYWNpbmcgdGhlIHRyYW5zZmVyQXR0cmlidXRlc1RvU2hhZG93VHJlZVJl
cGxhY2VtZW50CisgICAgICAgIGZ1bmN0aW9uLiBNYWRlIGEgZmV3IG90aGVyIHNpbXBsaWZpY2F0
aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4cGFuZFN5bWJvbEVsZW1l
bnRzSW5TaGFkb3dUcmVlKTogRGl0dG8sIGp1c3QgbGlrZSB0aGUKKyAgICAgICAgPHVzZT4gY2hh
bmdlcyBvbmx5IHNpbXBsZXIuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp0cmFu
c2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKTogTWFkZSB0aGlzIGNvbnN0LgorICAgICAg
ICBSZW1vdmVkIHVubmVlZGVkIGFzc2VydGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjppbnZhbGlkYXRlU2hhZG93VHJlZSk6IFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aW52YWxpZGF0ZURlcGVuZGVudFNoYWRv
d1RyZWVzKTogUmVtb3ZlZCBhc3NlcnRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVt
ZW50Ojp0cmFuc2ZlckF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVSZXBsYWNlbWVudCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KTogVHdlYWtlZCBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6Om5vdGlm
eUZpbmlzaGVkKTogTWFkZSB0aGlzIGNhbGwgaW52YWxpZGF0ZVNoYWRvd1RyZWUKKyAgICAgICAg
dW5jb25kaXRpb25hbGx5IHNpbmNlIGl0IGRvZXMgbm8gaGFybSB0byBkbyB0aGlzIGZvciBlbGVt
ZW50cyBub3QgaW4gYSBkb2N1bWVudC4KKyAgICAgICAgSXQncyBhY3R1YWxseSB1bmNsZWFyIGhv
dyB0aGlzIGZ1bmN0aW9uIGNvdWxkIGV2ZXIgYmUgY2FsbGVkIHdoZW4gIWluRG9jdW1lbnQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmNhY2hlZERvY3VtZW50SXNTdGlsbExv
YWRpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZmluaXNo
UGFyc2luZ0NoaWxkcmVuKTogUmVtb3ZlZCB0aGUgY29kZSB0aGF0IGNhbGxzCisgICAgICAgIGJ1
aWxkUGVuZGluZ1Jlc291cmNlIGhlcmUuIFNoYWRvdyB0cmVlIHVwZGF0aW5nIGlzIGRyaXZlbiBz
b2xlbHkgYnkgcmVuZGVyZXIKKyAgICAgICAgZ2VuZXJhdGlvbiBub3cuCisgICAgICAgIChXZWJD
b3JlOjpTVkdVc2VFbGVtZW50Ojp1cGRhdGVFeHRlcm5hbERvY3VtZW50KTogUmVwbGFjZWQgc2V0
Q2FjaGVkRG9jdW1lbnQKKyAgICAgICAgd2l0aCB0aGlzLiBUaGlzIGZ1bmN0aW9uIGtub3dzIGhv
dyB0byBsb2FkIGEgZGlmZmVyZW50IGRvY3VtZW50IGlmIHRoZSBVUkwKKyAgICAgICAgaGFzIGNo
YW5nZWQsIG9yIGxlYXZlIGl0IGFsb25lIGlmIG5vdCwgYW5kIGFsc28gc3RvcCB0aGUgbG9hZCBp
ZiBpdCBzaG91bGQuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojppc1ZhbGlkKTog
TW92ZWQgdGhpcyBoZXJlIGZyb20gdGhlIGhlYWRlciwgc2luY2UgaXQncworICAgICAgICBhbHdh
eXMgYmVpbmcgY2FsbGVkIHZpcnR1YWxseS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVXNlRWxlbWVudDo6c2V0SGF2ZUZpcmVkTG9hZEV2ZW50KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpoYXZlRmlyZWRMb2FkRXZlbnQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0xvYWRFdmVudFRpbWVyKTogRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1
ZGUuIE1vdmVkIHRoZSBhbmltYXRlZCBwcm9wZXJ0aWVzCisgICAgICAgIHRvIHRoZSB0b3Agb2Yg
dGhlIGNsYXNzIGJlY2F1c2UgdGhleSBhcmUgcHVibGljIERPTSBBUEkgYW5kIHNvIGFyZSBsb2dp
Y2FsIHRvCisgICAgICAgIGxpc3QgZmlyc3QuIEknZCBsaWtlIHRvIGRvIHRoYXQgZm9yIG90aGVy
IGNsYXNzZXMgdG9vIG92ZXIgdGltZS4gQ2hhbmdlZCB0bworICAgICAgICBkZXJpdmUgcHJpdmF0
ZWx5IGZyb20gQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuIE1hZGUgdGhlIGZ1bmN0aW9uCisgICAg
ICAgIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcyBwcml2YXRlLiBSZW1vdmVkIGRpZE5v
dGlmeVN1YnRyZWVJbnNlcnRpb25zLAorICAgICAgICBpc1N1cHBvcnRlZEF0dHJpYnV0ZSwgY2xl
YXJSZXNvdXJjZVJlZmVyZW5jZXMsIGJ1aWxkU2hhZG93VHJlZSwKKyAgICAgICAgdHJhbnNmZXJB
dHRyaWJ1dGVzVG9TaGFkb3dUcmVlUmVwbGFjZW1lbnQsIGlzUGFyc2VySW5zZXJ0ZWQsIGFuZAor
ICAgICAgICBtX3dhc0luc2VydGVkQnlQYXJzZXIuIEFkZGVkIHVwZGF0ZUV4dGVybmFsRG9jdW1l
bnQsIGNsb25lVGFyZ2V0LCB0YXJnZXRDbG9uZSwKKyAgICAgICAgdXBkYXRlU2hhZG93VHJlZSwg
YW5kIGNsZWFyU2hhZG93VHJlZS4gQWxzbyBkaWQgYSBjb3VwbGUgb3RoZXIgcmVuYW1lcywKKyAg
ICAgICAgaW5jbHVkaW5nIHJlbmFtaW5nIG1fY2FjaGVkRG9jdW1lbnQgdG8gbV9leHRlcm5hbERv
Y3VtZW50LgorCisgICAgICAgICogc3ZnL3N2Z3RhZ3MuaW46IFJlbW92ZWQgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciBmcm9tIHRoZSA8dXNlPgorICAgICAgICBlbGVtZW50IHNpbmNl
IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIGNvbnN0cnVjdGluZyBieSB0aGUgcGFyc2VyIHNwZWNp
YWxseS4KKwogMjAxNS0wMi0wOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYOiBWb2ljZU92ZXIgYXBwZWFycyB1bnJlc3BvbnNpdmUgd2hlbiBKYXZh
U2NyaXB0IGFsZXJ0cyBhcmUgdHJpZ2dlcmVkIHZpYSBmb2N1cyBvciBibHVyIGV2ZW50cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGll
bnQuaAppbmRleCA5YzVhMWUyZmQyMzc2ODViZTFiYjUwMjkzYjhkZGMwMzcyNDM0NTgyLi4zNmFl
ZjI5YmU3NTgyYTRiZGNmODBmYWQ3ZjFkOWNiZWIwYzRjNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaApAQCAtMjcs
OCArMjcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhY2hlZFNWR0RvY3Vt
ZW50OwotCiBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudENsaWVudCA6IHB1YmxpYyBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZHRG9jdW1lbnRDbGll
bnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA4MzVkNjIzMzlj
ODc4ZmYwODYwMTY1NDE0NjVhYjY5YmI0YzUwZDE4Li5hMjE4ODI2NDAwNDkwZmY0OGZjYTQwZjY4
N2VjMTJhZjY5NDA3OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC04
MSw3ICs4MSw2IEBACiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5j
bHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNW
R1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNj
cm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5jcHAKaW5kZXggMGYwZTFkYWJhNDJmNTk0NjVjNTBlMDBlYmM5MzM0OWI1NmRlMmQxNC4u
MDI3MDNkM2RmOTYwNmM4Y2JiYWZiOWE1ZWQ1MDA1ODZjMjJmZDhkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAi
U1ZHVXNlRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggMzZkZTM3N2IyNzAzOWJhOWMw
MWRiOWE1MjdhOWUyMjkwYmFlMmRjOS4uNWFmZDczYThhOGY4ZWY4NjkyYmM0YzFhYTlkMDAxNWNh
ZGU5YTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5z
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5j
cHAKQEAgLTM0MSwxMyArMzQxLDYgQEAgdm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlYnVp
bGRFbGVtZW50cygpCiAKIHZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpjbGVhclRhcmdldERl
cGVuZGVuY2llcyhTVkdFbGVtZW50JiByZWZlcmVuY2VkRWxlbWVudCkKIHsKLSAgICBpZiAocmVm
ZXJlbmNlZEVsZW1lbnQuaXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICAvLyBUaGUgaG9zdCBl
bGVtZW50IChlLmcuIDx1c2U+KSBvZiB0aGUgc2hhZG93IHJvb3Qgd2lsbCByZWJ1aWxkIHRoZSBz
aGFkb3cgdHJlZQotICAgICAgICAvLyBhbmQgYWxsIGl0cyByZWZlcmVuY2VzLgotICAgICAgICBB
U1NFUlQocmVmZXJlbmNlZEVsZW1lbnQuc2hhZG93Um9vdCgpKTsKLSAgICAgICAgQVNTRVJUKG1f
cmVidWlsZEVsZW1lbnRzLmNvbnRhaW5zKHJlZmVyZW5jZWRFbGVtZW50LnNoYWRvd1Jvb3QoKS0+
aG9zdEVsZW1lbnQoKSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGF1dG8gaXQgPSBt
X2VsZW1lbnREZXBlbmRlbmNpZXMuZmluZCgmcmVmZXJlbmNlZEVsZW1lbnQpOwogICAgIGlmIChp
dCA9PSBtX2VsZW1lbnREZXBlbmRlbmNpZXMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBiNjkxYTY2NTJlOTQ0Y2YwOGI4NDUxMDUwNzM0OTA5
ZmQ1ZjY5OThlLi5jYmFlOTM1MjQ1N2ZiZDBhN2VjZTJiOGQ5Njc2NWQwNTFlNjNlOWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC00NzYsNyArNDc2LDYgQEAgdm9pZCBTVkdFbGVt
ZW50OjpjdXJzb3JJbWFnZVZhbHVlUmVtb3ZlZCgpCiAKIFNWR0VsZW1lbnQqIFNWR0VsZW1lbnQ6
OmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIW1fc3ZnUmFyZURh
dGEgfHwgIW1fc3ZnUmFyZURhdGEtPmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgfHwgY29ycmVzcG9u
ZGluZ1VzZUVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIG1fc3ZnUmFyZURhdGEgPyBtX3N2Z1JhcmVE
YXRhLT5jb3JyZXNwb25kaW5nRWxlbWVudCgpIDogbnVsbHB0cjsKIH0KIApAQCAtOTYxLDIxICs5
NjAsMTIgQEAgU3RyaW5nIFNWR0VsZW1lbnQ6OnRpdGxlKCkgY29uc3QKICAgICBpZiAoaXNPdXRl
cm1vc3RTVkdTVkdFbGVtZW50KCkgJiYgZG9jdW1lbnQoKS50b3BEb2N1bWVudCgpLmlzU1ZHRG9j
dW1lbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgLy8gV2FsayB1cCB0aGUg
dHJlZSwgdG8gZmluZCBvdXQgd2hldGhlciB3ZSdyZSBpbnNpZGUgYSA8dXNlPiBzaGFkb3cgdHJl
ZSwgdG8gZmluZCB0aGUgcmlnaHQgdGl0bGUuCi0gICAgaWYgKGlzSW5TaGFkb3dUcmVlKCkpIHsK
LSAgICAgICAgRWxlbWVudCogc2hhZG93SG9zdEVsZW1lbnQgPSBkb3duY2FzdDxTaGFkb3dSb290
Pih0cmVlU2NvcGUoKS5yb290Tm9kZSgpKS5ob3N0RWxlbWVudCgpOwotICAgICAgICAvLyBBdCB0
aGlzIHRpbWUsIFNWRyBub2RlcyBhcmUgbm90IGFsbG93ZWQgaW4gbm9uLTx1c2U+IHNoYWRvdyB0
cmVlcywgc28gYW55IHNoYWRvdyByb290IHdlIGRvCi0gICAgICAgIC8vIGhhdmUgc2hvdWxkIGJl
IGEgdXNlLiBUaGUgYXNzZXJ0IGFuZCBmb2xsb3dpbmcgdGVzdCBpcyBoZXJlIHRvIGNhdGNoIGZ1
dHVyZSBzaGFkb3cgRE9NIGNoYW5nZXMKLSAgICAgICAgLy8gdGhhdCBkbyBlbmFibGUgU1ZHIGlu
IGEgc2hhZG93IHRyZWUuCi0gICAgICAgIEFTU0VSVCghc2hhZG93SG9zdEVsZW1lbnQgfHwgc2hh
ZG93SG9zdEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRhZykpOwotICAgICAgICBp
ZiAoc2hhZG93SG9zdEVsZW1lbnQgJiYgc2hhZG93SG9zdEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnVzZVRhZykpIHsKLSAgICAgICAgICAgIFNWR1VzZUVsZW1lbnQmIHVzZUVsZW1lbnQg
PSBkb3duY2FzdDxTVkdVc2VFbGVtZW50Pigqc2hhZG93SG9zdEVsZW1lbnQpOwotCi0gICAgICAg
ICAgICAvLyBJZiB0aGUgPHVzZT4gdGl0bGUgaXMgbm90IGVtcHR5IHdlIGZvdW5kIHRoZSB0aXRs
ZSB0byB1c2UuCi0gICAgICAgICAgICBTdHJpbmcgdXNlVGl0bGUodXNlRWxlbWVudC50aXRsZSgp
KTsKLSAgICAgICAgICAgIGlmICghdXNlVGl0bGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAg
IHJldHVybiB1c2VUaXRsZTsKLSAgICAgICAgfQorICAgIC8vIEFsbCBpbnN0YW5jZXMgaW5zaWRl
IHRoZSA8dXNlPiBzaGFkb3cgdHJlZSBzaGFyZSB0aGUgdGl0bGUgb2YgdGhlIDx1c2U+IGVsZW1l
bnQuCisgICAgLy8gRklYTUU6IFdoeSwgZXhhY3RseSwgaXMgdGhpcyBoZWxwZnVsPworICAgIGlm
IChhdXRvKiB1c2VFbGVtZW50ID0gY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQoKSkgeworICAgICAg
ICBTdHJpbmcgdGl0bGUgPSB1c2VFbGVtZW50LT50aXRsZSgpOworICAgICAgICBpZiAoIXRpdGxl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB0aXRsZTsKICAgICB9CiAKICAgICAvLyBJ
ZiB3ZSBhcmVuJ3QgYW4gaW5zdGFuY2UgaW4gYSA8dXNlPiBvciB0aGUgPHVzZT4gdGl0bGUgd2Fz
IG5vdCBmb3VuZCwgdGhlbiBmaW5kIHRoZSBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5j
cHAKaW5kZXggYmY3Zjk0YmMyZTc2NWI3MjMxZGI4OWZkNWVjYmZmMjAwODc3NWQ1ZS4uYTIxZjky
ODJjNjE0YTZmYjc5YTRlYmY3MGVkYTllMmFhZWEzZTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0Vs
ZW1lbnQuY3BwCkBAIC00OSw2ICs0OSwxMSBAQCBSZWY8U1ZHR0VsZW1lbnQ+IFNWR0dFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvYwogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKK1JlZjxTVkdHRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIGNyZWF0ZShTVkdOYW1lczo6Z1RhZywgZG9jdW1lbnQpOworfQor
CiBib29sIFNWR0dFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFs
aWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgK
aW5kZXggY2MxZmM1NWY2OTZhYTNhMTYwNDMxMTk2N2IxZmJhYmJjZDlmNDI5Ni4uMzVjZTEwYWY1
NTJkMzM5NjQ5NjAxNDU5NzU2N2ZiMjIwNjkxMWRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50
LmgKQEAgLTMxLDYgKzMxLDcgQEAgY2xhc3MgU1ZHR0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZH
R3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdHRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8U1ZHR0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNW
R0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IGM4ZDM4ZDllYjhhZWFlMWIwZTc2ODdjZTFlNGQ4YzNi
ZjRkOGJiMTEuLjdiYzhjNDIyMWMwMzE5NjBmMWZlOTk0NzA3OTQ1YThjZjI2OTJlMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTk5LDYgKzk5LDExIEBAIFJlZjxTVkdT
VkdFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCitSZWY8U1ZHU1ZHRWxlbWVudD4gU1ZHU1ZHRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gY3JlYXRlKFNWR05h
bWVzOjpzdmdUYWcsIGRvY3VtZW50KTsKK30KKwogU1ZHU1ZHRWxlbWVudDo6flNWR1NWR0VsZW1l
bnQoKQogewogICAgIGlmIChtX3ZpZXdTcGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgK
aW5kZXggNjdjMmU0NWQ4YjI3OTM4NTI5MGI5N2ZhNDFkMzVlOWViODQ0NzYzMi4uOGY5YWVkNzM4
MTYxODM2Mjg1MGI4MTE0MmIyMmUwYjNlZmIwNWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIFNWR1NWR0VsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdab29tQW5kUGFuIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1NWR0VsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR1NWR0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgU1ZHR3JhcGhp
Y3NFbGVtZW50OjpyZWY7CiAgICAgdXNpbmcgU1ZHR3JhcGhpY3NFbGVtZW50OjpkZXJlZjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA1ZjMyMGI3YjVjMDQyZTI3MWZkYTFh
MmVlNjBjYTczNTRiZjc0OGU0Li44MDc1YmUwYTkxZGIxYWUwNGQ1YjhhZWRlODVmYTE1MzEzYmJk
NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yNywzNCArMjcsMTkg
QEAKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkNhY2hlZFNWR0RvY3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
bGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TGlz
dGVuZXIuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJOb2RlUmVuZGVyU3R5
bGUuaCIKLSNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlJl
bmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTVkdFbGVtZW50UmFy
ZURhdGEuaCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aENv
bnRleHQuaCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N5bWJvbEVsZW1l
bnQuaCIKLSNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5o
IgotI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCi0jaW5jbHVkZSAiWE1MU2VyaWFsaXpl
ci5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIEFuaW1hdGVkIHByb3BlcnR5IGRlZmluaXRpb25zCiBERUZJTkVfQU5JTUFURURf
TEVOR1RIKFNWR1VzZUVsZW1lbnQsIFNWR05hbWVzOjp4QXR0ciwgWCwgeCkKIERFRklORV9BTklN
QVRFRF9MRU5HVEgoU1ZHVXNlRWxlbWVudCwgU1ZHTmFtZXM6OnlBdHRyLCBZLCB5KQogREVGSU5F
X0FOSU1BVEVEX0xFTkdUSChTVkdVc2VFbGVtZW50LCBTVkdOYW1lczo6d2lkdGhBdHRyLCBXaWR0
aCwgd2lkdGgpCkBAIC03OCw5ICs2Myw2IEBAIGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1CiAgICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKICAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQog
ICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2FzSW5zZXJ0ZWRCeVBh
cnNlcih3YXNJbnNlcnRlZEJ5UGFyc2VyKQotICAgICwgbV9oYXZlRmlyZWRMb2FkRXZlbnQoZmFs
c2UpCi0gICAgLCBtX25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24oZmFsc2UpCiAgICAgLCBtX3N2
Z0xvYWRFdmVudFRpbWVyKCp0aGlzLCAmU1ZHRWxlbWVudDo6c3ZnTG9hZEV2ZW50VGltZXJGaXJl
ZCkKIHsKICAgICBBU1NFUlQoaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpOwpAQCAt
OTAsNDEgKzcyLDIwIEBAIGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1CiAKIFJlZjxTVkdVc2VFbGVt
ZW50PiBTVkdVc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpCiB7Ci0gICAgLy8g
QWx3YXlzIGJ1aWxkIGEgI3NoYWRvdy1yb290IGZvciBTVkdVc2VFbGVtZW50LgotICAgIFJlZjxT
VkdVc2VFbGVtZW50PiB1c2UgPSBhZG9wdFJlZigqbmV3IFNWR1VzZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQsIHdhc0luc2VydGVkQnlQYXJzZXIpKTsKLSAgICB1c2UtPmVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKTsKLSAgICByZXR1cm4gdXNlOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1VzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2VydGVkQnlQYXJzZXIpKTsK
IH0KIAogU1ZHVXNlRWxlbWVudDo6flNWR1VzZUVsZW1lbnQoKQogewotICAgIHNldENhY2hlZERv
Y3VtZW50KDApOwotCi0gICAgY2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKTsKLX0KLQotYm9vbCBT
VkdVc2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWRO
YW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5n
ZXQoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwot
ICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVk
QXR0cmlidXRlcyk7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05h
bWVzOjp4QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05h
bWVzOjp5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05h
bWVzOjp3aWR0aEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6aGVpZ2h0QXR0cik7Ci0gICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CisgICAgaWYgKG1fZXh0ZXJuYWxEb2N1bWVudCkKKyAgICAgICAgbV9leHRlcm5hbERvY3VtZW50
LT5yZW1vdmVDbGllbnQodGhpcyk7CiB9CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSkKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKLSAgICBp
ZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKG5hbWUpKQotICAgICAgICBTVkdHcmFwaGljc0VsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmIChuYW1lID09IFNW
R05hbWVzOjp4QXR0cikKKyAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpCiAgICAgICAg
IHNldFhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1
ZSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyKQog
ICAgICAgICBzZXRZQmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVIZWln
aHQsIHZhbHVlLCBwYXJzZUVycm9yKSk7CkBAIC0xMzIsNjggKzkzLDM5IEBAIHZvaWQgU1ZHVXNl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nCiAgICAgICAgIHNldFdpZHRoQmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3Ry
dWN0KExlbmd0aE1vZGVXaWR0aCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVu
Z3RocykpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCiAgICAg
ICAgIHNldEhlaWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVp
Z2h0LCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7Ci0gICAgZWxz
ZSBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAg
ICAgICB8fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKSkgewotICAgIH0gZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2
YWx1ZSk7Ci19CiAKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi1zdGF0aWMgaW5saW5lIGJvb2wgaXNX
ZWxsRm9ybWVkRG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQotewotICAgIGlmIChkb2N1bWVu
dC5pc1NWR0RvY3VtZW50KCkgfHwgZG9jdW1lbnQuaXNYSFRNTERvY3VtZW50KCkpCi0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxYTUxEb2N1bWVudFBhcnNlcio+KGRvY3VtZW50LnBhcnNlcigp
KS0+d2VsbEZvcm1lZCgpOwotICAgIHJldHVybiB0cnVlOworICAgIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdMYW5nU3BhY2U6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KLSNlbmRpZgogCiBOb2RlOjpJbnNlcnRpb25Ob3Rp
ZmljYXRpb25SZXF1ZXN0IFNWR1VzZUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2Rl
JiByb290UGFyZW50KQogewogICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKHJv
b3RQYXJlbnQpOwotICAgIGlmICghcm9vdFBhcmVudC5pbkRvY3VtZW50KCkpCi0gICAgICAgIHJl
dHVybiBJbnNlcnRpb25Eb25lOwotICAgIEFTU0VSVCghaGFzUGVuZGluZ1Jlc291cmNlcygpIHx8
ICFpc1dlbGxGb3JtZWREb2N1bWVudChkb2N1bWVudCgpKSk7Ci0gICAgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQodGhpcyk7Ci0gICAgaWYgKCFtX3dh
c0luc2VydGVkQnlQYXJzZXIpCi0gICAgICAgIHJldHVybiBJbnNlcnRpb25TaG91bGRDYWxsRGlk
Tm90aWZ5U3VidHJlZUluc2VydGlvbnM7CisgICAgaWYgKGluRG9jdW1lbnQoKSkgeworICAgICAg
ICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjppbnNlcnRlZEludG9Eb2N1bWVudCh0aGlz
KTsKKyAgICAgICAgaW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKKyAgICAgICAgdXBkYXRlRXh0ZXJu
YWxEb2N1bWVudCgpOworICAgIH0KICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIH0KIAotdm9p
ZCBTVkdVc2VFbGVtZW50OjpkaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9ucyhDb250YWluZXJOb2Rl
KikKLXsKLSAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotfQotCiB2b2lkIFNWR1VzZUVsZW1l
bnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCiB7CiAgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50OjpyZW1vdmVkRnJvbShyb290UGFyZW50KTsKLSAgICBpZiAocm9vdFBhcmVu
dC5pbkRvY3VtZW50KCkpCi0gICAgICAgIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7CisgICAg
Y2xlYXJTaGFkb3dUcmVlKCk7CisgICAgdXBkYXRlRXh0ZXJuYWxEb2N1bWVudCgpOwogfQogCi1E
b2N1bWVudCogU1ZHVXNlRWxlbWVudDo6cmVmZXJlbmNlZERvY3VtZW50KCkgY29uc3QKK2lubGlu
ZSBEb2N1bWVudCogU1ZHVXNlRWxlbWVudDo6ZXh0ZXJuYWxEb2N1bWVudCgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFpc0V4dGVybmFsVVJJUmVmZXJlbmNlKGhyZWYoKSwgZG9jdW1lbnQoKSkpCi0gICAg
ICAgIHJldHVybiAmZG9jdW1lbnQoKTsKLSAgICByZXR1cm4gZXh0ZXJuYWxEb2N1bWVudCgpOwor
ICAgIHJldHVybiBtX2V4dGVybmFsRG9jdW1lbnQgPyBtX2V4dGVybmFsRG9jdW1lbnQtPmRvY3Vt
ZW50KCkgOiBudWxscHRyOwogfQogCi1Eb2N1bWVudCogU1ZHVXNlRWxlbWVudDo6ZXh0ZXJuYWxE
b2N1bWVudCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQgJiYgbV9jYWNoZWRE
b2N1bWVudC0+aXNMb2FkZWQoKSkgewotICAgICAgICAvLyBHcmFjZWZ1bGx5IGhhbmRsZSBlcnJv
ciBjb25kaXRpb24uCi0gICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50LT5lcnJvck9jY3VycmVk
KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgQVNTRVJUKG1fY2FjaGVkRG9jdW1l
bnQtPmRvY3VtZW50KCkpOwotICAgICAgICByZXR1cm4gbV9jYWNoZWREb2N1bWVudC0+ZG9jdW1l
bnQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgU1ZHVXNlRWxlbWVudDo6dHJh
bnNmZXJTaXplQXR0cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENsb25lKFNWR0VsZW1lbnQmIHNo
YWRvd0VsZW1lbnQpIGNvbnN0Cit2b2lkIFNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyU2l6ZUF0dHJp
YnV0ZXNUb1RhcmdldENsb25lKFNWR0VsZW1lbnQmIHNoYWRvd0VsZW1lbnQpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IFRoZSBjaGVjayBmb3IgdmFsdWVJblNwZWNpZmllZFVuaXRzIGJlaW5nIG5v
bi16ZXJvIGJlbG93IGlzIGEgd29ya2Fyb3VuZCBmb3IgdGhlIGZhY3QKICAgICAvLyB0aGF0IHdl
IGN1cnJlbnRseSBoYXZlIG5vIGdvb2Qgd2F5IHRvIHRlbGwgd2hldGhlciBhIHBhcnRpY3VsYXIg
YW5pbWF0YWJsZSBhdHRyaWJ1dGUgaXMgYSB2YWx1ZQpAQCAtMjE1LDE5ICsxNDcsMTQgQEAgdm9p
ZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlVGFyZ2V0
Q2xvbmUoU1ZHRWxlbWVudCYgc2gKIAogdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmICghaXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoYXR0ck5hbWUpKSB7Ci0gICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKIAogICAgIGlmIChh
dHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRy
IHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OmhlaWdodEF0dHIpIHsKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRp
b24oKTsKLSAgICAgICAgaWYgKFNWR0VsZW1lbnQqIHNoYWRvd1RyZWVUYXJnZXRDbG9uZSA9IHRo
aXMtPnNoYWRvd1RyZWVUYXJnZXRDbG9uZSgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogSXQn
cyB1bm5lY2Vzc2FyaWx5IGluZWZmaWNpZW50IHRvIGRvIHRoaXMgd29yayBhbnkgdGltZSB3ZSBj
aGFuZ2UgIngiIG9yICJ5Ii4KKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0
aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBJdCdzIHVubmVjZXNzYXJpbHkgaW5lZmZpY2llbnQgdG8gdXBkYXRlIGJvdGgg
d2lkdGggYW5kIGhlaWdodCBlYWNoIHRpbWUgZWl0aGVyIGlzIGNoYW5nZWQuCi0gICAgICAgICAg
ICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoKnNoYWRvd1Ry
ZWVUYXJnZXRDbG9uZSk7CisgICAgICAgICAgICBpZiAoYXV0byogdGFyZ2V0Q2xvbmUgPSB0aGlz
LT50YXJnZXRDbG9uZSgpKQorICAgICAgICAgICAgICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNU
b1RhcmdldENsb25lKCp0YXJnZXRDbG9uZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGF1dG8q
IHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIFJlbmRlclNWR1Jlc291
cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVy
KTsKQEAgLTIzOCwxMjMgKzE2NSw5NiBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
Ci0gICAgICAgIGJvb2wgaXNFeHRlcm5hbFJlZmVyZW5jZSA9IGlzRXh0ZXJuYWxVUklSZWZlcmVu
Y2UoaHJlZigpLCBkb2N1bWVudCgpKTsKLSAgICAgICAgaWYgKGlzRXh0ZXJuYWxSZWZlcmVuY2Up
IHsKLSAgICAgICAgICAgIFVSTCB1cmwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKGhyZWYoKSk7
Ci0gICAgICAgICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAg
ICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVy
bC5zdHJpbmcoKSkpOwotICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMp
OwotICAgICAgICAgICAgICAgIHNldENhY2hlZERvY3VtZW50KGRvY3VtZW50KCkuY2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCkpOwotICAgICAgICAgICAg
fQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNldENhY2hlZERvY3VtZW50KDApOwotCi0g
ICAgICAgIGlmICghbV93YXNJbnNlcnRlZEJ5UGFyc2VyKQotICAgICAgICAgICAgYnVpbGRQZW5k
aW5nUmVzb3VyY2UoKTsKLQorICAgICAgICB1cGRhdGVFeHRlcm5hbERvY3VtZW50KCk7CisgICAg
ICAgIGludmFsaWRhdGVTaGFkb3dUcmVlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKQotICAgICAgICB8
fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1l
KSkgeworICAgIGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpIHx8
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CiAgICAgICAgIGludmFsaWRhdGVTaGFkb3dUcmVlKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6
OndpbGxBdHRhY2hSZW5kZXJlcnMoKQogewotICAgIGlmIChtX25lZWRzU2hhZG93VHJlZVJlY3Jl
YXRpb24pCi0gICAgICAgIGJ1aWxkUGVuZGluZ1Jlc291cmNlKCk7CisgICAgaWYgKG1fc2hhZG93
VHJlZU5lZWRzVXBkYXRlKQorICAgICAgICB1cGRhdGVTaGFkb3dUcmVlKCk7CisgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50Ojp3aWxsQXR0YWNoUmVuZGVyZXJzKCk7CiB9CiAKLXN0YXRpYyBib29sIGlz
RGlzYWxsb3dlZEVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3N0YXRpYyBIYXNoU2V0
PEF0b21pY1N0cmluZz4gY3JlYXRlQWxsb3dlZEVsZW1lbnRTZXQoKQogewogICAgIC8vIFNwZWM6
ICJBbnkgJ3N2ZycsICdzeW1ib2wnLCAnZycsIGdyYXBoaWNzIGVsZW1lbnQgb3Igb3RoZXIgJ3Vz
ZScgaXMgcG90ZW50aWFsbHkgYSB0ZW1wbGF0ZSBvYmplY3QgdGhhdCBjYW4gYmUgcmUtdXNlZAog
ICAgIC8vIChpLmUuLCAiaW5zdGFuY2VkIikgaW4gdGhlIFNWRyBkb2N1bWVudCB2aWEgYSAndXNl
JyBlbGVtZW50LiIKICAgICAvLyAiR3JhcGhpY3MgRWxlbWVudCIgaXMgZGVmaW5lZCBhcyAnY2ly
Y2xlJywgJ2VsbGlwc2UnLCAnaW1hZ2UnLCAnbGluZScsICdwYXRoJywgJ3BvbHlnb24nLCAncG9s
eWxpbmUnLCAncmVjdCcsICd0ZXh0JwogICAgIC8vIEV4Y2x1ZGVkIGFyZSBhbnl0aGluZyB0aGF0
IGlzIHVzZWQgYnkgcmVmZXJlbmNlIG9yIHRoYXQgb25seSBtYWtlIHNlbnNlIHRvIGFwcGVhciBv
bmNlIGluIGEgZG9jdW1lbnQuCisgICAgdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOworICAgIEhh
c2hTZXQ8QXRvbWljU3RyaW5nPiBzZXQ7CisgICAgZm9yIChhdXRvJiB0YWcgOiB7IGFUYWcsIGNp
cmNsZVRhZywgZGVzY1RhZywgZWxsaXBzZVRhZywgZ1RhZywgaW1hZ2VUYWcsIGxpbmVUYWcsIG1l
dGFkYXRhVGFnLCBwYXRoVGFnLCBwb2x5Z29uVGFnLCBwb2x5bGluZVRhZywgcmVjdFRhZywgc3Zn
VGFnLCBzd2l0Y2hUYWcsIHN5bWJvbFRhZywgdGV4dFRhZywgdGV4dFBhdGhUYWcsIHRpdGxlVGFn
LCB0cmVmVGFnLCB0c3BhblRhZywgdXNlVGFnIH0pCisgICAgICAgIHNldC5hZGQodGFnLmxvY2Fs
TmFtZSgpKTsKKyAgICByZXR1cm4gc2V0OworfQogCi0gICAgaWYgKCFlbGVtZW50LmlzU1ZHRWxl
bWVudCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0Rpc2Fs
bG93ZWRFbGVtZW50KGNvbnN0IFNWR0VsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hTZXQ8QXRvbWljU3RyaW5nPj4gc2V0ID0gY3JlYXRlQWxsb3dlZEVs
ZW1lbnRTZXQoKTsKKyAgICByZXR1cm4gIXNldC5nZXQoKS5jb250YWlucyhlbGVtZW50LmxvY2Fs
TmFtZSgpKTsKK30KIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+PiBhbGxvd2VkRWxlbWVudFRhZ3M7Ci0gICAgaWYgKGFsbG93ZWRFbGVtZW50VGFncy5n
ZXQoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChT
VkdOYW1lczo6YVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZH
TmFtZXM6OmNpcmNsZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQo
U1ZHTmFtZXM6OmRlc2NUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRk
KFNWR05hbWVzOjplbGxpcHNlVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgp
LmFkZChTVkdOYW1lczo6Z1RhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5h
ZGQoU1ZHTmFtZXM6OmltYWdlVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgp
LmFkZChTVkdOYW1lczo6bGluZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQo
KS5hZGQoU1ZHTmFtZXM6Om1ldGFkYXRhVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdz
LmdldCgpLmFkZChTVkdOYW1lczo6cGF0aFRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFn
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnBvbHlnb25UYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVu
dFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpwb2x5bGluZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRF
bGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnJlY3RUYWcpOwotICAgICAgICBhbGxvd2Vk
RWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpzdmdUYWcpOwotICAgICAgICBhbGxvd2Vk
RWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpzd2l0Y2hUYWcpOwotICAgICAgICBhbGxv
d2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpzeW1ib2xUYWcpOwotICAgICAgICBh
bGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0ZXh0VGFnKTsKLSAgICAgICAg
YWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6dGV4dFBhdGhUYWcpOwotICAg
ICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0aXRsZVRhZyk7Ci0g
ICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnRyZWZUYWcpOwot
ICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0c3BhblRhZyk7
Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnVzZVRhZyk7
Ci0gICAgfQotICAgIHJldHVybiAhYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihlbGVtZW50LnRhZ1FOYW1lKCkpOworc3RhdGljIGlu
bGluZSBib29sIGlzRGlzYWxsb3dlZEVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gIWVsZW1lbnQuaXNTVkdFbGVtZW50KCkgfHwgaXNEaXNhbGxvd2VkRWxlbWVu
dChkb3duY2FzdDxTVkdFbGVtZW50PihlbGVtZW50KSk7CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVu
dDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQordm9pZCBTVkdVc2VFbGVtZW50OjpjbGVhclNo
YWRvd1RyZWUoKQogewotICAgIC8vIEZJWE1FOiBJdCdzIGV4cGVuc2l2ZSB0byByZS1jbG9uZSB0
aGUgZW50aXJlIHRyZWUgZXZlcnkgdGltZS4gV2Ugc2hvdWxkIGZpbmQgYSBtb3JlIGVmZmljaWVu
dCB3YXkgdG8gaGFuZGxlIHRoaXMuCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB1c2VyQWdl
bnRTaGFkb3dSb290KCkpCisgICAgaWYgKGF1dG8qIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290
KCkpCiAgICAgICAgIHJvb3QtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgbV9uZWVkc1NoYWRvd1Ry
ZWVSZWNyZWF0aW9uID0gZmFsc2U7CiB9CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRQZW5k
aW5nUmVzb3VyY2UoKQogewotICAgIGlmIChpc0luU2hhZG93VHJlZSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFyZWZlcmVuY2VkRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7Ci0gICAgaWYgKCFpbkRvY3VtZW50KCkpCisgICAg
aW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKK30KKwordm9pZCBTVkdVc2VFbGVtZW50Ojp1cGRhdGVT
aGFkb3dUcmVlKCkKK3sKKyAgICBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSA9IGZhbHNlOworCisg
ICAgLy8gRklYTUU6IEl0J3MgZXhwZW5zaXZlIHRvIHJlLWNsb25lIHRoZSBlbnRpcmUgdHJlZSBl
dmVyeSB0aW1lLiBXZSBzaG91bGQgZmluZCBhIG1vcmUgZWZmaWNpZW50IHdheSB0byBoYW5kbGUg
dGhpcy4KKyAgICBjbGVhclNoYWRvd1RyZWUoKTsKKworICAgIGlmIChpc0luU2hhZG93VHJlZSgp
IHx8ICFpbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBpZDsKLSAg
ICBFbGVtZW50KiB0YXJnZXQgPSBTVkdVUklSZWZlcmVuY2U6OnRhcmdldEVsZW1lbnRGcm9tSVJJ
U3RyaW5nKGhyZWYoKSwgZG9jdW1lbnQoKSwgJmlkLCBleHRlcm5hbERvY3VtZW50KCkpOwotICAg
IGlmICghaXNWYWxpZFRhcmdldCh0YXJnZXQpKSB7Ci0gICAgICAgIGlmIChleHRlcm5hbERvY3Vt
ZW50KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIGNhbid0IGZpbmQgdGhlIHRhcmdldCBpbiBhbiBl
eHRlcm5hbCBkb2N1bWVudCwgc28ganVzdCBnaXZlIHVwIGFuZCBkb24ndCB0cnkgdG8gZG8gaXQg
YWdhaW4uCi0gICAgICAgICAgICAvLyBXZSBzaG91bGQgbm90IGF0dGVtcHQgdG8gb2JzZXJ2ZSBp
ZiBhbiBlbGVtZW50IHdpdGggSUQgc2hvd3MgdXAgaW4gdGhlIGV4dGVybmFsIGRvY3VtZW50IGxh
dGVyLgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHJlZmVyZW5jZWRE
b2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkuYWRkUGVuZGluZ1Jlc291cmNlKGlkLCB0
aGlzKTsKKyAgICBTdHJpbmcgdGFyZ2V0SUQ7CisgICAgU1ZHRWxlbWVudCogdGFyZ2V0ID0gZmlu
ZFRhcmdldCgmdGFyZ2V0SUQpOworICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgIGRvY3VtZW50
KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZSh0YXJnZXRJRCwgdGhp
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBidWlsZFNoYWRvd1RyZWUoZG93bmNh
c3Q8U1ZHRWxlbWVudD4oKnRhcmdldCkpOworICAgIGNsb25lVGFyZ2V0KGVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKSwgKnRhcmdldCk7CiAgICAgZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1Ry
ZWUoKTsKICAgICBleHBhbmRTeW1ib2xFbGVtZW50c0luU2hhZG93VHJlZSgpOwotICAgIHRyYW5z
ZmVyU2l6ZUF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVUYXJnZXRDbG9uZSgqc2hhZG93VHJlZVRhcmdl
dENsb25lKCkpOwogICAgIHRyYW5zZmVyRXZlbnRMaXN0ZW5lcnNUb1NoYWRvd1RyZWUoKTsKKwog
ICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKICAgICAvLyBXaGVuIHdl
IGludmFsaWRhdGUgdGhlIG90aGVyIHNoYWRvdyB0cmVlcywgaXQncyBpbXBvcnRhbnQgdGhhdCB3
ZSBkb24ndAogICAgIC8vIGZvbGxvdyBhbnkgY3ljbGVzIGFuZCBpbnZhbGlkYXRlIG91cnNlbHZl
cy4gVG8gYXZvaWQgdGhhdCwgd2UgdGVtcG9yYXJpbHkKLSAgICAvLyBzZXQgbV9uZWVkc1NoYWRv
d1RyZWVSZWNyZWF0aW9uIHRvIHRydWUgc28gaW52YWxpZGF0ZVNoYWRvd1RyZWUgd2lsbAorICAg
IC8vIHNldCBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSB0byB0cnVlIHNvIGludmFsaWRhdGVTaGFk
b3dUcmVlIHdpbGwKICAgICAvLyBxdWlja2x5IHJldHVybiBhbmQgZG8gbm90aGluZy4KLSAgICBB
U1NFUlQoIW1fbmVlZHNTaGFkb3dUcmVlUmVjcmVhdGlvbik7Ci0gICAgbV9uZWVkc1NoYWRvd1Ry
ZWVSZWNyZWF0aW9uID0gdHJ1ZTsKKyAgICBBU1NFUlQoIW1fc2hhZG93VHJlZU5lZWRzVXBkYXRl
KTsKKyAgICBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSA9IHRydWU7CiAgICAgaW52YWxpZGF0ZURl
cGVuZGVudFNoYWRvd1RyZWVzKCk7Ci0gICAgbV9uZWVkc1NoYWRvd1RyZWVSZWNyZWF0aW9uID0g
ZmFsc2U7CisgICAgbV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUgPSBmYWxzZTsKIH0KIAotU1ZHRWxl
bWVudCogU1ZHVXNlRWxlbWVudDo6c2hhZG93VHJlZVRhcmdldENsb25lKCkgY29uc3QKK1NWR0Vs
ZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OnRhcmdldENsb25lKCkgY29uc3QKIHsKICAgICBhdXRvKiBy
b290ID0gdXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIGlmICghcm9vdCkKQEAgLTM2OSw0MiAr
MjY5LDQ1IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdVc2VFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmCiAKIHN0YXRpYyBib29sIGlzRGlyZWN0
UmVmZXJlbmNlKGNvbnN0IFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGVsZW1l
bnQuaGFzVGFnTmFtZShTVkdOYW1lczo6cGF0aFRhZykKLSAgICAgICAgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKFNWR05hbWVzOjpyZWN0VGFnKQotICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OmNpcmNsZVRhZykKLSAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKFNWR05h
bWVzOjplbGxpcHNlVGFnKQotICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OnBvbHlnb25UYWcpCi0gICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6cG9s
eWxpbmVUYWcpCi0gICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFRh
Zyk7CisgICAgdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOworICAgIHJldHVybiBlbGVtZW50Lmhh
c1RhZ05hbWUoY2lyY2xlVGFnKQorICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZWxsaXBz
ZVRhZykKKyAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHBhdGhUYWcpCisgICAgICAgIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShwb2x5Z29uVGFnKQorICAgICAgICB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUocG9seWxpbmVUYWcpCisgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShyZWN0VGFn
KQorICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGV4dFRhZyk7CiB9CiAKIHZvaWQgU1ZH
VXNlRWxlbWVudDo6dG9DbGlwUGF0aChQYXRoJiBwYXRoKQogewogICAgIEFTU0VSVChwYXRoLmlz
RW1wdHkoKSk7CiAKLSAgICBTVkdFbGVtZW50KiBlbGVtZW50ID0gc2hhZG93VHJlZVRhcmdldENs
b25lKCk7Ci0gICAgaWYgKGlzPFNWR0dyYXBoaWNzRWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAg
ICAgaWYgKCFpc0RpcmVjdFJlZmVyZW5jZSgqZWxlbWVudCkpIHsKLSAgICAgICAgICAgIC8vIFNw
ZWM6IEluZGlyZWN0IHJlZmVyZW5jZXMgYXJlIGFuIGVycm9yICgxNC4zLjUpCi0gICAgICAgICAg
ICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJvcigiTm90IGFsbG93
ZWQgdG8gdXNlIGluZGlyZWN0IHJlZmVyZW5jZSBpbiA8Y2xpcC1wYXRoPiIpOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgZG93bmNhc3Q8U1ZHR3JhcGhpY3NFbGVtZW50PigqZWxlbWVu
dCkudG9DbGlwUGF0aChwYXRoKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBBdm9pZCBtYW51YWwg
cmVzb2x1dGlvbiBvZiB4L3kgaGVyZS4gSXRzIHBvdGVudGlhbGx5IGhhcm1mdWwuCi0gICAgICAg
ICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQodGhpcyk7Ci0gICAgICAgICAgICBw
YXRoLnRyYW5zbGF0ZShGbG9hdFNpemUoeCgpLnZhbHVlKGxlbmd0aENvbnRleHQpLCB5KCkudmFs
dWUobGVuZ3RoQ29udGV4dCkpKTsKLSAgICAgICAgICAgIHBhdGgudHJhbnNmb3JtKGFuaW1hdGVk
TG9jYWxUcmFuc2Zvcm0oKSk7Ci0gICAgICAgIH0KKyAgICBhdXRvKiB0YXJnZXRDbG9uZSA9IHRo
aXMtPnRhcmdldENsb25lKCk7CisgICAgaWYgKCFpczxTVkdHcmFwaGljc0VsZW1lbnQ+KHRhcmdl
dENsb25lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFpc0RpcmVjdFJlZmVyZW5jZSgq
dGFyZ2V0Q2xvbmUpKSB7CisgICAgICAgIC8vIFNwZWM6IEluZGlyZWN0IHJlZmVyZW5jZXMgYXJl
IGFuIGVycm9yICgxNC4zLjUpCisgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLnJlcG9ydEVycm9yKEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gdXNlIGluZGlyZWN0
IHJlZmVyZW5jZSBpbiA8Y2xpcC1wYXRoPiIpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKwor
ICAgIGRvd25jYXN0PFNWR0dyYXBoaWNzRWxlbWVudD4oKnRhcmdldENsb25lKS50b0NsaXBQYXRo
KHBhdGgpOworICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dCh0aGlzKTsKKyAgICAv
LyBGSVhNRTogRmluZCBhIHdheSB0byBkbyB0aGlzIHdpdGhvdXQgbWFudWFsIHJlc29sdXRpb24g
b2YgeC95IGhlcmUuIEl0J3MgcG90ZW50aWFsbHkgaW5jb3JyZWN0LgorICAgIHBhdGgudHJhbnNs
YXRlKEZsb2F0U2l6ZSh4KCkudmFsdWUobGVuZ3RoQ29udGV4dCksIHkoKS52YWx1ZShsZW5ndGhD
b250ZXh0KSkpOworICAgIHBhdGgudHJhbnNmb3JtKGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKSk7
CiB9CiAKIFJlbmRlckVsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OnJlbmRlcmVyQ2xpcENoaWxkKCkg
Y29uc3QKIHsKLSAgICBhdXRvKiBlbGVtZW50ID0gc2hhZG93VHJlZVRhcmdldENsb25lKCk7Ci0g
ICAgaWYgKCFlbGVtZW50KQorICAgIGF1dG8qIHRhcmdldENsb25lID0gdGhpcy0+dGFyZ2V0Q2xv
bmUoKTsKKyAgICBpZiAoIXRhcmdldENsb25lKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICBpZiAoIWlzRGlyZWN0UmVmZXJlbmNlKCplbGVtZW50KSkKKyAgICBpZiAoIWlzRGlyZWN0UmVm
ZXJlbmNlKCp0YXJnZXRDbG9uZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBlbGVtZW50LT5yZW5kZXJlcigpOworICAgIHJldHVybiB0YXJnZXRDbG9uZS0+cmVuZGVyZXIo
KTsKIH0KIAogc3RhdGljIHZvaWQgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUo
U1ZHRWxlbWVudCYgc3VidHJlZSkKQEAgLTQxOSw4ICszMjIsNyBAQCBzdGF0aWMgdm9pZCByZW1v
dmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogCiAg
ICAgVmVjdG9yPEVsZW1lbnQqPiBkaXNhbGxvd2VkRWxlbWVudHM7CiAgICAgYXV0byBkZXNjZW5k
YW50cyA9IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KHN1YnRyZWUpOwotICAgIGF1dG8gZW5k
ID0gZGVzY2VuZGFudHMuZW5kKCk7Ci0gICAgZm9yIChhdXRvIGl0ID0gZGVzY2VuZGFudHMuYmVn
aW4oKTsgaXQgIT0gZW5kOyApIHsKKyAgICBmb3IgKGF1dG8gaXQgPSBkZXNjZW5kYW50cy5iZWdp
bigpLCBlbmQgPSBkZXNjZW5kYW50cy5lbmQoKTsgaXQgIT0gZW5kOyApIHsKICAgICAgICAgaWYg
KGlzRGlzYWxsb3dlZEVsZW1lbnQoKml0KSkgewogICAgICAgICAgICAgZGlzYWxsb3dlZEVsZW1l
bnRzLmFwcGVuZCgmKml0KTsKICAgICAgICAgICAgIGl0LnRyYXZlcnNlTmV4dFNraXBwaW5nQ2hp
bGRyZW4oKTsKQEAgLTQ2Niw5MSArMzY4LDk5IEBAIHN0YXRpYyB2b2lkIGFzc29jaWF0ZVJlcGxh
Y2VtZW50Q2xvbmVzV2l0aE9yaWdpbmFscyhTVkdFbGVtZW50JiByZXBsYWNlbWVudENsb25lCiAg
ICAgICAgIGFzc29jaWF0ZVJlcGxhY2VtZW50Q2xvbmVXaXRoT3JpZ2luYWwocGFpci5maXJzdCwg
cGFpci5zZWNvbmQpOwogfQogCi12b2lkIFNWR1VzZUVsZW1lbnQ6OmJ1aWxkU2hhZG93VHJlZShT
VkdFbGVtZW50JiB0YXJnZXQpCitTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpmaW5kVGFyZ2V0
KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0CiB7Ci0gICAgUmVmPFNWR0VsZW1lbnQ+IGNsb25lZFRh
cmdldCA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8U1ZHRWxlbWVudD4odGFyZ2V0LmNsb25lRWxlbWVu
dFdpdGhDaGlsZHJlbihkb2N1bWVudCgpKSkucmVsZWFzZU5vbk51bGwoKTsKLSAgICBhc3NvY2lh
dGVDbG9uZXNXaXRoT3JpZ2luYWxzKGNsb25lZFRhcmdldC5nZXQoKSwgdGFyZ2V0KTsKLSAgICBy
ZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShjbG9uZWRUYXJnZXQuZ2V0KCkpOwot
ICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xv
bmVkVGFyZ2V0KSk7Ci19CisgICAgU1ZHRWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQgPSB0
aGlzLT5jb3JyZXNwb25kaW5nRWxlbWVudCgpOworICAgIGNvbnN0IFNWR1VzZUVsZW1lbnQmIG9y
aWdpbmFsID0gY29ycmVzcG9uZGluZ0VsZW1lbnQgPyBkb3duY2FzdDxTVkdVc2VFbGVtZW50Pigq
Y29ycmVzcG9uZGluZ0VsZW1lbnQpIDogKnRoaXM7CisKKyAgICBFbGVtZW50KiB0YXJnZXRDYW5k
aWRhdGUgPSB0YXJnZXRFbGVtZW50RnJvbUlSSVN0cmluZyhvcmlnaW5hbC5ocmVmKCksIG9yaWdp
bmFsLmRvY3VtZW50KCksIHRhcmdldElELCBvcmlnaW5hbC5leHRlcm5hbERvY3VtZW50KCkpOwor
ICAgIGlmICh0YXJnZXRJRCAmJiAhdGFyZ2V0SUQtPmlzTnVsbCgpKSB7CisgICAgICAgIC8vIElm
IHRoZSByZWZlcmVuY2UgaXMgZXh0ZXJuYWwsIGRvbid0IHJldHVybiB0aGUgdGFyZ2V0IElEIHRv
IHRoZSBjYWxsZXIuCisgICAgICAgIC8vIFRoZSBjYWxsZXIgd291bGQgdXNlIHRoZSB0YXJnZXQg
SUQgdG8gd2FpdCBmb3IgYSBwZW5kaW5nIHJlc291cmNlIG9uIHRoZSB3cm9uZyBkb2N1bWVudC4K
KyAgICAgICAgLy8gSWYgd2UgZXZlciB3YW50IHRoZSBjaGFuZ2UgdGhhdCBhbmQgbGV0IHRoZSBj
YWxsZXIgdG8gd2FpdCBvbiB0aGUgZXh0ZXJuYWwgZG9jdW1lbnQsCisgICAgICAgIC8vIHdlIHNo
b3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBzbyBpdCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBk
b2N1bWVudCB0byBnbyB3aXRoIHRoZSBJRC4KKyAgICAgICAgaWYgKGlzRXh0ZXJuYWxVUklSZWZl
cmVuY2Uob3JpZ2luYWwuaHJlZigpLCBvcmlnaW5hbC5kb2N1bWVudCgpKSkKKyAgICAgICAgICAg
ICp0YXJnZXRJRCA9IFN0cmluZygpOworICAgIH0KKyAgICBpZiAoIWlzPFNWR0VsZW1lbnQ+KHRh
cmdldENhbmRpZGF0ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIFNWR0VsZW1lbnQm
IHRhcmdldCA9IGRvd25jYXN0PFNWR0VsZW1lbnQ+KCp0YXJnZXRDYW5kaWRhdGUpOworCisgICAg
aWYgKCF0YXJnZXQuaW5Eb2N1bWVudCgpIHx8IGlzRGlzYWxsb3dlZEVsZW1lbnQodGFyZ2V0KSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLWJvb2wgU1ZHVXNlRWxlbWVudDo6aXNWYWxpZFRh
cmdldChFbGVtZW50KiB0YXJnZXQpIGNvbnN0Ci17Ci0gICAgaWYgKCFpczxTVkdFbGVtZW50Pih0
YXJnZXQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF0YXJnZXQtPmluRG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFNWR0VsZW1lbnQmIGNhc3RlZFRhcmdl
dCA9IGRvd25jYXN0PFNWR0VsZW1lbnQ+KCp0YXJnZXQpOwotICAgIGlmICgmY2FzdGVkVGFyZ2V0
ID09IHRoaXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoaXNEaXNhbGxvd2VkRWxl
bWVudChjYXN0ZWRUYXJnZXQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gUmVqZWN0
IGFueSB0YXJnZXQgdGhhdCB3b3VsZCBjcmVhdGUgYSBjeWNsZS4KLSAgICBmb3IgKGF1dG8mIGFu
Y2VzdG9yIDogbGluZWFnZU9mVHlwZTxTVkdFbGVtZW50PigqdGhpcykpIHsKLSAgICAgICAgaWYg
KGFuY2VzdG9yLmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgPT0gJmNhc3RlZFRhcmdldCkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoY29ycmVzcG9uZGluZ0VsZW1lbnQpIHsKKyAg
ICAgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8U1ZHRWxlbWVudD4oKnRo
aXMpKSB7CisgICAgICAgICAgICBpZiAoYW5jZXN0b3IuY29ycmVzcG9uZGluZ0VsZW1lbnQoKSA9
PSAmdGFyZ2V0KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9Cisg
ICAgfQorICAgIGZvciAoYXV0byYgYW5jZXN0b3IgOiBsaW5lYWdlT2ZUeXBlPFNWR0VsZW1lbnQ+
KG9yaWdpbmFsKSkgeworICAgICAgICBpZiAoJmFuY2VzdG9yID09ICZ0YXJnZXQpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1
cm4gJnRhcmdldDsKIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRVc2VFbGVtZW50c0lu
U2hhZG93VHJlZSgpCit2b2lkIFNWR1VzZUVsZW1lbnQ6OmNsb25lVGFyZ2V0KENvbnRhaW5lck5v
ZGUmIGNvbnRhaW5lciwgU1ZHRWxlbWVudCYgdGFyZ2V0KSBjb25zdAogewotICAgIC8vIEZJWE1F
OiBDb21iaW5lIHRoaXMgd2l0aCBidWlsZFNoYWRvd1RyZWUuCisgICAgUmVmPFNWR0VsZW1lbnQ+
IHRhcmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQuY2xv
bmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVsbCgpOworICAg
IGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5hbHModGFyZ2V0Q2xvbmUuZ2V0KCksIHRhcmdldCk7
CisgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUodGFyZ2V0Q2xvbmUuZ2V0
KCkpOworICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1RhcmdldENsb25lKHRhcmdldENsb25l
LmdldCgpKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRhcmdldENsb25l
KSk7Cit9CiAKLSAgICBpZiAoY2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9hZGluZygpKQotICAgICAg
ICByZXR1cm47CitzdGF0aWMgdm9pZCBjbG9uZURhdGFBbmRDaGlsZHJlbihTVkdFbGVtZW50JiBy
ZXBsYWNlbWVudENsb25lLCBTVkdFbGVtZW50JiBvcmlnaW5hbENsb25lKQoreworICAgIC8vIFRo
aXMgYXNzZXJ0aW9uIGNoZWNrcyB0aGF0IHdlIGRvbid0IGNhbGwgdGhpcyB3aXRoIHRoZSBhcmd1
bWVudHMgYmFja3dhcmRzLgorICAgIC8vIFRoZSByZXBsYWNlbWVudCBjbG9uZSBpcyBuZXcgYW5k
IHNvIGl0J3Mgbm90IGluc3RhbGxlZCBpbiBhIHBhcmVudCB5ZXQuCisgICAgQVNTRVJUKCFyZXBs
YWNlbWVudENsb25lLnBhcmVudE5vZGUoKSk7CisKKyAgICByZXBsYWNlbWVudENsb25lLmNsb25l
RGF0YUZyb21FbGVtZW50KG9yaWdpbmFsQ2xvbmUpOworICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVD
aGlsZE5vZGVzKCZyZXBsYWNlbWVudENsb25lKTsKKyAgICBhc3NvY2lhdGVSZXBsYWNlbWVudENs
b25lc1dpdGhPcmlnaW5hbHMocmVwbGFjZW1lbnRDbG9uZSwgb3JpZ2luYWxDbG9uZSk7CisgICAg
cmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUocmVwbGFjZW1lbnRDbG9uZSk7Cit9
CiAKK3ZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKSBj
b25zdAorewogICAgIGF1dG8gZGVzY2VuZGFudHMgPSBkZXNjZW5kYW50c09mVHlwZTxTVkdVc2VF
bGVtZW50PigqdXNlckFnZW50U2hhZG93Um9vdCgpKTsKLSAgICBhdXRvIGVuZCA9IGRlc2NlbmRh
bnRzLmVuZCgpOwotICAgIGZvciAoYXV0byBpdCA9IGRlc2NlbmRhbnRzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKSB7Ci0gICAgICAgIFJlZjxTVkdVc2VFbGVtZW50PiBvcmlnaW5hbCA9ICppdDsKKyAg
ICBmb3IgKGF1dG8gaXQgPSBkZXNjZW5kYW50cy5iZWdpbigpLCBlbmQgPSBkZXNjZW5kYW50cy5l
bmQoKTsgaXQgIT0gZW5kOyApIHsKKyAgICAgICAgU1ZHVXNlRWxlbWVudCYgb3JpZ2luYWxDbG9u
ZSA9ICppdDsKICAgICAgICAgaXQgPSBlbmQ7IC8vIEVmZmljaWVudGx5IHF1aWV0cyBhc3NlcnRp
b25zIGR1ZSB0byB0aGUgb3V0c3RhbmRpbmcgaXRlcmF0b3IuCiAKLSAgICAgICAgaWYgKG9yaWdp
bmFsLT5jYWNoZWREb2N1bWVudElzU3RpbGxMb2FkaW5nKCkpCi0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgIFNWR0VsZW1lbnQqIHRhcmdldCA9IG9yaWdpbmFsQ2xvbmUuZmluZFRhcmdldCgp
OwogCiAgICAgICAgIC8vIFNwZWM6IEluIHRoZSBnZW5lcmF0ZWQgY29udGVudCwgdGhlICd1c2Un
IHdpbGwgYmUgcmVwbGFjZWQgYnkgJ2cnLCB3aGVyZSBhbGwgYXR0cmlidXRlcyBmcm9tIHRoZQog
ICAgICAgICAvLyAndXNlJyBlbGVtZW50IGV4Y2VwdCBmb3IgeCwgeSwgd2lkdGgsIGhlaWdodCBh
bmQgeGxpbms6aHJlZiBhcmUgdHJhbnNmZXJyZWQgdG8gdGhlIGdlbmVyYXRlZCAnZycgZWxlbWVu
dC4KIAotICAgICAgICAvLyBGSVhNRTogSXMgaXQgcmlnaHQgdG8gdXNlIHJlZmVyZW5jZWREb2N1
bWVudCgpIGhlcmUgaW5zdGVhZCBvZiBqdXN0IGRvY3VtZW50KCk/Ci0gICAgICAgIC8vIENhbiBh
IHNoYWRvdyB0cmVlIHdpdGhpbiB0aGlzIGRvY3VtZW50IHJlYWxseSBjb250YWluIGVsZW1lbnRz
IHRoYXQgYXJlIGluIGEKLSAgICAgICAgLy8gZGlmZmVyZW50IGRvY3VtZW50PwotICAgICAgICBB
U1NFUlQocmVmZXJlbmNlZERvY3VtZW50KCkpOwotICAgICAgICBhdXRvIHJlcGxhY2VtZW50ID0g
U1ZHR0VsZW1lbnQ6OmNyZWF0ZShTVkdOYW1lczo6Z1RhZywgKnJlZmVyZW5jZWREb2N1bWVudCgp
KTsKLSAgICAgICAgb3JpZ2luYWwtPnRyYW5zZmVyQXR0cmlidXRlc1RvU2hhZG93VHJlZVJlcGxh
Y2VtZW50KHJlcGxhY2VtZW50LmdldCgpKTsKLSAgICAgICAgb3JpZ2luYWwtPmNsb25lQ2hpbGRO
b2RlcyhyZXBsYWNlbWVudC5wdHIoKSk7Ci0gICAgICAgIGFzc29jaWF0ZVJlcGxhY2VtZW50Q2xv
bmVzV2l0aE9yaWdpbmFscyhyZXBsYWNlbWVudC5nZXQoKSwgb3JpZ2luYWwuZ2V0KCkpOwotCi0g
ICAgICAgIFJlZlB0cjxTVkdFbGVtZW50PiBjbG9uZWRUYXJnZXQ7Ci0gICAgICAgIEVsZW1lbnQq
IHRhcmdldENhbmRpZGF0ZSA9IFNWR1VSSVJlZmVyZW5jZTo6dGFyZ2V0RWxlbWVudEZyb21JUklT
dHJpbmcob3JpZ2luYWwtPmhyZWYoKSwgKnJlZmVyZW5jZWREb2N1bWVudCgpKTsKLSAgICAgICAg
aWYgKG9yaWdpbmFsLT5pc1ZhbGlkVGFyZ2V0KHRhcmdldENhbmRpZGF0ZSkpIHsKLSAgICAgICAg
ICAgIFNWR0VsZW1lbnQmIG9yaWdpbmFsVGFyZ2V0ID0gZG93bmNhc3Q8U1ZHRWxlbWVudD4oKnRh
cmdldENhbmRpZGF0ZSk7Ci0gICAgICAgICAgICBjbG9uZWRUYXJnZXQgPSBzdGF0aWNfcG9pbnRl
cl9jYXN0PFNWR0VsZW1lbnQ+KG9yaWdpbmFsVGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGlsZHJl
bihkb2N1bWVudCgpKSk7Ci0gICAgICAgICAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxz
KCpjbG9uZWRUYXJnZXQsIG9yaWdpbmFsVGFyZ2V0KTsKLSAgICAgICAgICAgIHJlcGxhY2VtZW50
LT5hcHBlbmRDaGlsZChjbG9uZWRUYXJnZXQpOwotICAgICAgICB9CisgICAgICAgIGF1dG8gcmVw
bGFjZW1lbnRDbG9uZSA9IFNWR0dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAg
IGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xv
bmUpOwogCi0gICAgICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHJlcGxh
Y2VtZW50LmdldCgpKTsKKyAgICAgICAgcmVwbGFjZW1lbnRDbG9uZS0+cmVtb3ZlQXR0cmlidXRl
KFNWR05hbWVzOjp4QXR0cik7CisgICAgICAgIHJlcGxhY2VtZW50Q2xvbmUtPnJlbW92ZUF0dHJp
YnV0ZShTVkdOYW1lczo6eUF0dHIpOworICAgICAgICByZXBsYWNlbWVudENsb25lLT5yZW1vdmVB
dHRyaWJ1dGUoU1ZHTmFtZXM6OndpZHRoQXR0cik7CisgICAgICAgIHJlcGxhY2VtZW50Q2xvbmUt
PnJlbW92ZUF0dHJpYnV0ZShTVkdOYW1lczo6aGVpZ2h0QXR0cik7CisgICAgICAgIHJlcGxhY2Vt
ZW50Q2xvbmUtPnJlbW92ZUF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAKLSAgICAg
ICAgLy8gUmVwbGFjZSA8dXNlPiB3aXRoIHRoZSA8Zz4gZWxlbWVudCB3ZSBjcmVhdGVkLgotICAg
ICAgICBvcmlnaW5hbC0+cGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnQucHRy
KCksIG9yaWdpbmFsLnB0cigpKTsKKyAgICAgICAgaWYgKHRhcmdldCkKKyAgICAgICAgICAgIG9y
aWdpbmFsQ2xvbmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgKnRhcmdldCk7
CiAKLSAgICAgICAgLy8gQ2FsbCB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlVGFy
Z2V0Q2xvbmUgYWZ0ZXIgcHV0dGluZyB0aGUgY2xvbmVkIGVsZW1lbnRzIGludG8gdGhlCi0gICAg
ICAgIC8vIHNoYWRvdyB0cmVlIHNvIGl0IGNhbiB1c2UgU1ZHRWxlbWVudDo6Y29ycmVzcG9uZGlu
Z0VsZW1lbnQgd2l0aG91dCB0cmlnZ2VyaW5nIGFuIGFzc2VydGlvbi4KLSAgICAgICAgaWYgKGNs
b25lZFRhcmdldCkKLSAgICAgICAgICAgIG9yaWdpbmFsLT50cmFuc2ZlclNpemVBdHRyaWJ1dGVz
VG9TaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoKmNsb25lZFRhcmdldCk7CisgICAgICAgIG9yaWdpbmFs
Q2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5wdHIoKSwg
Jm9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIC8vIENvbnRpbnVlIGl0ZXJhdGluZyBmcm9tIHRo
ZSA8Zz4gZWxlbWVudCBzaW5jZSB0aGUgPHVzZT4gZWxlbWVudCB3YXMgcmVwbGFjZWQuCi0gICAg
ICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudC5nZXQoKSk7CisgICAgICAgIC8v
IFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBj
bG9uZS4KKyAgICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0
KCkpOwogICAgIH0KIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50
c0luU2hhZG93VHJlZSgpCit2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFN5bWJvbEVsZW1lbnRz
SW5TaGFkb3dUcmVlKCkgY29uc3QKIHsKICAgICBhdXRvIGRlc2NlbmRhbnRzID0gZGVzY2VuZGFu
dHNPZlR5cGU8U1ZHU3ltYm9sRWxlbWVudD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7Ci0gICAg
YXV0byBlbmQgPSBkZXNjZW5kYW50cy5lbmQoKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBkZXNjZW5k
YW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICkgewotICAgICAgICBTVkdTeW1ib2xFbGVtZW50JiBv
cmlnaW5hbCA9ICppdDsKKyAgICBmb3IgKGF1dG8gaXQgPSBkZXNjZW5kYW50cy5iZWdpbigpLCBl
bmQgPSBkZXNjZW5kYW50cy5lbmQoKTsgaXQgIT0gZW5kOyApIHsKKyAgICAgICAgU1ZHU3ltYm9s
RWxlbWVudCYgb3JpZ2luYWxDbG9uZSA9ICppdDsKICAgICAgICAgaXQgPSBlbmQ7IC8vIEVmZmlj
aWVudGx5IHF1aWV0cyBhc3NlcnRpb25zIGR1ZSB0byB0aGUgb3V0c3RhbmRpbmcgaXRlcmF0b3Iu
CiAKICAgICAgICAgLy8gU3BlYzogVGhlIHJlZmVyZW5jZWQgJ3N5bWJvbCcgYW5kIGl0cyBjb250
ZW50cyBhcmUgZGVlcC1jbG9uZWQgaW50byB0aGUgZ2VuZXJhdGVkIHRyZWUsCkBAIC01NjAsMzAg
KzQ3MCwxOSBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFk
b3dUcmVlKCkKICAgICAgICAgLy8gdGhlIGdlbmVyYXRlZCAnc3ZnJy4gSWYgYXR0cmlidXRlcyB3
aWR0aCBhbmQvb3IgaGVpZ2h0IGFyZSBub3Qgc3BlY2lmaWVkLCB0aGUgZ2VuZXJhdGVkCiAgICAg
ICAgIC8vICdzdmcnIGVsZW1lbnQgd2lsbCB1c2UgdmFsdWVzIG9mIDEwMCUgZm9yIHRoZXNlIGF0
dHJpYnV0ZXMuCiAKLSAgICAgICAgLy8gRklYTUU6IElzIGl0IHJpZ2h0IHRvIHVzZSByZWZlcmVu
Y2VkRG9jdW1lbnQoKSBoZXJlIGluc3RlYWQgb2YganVzdCBkb2N1bWVudCgpPwotICAgICAgICAv
LyBDYW4gYSBzaGFkb3cgdHJlZSB3aXRoaW4gdGhpcyBkb2N1bWVudCByZWFsbHkgY29udGFpbiBl
bGVtZW50cyB0aGF0IGFyZSBpbiBhCi0gICAgICAgIC8vIGRpZmZlcmVudCBkb2N1bWVudD8KLSAg
ICAgICAgQVNTRVJUKHJlZmVyZW5jZWREb2N1bWVudCgpKTsKLSAgICAgICAgYXV0byByZXBsYWNl
bWVudCA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShTVkdOYW1lczo6c3ZnVGFnLCAqcmVmZXJlbmNl
ZERvY3VtZW50KCkpOwotICAgICAgICByZXBsYWNlbWVudC0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQo
b3JpZ2luYWwpOwotICAgICAgICBvcmlnaW5hbC5jbG9uZUNoaWxkTm9kZXMocmVwbGFjZW1lbnQu
cHRyKCkpOwotICAgICAgICBhc3NvY2lhdGVSZXBsYWNlbWVudENsb25lc1dpdGhPcmlnaW5hbHMo
cmVwbGFjZW1lbnQuZ2V0KCksIG9yaWdpbmFsKTsKLQotICAgICAgICByZW1vdmVEaXNhbGxvd2Vk
RWxlbWVudHNGcm9tU3VidHJlZShyZXBsYWNlbWVudC5nZXQoKSk7CisgICAgICAgIGF1dG8gcmVw
bGFjZW1lbnRDbG9uZSA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAg
ICAgY2xvbmVEYXRhQW5kQ2hpbGRyZW4ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgb3JpZ2luYWxD
bG9uZSk7CiAKLSAgICAgICAgLy8gUmVwbGFjZSA8c3ltYm9sPiB3aXRoIHRoZSA8c3ZnPiBlbGVt
ZW50IHdlIGNyZWF0ZWQuCi0gICAgICAgIG9yaWdpbmFsLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNo
aWxkKHJlcGxhY2VtZW50LnB0cigpLCAmb3JpZ2luYWwpOworICAgICAgICBvcmlnaW5hbENsb25l
LnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUucHRyKCksICZvcmln
aW5hbENsb25lKTsKIAotICAgICAgICAvLyBDb250aW51ZSBpdGVyYXRpbmcgZnJvbSB0aGUgPHN2
Zz4gZWxlbWVudCBzaW5jZSB0aGUgPHN5bWJvbD4gZWxlbWVudCB3YXMgcmVwbGFjZWQuCi0gICAg
ICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudC5nZXQoKSk7CisgICAgICAgIC8v
IFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBj
bG9uZS4KKyAgICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0
KCkpOwogICAgIH0KIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlckV2ZW50TGlzdGVu
ZXJzVG9TaGFkb3dUcmVlKCkKK3ZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJFdmVudExpc3Rl
bmVyc1RvU2hhZG93VHJlZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHVzZXJBZ2VudFNoYWRvd1Jv
b3QoKSk7CiAgICAgZm9yIChhdXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8U1ZH
RWxlbWVudD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkpIHsKLSAgICAgICAgQVNTRVJUKGRlc2Nl
bmRhbnQuY29ycmVzcG9uZGluZ0VsZW1lbnQoKSk7CiAgICAgICAgIGlmIChFdmVudFRhcmdldERh
dGEqIGRhdGEgPSBkZXNjZW5kYW50LmNvcnJlc3BvbmRpbmdFbGVtZW50KCktPmV2ZW50VGFyZ2V0
RGF0YSgpKQogICAgICAgICAgICAgZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5jb3B5RXZlbnRMaXN0
ZW5lcnNOb3RDcmVhdGVkRnJvbU1hcmt1cFRvVGFyZ2V0KCZkZXNjZW5kYW50KTsKICAgICB9CkBA
IC01OTEsOSArNDkwLDkgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlckV2ZW50TGlzdGVu
ZXJzVG9TaGFkb3dUcmVlKCkKIAogdm9pZCBTVkdVc2VFbGVtZW50OjppbnZhbGlkYXRlU2hhZG93
VHJlZSgpCiB7Ci0gICAgaWYgKG1fbmVlZHNTaGFkb3dUcmVlUmVjcmVhdGlvbikKKyAgICBpZiAo
bV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX25lZWRzU2hh
ZG93VHJlZVJlY3JlYXRpb24gPSB0cnVlOworICAgIG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlID0g
dHJ1ZTsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFJlY29uc3RydWN0UmVuZGVyVHJlZSk7CiAg
ICAgaW52YWxpZGF0ZURlcGVuZGVudFNoYWRvd1RyZWVzKCk7CiB9CkBAIC02MDEsNzYgKzUwMCw5
MSBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmludmFsaWRhdGVTaGFkb3dUcmVlKCkKIHZvaWQgU1ZH
VXNlRWxlbWVudDo6aW52YWxpZGF0ZURlcGVuZGVudFNoYWRvd1RyZWVzKCkKIHsKICAgICBmb3Ig
KGF1dG8qIGluc3RhbmNlIDogaW5zdGFuY2VzKCkpIHsKLSAgICAgICAgaWYgKFNWR1VzZUVsZW1l
bnQqIGVsZW1lbnQgPSBpbnN0YW5jZS0+Y29ycmVzcG9uZGluZ1VzZUVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1lbnQoKSk7CisgICAgICAgIGlmIChTVkdV
c2VFbGVtZW50KiBlbGVtZW50ID0gaW5zdGFuY2UtPmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KCkp
CiAgICAgICAgICAgICBlbGVtZW50LT5pbnZhbGlkYXRlU2hhZG93VHJlZSgpOwotICAgICAgICB9
CiAgICAgfQogfQogCi12b2lkIFNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyQXR0cmlidXRlc1RvU2hh
ZG93VHJlZVJlcGxhY2VtZW50KFNWR0dFbGVtZW50JiByZXBsYWNlbWVudCkgY29uc3QKLXsKLSAg
ICByZXBsYWNlbWVudC5jbG9uZURhdGFGcm9tRWxlbWVudCgqdGhpcyk7Ci0KLSAgICByZXBsYWNl
bWVudC5yZW1vdmVBdHRyaWJ1dGUoU1ZHTmFtZXM6OnhBdHRyKTsKLSAgICByZXBsYWNlbWVudC5y
ZW1vdmVBdHRyaWJ1dGUoU1ZHTmFtZXM6OnlBdHRyKTsKLSAgICByZXBsYWNlbWVudC5yZW1vdmVB
dHRyaWJ1dGUoU1ZHTmFtZXM6OndpZHRoQXR0cik7Ci0gICAgcmVwbGFjZW1lbnQucmVtb3ZlQXR0
cmlidXRlKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKLSAgICByZXBsYWNlbWVudC5yZW1vdmVBdHRy
aWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwotfQotCiBib29sIFNWR1VzZUVsZW1lbnQ6OnNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdAogewogICAgIGlmICh4KCkuaXNSZWxhdGl2ZSgp
IHx8IHkoKS5pc1JlbGF0aXZlKCkgfHwgd2lkdGgoKS5pc1JlbGF0aXZlKCkgfHwgaGVpZ2h0KCku
aXNSZWxhdGl2ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8qIHRhcmdldCA9
IHNoYWRvd1RyZWVUYXJnZXRDbG9uZSgpOwotICAgIHJldHVybiB0YXJnZXQgJiYgdGFyZ2V0LT5o
YXNSZWxhdGl2ZUxlbmd0aHMoKTsKKyAgICBhdXRvKiB0YXJnZXRDbG9uZSA9IHRoaXMtPnRhcmdl
dENsb25lKCk7CisgICAgcmV0dXJuIHRhcmdldENsb25lICYmIHRhcmdldENsb25lLT5oYXNSZWxh
dGl2ZUxlbmd0aHMoKTsKIH0KIAogdm9pZCBTVkdVc2VFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CisgICAgaW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsK
ICAgICBpZiAoIWluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgaW52YWxpZGF0
ZVNoYWRvd1RyZWUoKTsKICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKICAgICBlbHNlIGlmICghcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpCiAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRo
aXMpOwogfQogCi1ib29sIFNWR1VzZUVsZW1lbnQ6OmNhY2hlZERvY3VtZW50SXNTdGlsbExvYWRp
bmcoKQotewotICAgIGlmIChtX2NhY2hlZERvY3VtZW50ICYmIG1fY2FjaGVkRG9jdW1lbnQtPmlz
TG9hZGluZygpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IHZvaWQgU1ZHVXNlRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTVkdH
cmFwaGljc0VsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwogICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwotICAgIGlmIChtX3dh
c0luc2VydGVkQnlQYXJzZXIpIHsKLSAgICAgICAgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKLSAg
ICAgICAgbV93YXNJbnNlcnRlZEJ5UGFyc2VyID0gZmFsc2U7Ci0gICAgfQogfQogCi12b2lkIFNW
R1VzZUVsZW1lbnQ6OnNldENhY2hlZERvY3VtZW50KENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNWR0RvY3VtZW50PiBjYWNoZWREb2N1bWVudCkKK3ZvaWQgU1ZHVXNlRWxlbWVudDo6dXBkYXRl
RXh0ZXJuYWxEb2N1bWVudCgpCiB7Ci0gICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQgPT0gY2FjaGVk
RG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKKyAgICBVUkwgZXh0ZXJuYWxEb2N1bWVudFVSTDsK
KyAgICBpZiAoaW5Eb2N1bWVudCgpICYmIGlzRXh0ZXJuYWxVUklSZWZlcmVuY2UoaHJlZigpLCBk
b2N1bWVudCgpKSkgeworICAgICAgICBleHRlcm5hbERvY3VtZW50VVJMID0gZG9jdW1lbnQoKS5j
b21wbGV0ZVVSTChocmVmKCkpOworICAgICAgICBpZiAoIWV4dGVybmFsRG9jdW1lbnRVUkwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBleHRlcm5hbERvY3VtZW50VVJMID0g
VVJMKCk7CisgICAgfQogCi0gICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQpCi0gICAgICAgIG1fY2Fj
aGVkRG9jdW1lbnQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICBpZiAoZXh0ZXJuYWxEb2N1bWVu
dFVSTCA9PSAobV9leHRlcm5hbERvY3VtZW50ID8gbV9leHRlcm5hbERvY3VtZW50LT51cmwoKSA6
IFVSTCgpKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jYWNoZWREb2N1bWVudCA9IGNhY2hl
ZERvY3VtZW50OwotICAgIGlmIChtX2NhY2hlZERvY3VtZW50KSB7Ci0gICAgICAgIC8vIFdlIGRv
bid0IG5lZWQgdGhlIFNWRyBkb2N1bWVudCB0byBjcmVhdGUgYSBuZXcgZnJhbWUgYmVjYXVzZSB0
aGUgbmV3IGRvY3VtZW50IGJlbG9uZ3MgdG8gdGhlIHBhcmVudCBVc2VFbGVtZW50LgotICAgICAg
ICBtX2NhY2hlZERvY3VtZW50LT5zZXRTaG91bGRDcmVhdGVGcmFtZUZvckRvY3VtZW50KGZhbHNl
KTsKLSAgICAgICAgbV9jYWNoZWREb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOworICAgIGlmICht
X2V4dGVybmFsRG9jdW1lbnQpCisgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+cmVtb3ZlQ2xp
ZW50KHRoaXMpOworCisgICAgaWYgKGV4dGVybmFsRG9jdW1lbnRVUkwuaXNOdWxsKCkpCisgICAg
ICAgIG1fZXh0ZXJuYWxEb2N1bWVudCA9IG51bGxwdHI7CisgICAgZWxzZSB7CisgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgUmVzb3VyY2VSZXF1ZXN0IHsgZXh0ZXJuYWxE
b2N1bWVudFVSTCB9IH07CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOworICAg
ICAgICBtX2V4dGVybmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVy
KCkucmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOworICAgICAgICBpZiAobV9leHRlcm5hbERv
Y3VtZW50KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSXMgaXQgcmVhbGx5IE9LIGZvciB1cyB0
byBzZXQgdGhpcyB0byBmYWxzZSBmb3IgYSBkb2N1bWVudCB0aGF0IG1pZ2h0IGJlIHNoYXJlZCBi
eSBhbm90aGVyIGNsaWVudD8KKyAgICAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+c2V0U2hv
dWxkQ3JlYXRlRnJhbWVGb3JEb2N1bWVudChmYWxzZSk7IC8vIE5vIGZyYW1lIG5lZWRlZCwgd2Ug
anVzdCB3YW50IHRoZSBlbGVtZW50cy4KKyAgICAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+
YWRkQ2xpZW50KHRoaXMpOworICAgICAgICB9CiAgICAgfQorCisgICAgaW52YWxpZGF0ZVNoYWRv
d1RyZWUoKTsKK30KKworYm9vbCBTVkdVc2VFbGVtZW50Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsKK30KKworYm9vbCBTVkdVc2VFbGVtZW50Ojpo
YXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKQoreworICAgIHJldHVybiBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKTsKK30KKwordm9p
ZCBTVkdVc2VFbGVtZW50OjpzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCBoYXZlRmlyZWRMb2Fk
RXZlbnQpCit7CisgICAgbV9oYXZlRmlyZWRMb2FkRXZlbnQgPSBoYXZlRmlyZWRMb2FkRXZlbnQ7
Cit9CisKK2Jvb2wgU1ZHVXNlRWxlbWVudDo6aGF2ZUZpcmVkTG9hZEV2ZW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9oYXZlRmlyZWRMb2FkRXZlbnQ7Cit9CisKK1RpbWVyKiBTVkdVc2VFbGVt
ZW50OjpzdmdMb2FkRXZlbnRUaW1lcigpCit7CisgICAgcmV0dXJuICZtX3N2Z0xvYWRFdmVudFRp
bWVyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCAzODM0MDNhOTE1
NTlhZjBhYThiNmJhYmVlMDI1MjA2YWM3ODJmOWFkLi41YTZjMTc2ZTNmYThkNDIyNzdhNzNjNGJh
MTdmNDM3MmM5NjI1YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTI4LDcg
KzI4LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQu
aCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNiw4MiArMzUsNjUgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBTVkdHRWxlbWVudDsKIAotY2xh
c3MgU1ZHVXNlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1lbnQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgQ2FjaGVkU1ZHRG9jdW1lbnRDbGll
bnQgeworY2xhc3MgU1ZHVXNlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1l
bnQsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBwdWJsaWMgU1ZHVVJJUmVm
ZXJlbmNlLCBwcml2YXRlIENhY2hlZFNWR0RvY3VtZW50Q2xpZW50IHsKKworICAgIEJFR0lOX0RF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdVc2VFbGVtZW50KQorICAgICAgICBERUNMQVJF
X0FOSU1BVEVEX0xFTkdUSChYLCB4KQorICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChZ
LCB5KQorICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChXaWR0aCwgd2lkdGgpCisgICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKEhlaWdodCwgaGVpZ2h0KQorICAgICAgICBERUNM
QVJFX0FOSU1BVEVEX1NUUklORyhIcmVmLCBocmVmKQorICAgICAgICBERUNMQVJFX0FOSU1BVEVE
X0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKKyAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCisKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFNWR1VzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwogICAgIHZpcnR1YWwgflNWR1Vz
ZUVsZW1lbnQoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKLSAgICB2b2lk
IGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpOwogCiAgICAgUmVuZGVyRWxlbWVudCog
cmVuZGVyZXJDbGlwQ2hpbGQoKSBjb25zdDsKIAotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9p
ZCBkaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9ucyhDb250YWluZXJOb2RlKikgb3ZlcnJpZGU7Ci0K
IHByaXZhdGU6CiAgICAgU1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwogCi0gICAgdmlydHVhbCBib29sIGlzVmFs
aWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9Ci0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkUGVuZGluZ1Jlc291cmNlKCkgb3ZlcnJpZGU7
Ci0KLSAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwg
dm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0KICAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdG9DbGlwUGF0aChQYXRoJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGhhdmVGaXJlZExvYWRFdmVudCgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgVGltZXIqIHN2Z0xvYWRFdmVudFRpbWVyKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7CisgICAgRG9jdW1lbnQqIGV4dGVybmFs
RG9jdW1lbnQoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUV4dGVybmFsRG9jdW1lbnQoKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKSBvdmVycmlkZSB7
IHJldHVybiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpoYXZlTG9hZGVkUmVxdWlyZWRS
ZXNvdXJjZXMoKTsgfQorICAgIFNWR0VsZW1lbnQqIGZpbmRUYXJnZXQoU3RyaW5nKiB0YXJnZXRJ
RCA9IG51bGxwdHIpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjbG9uZVRhcmdldChDb250YWluZXJOb2RlJiwg
U1ZHRWxlbWVudCYgdGFyZ2V0KSBjb25zdDsKKyAgICBTVkdFbGVtZW50KiB0YXJnZXRDbG9uZSgp
IGNvbnN0OwogCi0gICAgLy8gU2hhZG93IHRyZWUgaGFuZGxpbmcuCi0gICAgdm9pZCBidWlsZFNo
YWRvd1RyZWUoU1ZHRWxlbWVudCYgdGFyZ2V0KTsKLSAgICB2b2lkIGV4cGFuZFVzZUVsZW1lbnRz
SW5TaGFkb3dUcmVlKCk7Ci0gICAgdm9pZCBleHBhbmRTeW1ib2xFbGVtZW50c0luU2hhZG93VHJl
ZSgpOwotICAgIFNWR0VsZW1lbnQqIHNoYWRvd1RyZWVUYXJnZXRDbG9uZSgpIGNvbnN0OwotICAg
IHZvaWQgdHJhbnNmZXJFdmVudExpc3RlbmVyc1RvU2hhZG93VHJlZSgpOwotICAgIHZvaWQgdHJh
bnNmZXJBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlUmVwbGFjZW1lbnQoU1ZHR0VsZW1lbnQmKSBjb25z
dDsKLSAgICB2b2lkIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVUYXJnZXRDbG9u
ZShTVkdFbGVtZW50JikgY29uc3Q7Ci0gICAgYm9vbCBpc1ZhbGlkVGFyZ2V0KEVsZW1lbnQqKSBj
b25zdDsKKyAgICB2b2lkIHVwZGF0ZVNoYWRvd1RyZWUoKTsKKyAgICB2b2lkIGV4cGFuZFVzZUVs
ZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3Q7CisgICAgdm9pZCBleHBhbmRTeW1ib2xFbGVtZW50
c0luU2hhZG93VHJlZSgpIGNvbnN0OworICAgIHZvaWQgdHJhbnNmZXJFdmVudExpc3RlbmVyc1Rv
U2hhZG93VHJlZSgpIGNvbnN0OworICAgIHZvaWQgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvVGFy
Z2V0Q2xvbmUoU1ZHRWxlbWVudCYpIGNvbnN0OwogCi0gICAgQkVHSU5fREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTKFNWR1VzZUVsZW1lbnQpCi0gICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVO
R1RIKFgsIHgpCi0gICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFksIHkpCi0gICAgICAg
IERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFdpZHRoLCB3aWR0aCkKLSAgICAgICAgREVDTEFSRV9B
TklNQVRFRF9MRU5HVEgoSGVpZ2h0LCBoZWlnaHQpCi0gICAgICAgIERFQ0xBUkVfQU5JTUFURURf
U1RSSU5HKEhyZWYsIGhyZWYpCi0gICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQotICAgIEVO
RF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKKyAgICB2b2lkIGNsZWFyU2hhZG93VHJlZSgp
OworICAgIHZvaWQgaW52YWxpZGF0ZURlcGVuZGVudFNoYWRvd1RyZWVzKCk7CiAKLSAgICBib29s
IGNhY2hlZERvY3VtZW50SXNTdGlsbExvYWRpbmcoKTsKLSAgICBEb2N1bWVudCogZXh0ZXJuYWxE
b2N1bWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRS
ZXNvdXJjZSopIG92ZXJyaWRlOwotICAgIERvY3VtZW50KiByZWZlcmVuY2VkRG9jdW1lbnQoKSBj
b25zdDsKLSAgICB2b2lkIHNldENhY2hlZERvY3VtZW50KENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNWR0RvY3VtZW50Pik7Ci0KLSAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
Ci0gICAgdmlydHVhbCB2b2lkIHNldEhhdmVGaXJlZExvYWRFdmVudChib29sIGhhdmVGaXJlZExv
YWRFdmVudCkgb3ZlcnJpZGUgeyBtX2hhdmVGaXJlZExvYWRFdmVudCA9IGhhdmVGaXJlZExvYWRF
dmVudDsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1BhcnNlckluc2VydGVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV93YXNJbnNlcnRlZEJ5UGFyc2VyOyB9Ci0gICAgdmlydHVhbCBib29sIGhh
dmVGaXJlZExvYWRFdmVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faGF2ZUZpcmVkTG9h
ZEV2ZW50OyB9Ci0gICAgdmlydHVhbCBUaW1lciogc3ZnTG9hZEV2ZW50VGltZXIoKSBvdmVycmlk
ZSB7IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQotCi0gICAgYm9vbCBtX3dhc0luc2Vy
dGVkQnlQYXJzZXI7Ci0gICAgYm9vbCBtX2hhdmVGaXJlZExvYWRFdmVudDsKLSAgICBib29sIG1f
bmVlZHNTaGFkb3dUcmVlUmVjcmVhdGlvbjsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTVkdEb2N1bWVudD4gbV9jYWNoZWREb2N1bWVudDsKKyAgICBib29sIG1faGF2ZUZpcmVkTG9h
ZEV2ZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlIHsgdHJ1
ZSB9OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBtX2V4dGVy
bmFsRG9jdW1lbnQ7CiAgICAgVGltZXIgbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9zdmd0YWdzLmluIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3N2Z3RhZ3MuaW4KaW5kZXggZWZhNWY1MDk4OTgwY2UzMTJmODg0NjExMjM0NmU3ZWNlMjBmNTUy
ZS4uNmMzYzA0ZDg2YzA3YTMwMzQ1MTU5ZDI2ZTM3N2IzMjgzZTRkMjIxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2
Z3RhZ3MuaW4KQEAgLTkxLDcgKzkxLDcgQEAgdGV4dFBhdGgKIHRpdGxlCiB0cmVmIGludGVyZmFj
ZU5hbWU9U1ZHVFJlZkVsZW1lbnQKIHRzcGFuIGludGVyZmFjZU5hbWU9U1ZHVFNwYW5FbGVtZW50
Ci11c2UgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgordXNlCiB2aWV3CiAjaWYgRU5B
QkxFX1NWR19GT05UUwogdmtlcm4gaW50ZXJmYWNlTmFtZT1TVkdWS2VybkVsZW1lbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBhOWI4YmZiZWM5NDZkZjFiODUyNjQ5ZDkxM2M2Njg3OGVjOGEwODFiLi5kMTMxZGQ1N2NlMThj
ZDJkNTUwZDZkM2FjNjRlNjA3NjM3YjMyMDI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTUt
MDItMDkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFNWR1VzZUVs
ZW1lbnQgZm9sbG93LXVwIGltcHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgc29tZSB0ZXN0cyB0byBiZSByZWZlcmVuY2Ug
dGVzdHMgc2luY2UgdGhlIGNoYW5nZSBpbiBpbXBsZW1lbnRhdGlvbiBzbGlnaHRseSBjaGFuZ2Vk
CisgICAgICAgIHRoZSBiZWhhdmlvciwgYnV0IG5vdCBpbiBhIHdheSB0aGF0IG1hdHRlcnMuIE90
aGVyIHNpbWlsYXIgdXBkYXRlcy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IEV4cGVj
dCBhIHByb2dyZXNzaW9uIGluIGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtdXNlLTAyLnN2
Zy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNo
YWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVl
LWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gt
ZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW0tZGVwcmVj
YXRlZC9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1z
eW1ib2wtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11
bGF0b3Ivc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgt
c3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbW91
bnRhaW5saW9uL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13
aXRoLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJv
bC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLXBy
b3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisKKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy91c2UtYW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0LWV4cGVj
dGVkLnR4dDogVXBkYXRlZCB0byBleHBlY3QgdGhlIG5ldyBleHByZXNzaW9uCisgICAgICAgIG5h
bWUgZnJvbSB0aGUgbW9kaWZpZWQgdGVzdC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy91c2Ut
YW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0Lmh0bWw6IFRIZSBzdGF0ZSBvZiB0aGUgc2hhZG93IHJv
b3Qgbm93IGRlcGVuZHMgb24KKyAgICAgICAgbGF5b3V0LCBzbyBmb3JjZSBsYXlvdXQgYmVmb3Jl
IGluc3BlY3RpbmcgaXQuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNo
YWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQueGh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRo
LXN5bWJvbC54aHRtbDogTWFkZSB0aGlzIG5vIGxvbmdlciBiZSBhCisgICAgICAgIHJlcGFpbnQg
dGVzdC4gTm90IHN1cmUgd2h5IHdlIGFyZSB1c2luZyB0aG9zZSBpbiBzbyBtYW55IGNhc2VzLiBB
bHNvIG1hZGUgaXQgYmUgYSByZWZlcmVuY2UgdGVzdC4KKworICAgICAgICAqIHN2Zy9jdXN0b20v
dXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMTUtMDItMDkgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhZGQgbmV3IGJhc2Vs
aW5lIHNpbmNlIHIxNzk3OTYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZDMwNWZmYjU1MGNhZTgw
OWU1MWRiM2Q1MWY3MzhmYTk4YjNjNzczLi5jODMxYzAzMzg4OGZkZjhkNTFlNjM2NGUzNzExNWQx
ZDc4YzQ0YmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM5OSw3ICszOTksNiBAQCB3ZWJraXQu
b3JnL2IvMTM5MTU1IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtdGV4dFBhdGgtMDIuc3Zn
IFsgSW1hZ2VPbmx5RmFpbAogd2Via2l0Lm9yZy9iLzEzOTE1NSBpbXBvcnRlZC9tb3ppbGxhL3N2
Zy9keW5hbWljLXRleHRQYXRoLTAzLnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzEzOTE1NSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9keW5hbWljLXBhdHRlcm4tMDEuc3ZnIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM5MTU1IGltcG9ydGVkL21vemlsbGEv
c3ZnL2R5bmFtaWMtdXNlLTAxLnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
LzEzOTE1NSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9keW5hbWljLXVzZS0wMi5zdmcgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzkxNTUgaW1wb3J0ZWQvbW96aWxsYS9zdmcvZHlu
YW1pYy11c2UtMDMuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM5MTU1
IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtdXNlLTA3LnN2ZyBbIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzEzOTE4MyBpbXBvcnRlZC9tb3ppbGxhL3N2Zy90ZXh0L3BzZXVk
by1maXJzdC1sZXR0ZXIuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJl
ZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1z
eW1ib2wtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjQwYzA3
YWZhZTc3MWM1NTU3MzQyOWVhZDQzZTg0ODM1MzdhYjg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDEzNDkyCnpjbWVIdWRvPE1oK3FRT0Y/VDIwM1pIRlQ0VTZDQTFXa3slOU4pYVdE
XkdLcWNoSCk2b3NselRtZ2RgK2tOME1fNgp6Nkp3WXVJWWduSCMkZ3h7YXZGdiglJFJ4Wlk1KDVD
dikoYDdjZGQ3PVhZRnJtNGF2OyteU005d2Vjamh9LVFTYHYKelNmMUc7QXVrfiZDYnMzUSoocXg9
djVtaXBpVHo7eigrfV95OEVLaClATVY5bnNlU08zWWdlIU0xY21zQ0FyMms3CnpkaWIhJUs/OCUh
OSo2WldBSkZ3Yzk2b2E3dmJ6VzMlSEBPYmJAUlpoNXFRJWtjaz9yKyNEdDxoZjdSd0RpaSFPdQp6
Y0p8Wj5vM0pPZGdXKTc7TSFKcSolSmRJfjdrOSpOPyR6N2ttWmwlLSt3PistY007PXlzOTdXTm17
QHhgaDBnUDMKejZNazUxJCV5KGpaU056TzgrVyF7R3VfX0w9cVk5P0FESkJKcSgwa29rSGNGfShX
KStKJVVkayElcS0zP0s4SWhNCnolPjZ9Nz9ESmthZHl8LTBqc0s2RFZtRHNAS1laIW47UmdFcWBg
ZytxVUF8d3ZuQFcpaTNKT2s2UEVuX19OPXB4Ugp6PkU2REZwMTwyNVhgITA5V3lfV212T0RWOFoy
I1F9eWA0QGlleVFFdi1EPVRzeTleJGolVz1nZHg8NmY+I19Ye3IKej89OTxfWD15cDluc18kMXZt
cXVUUlhwSXVDOG4jS0sqQ055XlNMTG5efnpye0R8eTNQP1NDIV8pWEV0bUBANXxoCno0Oyh2b09p
eGVHX01FaDdwWVFWOCh6SzZ7UHAoeGFrK093MlhhU2R7cklIQnwmb1p9bmJkMkU2ZTslWV9TQF59
KQp6M3pDQGA4T0JfJD9CU1ZWQk51MDl7UVU1bituYzN8b2hmQj1jbTZ6YkBaaUElMlZPRllaMmFH
O3M7VWFVPChlRWgKemEpZUFLRD9ZUW1hXj1kTkokdj85V2lZMkpXSVVNSjN3dnl6K0dWUnYmQ015
eCVSa1B7akwlWF9ZaTthKUshMV9xCnpBb2YoeF4hXj5YY01fZG1tWVlBayhGS3ohUVRGOHQtfkd8
ISQ1WWVPM2QraD54dCo9OHR0dSFLfDFxSCpTd2J0egp6e1Y2Z3M2NT91XlgtcFhaa1A3Iyl1KEU+
aCpTPDYtUDZrSn55TmBVRT4/fj0rPUFrUC1mQnNDUChRYSUwcDRqfjQKelNoKCY/OW1NO0ArcFI7
THVVQF9TYilWJn5tJG47PjJ5NWBgeHBPb2crbSZWU3xFP3s9RDl2SiV6N0swfmtucnY2CnpyKjt6
fC1wazkmM2pIJH5tNzxVKkw5Vlc/Q0NtLWdSPGVqWjlFO30pcCk3Vj5rWHpEfjlLTWlTUmpiV1Ul
STZiTwp6akJNe0hlI1ApP2o7fVVBQGJTRm0qI2NOT3IlP2duJilsSjtxKWo5PUdpR3FLaEB+Vlcm
KSUtQ1ZBdXdpcDRqWGAKekFQfUQ1O31zMmlTUztaSyN9JCo9blZBX2pUV05sIyo8QTFGKFp7V3hJ
dytibVRVP3BRe21mPndlPWoxR05TNV5YCnpyfVJCU299JjJhQWBuPSg2Tiowfl9sNiFLP2w0UlZu
bUIjdGpQa0x0YE4yOGolQ0lAXktheHtZRHFwPnQ1YDJESAp6a2kmZWJHXklUK3VjcFJKY31hMlFU
c1BeRyl4WVBqPGRLPTVnQSM4RFNZWiFoaHI7Jj4jXj1ZPSZfbEpqNiglSn0KejlLQzwjRmA5fEQl
YFYkOHl9cldJU3pYejRDaGtqe3k2V35RM1dYOUM3M0hEWipWJm0hJjJWI2ZjbFkjc1VSPXpzCnp5
Q2I9QHY/T2tCQDhZN1VxJV8yMmBnKGc7MllqeVU/WH5CeHolZ1c+aU1LcHx7JVUhalRKKkBRRj1V
bVlwI3BOSwp6eDN7LVJuZEJVPilMMihuKlZXYXZ3aWE+YSR8ITg4V0FZblpRJlpsbWlQeGBQK2FX
Sk0xcl83I3RMYm1lUUhVYFYKelU2NiZQckdhMUdDQTc3KkJffTdWTUwqOUtVMDV2RUQmeUVyKCFp
dEMpRj47PSt8MH18bEhnZG48O3U1aiZwSWMkCnpmMTBUIz9vPzdAUGZhPHh4QHl+eGM2NCt3bmE9
Ny1RJlVzd21HPnBtZi14QTN4M0BQSWk9YygoOS1vekx1UWpIVgp6Y31sRFlUaSZCQipsRmpSZWAh
YUNuMlBLQ2lgdilVVXJuVmRVPjlOTTB8TnU/bklgUj88eHV7Vk9LMjZBZWFNZkMKenglOG8tcD5u
VkcjJX12NyY5O2hWejJvRGFCJEJZUEBpWUpmPFFqWGY7U0tfVXNIfmB2SHZOPmE9THtlU1IyYXRU
CnpOT1Y/PW9ETmEySSlTRkdkZnQmRk5RNT80LTV6Vkt0PWY+N21eZUs+JjU/KDlyPStDN3g4QGxK
YEFrbDFZLXwtTAp6SjNCa2lNbUAzbEx3a0V1d3tgSllnRSFpaGEoUFJjPGheX00+WG9rKWVaTUds
dWt0P2JUQ3t+fiZgZldzaz43LVMKejU7cGQybiN8JlJWXlI9Z1ZmfClRIUUkeHVrYzxVU0xxcD5U
K3gtWjtVcChwM1hxfXwtRlFIaGhNKkY8MipIVE5TCnp6c2x6N0ZVQyVWYjtoPCNENDs/OSkjQnBm
QGZEeHoqUk98JHpKZ1F1O34qQGYxYihMNHlTJSYlMnpUZXM5bHJZdQp6eyR0MVMwYCF4Tz5HNi0h
KHJ9eStRLX5MWXEle3BPWUJFRiMkfUs2OzV4bkdnbWt7QS02TkplQ0dwdXpzYzZONXcKeiRqQXV4
NG49cS1VVEorQUM5Sk5oK1I+QihYPzY0Rk8+V21yeCo9QXtDP1ooRVV4ajM3aWRWKmxndmM7aGlU
a1lOCno8Pmo/cVl4RTVhUnZZOXtyIUdFaF9FPWs2XkI8fVNwWUFEb15YM2c/PzFTXl8jNDkmTkEz
S1hDODN2QT12YSlKIwp6WTswVmRYd08hUTA0TX5NMWtmNCReZUdWRHZSTyokKVd0NDFDPFgleWV7
RjdWdUNBXndwey01ejZnZ2QjRWBsSHcKejdla0hNczMpMjJqYmAqUm5LZntAPXhVN1F7PnJtK0BK
YUJWTHRicj0qYmsybHhReH5YTmpPc0o5NCpGNmV4dUN9Cno0JkR9TiFAdCRqKCpxa3wpcjFFQHdr
TWUzbSU1UTh7OzBDRDM5Kkp1Szd2NTNNNElwfjJMK1dnNj99SFNWZGhzPgp6Ul89cU9LXzJSfCRK
ajx7PkshYE4zMSFzViVOPEtXNW0oMWpJTGhYLUwjMD1tSmlXWm8lJkpjdjlvOHQ2aUhRbGwKends
PmBmPEsjMnxyXkRyalFEa0sxP3J+Vj1hayVEOTY9WDgzUjdWZzhgI2dIK1AhTkZOaD5ZIVE4MiVH
aCtPKmsyCnpIfFpSP3FUKStfJlN7K1ktfSR4Nmd2Zjc8UmdqZEY0RSZJdW5GLWgqbyVRMUIpODct
IVlRaXxYd1J3PGJLaUZicAp6UGQ9OEJZPUpCelM1YDdRcnNaK1NXMyFCMkt8Z2pEZT8rXjZgfEgh
R3BIYm08QzJOeSolekdHflo+YT4mPF4pTWoKelIjcWF9O2JSSEpvbW14Xz9kQnJodSNNRkRLQW1m
ZmBDYFY3SCVMTlYzWmJwMzk9LTZvI1h9Y2UhKWVTaFBsM2p6CnpZaDxLb2BVeSZVdj8tcD44PVFt
T198fXI3MGlZcWkmd2NiWWFpbChLZTArUmBNV1Z3cDEmPCtaN1E7P01yLXtaZwp6KVNAP1MrQkNB
MFFkQmhpQUB4dzhsMXsqNk0tRWB7XlhDOV4jb1BreHF2QDc4KV8jNnwlN2t5OTspJm1+QV5YM2wK
ejVZMU4pUD1McCMmYl9Mdmd0QTZhRmdlaXIoXmAlMy0xJEspdEpPbW4mWHUkPmgqZFZtS1dnPEhK
PHtrangtai1XCnpNRiRtRTNHalg5WG5MRTZGNFJNX01fRXx4RHFWSmU8XjJhfmh0cGJAbXpIVypo
SCF6NGp+X29pX3B7Iz8kIyYkJgp6e2BGV2k8P2F+YmRFTEp6WStOb2olS0B8bkEwNiFKU3glcUJQ
WlUpU01VMktHXmJpT1pWUHowODZnSykrJTdvZTkKekA5NkJUeHpneChgYXREIUxxa0opZE9DQzhS
VkB8ZGB9PD4/dkkrX2NhJnNxbUVUUTFfPig+aGw3KXFVYWpgZHY0CnpxTlRhSElVMD93QHA3cE5K
SUg5ZWQtcEQ2SlFPb1ZMdyN1SEN8eGNkTjc+WkhVYCpKaG9YWio2UyQ8cWcoSWotbgp6OWA5IWQ1
TEpgNjUqKmR4bnVoZVp6ZGlFPEc8Vkw0VFZlbVB6UGBSUCN7ekRVVXspV3cwcG45aEZyM2gjZHZE
QS0Kem5mNztyQz5sam5jJGZIMHk0Wk8zbSpsTURgcEp2a1JZRjxQWmt6UGE4aWxufXhsWWFPaFhZ
PFF3IU9JJFlpWF5YCnpsQTtXTzIrYnYwOFNsNDhvO2N8MT1WeUJIQSlSVl5RSlZDJEhJTSV8ZjNY
e0pAZSN9S2RGTGN4aUNWTyp0U28+VAp6QiR1Nj9VNiRJcDlCWGx9QTlZaGRLdSN6Tjx8RS1xcG91
Z010VT0wJU4pTz03PldNeVFybXZpUDtSfCNqZmVMITgKeiU/a1Jmd3poVjBRSVZGV3JaajNkcXBR
b05fLXFuT3xJbmZHXjc2ISgzNGopX182JFgzV21hRWJ2Kk99Q0RTbGdmCnp5QnZQZUVWb2xkcj5D
SCVhcGIlX3trYURaOylEJGltSDZaQVl6ejVpLUwlZ3htYmApO3JoZGBaPHpsem9zZiN2OQp6cSNW
TUt7ZkQkRVdFWiluYlpYZkZnXkN2KEpSei15I1BEe01nJU8/WT9WK2NRTiQ4fG54S2N4QkU5dlhB
Zk59QSMKekA+P3A7dG47ZSFSRmFyRzdzbmIyTD9TSkBNUThFYCopaXQhO2dad2p4Z1Jie3lIb3t5
RV5qeEVgRV9WeVdUZDV+CnoxK2IkemFvQHptZ3RAQiVFcUIpMGVCOypaYzcrI34kPXxBemhxYHJW
USshREdVOHV9RGJLLTk0biMhcjRHbzVmKwp6Z1BNSyEwQ3JuPUdwO31sTHhPe0NUczwjY3kyTSRA
eTU7XmFSP0BWTWJHdnY8e0BVWChueG1zKk9UJE9WQXRyZzQKemI/UFNpLVk+Yklebld7WkAhT2x0
JTNycW83dnwrbj05O1dlQjJrMnAoWipRWjNZKU9keWlaRkBFN3ZqfD5LaFZnCnpwWEhNcyVGNk1p
eF4lTz5aSjh6fTJNej40RWttZHw5TF5qYCRaSUl6alZjUiFobFlxaV9BbmAlUWhjcXU1c2c8Kwp6
MGxOQ2U3b0tTUmkraE9yK2NSWFp1NUZxbGp5Smw3VGI7LStoKHAmZloyano7ZV8/ZS09aE5JK0Ut
eV4rMzlUOUQKentGUDcyPlgyfGE+VG53QiNPSkhKc25CaD5kXmdUTHlVJTRrNC1Cc35CYkE7bF8t
SURtKTtDKlImUUQmT3tRQzc4CnpGY2w+d3BlWiVNbGgpRnZ3e1BFV2hgYil0LUkzckpEdU8/YTZo
Z052cWw0PUJkPnUwemszSnBuU2BeQk9AJHN6YQp6dDJNYmhYXm1FdUJjNUhmXzh4IUlkcmhed1Ry
VHRpSk4jNG9WXj9LJWVmdTZqQWwyPmJ7VHdjNV5vSmhkdU96d2EKekswWEJweygjUVREMGFhSypI
PDZ9RUk/eUArRzdERXVjIWU0fDdkJCtrZj19JiNCXyo4O1BzVnpnQGxBOzt1cD5lCnojeFNMREwy
dTRucFlnaXJzJEhDTzdGTHxaK0pWfCVSI3Z0aF4oYS0/MWs1NVZtMThnfEYlaHhjLV88YHJ1Y19J
RQp6Nyo9NnZXPjBZJlhZK0N7dERMRD5tZyU7PmV3cD0xQyp3Q3ZXUnRmO2dZaktXVjttNXg/USN+
Qkl2a01lP2dBdFoKemhlSG9taHNeZXFgNnw5Pkd9Mk59MT41TXBJZ2o2Tz8jfGxVUUIjfHJMKTsh
ITU2dGd3V01vPWVUOFJ0dzYpXkNMCnp3KUVobWljTjc2LWppbkNufDJLcStFWnBrMW0keDZRQmZ9
TDhrNEg+TnBUOCR2SzlFciFmZVJobEt4aUFNd2R9egp6Pk9QKm09WlM7UiVUJV5VQl8kPD05UzZT
all0KlNYPi0+RDBZRE5qTGU8eXRLeW5fMENIWU5ed0U2XztMN1l9aTcKei1vMVBHO2UmOz1ERmd9
Tnh9QV9fS29afnlnIVMyaCVFZmtCIWc4TSVBUDhXLXFNeztieVJmRD5zZnh5Sz1pPXcpCnpkVTth
e1BAK3piaj9pciRsRWpBTGtPMTsxaURNdj5BY3ZGWTI5a1kzd2F5cFNpbjE2YFZCXk0oV1N2fUQ2
JEdaYwp6YWktKyZLLXY7Y3lnKCF+UlhHb2w+PX55UXpiaHl5OEhkakZhej5qcHE9JXEzbXpQN215
ZTEtKmlUWn5ST0FEcDwKenlhS0UjRSZULSolcDRkbilZckZ2JDtVdXFEa2I/RzJaZUQ1YiY2ZHdp
WCtGNUN1dUMqcDhLSXhRY245clRVJD9lCnpjYUMqbCZfbzsxeSQ+SGcpTCR2MyQ4YDxlMDFfRFVw
NV8qMCVNT1dNXnk8RCZjam0xYT9kdkw9ZX58Z3Byd3lMbQp6ZHtMUHs7UTJQIVFiU2N6UWQhVFM8
UDVRRj5FTjJiYzdUQVJRbUh7SktrbkdNYkNTKURKODU0V0Y1fipeZGkmfVcKemBRb3hBeUVIRV5Q
YXFKJEQ/fGpVbURfYWdxSTdKMHl3c0wwZSpYU1lTTj4/VU4lKEB0XzNRZy10fGljVktmakZ4CnpX
JT11YHplNFB3KlJJbGN3fFNPfWxEb1diMkFDTz80OFZPWVMwTk5NYmJyNzF3UUtydE82LVExbT4z
amNzVCg+Tgp6VClfVEQ0eEwtMnt7ZUpmZSVDSmlAPVBDPiVMUi1GekpLIU1UVG1MelNKMkMjI3lv
VCNuOXR6cjJ4NUcwRChjaW8KelNLY0shb09ubkomUGM8JWNWQGQyLWcpVDRwPyNnNWIrTmJLMG1A
IWtTQDw8Tzl2WlVoekl+ZkZaeXFmdzEjU2oxCnp4dVQqQUAqYWRpTWE0SHpufCp6S212U3g3VFVi
YUoxX2xLTTFxMX1aNHBTfGxYKjhIVClVcjNqfE0yM2tidHRpPgp6STdLUStEMWU8Y0g4bW1hPn0y
S1NwYWMlVlolUEloc08hYFdgJj1wfUxuOChYJS1nfVRRTVdDLTRCVmc2PSVKZW0KellzYl9Gb3J+
KVMxXk15Z2dfYD5pUDJoQVJhekFnfjNQNXhpZms2QkZnSnVwRSNyOW9BTnklSjhqOWp6RjBfK2lY
CnpxIXU7YChkaG9nX3hrbF83dElIanh1ZVExKng9d1ZiNmFLMzYofDI1bFhXZDNCNyNVSDFfcDlL
SjlsPD1Ed0ZzZQp6a1NnMXdQQnFzbCRqZXN+Yyp7Xy1qIXNVYXRoZSFUYW98MlF6Qzg7M14xeSpA
Yk1BfjFsKEs+WEhEYndJUCN1a0oKem9TZEEqQElzbjUpI0p7ZyhRfmpfUjgzZVo7MGR9Q0ZvPGFl
eXdGUUd3TTd4LTs0bkVve1hUdW4qfTxWJVhEfWZsCnpWTUd7THBqS0pRJkleWT9YJjRscTIpJF8h
Q2tXY24zMD5SR1dJbk1fbTZNWSpKYkR5XlJlNW9NbHN4bVV6VyZyJAp6T0ZSMVk9aGtUUHRDQDds
TlVKQENBIy07PnNgKXg4RnRGNXtIPTM1ek1lfntIdjQxYWNMVkBLRmJ6JF5wNmxQWTEKek5+eCVA
M0k3WTR5VG8hfEBLRzFjVD03ZFE1VXNFWlhPY05sWjZiYUtRbVpyOTNJekhTNS13KU1UfFo+WDF8
JHJWCnokXjgyRER8QXBQO3s1STRxcVM2TzhtczAoTmZhdzF0Pm9OTCFpMGk0WEVIWik2WTNoaUc3
WmpiVlJ0OStGVzVLUwp6QmNSMCVoY2hHXkJpVDktRio7YEtUK0tjPlA1eDJ8c2k+cXhseFdjbThQ
cUhfU0dBa2wyJEJmazlAcj45MV4jajAKel85KiNqd34hRHJqYl5NKGNJPmdnIVclWDVFYmp2V2I3
UTZZMTM5IUxjN05DanR0fWMjOTc1clgxPEI+d0ZMOyY4CnpXPUlxYDBVZ3JuZCF3U1BXVVhLNGUj
XjdUdWt5cEcqSEUhQCtGRHUtTlNjbjBqJktacVczYD4raWc5VCR5a2VsRAp6QERrY1paTExlVnh6
Z3oockkrRGo9WnhOSVooRENLJndeeS1sI0VHckI9am87Z3E2RG9fUjBBY0o0VSFydXcpQ0sKemo5
d2pXOyFqNmVyS0dofXl7dzs2Un1lOTI3aS0jKzJkRitzak1CUiQmfiFlMmVuczRScEpzeXRYfDE1
MV8rISRECno2N0c+dCFZM3VKM1h1IW5ub2pNJF8qdV5jYzx+cDUxJn4mQjRLTlp+K3VKOGx2V2Bl
M2t7Xj0wUF8xNTUqb2E4eAp6NUFSPE1gaTg7eTYkaSR1QjtuRCE2TWlCLUoqeT5JKnE7RVQ+Yzl4
az42MVdqR0dvWlRPbFA3ITZMSiUoMm5TNXIKejgpZDVIXnFqZU1gKXRsVVNQMms0O3pEQlBzZiFn
Zm5nQyFOeEZ5PFpJPV4tVWBBNkVAN3YxaDY7antjPnBMbXdnCnpBWV43cVVZTmhwZ3xaPE1wJl4/
PmNyJWAjITtwelVqI2krYWt+Z1AlYFohb31fU0c0Q2F7SCtjSDZMeWZVZXloYAp6UCMtS0ZGRSpN
Q3VLdUVWNXdsaEVVQTlVWkAoRSNhcUpWS1c+QyZJNVkjYTNAYUpZaHgwPj1SI1hMS31MODkpRSMK
enYoZmZsJWcraTVlMWUwNnAmR2x4RXVEUXNMemV+WEpRTXpCc25Qd3FYfDE4YiFPfkEreyMtWmNE
aWJES0BIUzlhCnptKUx7MEY7QTFuV2otS0Y1PkZiSz9xfnMmZ1RpQzxeZ0wreGZXVDlsPmd5UVMh
b3lkRz0/fU1SMi00ZjhTRlQwNAp6RG49cmdTcjR1WUwjRDx6I0MkJUlRUXxzekx0SmVCeWlJMyFQ
dm58Q0A5bENsZihYYkFkQitYXld2cGdvRnQyZEEKemsoNW9QQWpRK3k4PCZpVktYWUg1VUtKN29g
Z310cEI5NzkyfExtaGYre0ZCU1A8ZCVBQ2VzVktuanUmNkYjbDVFCnppNmd7PD0qMENyOytDSEpg
ZyRsVjAyJVE3bmk/Q1Ezb2lUa1hrZ3oqTChjJGI0fCl5NmdTczBII1ZoZyVSSjtVTgp6QkxFUD1e
SDQhNmh3TGEyZiU0OXMySF5gfDNjYFFYQ0dLN2EyXiV4Iz17bj0yREAqWmo2akRLbzlYTjB5S3lL
IU4Kei0lcXtrRFVfKk90cVQlJUdqUTg0VXB5I1YkVz5MYEAzeUNzR1g8an1xKVN6R0sqTV9hXmVL
MGxzV1BWKnt6NHJ+CnpOdFQ9RzJJOzt1JjRCbn1sN3o4KDJNPTw5dWZoYFpoVyEmdTNVQjNBeCMx
PUFJbiFFZ1BsaXArPn19KVJ7X1EkKQp6NX0kM195ZzdIRjl7VzVsPnNuWUNjWEBVSVM+ajU3LTFC
RXZ7YkYpQip3MWZ2ZylVcU5hQXJrSjdmbXh0bnBPQDEKens5Pl55PEU/MzlwNy1De281Sl4+dmRA
P1pgSE16X0x5SXtlI2dBa1ZndnN8emkzcmR1SlJYaygmV0s2R0gjT2xBCnptNFIpcWNzZkRkOyVR
P3RnfXZhOEdUJi1NSCg9NH5nMU90a2olbkRycCNkfn55Pl5aOz1kJnRTeiNNYVFlVGZ1Vgp6I20h
UWxgWmwwampKU3lsdUZyNGY+NjFob14zaUV+NWNAXk9XKWRMQFpMQVdfNTtXKSNlPDNBVz8lZ2gy
Jj1GZW0KeiVLJGZNaSoxSVN1SyYkTmchVjFjZDxXeTkyZ2IoNUhBWmRfY3tGUyQxdys0VF52dzIm
QT1XPVFfIzFmNUI5RiZzCnpASWM4VWJoRXY1YThOYDljKDNjUmgjQHNJZ1RGVHRGNH5Bfkw5ZGh2
ZV9rY0MlR3VSKnNKfW0tN3kwU2FDdHAzPgp6PmNVdGAmeTlTU3AoWl9PeGNpQlBiTU5PSTRTND0l
Pzt0anJOYm94SmtPSG8oJjFoWlM5fEdZZlJMQ3A9emlPejgKenYpPUV2dzdpXlFnblA5eCtkbj1y
MFowPEdgNmUqOShjSCZxS2ZmXj00YTVfLT9pVG8rYTREflVKJWpVaHppO2FkCnpwMmxMazMyQ3R2
cCluJWBzK2x2fW1pRzl1d3NZMENfUz4tSUx4JkNsYihHVX5lbThpKkQ+TzZ8JE9qbWo/LUtSXgp6
KztnUFZ7O05rQm02QDlBO05URllFVSVvb2NXUUY3ZDNfdTl5WkArOGkrM2kxR1czZWNSOWUqOThG
UzBPNXYzTW4KeldtbSR5OClrbFlPN0k+UF4yUmVTJDM1RzYkPkJvZDteSEVoYih+SWJwYnA/b2Zo
IXJMajNZbD4wbyZxI2MkPzgjCnoqRGhiYTQydk5VWUQtSHc7UEp7Mz9aSmlwI3BJMF5hclplczlu
aDZaSDU2V0xrWXg3dXshOTZWRjQpa1o9bSklXgp6Q3F3PiNfV2B1eTt8JW4wWGomR2tvZ1k2UUlE
RUtrYTQ9b3Q9Pndybk5IJXoxPEpDMzVKd19VMF8/dGt7TEtrOTYKenM/VXU+T257Xlk3UnhJckBW
S00jbEsjNmdTIUFfbjtRRylxcC09MGshaVA0OzV9T2xSdSY+WU57aVZ7Tkt2X25OCnpTOSppVE1X
PlVsVCotIWhTNitULVdvNl9wcSFUYntrb0J6bE0lcClrPkZ+WEJyQXJGSjQ4KjxuR2Ure2xmYTQl
Jgp6O0B4MiZ7YGtVSkk7enxIeyReR051QmZBYCsqVHY8P1dOXnlZflYoNCg+S2s3Szt2TzJ7UCR9
a0YxeFdGaFAyeUUKekBXdWNWaXxzKXZqT3RiY0xFZnk0emQkKD1Tckg5KWY/byNeIWM0bjNJZjA9
PldQcjhYKj9Hdm9VPyhhRTJPPFM5CnpEb2t6LWo3dTRrPEZTWnVVKHFEcUstOTFNZklSXnY4cCkq
X2gwUERNMmRQa0U/NXwmfExaKjlRIWpoJXQ0T0lgKwp6OFU2fCY8bC1fWTYyNCMmaEp9REJGWnla
ZkF1c3JaZz9KQ0pfSl9lQDZLREtIR0g9WkNLKlN7Wm9TYkxWenUzejgKekNnO20yQjt+aHs9PSNI
bCZDYj5Xanw3NFNPNTJ9Qk9WX0JBZUB+QFEhbW5TUzFRXzheR21lRktlRWIqeXY9KiNPCno5VTM/
NWs0NWwzSy0rLS1HfUBeSz8rNHdgZlVWIX1JdCtGWktIQE08RGh5OHYta281VVYtMGVycypqVT58
OWBvcwp6e0t6cEc7VXo1dkUmNithMSg1dkUoX2ooKzxYdVlINylEKklJeGsrUHY0OUB9WShjKlRE
PDA0MTIxMjJ8ITlLZkgKeispKGc4NFBjVWdURlMwR3tOfkp1YFRrJHpTQHNgYXJsekk+JEFMenlM
KzNCTipQLTdOK0x2N2hfTHI4UFVLPT1pCnpudCVLaWNjK2Z7PTB9bn13aXBCM2ZgYTRDZT93TDJG
diZkNVFwPmlJRi13VjhGVXJCXytnem0rel5HeColelItbgp6Y1BCUDhZckBOY0VmRjkwUXMteWBl
U0pHZ1l2Wkt6QG1iZCgtPjZnYG4wfW1EO2liR1RLO2soVG9kbj13cXUkTTYKelJNS2NlcEZTbnY/
dFVgMkgkOGRzQj5xflpHaWVsXkQkO1UkeDZqZHFMXiF7ezlZXjZUT0VDS3RfOGhONztMY3k+CnpD
dUxQdXVBREpoeU5FQkkwOTZobzk7Un47QiRMJTxzfVpTcUVTUGopIUF3dDFVaWJDQXJ+SWNKPnVh
Y3cmb2xgMgp6aV8qWTZBK3R6PTJ+d1FnMH1fQGphPUFLayUqOWpPQHNJfnFYKTJIaGVFUVJCO1I0
ZC1yOS19Klp9Uz9BVURWWV4Kenh1TDZ8WFlhKTtHXzxTS0xAYkdoQyRWR2M3T0lQcTMtSkN4SCZ8
JmsjUExwUl9zNVNQQSg0VHZsUHY0NEZqYDhpCno1cGdCTVApKSghdVFOMEVxJnxiTzItVikqWkNs
MWooUlBXSjNNUzBxU1RVS3A1MXFvbXVvVUtVWCZ0cipNYDgrSwp6QVo7O3k/KHBIbUZtQXlFTHFR
M2JQQF5+N1lKWVB6PEBoVV5ldUN+VVlIKjt4LX50bUk9OEA5OzxlY3A2SnEkOGUKemhjWDY/X1pY
MzEjWE9GeDRoSEtKYUREI2xlITdaYDklYys3JVF5fVIlM2xISiRWOWw+RSpndWRDI2ZARCFyO21h
CnpnREhkWGZ7X1hlUjhHZkwpNzg9Nk1kcWtJckZ0UExFcVlQJXVQWFVQVlAqMHlPQHxRTlVgOWpj
MT4xck9AM0RhMQp6bVE5NlJDcFVwajYzTzVsY3FCQ0xORE5BX2tpdjBKcXs8QCU3eWJFNyZ9PEhA
eXJlKkwyaEkpbiRLc0Q4KDZ2aUYKenRCVnVEWH1WeH53dndmLT8tMX4hMEJVMHU8dEdWWjREZDxC
Iz16MUE9KFNXJDxtNj83UlNOYjRjTlJKWXY8N2dYCnpEY1BGOyNUczsoLUokJkFRRCZ4MlojUV9q
JW91MjQmPztgUm87UUhKakdwdTRSbVV7fEdPPjRvWGckZTQ9KTRyfQp6QykyO31CQGd2SlUtRGM5
clhqaG85bjd+fHk0cXBqdkdDeFdgT34+al5sdHliM0d4UD4wIzt8Zj5zP2w3PU9TYnoKekBPUmom
Rj5iayN5QzxrYlFuUFFHRksxSj1HeCpZX1BHZGRDOFdpLXMhSjY8eiRQZzltMEc9fDRoY091NHVt
T3AoCnpiK0wzZHYhKDl4dXg+JHkjRXVRd3BUTV5mRT9AcFYpZ3N4KVVOXk5TYmhjbEZjKEFlal9H
ZjlDbkkkPjVsTGB2egp6WUBEK2xDM04ye1lZUDVVfExTUkRsUzN7e0ljZDhyZUhsT0xPZmk9UiNS
Z3RFYmgqKlVveDNpSmlBayU4bygxP1oKei03clI0Y3QrYlUqRSRkTUlpTnBwMT9vJHtnRWp9MDU1
VSQzXmdlRGBCek55NWk9I3wrUXdzeCgrK1l0QHFfc3w8Cno/PVhEalBlOUZwaTtlZiNFckBfVlgz
UVBGNGVtJCVDRCU3czR8MyFsSjJ5MFcoS01MdHMpRFk8XntJRF41S1VrSgp6Smklb1RrN3BQfVB6
KDk8ZTZfSHsmZ0RXQGxFeTAhZl4xNlE4fHB8dDM8JmFUWWI1UX4ocGRjRygzJGArbEJaS1oKemBA
bm8/OW5gKkJ3NU8rTWJpNmI+PGZjbFIlYVRoSCVRWW4xXmtPZyFQfUhKXyFZOSlFODg4PDUrcVFn
SlI7Q05kCnpVfktHKTJkWGpmTTBvNEIjRXkpZkRrO3R8Y3ArZXohYFJjdUMjR0c+JmVjc3p2Q3o+
NG1tVkZ7VH4+Njx4MUNAIQp6ZEhMUVJvYn5jZ2NLOVJDI1Z5Y2w7Z0ImWW9XP35XVWl2ViY+WHA/
MVhXYCluMzEtcXY/dzdXN0wpS349N0FrKGsKeisqeWNnbTwpY2lJe2VuUDBsY0khTWFiPT9leksx
IXo5Um49RVV6WmtBWiZFTyVEWXw/MWhAZzFgUnNVM0RpMiU9Cno/KXl1NGFvYW9TNCRjfDA7TDN5
cyZaVEp0TyEzdnRXK1QpY0h0Rl5uNn5FaTgoMkgmNTkkcClaaipUaCQlUSFucgp6bWs2JXBxVlJ9
ejgmckxtQTtXclQ2K3FuJWk2a3dUWFBTbmVuTmc8KFBqLWtaNTJrVXo2QlkzeyQwQSZeKlpuRz4K
ejB8MHtZeGxKWjxDSmtQbXA1RGpDMURCP3syUClBZmtpWERvITBxcDJTKjthPjhmMXtSPmhHVnU5
P1JSdGRSP0JBCnpxb09wMSs0NnRianVNaUVJayM7S2RgZDBfbU84JCZlS0FYNnMya2wyXnNzN0Nk
SmBTRjdrayRvbDNsbm1IOTkmOQp6MVAoZU9CczJKWUFhZ2paR3BBMWpzYWhvRUEyMnF+dXV2VUU3
WCE4cjRoX1o4U3JnQjEwfkxWOXBMOCptSGlhWVEKenNRazktXjh1bCZ5UGZvIShjUF9STE9obWcw
bmM2VmZkaiV8eHwhcXZSO2FvOGR1Ul59UWQlJU90RCNUfjFsUHw+CnpufkhBTHs9Q0krMEc/Tz8q
b0RkRjJ1V1U5bkkxR0BgNmUpaTV2SGpnVD5iPn1VQjF3I01wfmBPPyZkdlNmaml9RAp6S29mckpF
ZnBETTxQPEU4VFk9O3wqans7a0ctJXVjc0FySz08dkFqKklQaGxGc29qPTtMU2otMHo3PkVsUCRq
YEkKejx1SkpnSitPSTh1eCV6YFMrcGB4NSYqVHVsNEk0Y2FgaCU4YkAhV1k/dE4hVi1EZGh9ZXRz
VjJoK3Zrd0tEYFhSCno5Kyl6R2lzJVVpczYlYG5AeT08eFMtMCt+YH54eks3cy1BeTl5b1VQSWpP
NGhmUGt4V1VveWEwViNQSVBOYFViTQp6PT9Gand3RzNWfSM5RC14Sz9yVj9AK1JZPk4yfC1xN0gl
dV5lX09mSzM7Nn58amlRRVg2XmtaTGEyfiomMEVPZFgKelY7aGlERV81UW4qTFA7Qnk4emYzSF4/
Nj5EbVMtYjc/WnQ2VF9LWGRCeERIJUU1M1I+ODAtT2docHdxM0FrUENXCnpmckVxKko3Z2Z4V0gy
cVEodk5+YEh4Q2pZSXRQciZfaW00WiE4bEE1Ozc5P3UwV057XyNUJjFeJGppRzl5ZDM7SAp6c0No
Q3UxWmJrMG47V3ByNERtUWMhJSg0TTlxM0piZTAmbyEwVmFSSW18PFJkNDR5WkV1QyF7aGtMYzJy
SEg+JkcKeks2byRkOFYwaWY4Vyl9d2h9ViZaU3QoNGB0b0Nqbj4pKTJvKCtUZlpMNn48KHBJMSQ2
U2ZZXjB3aWc7OTU1YjR6Cno5NkFuYEkyZU5fMGA0ZXV6ejFqQGhhcCUyIzFHJlFjemJ6eTVHWUZF
M2xMNX5CY05qTmoxbE56PW9jSkc1ZDVjNAp6cEJAcHlZIUwpd2YqSClsITJLbnk8JnhBaHlyOUU/
RVJ+Y0UxTiQzejJLVSVTLUJocHc5cEwjT3B3UTVmO2xQZz8KejhjSUdrZitJVjh4UG40KTBRTUh9
QEVSVX1PcWw3LXlhdnBrcUhUNWx7MXojeHJweiU9PEYmUTVzVFE3NE5oYE9ZCnpZalQ/dyNpYC09
ckZJfjs1Tk5wTyFQeCp8NEgrKVkqVlNmX2I4PlFraUd+P0tIYkhUfmpsS1Ete1h6S35TV3tIJAp6
dVpEdmxmUjktP29zcEpTdSt8OUomTnUlSEJveGYyITA+fWRmc1BzKHQjZ2BgbD9eYV42VS1qXl81
enMhR1RXWVIKeiRtczhmcilZQVlLWm5VR2doRiFEO21Uc0RJRlp+NzFIUHpYQCtVOyQhNmdwMyEy
V3BYeUNmMitTUlVwQiM2WnhmCno2PUFePTVAakNVdm1yUUgoalRAKDlwTHZOaSs2MnglODRgciVO
a0BPOzEmSkRgYzxlblNnU3pzKz8keTRLSHVGNQp6WVdnM21BPlhKfXJ2cTdWTFUzYntFMVplZWdA
cHdYI0FPUWs2T29uQ1lTSFlXU31Ic2tmWU50KCs0dXlpPShgVj8KelBMSmt9dEhGNT1fY3ZGaXBG
ZStvbTlAOHIhR0p9QCVHN3xKKnk7KE54MlVyZjN+JXNUSEhAPT44SktxYStnJkt6Cnp2VmtocE1K
bWVwQnxFQz9zb1EyWVQ7OzxmNV5JM1hrZH1+TjsrZTtCPlR+P2Ngam94TUpfe2luIV5oczxNPGop
Mwp6MWtIZkl5fkRWb3ZCeGdpaihVI1V7X1F+U2BVU00+MnJINUo/YjhgPzluak9XZSVoaClYUm9z
cUQ5Jjt0VGhoK3UKek05WT1zLW5GJHlqKldGJHlRdClqODBCNGNRcERyZkNFdSVsVGhiNDkoeHhh
cCN9c2NlZWJSOXFDWCUzZHBwZD0hCno+M281dm1leDhMaS1Laz1WaDIyYGZhd1hfO1l1JTZUZk95
YD9QLThRVXpZWXdla3I0e3gkeEZUSD1Qc3dyKTA/Ugp6XnxodGlwXm9KdjJhWChCZj0zJCFKaH45
fi03ZmB1ZCNFI007V1l4ODZsbnl7ZVNwJmRiYm5KZyZBdD5TQH1FOWsKeiNMdkNDMFolXnduSFJv
UTc5MD87MT4xWVYldFpIX2RgV2ReVzd6S3lQZ0MpMjBEKjhVZUJse0BHM3txSDR7OEFnCnojKmZm
NU1VbzdqMDY+NGZgWU8rNjNUQzQpWEhQS0cpWHsxM3heRHVrcVVCOGY0YVZ1REpAJXp6VmBGR0dl
fjBrWgp6djxqKFdSfGE/KWAwdExHPSk+YXg4eFp1b2ZDdWRSN1Q+K2clJWRTdyh9ZHNIakI3eWtm
bCklWHp7eHxkSCNTdm8KekVReCZsZ1JHYnN4bk4xeFIhcSEkdWlGTihBNjVTXlVYcnl9cT1YWWYw
Vn0wJT55Mz9UQG00MTUpb0VoJEVhMVEoCnojRCVRKS1yXzcocz9jWDsrVyZgPT57QkR0e3VeRWtO
MlB4a0pNSVNTX34rJUg4MnBuNXwxSGE0UWJQRU9NLU4zZwp6OGdpRy1fO2RBKSE1Pnt1ZFRJPE9q
cnthYSZpfEExfDFFUj1wTnt0TGhDWD50X3tnbEwmfnNqXmoyRDZzNldpKnYKemRWQFMydzJnYXVI
RDFXQWJeP08lV2NRQ15LV1R+dipUZ3xURnxue0J7YWZOPCthQUYlQFNtNHxWKHxZZjR8O2BDCmFQ
b0NpU2RneU9RIX5aQX1KOE5vcnNgd0FMVG1LMVd1MDJ9LQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNv
bnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJv
bC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4OGM3MTQ3MjU3
ZWU1NDFkMGE3Yjc3YmM4MzMxZGEwN2ZiODQ4OWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20v
cmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDQ3NgotICBSZW5kZXJCbG9jayB7aHRtbH0gYXQgKDAsMCkgc2l6ZSA4MDB4NDc2
Ci0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsMTYpIHNpemUgNzg0eDQ1MgotICAgICAgUmVu
ZGVyQmxvY2sge3B9IGF0ICgwLDApIHNpemUgNzg0eDM0Ci0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDcyOXgzNAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDcyOTogIlRoZSBzdmcgYXJlYSBjb250YWluZWQgaW4gdGhlIGRpdiBlbGVtZW50IChyZWQg
Ym94KSwgc2hvdWxkIGZpbGwgb3V0IHRoZSB3aG9sZSBhcmVhICh0d28gZ3JlZW4gcmVjdGFuZ2xl
cywgZmlyc3Q6ICgwLDApLSIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxNykgd2lkdGggNjcw
OiAiKDUwJSw1MCUpLCBzZWNvbmQ6ICg1MCUsNTAlKS0oMTAwJSwxMDAlKSksIGVzcGVjaWFsbHkg
YWZ0ZXIgcmVzaXppbmcgdGhlIGNvbnRlbnQgYm94IHRvIGEgZGlmZmVyZW50IHNpemUiCi0gICAg
ICBSZW5kZXJCbG9jayB7ZGl2fSBhdCAoMCw1MCkgc2l6ZSA0MDJ4NDAyIFtib3JkZXI6ICgxcHgg
c29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDksNjcpIHNp
emUgNDAweDQwMAotICAgICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQg
KDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7c3lt
Ym9sfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0
fSBhdCAoOSw2Nykgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19
XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MC4wMF0gW2hlaWdodD0wLjAwXQotICAgICAgICAg
ICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw2Nykgc2l6ZSAxMDB4MTAwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEw
MC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9
IGF0ICg5LDY3KSBzaXplIDQwMHg0MDAKLSAgICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyIHtzdmd9IGF0ICg5LDY3KSBzaXplIDQwMHg0MDAKLSAgICAgICAgICAgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDIwOSwyNjcpIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTEwMC4wMF0gW3k9MTAwLjAwXSBbd2lkdGg9MTAwLjAw
XSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQg
KDksNjcpIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1d
IFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRp
b24tY3Jhc2gtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0
b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjMTRiNjA1N2QyNzczYTRhZTk4NzI3MDgxMGI0OGZm
MTZhNDdhODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjg1OAp6Y21lQVNATj8o
b2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG19bk0K
ejxDSWhiMTUtMmU2aGtBIXF8YCklQj1lLXk8V3dgV01BSDtBIXtofD58RyRCbipwal42VF5SbUA7
RFd1JkNvP2NgCnp0QDNubjQ1XnMmX1MhKkMxX2dsdzJCclYhbz4lMitRVzVAZyk3RkBxcTJYTW1F
Q2EmXz4xSXwyMHBrYjsyRSRSdAp6WGRzTkhnd2IzdW5oUXBBIUR1Y1IlPnw+bVVeRXhkQl5QWXVX
PXZzVVlqV3smRTNoNVE7T1hrO3ZkJEA/Mj5eel4KQnpWIWVBCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbS1kZXByZWNhdGVkL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6
ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltLWRlcHJlY2F0ZWQvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXpl
ZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTEwMWI3MTk4MzhjMmZkYzYyMTQ0YTEzNWVmYTVmNDIyNmIx
YWM3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltLWRlcHJlY2F0ZWQvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1z
aXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NDgyCi0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg0ODIKLSAgICBSZW5k
ZXJCb2R5IHtib2R5fSBhdCAoOCwxNikgc2l6ZSA3ODR4NDU4Ci0gICAgICBSZW5kZXJCbG9jayB7
cH0gYXQgKDAsMCkgc2l6ZSA3ODR4NDAKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzQ2eDM5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzQ2OiAi
VGhlIHN2ZyBhcmVhIGNvbnRhaW5lZCBpbiB0aGUgZGl2IGVsZW1lbnQgKHJlZCBib3gpLCBzaG91
bGQgZmlsbCBvdXQgdGhlIHdob2xlIGFyZWEgKHR3byBncmVlbiByZWN0YW5nbGVzLCBmaXJzdDog
KDAsMCktIgotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIwKSB3aWR0aCA2ODY6ICIoNTAlLDUw
JSksIHNlY29uZDogKDUwJSw1MCUpLSgxMDAlLDEwMCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNp
emluZyB0aGUgY29udGVudCBib3ggdG8gYSBkaWZmZXJlbnQgc2l6ZSIKLSAgICAgIFJlbmRlckJs
b2NrIHtkaXZ9IGF0ICgwLDU2KSBzaXplIDQwMng0MDIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYw
MDAwKV0KLSAgICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOSw3Mykgc2l6ZSA0MDB4NDAw
Ci0gICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgw
LDApIHNpemUgMHgwCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDcz
KSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0wLjAwXSBbaGVpZ2h0PTAuMDBdCi0gICAgICAgICAgICAgIFJlbmRl
clNWR1JlY3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVp
Z2h0PTEwMC4wMF0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDksNzMp
IHNpemUgNDAweDQwMAotICAgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2
Z30gYXQgKDksNzMpIHNpemUgNDAweDQwMAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMjA5LDI3Mykgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW3g9MTAwLjAwXSBbeT0xMDAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9
MTAwLjAwXQotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw3Mykgc2l6
ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0g
W3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVl
LWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRl
bnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlMTAxYjcxOTgzOGMyZmRjNjIxNDRhMTM1ZWZhNWY0MjI2YjFhYzczLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50
LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDgyCi0gIFJlbmRlckJsb2NrIHtodG1s
fSBhdCAoMCwwKSBzaXplIDgwMHg0ODIKLSAgICBSZW5kZXJCb2R5IHtib2R5fSBhdCAoOCwxNikg
c2l6ZSA3ODR4NDU4Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4NDAK
LSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzQ2eDM5Ci0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzQ2OiAiVGhlIHN2ZyBhcmVhIGNvbnRhaW5lZCBp
biB0aGUgZGl2IGVsZW1lbnQgKHJlZCBib3gpLCBzaG91bGQgZmlsbCBvdXQgdGhlIHdob2xlIGFy
ZWEgKHR3byBncmVlbiByZWN0YW5nbGVzLCBmaXJzdDogKDAsMCktIgotICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDIwKSB3aWR0aCA2ODY6ICIoNTAlLDUwJSksIHNlY29uZDogKDUwJSw1MCUpLSgx
MDAlLDEwMCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNpemluZyB0aGUgY29udGVudCBib3ggdG8g
YSBkaWZmZXJlbnQgc2l6ZSIKLSAgICAgIFJlbmRlckJsb2NrIHtkaXZ9IGF0ICgwLDU2KSBzaXpl
IDQwMng0MDIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KLSAgICAgICAgUmVuZGVyU1ZH
Um9vdCB7c3ZnfSBhdCAoOSw3Mykgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAg
ICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDB4MCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0wLjAwXSBb
aGVpZ2h0PTAuMDBdCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDcz
KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0w
LjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDksNzMpIHNpemUgNDAweDQwMAotICAgICAgICAg
ICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDksNzMpIHNpemUgNDAweDQw
MAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjA5LDI3Mykgc2l6ZSAy
MDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTAwLjAwXSBb
eT0xMDAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAgICAgICBS
ZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw3Mykgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0g
W2hlaWdodD0xMDAuMDBdCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vdW50YWlubGlvbi9z
dmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vdW50YWlubGlvbi9zdmcv
Y3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMWE3ODNjZTJiNjFhZjZm
YzE0ZWIzNzhhNDczODA3NjQ5M2IwZDVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tb3VudGFpbmxpb24vc3Zn
L2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NDc4Ci0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXpl
IDgwMHg0NzgKLSAgICBSZW5kZXJCb2R5IHtib2R5fSBhdCAoOCwxNikgc2l6ZSA3ODR4NDU0Ci0g
ICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKLSAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzI5eDM2Ci0gICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNzI5OiAiVGhlIHN2ZyBhcmVhIGNvbnRhaW5lZCBpbiB0aGUgZGl2IGVsZW1l
bnQgKHJlZCBib3gpLCBzaG91bGQgZmlsbCBvdXQgdGhlIHdob2xlIGFyZWEgKHR3byBncmVlbiBy
ZWN0YW5nbGVzLCBmaXJzdDogKDAsMCktIgotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3
aWR0aCA2NzA6ICIoNTAlLDUwJSksIHNlY29uZDogKDUwJSw1MCUpLSgxMDAlLDEwMCUpKSwgZXNw
ZWNpYWxseSBhZnRlciByZXNpemluZyB0aGUgY29udGVudCBib3ggdG8gYSBkaWZmZXJlbnQgc2l6
ZSIKLSAgICAgIFJlbmRlckJsb2NrIHtkaXZ9IGF0ICgwLDUyKSBzaXplIDQwMng0MDIgW2JvcmRl
cjogKDFweCBzb2xpZCAjRkYwMDAwKV0KLSAgICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
OSw2OSkgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtk
ZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgICAgIFJlbmRlclNWR1Jl
Y3Qge3JlY3R9IGF0ICg5LDY5KSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0wLjAwXSBbaGVpZ2h0PTAuMDBdCi0g
ICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDY5KSBzaXplIDEwMHgxMDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBb
d2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDksNjkpIHNpemUgNDAweDQwMAotICAgICAgICAgICAgUmVuZGVyU1ZHVmll
d3BvcnRDb250YWluZXIge3N2Z30gYXQgKDksNjkpIHNpemUgNDAweDQwMAotICAgICAgICAgICAg
ICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjA5LDI2OSkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTAwLjAwXSBbeT0xMDAuMDBdIFt3aWR0
aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoOSw2OSkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBd
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hh
ZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50
LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjBlNjAyZDgwN2QyODdiY2Q3ZmMwMTVkMzViYzcxYzJkNjkwOTY5Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKbGl0ZXJhbCAyNDk2OQp6Y21lSWJgQ0YzZGAjOz4/RyleXmJUQ1VCc09qOW1uPCp3
TG5Xb0JrK2liXkF5Q0wkPiFEdU9MRCkwN0w5clJHeyQKenhneG0kMHM/SjlZSEZyfXZYLVBJMjs+
NE5DX0ZUdSZ3RzBSMUo3fU1wWVBMODsoYyk1X2ojUyRiLXUzR2I9X1ApCnphb2xKNV92WVd2bj5U
T3lrOzRhMCZZUVB6PEdndGImVjBBVGMlP0E7JTA9VSFVeX19PU5kbWAyZmd4fU5ibHp7Uwp6UFBA
K1NjNSNmXzhGbFhXLXlAP08meipPNUtJYW5rSkpAT1dgUUlYVT45Mmc4RmJkNndwWSspYHVkZDUt
YmwkdUAKel5OdCtZZG4jcVZUbzlkVytaT1UhOFM8a0x3ZXJRTG1mU3owOWFzT2Zfe2FJTUpsTS1n
Z1I/PWhXenBxcCZ3dzlqCnpYMlBxVnQtVy1SSkhGNT0zUG49dkhXKkUreVd2XzlPe3YrdzMqV005
aGYtUjRGUy08XkFkYGZILX5HNjgmIXVfdQp6N2M0UzxfLSpmZHRGM24pZUR9e2t8OWlEfihkTFp7
Rjh9V3JqTXB3LVNnYHUkZ30oMjl7I1I8eG8mYFRJYExFaikKell+NDhqLVhZd158R0xaT2pna0wo
I3thaShWWkQzKWozaCVacCZHUCEhJGEtckg3UFFuQ3s1IyVHM254OCVRbFNMCno3IXJjeGlnfGp5
KHg5KEhUUExEISpFaCNePVQ7aXQ0SnF7c3I5ditrPjdnQHl6N3NPVFlffW8oWCZQUjQ3Q25AcQp6
dDtuRzBqM1A9XkA1K2d9e2x4T2A1cD4lNGM9TyReNHx1JjRwWD84QmdJbkAzbyRKMGwqMWFfQ0x4
TlFXPVpAfmgKel5JVXBObyRneDNedEJfOFkwVSpKeHVsfEp2ZW05LVI8SXZpKHlAZ3JLNFM3RnIt
U0Q5PT9EcHRzdm8oezFyWF9WCnpAdGs7fFBRI3hsPTlKMUZRJCF2WjxJfVo8IUo2NVhoUi1XU2I0
STtwTTtFQW4kKFo7Qj44JUVQQ3U+R3I3JkEkJAp6dj9aZE01XjktI3cyWTEtQXlGaSVOSmtTPGI7
Y28mUT9ZWGNTUTwpIyM3Sm0/WTRUcyEjM1czaE1IKTJIWDBGRXUKenQrN3s1KnNsendNaEAjMzJB
eHRVXzdhS30zanl5SkkoTkB+eGhIYkAkViZiRG1CUkVuZlBlRGs5VDg9eFl+dS0lCnpwSmE/VU5N
O0xZYGNGYF51QnVGMU1nNXxsX1hjfVYjO0BvKHZ5NT53cX1fPXhEKExFS1gjR3BZa0JydGNVXkk+
MQp6eDw7aDtPcztwVFc/OStpV2t9YEphcG1yYXc1UDAqPWt+azV4SWpOM25TSlIhYD83YnN2ZWFn
M3VnJW5lMVh5PGUKeit5QGBiTTtgQDdnVXJ3PDBzK0g7WT08KHNYZm4rRF5BNSh1aiozXzFfMXgr
OWB8aHlUUUt3PTFaWkVOSEhQJU1eCnp6PW9vYD5PRmxtRnooR1pfP198UXghSyltSW1CPz9eaUI5
UExLSWlvX1B4PmdhUU5GPz1yRkkwPTd2fG5BY1ozQAp6PnZ9cEo9NSpQaj5Gbk9uayMrYyNSLVZv
RD81LXtBQzJBJDFPQmJQM01JZT5hSW0raEwqXmJlK095IzlOS0w2Iz8KekA8SEtDfExDaXJ6Yy09
M1M2QiVAU1JGU2pxM2I2YzM9X1JAIzJ6eWd1WG9kRFBSMU4zU2FjZT9ZTWNQbDVtcSsxCnpoTUJa
WCt7SnJ0ZERQbFRtYUZnP2JBcC0oUlc7bEpxKU59Y0wwbUdJbzdJWF9kbWZsMG5hfFdJd1JLb3wx
NDRLJAp6Si0lNjQoenJ9emJnUFhMRnROIXk1a3smM0B1WEsxRjFtUEFtUThGWGFSWVl0S2IlTSlW
WVFYbXczYFA7IW59bHIKeklndnBEMjhAOGFYejZLflpuKSglRGBTPmI7WUA8SGVkZVRoYWBAPGhZ
dl9UfFZWbz1OMnxxIT5OXk0hMkEtSzhpCnpfYys8WjJtITMjRThlPyVCS0BRQDVkUTJqOWQjMW5f
OTlnWXBVYmVzLWIqMDZFY0pARHUtPnd5TlM4NjFqflB8dQp6MCFETD4lUmE9dkFmY3JkN14mYkYl
K04yVFk/aCRlbjxTVHUoeH52K0FxVnxYemw7UFFaZHFJRSZEZnB9bDx5YSEKemU4aWdvTHpAJnI8
KHlFZEZjIWJtJis1RV5IKGN1cERFXipHSVB0NUF2UUVQMDJfKVA+a0ZfZ2wlZGgjP19qdHNoCnpt
YkVgbExtKU41OExEOD1mYyN7dCEmcGtVTGw7NGtBWSVrKXZsMGU5bD4xd1YkcytlP24/R1kyU1kw
IWdtb184cAp6RXxGYXd6RnZDRDtMeCRIWlM7N3N2ZXtEK1dhSGlEdTU1a2xSNyRgZk91eDw/cHF5
fTRWeGN1ekkwO2p+YXk7YyUKemVXNUleVmd6UFQhJDh7PE44QX1GVWYqLURDWTlOfGZLT0BlWjVR
ZkI7aGZ5ej4lQF51ekcjeENrZlR8WGF6fCNFCnpKRE1ecyNJRFpBdUQrSChhXkgrMm9qX3ZFdVg8
MUpAYGh7TCU0WFh0b0hgaEA5U3J7NW12V1JEcE40Pkxue1RWJgp6QFNKb21LSW1EYWkkLSVUV254
Z2cyKiZWZmlXeSN0ZEI0PTJqP3lgcCY+UC1ncTEjUDBrY2A+bj9JSEx7UiZ2e00KeilHJXNIeyYz
aCFlVUNBJU1+NzUxV3Jtc1ArIytFdDxhYlJUc2J4NFJTaHZnZ1leNkokUkh5eSkoaFQjI09ofVdV
Cno9I3RVJHYpPFpyPz0oI3pyKTVPM0FNa1BpQGwzXm5Nfnx3eU0+SVd1WF5mU15FOXg9T0NaViE0
e0MraWZnSWE8WAp6Tj1ucDlUJnNlYylQdWByJW9IKEZIQmxnU1IwV2F2eHNxbERCKVM4KkNvYXlo
VlJQKSFsMFU5QWM+SjtEcUorM30KejZyZXcwd0Y3X084Y309dj94ND5ARX1tTHxQdURCSjNwSnor
OW0jKk07WDt9RSFZPl8pUzN5QnI9WUJZRHZ2PF8pCnpNWj1Xdj1VUi0+P3xQTXclPiFBd04rWD17
MGpqa1A2bDlMSnN3fSlSWXQ9JldeIVVJWT0rQmk1ZlVGVDlUa0NCRgp6TTF5byhQQVRgSz91JnRS
MmR9MUVtSTNRZUhrXip6SjxaeFRgWERqXj8qJnZEdTlyPDs0Oy1VdWB8JHZRM1UtU04KejdoSWt6
P3clPFFQPz1mRmRmfD8kN3NvUmx4KDNhMVRqTH0kYVU4aGB0Jm1fODdrKkhvWkFkJUxRLVF0N2J6
QF57Cno/ZTg3dlNCbFlCRmRjcTw3PTFEeiVvR3hTJSlBJFVzKEp2VUZUWVArZjxpeUZoMFAkfktK
ZE5wPDRDIztKNUUlUwp6JE5SXiMrbCtNcDxrOUtTOFBNLVM+WW1RKFBXaW5qK3x4elcxV0dgNHZJ
UnJ7djUmI3plfkU2ISNXUW1eUGUqQyYKemd+bEFxRkt2ZmlHZ2MkMShCbnZGPHskd0NIVzx+Qzk5
UTF5JEtNX1E1PmdkPHloMXxNcjh1dlE4ZHdqRmh4TFQ7CnpUfH15YFFFXjtuZXJHUiVRRmlyMHZC
cl5CRG0ocj1iZ1Y/Si1GYTB5cnZlI042Kkd4bTNlR3IoVDt4KzdKPGZNcwp6NDs8KENXcVFnTzw4
XzFOQCF4VlJ1PkF5VHZDNk0oI1dyaG1hVk40aFdISkd2SUNLSiFUcG8rKyEmbmQ3K3UoNSEKelJ4
I0ROS2ZnNntAe24/JCVnVE50Sz1zeFVVNnZ8OzFGSyF5NzREeT52SDs7Rm12SDJBd311Jk5ZN0hj
bkdYeXZhCnp5dj1oV0wocXVQbmRtYUtJPmBAVT0yNmE5ZnVYYUwtaUZDdSpKXjBFMSRDVXdmOW12
JGxkIXYhUEAqZ0xrMikyXgp6VlR7WmdeIyp5amBwQit2PnhDMEIyM0BVX3lBUCp4MjxKd35hQzdx
RU9TQm4mO1omazkrN0khb3kjK318NU9CfVUKeiV7X0xEYW1YUSEyeXBBO153VkZlWXArakZIflEh
RD0/LXhFOWFqYnk9IzltPil6SVR8IWJBaEtXV3h9QnJhWDtFCnokQl5VQU1EeGs4bSRFVllwRnkq
JnBtZlVtQ0JtVFMtNH5uJjg0M2o2O3skIXY1NjFPRz56cUN5SThCUnpSKCRwJgp6cEArUis1T15j
QDxIT2NIeWZiZi0hd2klP0Y1NVZsLV9qUkRiQUBMZldxaTdaYERCdHd3QlAzVUNjTl9kemsmZ2IK
elhAP0NsSk1BYDdVTmBNZz85eihNKkR0Uz8zZ353UWkkWFU1Znd9M0tfXm84cXRJQTEkNT88fUFP
QVopb1kla2Y9CnpWY2wyXz9YUGlgM19jcEhmOVghKmFAfXxoX0E+KkpYeVdvYiRLVUtyNz9UUUJS
Qm9ifktwTVdVeEJLcHhVYHpiWgp6dT9mM2B4S1cqeXg4UldrXyV+cT5eY0kyOForMTdwa28rT2tl
eExRdnJWZlBZYUQlaWJsSCFhbGZQNyVMWm99ZkIKejRvfSFSPHpXNmMhIVNyY3tPZnJjJWUyYHEl
UHZiUU4pTFMkQj5hPk1qey1AcmQxPDBiaWtAYzVobDREUlpVK3dCCnpOcGlWWVJeITc4bXRHd3Y9
WXc0QWNSODQ1eyVQNmBNVHUpVDdMM2tjd3BnamMhR3U9TUx7NWd6WEAhVDwzRnMpOwp6X3M5ZDct
OFBpOzI0ViNZRlVseWk7Mm4pKXZjdWxLej5tKSExV2dAdTszdGkkME5nOzNpP1MpWnt4X3s9Plo2
cFEKek9He3EhYyF1Ym5LbUJwZ2JHRGdyQHpMVGFhTGI+OFo2YENrbHsyTUVIeDwmY3ItbEViK0Rf
Sjl0QUtKfGYkQzNOCnpNeFBvWntUOCFoTHpPQDleJDRMRHMyPSo5XnFIckpjKUI8WWhveClxU2Qy
NWE5fUQjZ1d9TWQ0ZCZQUVYjcmFxYwp6bippPCNGU194WmQlYD1ad3wzQCVFVXI2JG9edzlCSDh7
UHMlNCRvUG9RbWBjVlorakNyMztETEk9VVRgdlZwXjMKem97Yk1MVmlNQCZUQnA1fXtEYHJ2I0Mp
c0BEYUlFaWdfQU9DTSNga2BoKSUhQUl8KFIyPWJCRX43S2lZS15hKjIrCnp2LT9tIUk0eSs0Ukg4
Wk5UV2tkdlY7fUlmX2xiUlVVNCNLJkJ9MjFNNWctb3MtOGd4a0g0cD9VeXhQP3xQRUpNYwp6U2g5
bjNYMihidVJDZE9DR1NIRkFGTjlEcXdJdG5HTXd6VUdRaz50ZVN5XzUlX2hsekg8YjJxMztsMmhP
KWVtdmgKeloweVJAPDhgfUNpZEYxJEomXkVpPUVXVVlTZCFsS041Mikma3tYalkxQkN9ekReRFU8
KWZCZl45KyU7KypMcn0hCnp6WCR4N3R5UER5a2dHO2w5SiQpa2ROQDttcjgwU0g7MWEkTE49V1R7
M19xPCVpSC0/Ukh2N1o9UX52fHBlQ081SQp6I3pUaCpyP0cxMlN5SHcoQ308NztESWt+fjtVVVcl
VU9aN2FzV2IqXis8RVl4PG9WV2UqVjdta1hzJShiTkUoVlIKemJsb31YRGNCM1U/NmdFRlRecjNu
fDl6JlZ1TXt5P2I4SWY0NEI8az41JlA9d3VHeFA9SVU/TWo0PjchU2t3NTkkCno/YSVMaytqMnYq
cVY2MzVmKzZeXllvRCVaWVplYkM/by1ONDMkd0ZMPE43TldjYjdoWTNePzwtPHhfe0xmQS14Rwp6
RWMyK0BKRUVfKzI1cHxYVmFuR2ZiVU4kYzM0QXQ9eEh+dyFAeUc1NTktLXAlMmR9P1F0WU1nb09C
JHkpT3JDSnIKelF6JkQkPj5QUEhMYzg1YmxuemRVQTstQnE+d2I3QCpHUDhNeSQoKkA0ODx8UGBf
ODs5eVdIWXg1S3RaKHBVKS1tCnpreEUlc0NYSVUmMHs2WSVETkdxfjJXNVZnZFQxWHNFNWNOTUt4
X3hua2Z1bmBsRXRpSzV2NyNzOUwyVGwyQDA8UAp6RWohUVkoTjwyJkxpMH5ZdkR3O1RKXzZuY15O
akRERkQ5dEtsREhsS2RyQGktTWlwYmgoTHk0bChUYmtHUnlDR1QKemt0K3x+Wlk8M2BZT2ZqTGRY
PGdMSUdXe1c8dDsrJDtUKHlzJk03dG5hPThhYUFVdWtGdnIweChzeUkjdlQ2ZHhKCnpXUzlhY1hS
R0tfYkJRYjUlfjwmKDA+bFF2OCFQMnNicyg4ZWAqYTJ6MlVnZjVJRil2e09vemZXZ04oJGspO0hQ
fgp6aGttNjRXfDF0eG9QREtZVVgxSyM/dE4/Nlh+S1BQbEc3XlpYYE90Wi1KO09IYjh3NDsxfGNT
U2lrbldxSXtsdTUKemB2fF81Pmltckl3MmJHVFZSQ2dWLVAjQXVXOEFsSEowP05+bXA/T3llaj8r
dyklZGd6VTc+NkNFUFA1YkB3c287CnomQyFEKUtmXkJYQ2JuLWQ2QVAxTlNMKnFQZkpKWERRZS0m
RXA/ZmxwN0sxTVY+aE5YMihoUiU8Z3JqfF5ZY3sjbwp6QmMhUXVHT0F1NTAzSHdFXj1AV3xRejlF
UFc2YWJ6YE4/QkE+fGk1RSQ8d0B5WippdT41XmJGfEwjZFgjdFhjSU8Kel81TEhyZiQ5IWklQlFm
cWc1PFhNMGxLcSZxQEN2OGNLYnFPQkZzVTR2O0FiY09pJkpvX3ElNGU5NE8zSjZHdDlJCnpLSyRj
SmczIXZLSXRhMDNXYzVxQXtISl5wdkI/UH0/fVVvZVdoQF82U2VZYiZ1Nik2Yk01ajk5MSlWcW9n
elgmSgp6U2J4Rz44MH5wVlZfSVBNSHVQLXJyc35CfFFUezB4TVIpNlFJalJeIy0raThxTDI7ZnFk
T1AzfG94MjJLOCNva2UKejRfMCRYbDNld1hafjMkaUIqRyVnKEA0Jm9xNUd9TG9hdUM0SDNaNmxq
cjk9fCFXM3dSckg5T3xzekUpJV4jeGNsCnpfPVAqdkJjMUlhdHheUjhTMEk9dm5rUnxPOy18TG84
NUxvIS0lJjtoIWIzUXhQJH5yPDEpKVl7NmhuOTlEMGU5JQp6MCtZeDIxSj1Oe0M/S2NUKE9GQk1J
VlhHNGs1PVB0NGxRXz5Ue0JXcWtDKzQoTHAoSm4pNjtjIyRKV0ZpVHl0cHQKelBHZigrRjdXTUMo
VnZ1UWpYSV58RXBHfWUlUTxnVDVweDMzUmV5Ni1DQT5aTXZ1SENMQkRnK2FRTXw/Nz94PWY0CnpT
dEA4blEtQ2xmP3JyfE9xKzIyTy0hV3gmcnEhXkpCcz48SXAyZis+RXs9bTA8dmFxPGd5dCV+WVoq
X0VCQzVDcQp6VVBGJU5nNT5kK0lzeTwzcnhjUUNURCl3b1Fod258ckdjOEY5eyZxJmE/OTZ8UH1o
eD8oZzgkZXpHSCVAZnooQ1AKekBYdiZxJURfSzA1KTY7aUpZI0thSkVZK2NoJERGclI8UE52dHV1
aDVnT1hfdVorKyZiUlVyKHpve29oazJTfXJMCnpobFoob3ZXNmRtWCZJdjZMdnAtYDYtZyVjVmFz
UTZWcyRDJXlLZFNmWHAtQzlBQEMlSGVkcFptSDhvcUdIQUFDPgp6LSp8fXdgKT0xJm8pbDk3XjF7
QkFiZmpNaHNFQytqKD04eUNEUztlYVNXJEswSTZHTzloQm8/Pz52cTR2eWh6YVIKemFDcndpR3hH
LT5VN2gxR2koVHp1bSMhTilzWiN1UHs+WmVqYHwjOzk4ZC1oWXBYSj59PFNAZWhjV3g4cjllR1ZA
CnppUTxFSkFRXm1XJk54ak57VFA8ZFBMQHg7PCgwcG9OfkNYOV9ob3x2aHUrbTYtKlc/LSg3OGRV
UEFRdSFURWk/Qgp6NipxXmlRRVh9S20/JX1fTDleREhITUxNUHA8PDZjMzJeQEQwVn0rZCt1Rip4
dz9XOUNlMTlsPiVWSXlJdEB0RXkKelZMc1gmdjE5TylUeEgpTkA5cUF2bjBJdHUrSyRGZHJWfGps
WjV6fDRqX0R7RWpnYElWZUV+bTQ1dnk+bEV+Z3Z8CnpKV19MaUszfndNY3hwQDlzbDFZfj08QF50
NCNIbTcoJmU1PWB1Sj1GRDJSZEU5UGhSdlhPYl5YITBUbzFVYV9iZgp6bXhaY05mflEofW45aVpL
ans/d0M+OWhrWGptOGR6b18oekopZFRtfnZKYEJgZUNjP2x2SDdtYU0yTUBrVll9I3MKei1sMHZa
VTFyJUQ7Wk5aKGNfMVRWKkgtR0stRzVPRkc+dlhueWNnMVUmY2N3OHVCRUJZTD44bigzfX0xM0tQ
OTRDCnpeTyltJW4zfldPN3RBYD42dnJ1ZVg8cV9Vc3Z6QTd6cGZ5KSQyPEBGVlFOPHpTfEkzSXtT
SEhpJHd1Qz4tT31RbAp6UWIrNml5VCNLd3doRipgKCo5fC1iQG9oKkNNP0diU3RlXkUhMXFYQ0dW
Tmdaey1qT152UGByLVZeYVhsSWF4MnMKekdFOFFgRkpBWU53Pkt2VUk0R2Q4WlooZTBqRm43c0lx
bjhCO217TVBPdG9NM1dZfkV+NTExbyhWJCN1TlBXPSV5Cno1N0E/U1ZCNiNhWWE0e25EO1JVNmJz
fi1KMFQmI0k2YEJMXyRqTWs0US1mQTMlXmtIQT48SkEjUDdMYUR4RihOUwp6YzZoJHZBKXI4SW4h
LXlObGN9dmxGMU16ZlBrTHxifEN4JjFDWStzKHt6eV99c2t0ZkNzdzNzQ3tNVTstVT84TVYKeklo
dWB9cit4N0djMFM8NnNkPmV+WCsmdjQxI1lvJT9LQlpiVXEwS3o5JHYmaF87NW1OeDJDX29tUEZs
ZCNkQk9OCnpKZF5Ibm90UW1ZTEp5aGNOSkBPNFE3KTxxNGcmZ1ZIWWFpWGd0YD9GJDVUSE52czst
M1hWZEJ1blZPUHZ5RTNXawp6NSo5ZioyVmpvUD9fek5CWCtiRkYkMXtXZHp3aFlySlV1YUUqcDNg
K3ZDcnMoR3tHIWd0UlhQUjVidnojQjhhJHwKempfRXRvXjJBR340VVBiXilHSjtLX25tV2k7X2pv
MHg3ZG5PZ0JnemxTKmtmI2pIakNheEZLSmN0b1kjOCNZbCNnCnpzbn1NMXNgUComdHhGZlklOT1D
dm9XaUh1c0ZYNk10aHdqbmc+KnVPRzlwe19lWHpsNCMwTkIkMkNRZHl5Sm92Ugp6TnlZc2Nqb2lp
b2ooZUh6eTRRNVY+YmheO09RSllXZ3VFSk1vNkt9OEdEKWpBbnxgZCh0O3ooJiR9ViNFb3NgbT0K
elFyMzF5bH5uc2shcX0rO3dqQ2spOSNScWJgZE9ENygpezgyeyl7KHBMZHtJTSNqZCtmVkxyVU4+
a1JiPCZUVTUqCnpUYlVRVlpia21rI1NwX2Q7PmFvVm9lYSpTJE9sO1NWNzhXZkR4fHo2MlpZSite
TEZyMzI2RDhJdnt8dz9FcUN7OQp6ekE9alNpMU01Sm1VZkQwWXQ5dGVocjMrc095TChVPnsxQzF6
ZllxYnM5T3g9Nz4zPEg2YkB7TiFtX2ojO35YRVYKenhsNCFZZmJRSHxoVHxfUHpBJWdgPjgtISMo
MHYtQHo8YHd2Mk16aWZYbkpUc3M3SSk7RHF4Q3YlO2xze1RvZmwrCnp0fT5ocWNmZUl1PigqO2Zz
PURMR0lmOTlGeHl6YzRIdytVazlsU3V+QD1tZU5Jekk9RWp1IzR5eSl1UlZvYlNkVwp6PF90NDR5
amlYb2BxTWVlMj0qTShsSCtrPWorJCk5ZmZRI3lMS1JEZiloWGkrNTNveSt0M0V5Q20lTGlBYFNs
ZkMKeit4P0ItayZhUkt2TDZMaEFnfCMkPUFacCt7VVFhYztAfElmTyskamNSLUtBS1pxdkBEJnAm
eDBuUWxNVGZmS2lUCnphOyMyVyh5WTNjcXJBMk9SYUBJYFdBYk4wPjV7fUZLMWQrOSFYKXpnOTtq
V2pOJWZXY2Y5YGBxWXdXanRQYmkxRwp6STNfPEk7fVp5ZkpjMXskWU9ucT9NR2opQGMoPnI7UEEm
dVYlZlI/dFVYa1l4SmpKT2hzfmVROHNKflBsP3BHUFkKeihjNW9KYnJ+b3VhM0BOYkZucCFHZ25K
Sm5qfHU0QXtCSDQ5RU53RUZOdjJ5YVkmdWdWcElQVWkzTzE9Qz49Kmh5CnotMTYoYUswVV5qa1F1
PkJWbShtR2F3Rnt4Mj1DK3Y/TjZQOTRQQlpPXihqP2VlJEV8UTJqI0p+NzlGbj1VSjExMAp6VmFK
QUBuZjslTnltVTt6YGtuO3ZjPD1iODg1dm5pYVhkWT8mViVPTHhVU3Bvako8MEErJUNRYz1nYktR
OXRaQ0MKek5uRnpJJCgpOFVkTCl0YHhSUjRMd2N6U0JDdnxMYUxPKW9YKGY4cnFiaFJLdjluZHtn
UGtzUFRkVm50I1p3Zlh4Cno2XkdadV9qaGdDZXdVe0lYO1J2PXBsKkVeRns5SDBUPG59fGsqTnd0
cFA3eUJDOUAqUyhhZ21KRUgoPVpRd15sfAp6Z31wMCYlVVo7QiRaemtZUDcqK1F0JFQ7VkpQdWAh
WXN2MXh0ZFdPMypFKU1UVTFZQUVrPlFGb3tgdFhYWWE4K2YKejtwaHYmQm91NklBJkl7JSh1ME0t
OTM2Wi14VExYYXIzRkA7X1NWJkkxKFNhPSl5KlhzbVZHVjRuPjFYQUsqViR+CnpubTMzdlZVam9p
clZuRnAlXy0ldTVsWmVVJiRUWXU5ZyZZeVlWX3FHbmRTfEp6N311dlVOTjthWWpkciQ1eHk7Kgp6
bmtDYX4+aVd3ZTM1YnstXiU9dkglWCs1aTY4cU5VSSRNJks7YVk4JWppKVFMciktPkA0fHlXcjZ5
JSEhQkJfSEwKenAmMCZkcG9oNmJLVnhVamV3VHkhb1dJKzU9dygrUzlDTkVjaz1ZdVJLY2BISD94
QDdnen4xY1doYnkoLUJSTXBSCnowJDBVTXJ4JTBOTGs7ZkhmaSQpO0Y/ezR6JDI7bCtpfGpsMVgz
TW9uUnhBUHBCREN1d01tfTlzPjg5bSgkQytBbQp6e3UxS0M8bFNnKCRLfkFSQVJkK308KF47fXhV
aDQrNj15eFVEWntaPml3RF8xXzNVO1BicXRUK2xOZD1OZEIqYm8KekhGNG9qP0okS095UClBYHpy
U2dKVGhgaC1RRDdQKz4kLTVDXlBFTyhJcVVLcl47c09XS1lDRncrbGBkN1ZQVS1PCnpBdHM7JC1r
KEZ7Q2ROWXk/USFxVXpgUWBleG08U21NV24oMk1adzgoa1R0MjZOMDlUfkg3VzZVMmpIV287WU00
ZQp6clMyYDNLbWRmWFVQaWN+UjNJQm9ySlJoTkJvfkJvOXhJaUI4bDBIWkV2T2g5dUlEc3NXRjkm
dnFGdENoNnMybTAKeiszYTNJKjtyaCgtI1IqLWFPUDhGem9feXxqPyRCfDJiVkVDUVA3KSk0eDY8
UHNSaEMyX3RwYioyIzxHfkZYUy0hCnpYZktXYHdOalptPmA1SmI+VigrXiFTR2BfUFVGRXBHKnl6
amlEdVY7a2BOQWJaalM5SkRkb3V8SUIqP0ttU31Bcwp6I0xjVXhBezUqSihPUzMrb2lDeUczMnw9
ayEkaTFsZip1cG4/T1ZTfjRQNnpVWVBacWozNyQmS0o4TnFJeWN4KXQKelg/RWMjV15COTFUfHZl
KzckR3lLVER6IVYoRGM3JGhWdDV+U1k7NTY8KFUhPjRaZD0rQ0E7ViNSP016MVo/UHFnCnoydWVZ
OTdJfXs3eTBPKUNLRmZtdVg1PklFQVpfRjZTWCQ2ZnxNSTswXkwhclRLck14Mj10d09wejJ0ZjFq
cEZBIQp6UTJeYW9xcj4obVo8P3FwV0Y5TFd4TlI8cnpWbHBsUytOZ1VMQUwxPTZjKDJxZSZHTjRR
RnhRflchVCklNE9SQTQKemB7TSNQRTlESyg9ZHJGJW0tRGxwKi0wKzc+dk4xVzFsNUg7cDZ4KXso
QnJCUTM8bEhYQzBGeCo3PHFOMEQ9ZCZ1CnppRWxBZyVsP1JzJSpBaTcyMDhiNmVCXlhaWlZCM1E0
clJsI1VhYVhsdjIxZXNSWSFfYGNzZlBwXkVCZjdZKjwxcwp6Rk5vJFIzVi1CWVBzO0syQnd7dnhk
aS1gUFYpTiZkVy0rJmZKfSM2MiZHYm87X1ZvZD93cVplUSZsQU8zNztWMn0Kemd5ISkzelpafi03
Z0VIMHteVz9uVExJa3Bqc0AzSW9jN3Q9NFAhTElVK0xYQUJsalRITE8tZWFtX0tVYio2RmUqCno3
b1pedjY4K0diJipQN1ViQzEzXzhwS3hDZ31FeXBZcWNGeHRERWkqc09FRkNgKFdlaS1Vd0FHUmV3
RTZUbDBrawp6ejA1TkVCKF9CPj1veH1WPFNDT19Zc1JibT9oVW43NWRpY3w2WDljMnt2fVc3R3dK
QFhPeSlEZ19wP2d1czZoIyoKent9Jnk0PkRpaTkmQno1aUc0Uz52c1A/Qks2KzQ9JWpUNTBzZlUt
Zn02T0JPSXhuUGMrSX4rN2ElVDV2RHp9anRgCnpMPnxQRCRqQmUhNUo7anU8SikrcDlsNDVKaD5Z
NCNMPk1BYWJyQDlwfDlrXzdDKkBjJWVnWj1iekZfRyk4Qmo3dAp6KjUjMHl7YmF8cTN2YV5IPUVB
Si1SPUwwQGxDR0tFLVhLc043PmNMUSZHSGlVSkxvOUlrQChoRjh4K21vdEx6K0YKei1RQCtpKE1h
bF5BWWNPRG00fHVjTnQlX00mT25zZEskb0QlVzE8MkB2fTthLWxNVTgmQWRgMVlvNX5ydlE0alRV
CnppOW0oZ1h0PmkmPj0yckB8Tjk4PEtaTzFncUB6VmZCcHVZUEhabmtTNnszczFGIUphTjQqblN3
IW9VT2ArdU5edgp6cTtMdHFXaHteUGpAeU5TVloxbDlTNV9tIXlnJDA+UzQkc3tBYk5DcHUkakRH
ay1sPDs3MDFTMHcpQVN+JEVsaX4KenlvIXVEXkNwYl94bW9rM0YyUXt7YSg4ZShybjF0dzFqTFpF
Tk9VUyVoYlhDNnhrN29SNTY/dXFMRlowSHBhKW1KCno2PjY1TUlTR3pifDFRLV9CYWVxSCk0djVM
XmYwdVRTTWR5SmQ0PnZeNU8hPmVgWUlwRHUlTSR1IWA5YHVvPzMldQp6eipAdzQkSFElSit7MUs9
KFpuR0ZYcTd3MEZHZXp8KyUqTjYqNnUma0ElOW11bk0jd1N7cTR2KFNmNkdYRnB7MFQKelleKk8+
QGxNdTF7dUE/S3ghUHlnK1lnd3J6USVQLWBTVGNiaUBCVmEmUVUmdlZQY09OLVcjZFMoV20rcT9Z
UlM/CnpfcyNJeEhTTisjbUglWTdLKmdHLUR8S3xgNmZjSFp6PU98cERRQ05TJiVoS1o/fD4jX2B0
eTQ7WDdUazVtRzZxdQp6QiYkO1BxPXErNDBqT2xVezdGU2BzRUFiK0VVTyY0PztYcHZBPE1XKV9W
SyNBcUh0SnwoJTM9cHhDSFBWLX1sMigKemN7Z0ReIVBaS2JXRC1fI3NwJl9eMmY+dlYrYCtAU0ZV
LT1Qbi0keVZnbHxPUU0xXmtgSlp1e1peaX5EPnVSJilOCnpKVUl5TCk/Nz5GWUpZIWZHa3d7blNA
KihXX0M7PygzSTAhdlMoajx6bVFAX3YzRSZ5RSUqIUlCe3tidUVfdDhpYAp6VGptIVV7KWxTNCp2
ayQ1MGo8PHZsb3gqSTt5cTxBIWhpMEE/V2hGVXhwRWotaVYzdnMpSXZRTV5nTWF7KnNsaXMKenBZ
WTZmdCtZX1l7O2pZdkMkcUZuQEpxUlUyUD84Tl5LYH5vTC1ReG13RHsxTFRZakpDbVM1d0IjeDxv
I3YyTkp8Cnpxb2dXPUNfbFh8emopfjNwUXVCMmJ3X1hOMW1oaD9YeU9+OUFzT0dzRl9ldVR1dm4l
emQ/V1BJK1ZVLTlYc0A5cgp6djMrKXhGQ0xrNSVeWXMkUFc5I0NUTkVVTz9WNzI3b1ZVX3h0Q0Q5
azxDelVLNW4mTUdpNj9EQVVNU2poK30/TFgKejFkQy1gN1BlaiN6ZHkyTnFiZ2RwVzJESENJZ0lI
eiFQe3cxbCV7NyY2NUZFRGpVVTNvVipfMmZAe0lQVFcze3NyCnpxfHNCMWtxPm9YZjdGNl5taT5n
IXAmaDx9bSVsPzhrIzZ9VHBGQF90LWNOJG5nYWY7c0ArPkBYX3xXfT9DKV51Ngp6REYtMypXbFpf
eytsTXBVbGpyemsjP198Tj5pd1BeTFc3KHgmWng7PThESnd4Tm4yY317VnZEYEMmaXojSCM9YkcK
ejNBRFgpIU9ZYzs+R0tSQiE3Wkxte0U3V1l2fWhMKmdINm5CSk0rcXskIzE3MUI+cnNwdUNgTm4j
Y3xUYypxaDA5Cnp4MDxGKiZ6WkVnVExENEFVREs2aylgWTUqX1dPWSpPe044WW00YnNZcEpDOUYz
Uz9tRDZ3UStPaE5uUT82NVBsSAp6c0BmPHZYfkVed3diJmIodERAeURgbGx4eWR4UEdyaDFzI1dw
PHlLZEJPVE4wUF8yT3AwWTVtRGQwVHhaOHFBbTQKem5USG1EeGFRdCtAN3F8bFAzQ0s5cWF5UjRW
cFVASmk1VnVqQFBKeTI+P1ZZcCF9QkFRbU1oKTFEdG00MnFVRnhhCno0KVVBPjRXbnFyTml1dElp
KGR0OCpjNm02MzFSaDI1T25GWigtRXh2eFU4S3djKzQqQj59emNDJFkpKH4jdDZOJgp6bD5sdHg8
O2UmdjVFbjB0YiYpV2daQ00oQjg1ajt4X0dPKSRPcHVZMjJpISV1VzdpTz1EK2xSdGFDRz57Rz0w
djsKekdLKiF6WiV9MjVnRTAqKyRqQXg4NE9tPTdvdDJAM2Z+RFlpdUJEcGtpTTEpTVBNeTtEJihr
c2UxQmA8fnV6UTQhCnprbFhxJWRuMyROPUshOEdVQFlpTChMXjRwY3krRlFIQ29gWTFgSylUQF9o
Q1NCUnw/YmZSJCpoc2UkfVVHVyMlQQp6dld2UmNkIz18WDZudCQjZE1maEM7c34/SitjeWBgKzhS
QndIWUdeb2tHQ0MkJTFTUTVrQHBNTnJxSz5jcXRXYlcKemBSVmFMSWYrdU1OQll5c0ZCP0Rydj4r
P3JeWEFSdnYlPEx6eiVfN0tUWEordSNAdSpnMEE0RHg+UTw7bi1VPXhDCnolOUUwfnBNbj4jTEZl
alB4UDlTb2ckZD9CNzcxaT50JG97dHU7VkVyUmsjUjJxMFVxWChfJD9yOTxwJUYmOE4kMwp6Y2pR
SGxwSEFja2YmUVQ+UmpFK2hjI2JrfFU3NUpjRkFwalJoX3pyKT5naFlgTzN+YFUtYnRWVjtuSXhW
PkoqV2UKeipNYXRaaXB1fGx6QHIyY3FYTjljbXFoZEtFOHh8OWVDKV9zVSpAJEhLWj1iaVFadkJg
e2pSWXNQQytgMDElZCs/Cnp2aHdDUkFFIVg+P05gPktkKDY7MUNUO3RidVQ9cjlPZHByZkxJOytz
ejBqU1dUNnFSeUVvPDJsPU92O3hmYSN5ZQp6QGl9K3FJbnluQTEkSzx7SEZ9eVg9JW1udC1pbVkj
a0wwI1kteiVIQjJTWE9aaG48anA+PEVXQGIpQUN5UXQ7VyUKenp8UTRjUkdtQHNVUTNTU1RATGpj
WkgqOTlRdlFuM3AhQEMhZHwrYmIjZFcqeG9qeWJfc257JTg0b2k3Q0lMWkRTCnpIJCR1IWsrKE9k
SSpSRkNfND9Rcj1qYk1wayF1TXE5X2lCKEZ8bm59ayl4QVFYYWtvK1M1Sis5KEFGVkNAPzl1QAp6
YEdEKClsRERlIXNTRU0kWSk8RkcmWlhmbS1DMmo3Y2huI1FjaG1xQnhsNiErIU9YezlSRE1AJGtn
bV42NntzNHMKem55VkE1X0gpe19qbWImU1B2JV9LeWQ4IVBgZEcodGp5bSF3ckpwVmhFbFYhTks/
Yip3PzU9NmdMcHJMRmN2KyhxCno9JCUjTWk8MUFVcDBHX2VNLWR6K25XM0NGRHE9cjlYTEtlJCNv
MGZwUEslTTlLUEtySTBlfWdSUjh+YDdse1lpbAp6S0U1Y14reTxUSHJJWGZVPllCWT1EJipNPSs8
Rkx4M2sqS2hFcDR6aWx2fDAlYEpOUShxTEE2byMkN2ZTPk1GO00KekYpOClQRWhzYzNWIzlEc3he
ezcwK1J7ZlJAN0k0VUtMUyNuMXxjKkVrT29vbG9kMy01V2l2cVU5fEdDcF9oPFVCCnphfjNWal5S
YHxnWll8aEtCSEF6VHF0bjw0ZWtxR0Q8WXIoYyNJMEReRUVERjV6VnFhSEBWPlZQMjd8MSlMP2lC
Tgp6IVduTmBpJVRxPTx1VWZNNTdMcW1LVXRYNl55VjFwWnQ2MnlhJVR7PUNmRnA7e3h5TWk8Tj9s
UGp+VD1Dd2NuSFEKelhHSTZObHpGR3tfQU9mPUdnKWU8XzVaTShRfFk7OUBlQ3RIPlY2T0xwYn0k
TyooZmg1SGZ7JVQwUThlRzQqez18CnpKbDB3OVRBVG1tWU9QOTRoczlTPysrJFJ0cGZHLWV7fl5f
bEdUOEtBdXg4WXA0M3gxR1pAQUlAI3dUbm93Z2FkMQp6MzJRblYoLVVCdXdmRj59bTI7UkdkV2A2
NWRuZ1ltZXE8N0YpKDswfTdUWjc0a2FfUzYkSExRUzZ3Zy0kOS1KcW8KekhiJFYlZjZWYjw/Wj51
M3dCP0JgcUttWiFZRDs2YmM8QkU0eVR9S1FDb189cTx4QlF2KjR5N3teI3pLYkNVN0Z9CnpLV2dO
ZCpGZnplTHNMa2Y7KXtic3JpWTs1YFA4dGlybjdiPHB9VTwlZkxaSXhJZFIjVXJxZyEhWjtUVlF2
SFhAbgp6Y05UZiM9KT40KHBveHFnLT9nRF9LTk1PQWQyQEZ2MzAhIyllY2RQWGg5bD0oQDZUajFq
dHIoMSRmbmlNN1Emfm8KekI+XlRBdzhfI1VuOHk9KFhxT35KeSgtVUNJQyFjb3tgaFgyQnhvZ3s4
NERDNDZ8LXF7dkhPIW5Ab31vP2dtPkFjCnpCYUBNSXE3d15HRHVxTmB1dWtjT004TTY8ei00dUlv
dDxEfFReQUhwemRPZVlpPm1KamduTFZ8K1VqJVVfM0A9fgp6SDVzeWUofShAYUZaLXpjbSVhWGJS
SiRFcFRhQWo0RnVTJnB5c2lhQ25IcS1RNGVpUjspfTFqUSYjM2FzIyV0QHUKejYjWTY8Yn56NE9n
U0piU1hfelRUaj19cGk+RGAqKkUmP0xRU2pRbkV3dElNbkc/ViN1ZjxqJEshc1RsQDFiUkl1Cnow
b1orLU9+I0I4YU58Z09yYWYqKUEpWU59Pn0yIVVvfEp5KD5jV3ZoRUAhcVV2fnMzZUZTMFBtQ2Vq
VTQtLWpMQgp6UUBFJC1RdlNsby00JS0tVytzXlJvNXEwPyFybXRaME9RNUZgdEw2RUBiKW5sQlBG
OWx7Zz5vM19QaFE1MitzPUwKemdRVVpPWWU0ZXt0ekd+b2BXSjs8JW1KSjQ/IWN1YmtyK19ePDlO
cm47bXpFV3NvfCN6Py16IS1gPnpReigkc2xBCnpZaTc0YSZ2M1B9KzBka3tSfVR9cGwmMyl2VG01
UmlvZDRjWXYkTSNSODl1RjZVVTYzTnF4LUtVQCgqQGFEP09negp6T2IhRWUkb1VzT15wKV4jeSZk
azBqSjdxVXsrSkNmUyZePTFZQE9Ma0ZwfWw9QCVfSmFxX0xJYTw4WlN+KUFARF8KemRAezBBRUxs
X054cXp7Y1ooRjViSGJAO1c0Yk9eJm5jPWZecFoxeiV5fitHQTk3TU1BRjMhaGk8NTV0RVhFdWpx
CnpVODR5cTtnS2xENVQzSitlU0BnT0s/aDFMelJjM2FFQn5xR0okYmI4MFlKNyE1IyNJKCtgU0d8
bDN7REZpLX59VAp6bT10anhaX2ZjRGRrYlErRyt9N2JkSXZWcylmI1BWa3JQJXE8bEx4TlRMOHI9
Wnt9d1VCNnlqRTFiI35UQFQ1c3kKeiZKR09Fb3NQSz5LZnR2bndUdykoNm9NY2JFOE96YGtpN2w1
JmkhMClWaGBXUUNhK3shN0Y+WCpuQHMpX3QyP04mCnpIO0VuUEpHbTRUQEhSVUlSXnk7XkEhO2tk
NWRYUDVVX3xVKi11Z0hUczNyS204YkxFSWVSaWNQOTVkVWtDeklqKwp6eWEteihJeVZFVlNjaSUz
YnlgeldZY3g3PTM/Y1lyLWxIT0hlbj4zTkIrJTtOKip1Q3VMZFA/enlBS3lyMV9NaFIKejJvO2t+
Tk15UzVrM1JvYUpeX2Q+amIwYG1weVpmQUh2TVlSamIlWXQkSHpydi0meilOYzNLPDYmelpDTFFt
OHR9Cno8MExiMUs2X29odnt3ZTR7MWp4N04mZklRejJDaDBCT1ZIeUVsZDZeXjQ8NW9tMn15cW5t
LVJfVmJZJStlJSEyVwp6PihKSUY7KH08fjM2XzMmQTkzcTZRU25UKmtQZW91QFhybWBBKG5tfmo0
dCE/K1puIXxEdGxeS0VHYCVabzgzfTAKekpGUGx4cSpzRXheMn1+XmM+fUQyaXFhJiUkQSRsMFJG
R0NnN1R0TXd6e1RgRSY1T2J9e3x6Y0FzVEhEdHh2OXBECnpTWjtvMj9meCRNT251cSsoZXMkUWtK
MSpRKnM5JSV0IzJNQkJ5Ync9UkFCIWk1PGlYQil8fm1GUVolNnx3YTkjQwp6emYoMXNYa2opcTQ0
MlU5VGtYJGwrUV5qVDJjT0UoZXJKdFFQOEAxOVFKaXREXj02O0UmMFJwSm9eNElGbk99dzgKekc/
RWBCMkA2Wj1pOGEpIyhvSGhBek5kfXZSKVlXJD03R2tMM1J+JGxsQmJmJXslT05ZIzdEQilkVGRI
RVVfMSt+CnpSaj4jRmUmaX54UXpwaSN3U1NrOzt9eEdxX1BPbDVhbSRucUVfVSF2PEdQTTFnYWRg
anl2KldLUCR9dFNkRnEzaQp6bjU8eihRVng4fiVlMWxjVkU5YHFiJTBNUF5+cXktJEVPbCNHc3E/
eXRJS1dWcWNxVHZ3SjB0YEp4eEojXk56ZHwKenJnbkZkI09XT0BIQj5mb2ZeJEVpQjdAdjU8bite
XlF3SV5ZSVkqRCk3XmNITT12O3g0NGRAbSNVKWZHfFdSMSlSCnowYzVoOT4xI3ptVn1ne0kkUXRh
a09IX0lZTmhPb2VMMHZgVl5pRCRkYnFLZkRXM2tBJSgtJmlvP0k0IXpmTygyawp6JjQ2JkJZcWZu
VkpPYW9nZkdlfn16eERGYnV1VVZSRT54TXNVZSY+I3J1dGB7JlpqakdSTGRUeENSeShLTENVKyQK
elQrT15TUG84Wl5Ya2tAPS1uWVU2PE5BPDRHXj8mYVh8am5HWD1lRTx7Yzw2KGVpfiNXK0p7Xjhr
a3hMdj1JbThlCnoqayg0WG1JMiVRX1IlfU5jbWU0JlI8UylFRGlHTWRFXjAyaVpgPnhpUmlIYEA0
SV5lPlBtLWx+TlJCM0A2KX5fRQp6cml3YEpwb0tOKDkjRnh7WXNjfE5hMilFYyNRNE9UUyhUdE5B
c15aWTRiZnw1P2ErNnFKfl85IVZESnxkXmdeUDgKekp0YnhlQ01hdV9rZWdxVipIPm53PD5PeUxr
TDdHeTE8V2Zre0dGTCZXbmpfPWFVQ0ZRaEQhQz01aXpSNSEyeiFkCnpmVGZ5dTE9SzArTTNgODFa
R0NRc2UhV0RIIzwjJUFNU15DKXA7TlV9SylwN2xvZVhedyh0MVJ2YWI7PiE7Xzl9cQp6TkpBPlB4
WVIwYSQoPV9ARU51WEJxP3c2UERNaXt0dU9eRElwfjVyI2UpWChSNWV1Qnoke01zVUt8PChXITRh
N3sKenojJno7TTQ1dz9iJj01eVVTKDE2Mjs/bmEwNXkqPElqJUYzeDJeQkExR0lyXmY2OV8xZGNC
ak9BNFdALUo4TmcmCno0VXBDOG5uQXBVZDFxcmIwbUFGV2JUVmo9Z2ljRk9Fe0QoemxAKzQ4V1pl
MmQ/PFRKPClwWEw4WT1pWTxrWVd3awp6OyRVZzFje35zPWluZitkMUdlLW96Y0pvKnV7KyR7QVAx
d2dpfHd+PTZzJUpXNFc2VHI/JXZBemYmUFh1bSVwJSkKemJoRF57XiNZbiZydk08Iz5pK3kpWFF6
Q1BOS2lhUGJoMGx3SmlvOXtEaiV7PjFvdj5wYD5RZkxEPHU9Zmk8NktHCnpzaDNWJmxiJUhMKHQ7
bSY2bjVaX2w8IyNtSj45YCFnSXd4UVZIS3xHZmNoTXstNzlIZms1KEtgJWdqWHFLQEtHUQp6Ny1Q
YGZvPUwzOWxBYEBleFk0dDNVUVNxfCowMiY4NU9MKUJHRnVyKlBmNSRkSH57aCFkZyFWZGE7cHl2
dDVOdk8KenZIdClKSFBVJCRJMWUqMzZeZCtVRiN6dUcqbmlUfCUhQmYma0FFOGUhUGpfeSF3R1BG
c18+dDU/dHJVUWA/SE0rCnpFdHx3TUxgSnt6MjRzaFBsXkU1KSZ5IyVpZmJgSGxjentHKyhteCMz
TE1SdnxzTWFnJXE3c00lKWl9ZW5VQSpLTwp6ODwxYUdeRnxuOFpTI3ZvK1hPcW89LWp7TT9jM1hg
OTlWMSFzKk5gUVF6akB8QnFLYnkxZEAmbnxEPjI2dXRxb3oKeiU8YHhle3JETWo4U2F5RHBQb0Mx
ZD9xeCVoYzFiUHZfS2R3ZTxoKTdWTjhmQDV7aFB3TiNMOVlvWTtEWkpufnRLCnpsVEI0bEsyfWV5
OGprPEQkdk5oQylDQ0pVI01ZKEVwPDdobnxOOSpwZkl8UkJodjk3YFgpWDRzYmtHbGMoaWNhVQp6
N3B1ZTxmIS1wRz1BSThWVUswPUhiVE5afjs2YGBBXzAtezBta2R2cThHRE5BQmdeKWZqbl5ZU3Ep
ISUhWDdecGAKejVxd3p2cnxBSUhqJXsrJmJQeDwjPCZCOStAWl45bWhoOTw8ISteTypTVlk5Rl89
XnJec29fJlBQRDEjZXtPYlgwCnpDYTFIYHZYWipHeW9sMUA+e3AxJTt7I1Q9MHUwaSgzbVJIZWhX
bSlCcHs3TE9BNmJpMENWeWNIbmxfKU9BO3p1RAp6dlRkbztFfjk8S2M0O0d2SFljKldoeHpROy1R
SGRBcCtNaStsKTFIZ0UxeEt8bGVUbW1zZD9AV1ZES09INXt0aWMKelBmaSFIZXNoO0o/e1RebnFA
UCZmemg9dGEmQW5zX1lRVHd5XjNiPFlIaTh8O1FUWjF9WiRwdmNPcGdQdDJYaV5pCnozKXpsP1M/
an15Xj5rKEE+MGB1Q0hLSWY1JlAkbHhsVVpRKj1vUElAR1BEblRoYXRyNFpSVDdlc0pveG8oKlJ3
KQp6VT1gfClCZ3hZVFZKUnsxMjdPcnR1I3MlUVZtLUVjYk8mVyp4dCtWUyVVWigoPnZsV3lMWjYh
TDBEcmljV341e0QKei1+bzs8QmV+NGJXZ3N2KV4mI2cqaUskYm96eFhNM1N+Vn4hX1ltJj0pdD1S
Q3d7PClDUmRSeG1FdSVTVyZ1I0VQCnooYE5OYSZuNjlzVkVXOXtOMXlyWjFrYFokPF9xYDJ2ZUdw
NXg1clJzV0RZUlBpTTUrQ2IjPH42MT8/d2lmRnJvbwp6OVdrN1M7QGVOKjY4VmV+NFpAPWQ+MkYl
RmpWaV58VlFIWmMlWDJ7QWskNyNtUXQydzFybmpEc2E8T0xsNWR0cXEKej5wTjtARHhBLUliLTdy
MylOK15fUkRGfHVxeXYlaWR5Z21hKmRob0wtYUUwUkJQTGk8eDF2Sz9nUFA7QklnK3w0Cno4bTB7
QGY5blkzeCUlVXNhJkYrYEtaVyZ7R0pSYmhxKThyflltYGFYYHZSbHZjKV8oVT1lTlVPZmYydUFt
YD0jbAp6b0N1elVNK2NoOWMzRU1lMURCaXpIUTktdUR0Iz1jNVF1N1RidCFkc01TcV4mUEtSKHt7
JClyc00xYEdXSjJRPC0KeiVlXk11MjR1WG9tMyUkY2lmN1o8YncxdHZ1X1FFRGshPVhiYDcqYXVk
bWtBMWxsVylNKWZVX2pQMkt4UWZCJDtNCnp7RlVHUDRwUDdGYEUkVGYmJkllX29PM1FZcG9aUGNu
cl9OTHpeSFgrbSR6KXlGTHt8TGJFIV9jdGwwRk9mR2xtaQp6ZTdERXZGN3VKTStUbyhiPitsJXJk
Z3FXVlBfS3UydnxkYiZYe3Y8UDd9dDFQQTVycH5ZRE1KSD08Zl5QVGZCJCUKemxNWHlnaT9jZ1F7
WTBFc1E+JUJuYUpTX1lpYCNxZkhAeFc8QElLa1R3XnNTOWFtNzJLPytLP19Ua0NHJD1GNl5YCnpC
VX02aWhqM2IjdiVhTjs9QDlVZm1zTUB7ak4zUTBPLWdGVlo+QnVFUGNAVSVkIUdoQSZvcjxUMHol
TXRLQTU2VQp6K0ske2doISg4OCQ8Zm9oOXdVRHspRylCR0pUcXYjX2FrdVBxPlkzdWw9ZW9WXyo+
JHlLbz53QVBydTFJN2lrI2AKekkjMU0kN2kzTXdHZ2YoOWk5U1kqVkpBNSZIKCY/O0N6aHF0bUVn
TDhuel9fPEhSMCFebFR1ZXhTcEZCcD1WTjZQCnpjYFVnT3IoWHwkOW4temRuMXRoSmlpKnJgbHJ3
PVF4NEQ5WCpqYVZAPGVzX1V4VTI7SmkmX2I8VilKSEZmKTlUQgp6KkNpZkxyc2JBKUlucWZjaFA0
KmJkTXZZfDklak9fWnxgKTs3SXBReTcyPER7eDVzdEdoYyVyVFJZaiR7Ym5tdH4KemcmbiNHc1dK
OC1VOHVTaT5BKzBwPHNtfHZHdmAhJXtYMmREblBBNmdmM3V+YF9MfFJkRmwme3A5OGcwMnFhSlAx
CnprKTNhUHZxWjtGPC1zNnlgQW9Za1l7VCYyYlFoX2kkZjJST1dxamRhX1QzeHsxZio7SW9hNHlO
YVdgRkwxOz9GRQp6Ylk3fUtOYTl2Uk1BLVB+M1dGUWtZNV9HWitOVE5xR1pWNExEe1V5Jk50NG5y
K2laOWFPWEBpa1dkJjQwSWhRP2UKemkxZXB9eXZ4cGJ2RFZ8fGZANClTdkh0WiVLKHRgSjlSTzhG
dUFvNH1KR2pjKno9VTB2NGNrbEVLeGtWOWcmb31hCnpWOXhYT0lJN0JQJVpsKUI/ZU5kd3k2dHM5
aSN8R1RnMilYOWFjdWdMdiYxKnIzcDlDbGk4aTZ7Y1QwfWpqYT5HKwp6ZW5QXkQ4M0srbis+KnRN
eWlmMUFmMlBpeFNQQ2dsUXM2TGRGOFojezs4eThsIzZmVlBvMVBUXjNmZnVqUj85anMKenNsd2hN
QG50b1o0WUoocjV+a3JkKSUyOCE9T2lFQUoqVUs8OExXYnBjX14mMSstYk9GXkB8fV8jcih5IWJB
YD8zCnppekxMYFNNMns8Sl4mJFplWHQ7OV5XeD50eDxyM21qRiVNPFJqdHI1a2pNNTYqI2J2KDJx
NVR1WmItJXZSRVY8dgp6I3whbVRLQmJAdWd4OSM1SGc9I1g3ZjxXaWtQWWhESmIxNEVVI2dkLWxN
U2BROTJGUVM+QXJCR05zbWU4UHA0VSMKejVtZCZ3TVRoPXlJe0E3JHkwRFl8WEgqfUpNVnFkKl5P
TUBgdGBsaGNuT2tpMGJFK15+aiZ2SXRLU0JsT2NMdlIhCnopY2NyWTZhNUMtRGx1NkhPaSVjUzdK
OSheNz9nMkpVOWk4NDVEb0QoVHsjRF9iZGNPbyZrPG9kVmxRaClreGZ4JQp6bztjPWRwVGtgKiU9
ISNaNXhDbjdrRDQ0OVY0enR1SFU3THJZamQ2NGl9LVlHPGUqOEhGQXY+ZWFqMFhhbElZfC0Kek5y
cmBNcSRHcn1vdn5ZX0Q0OSUlZlErOT5aPEB3NGJkKyhuWE08fGxyU3trfEVnWFhKNCRoflkzQUtV
JE48Nng4Cnoha25YNGppVz9uSnt8Uk09fEZJXyhvIyUtU1FUMXFwQTU2fkkqdkxOJkoramY4WFdT
OSMxNSlLSDAkYFZRfmFTSAp6JHteeE81IXpiR2JJQEZga01iZmk0TyYld3d8akQpRV9fbk9vQFJg
PT5POEYkMXBsJjhZPH4hOCQhdH1jYG8tS0QKeishSmJlUVZAYzthQzsyOzkzVWtgKmRgJkxQP3ZV
NHhzNmdwTz00K1liNDxmbnsxSWZaTC1eWCNKRXUpM2l0VG1ZCnpiOyFDRiNwZmhQXmxPYHdVY3Fk
IVhOSnJYUyo0SUxLYSV3K3BWWVElWll0UGJvakAxTXFtK2hVMTdIdjBRMHAmYAp6eSFod0g3RHtY
KG50dGZQWjtlKFNxRD9AUjUjR2x4Ym5QPHxpfX1RN3ttVHdfIyRBeV5wUT4wNyYjIUtKOHp1fVgK
ejNRM01xXjt7OV5kRFNtKkdHfGBvOW5KMW4yaEM8b2dJMT1wVncja05FV3FqJEx2WWRKNzspN0JI
SnVlNlNhRlJqCnp4cXl9NzlMWEc7bTRlY0NESmZGTHNiKXByd1ExTT8pRShITSEtPSVHM1VaQnd0
Mz5oSWBga1NyX2gyTUt4QlF5bQp6dURtPXRUYyUpWXg/YjQ5dk1qNHNIcitMOW1HZ3xZYGV5I3wj
PWJrb15QVDw/X3AhJk94fXIwP1ppQGdTMHJrR1cKemo0aGVmZUskWip6VnBKI1EkbDVAU0hGdnY9
e1Zpd0I9Q25JbXhIQjJuXlo+SGJJKmQrS1BHJVY0MGBGPT8jcHVICnozS31rREB2NSZVT0R9R296
d0dzYEckMyU8enNGN2FYWjk+ZTZ0NmhwYDlFaCp6d29ie21MMS1jKTVxZjt7Zyt+Vwp6Jm9ySmt3
TG80UGBZTEM2IzM9VmokUFc1P3pTUENePHxUZ2Yhbk9XaTxxakw9SG1RaWopJkpfeVR6X2ZOTjJi
O04KemwmXjk9dDhaU2l0UmZOYXsoSFJqU0B6PTE4KGtGaFRLXiUwfEl5NiN3byZkZDRUdC0zTGlU
Xmc4RT9DQkp+PzZPCnp3JGlWMXd+V1ZSZVdYejZtVllnQTVve2NDdyNUMEZ1V350P0tpfX1wby0t
SmYyM2tgbD1idGU+MyVMd1NROy18Kwp6c3M5fFomSDNlYDxOV0klPy19NXAxcl85MCp4VSNTKEFn
ajhWcE10LXw3PShIdGRqRztUeXdYe15tbG9ge1g0dmsKemQoSVlLVDZFNXdhT0diJHp4KG0jck45
NVJ1Sk9ZWXFrVyRRP0QrZCV3ZGMpV19WQGE0eEE8UitlWTNeYVZFSlo/Cnp8RCRZaTIpNStyeW0+
ekBgMF8zUVcwQ3ZqbyZUZX1eWiMjO3Y8d3lBN0hUX1R3RFReeVcyO2p9NDU7JWJrSzc8MQp6ZE4k
cEJzMTVNSHYpXlVJcz9SSV9LS3lPMmA4TDtsPnB9azBNfUYoYXpWXm83WjFLJCZ8NGkhdFooeD58
JGp+Ri0KenJ+UClCZ3FafXxqRDtPUEBHbnEyYHtXWEcmLXZJTG5nMyM8WFV+bGdhT3VpPG94bDdH
PCRlcD92dFZaK0Z5eU87CnpSQGlUeEAwS3p6Mkpta21hYH5QU2FvKiMkZjg3WHRAdUNwYEszfStK
QCspP0l2LWFrdEgrP34tVSF8Xl45TngzUwp6ZFMybUk9eFdxeChZWXRZaE9hUXJHUiVtMEtoSnhj
e3VSMElHVX5YQ2FRRVE5PDlQcXhgMXE/IUZPN1QhdF84bXUKei1Ae2Fldjs4V3kpWGEhP0o/SEgl
YCNSV1RNamVrcXFyTzZRKkpkTiFlTHcmSCUtNng1fE5paGQ2TVp3JGUqKkdiCno2biNzeVo/KShA
Q0c9YWx7eCtrMW9BbSNLWHVrREQtJik2U3Q+Yl4lYClBKn0+O0YzZE5YdDtRK0kjWk5ZM2t0aAp6
fElHVmVrUVp0fXsrZ1I0SXpwTCh7fDcpX01xaD8kcFVpUCt7fTduaFIpMWJxeUJ8U2Z7dWMqe0ds
RENre14oYXwKemQyIXEyRkteOz9FMzA9dWxAR0R+UHZwJEklditZU15rY0k2PSs9S3g9dFdsfVJ7
S0IreVpSTVJAe2IjbHAkQlRxCnpTSjNCTFk8JEFTQFZlKDs7YW1KS016KnFxY0tmVEM8cmxHTGQo
UFJmKDIlc29OVEdIYHcwI3ZAVkg5JTwlWkwyLQp6LSNRKU02Q2FIfl9mX25nUU92VGchPlFuM3Zw
a2E8bk5VKD1AWG9KZEZPOVYwM2VLP2t2OUQrfipAI3dvZ0ZFaGgKejc1aVdteUN6RnF7JEp6dUZw
Z0l+Y0s1JTtFKml5TkJGSWE9ajw+blFJTm9uJmBldnFZKGV5M3B6U1g5MENIJmg9Cmpfa1ZGaWFN
YGRsXiQoOz9gX1ZVVCMtQi07Y2pWeWwxOWtoKFVpcDZqKTgyUikKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJl
ZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1z
eW1ib2wtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzQ4YTc1
ZjRmNWEyMDgyZDdhNWFkZjY3NjE1OTUzYTM0YmY2ZDlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg0NzgKLSAgUmVuZGVyQmxvY2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAw
eDQ3OAotICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICg4LDE2KSBzaXplIDc4NHg0NTQKLSAgICAg
IFJlbmRlckJsb2NrIHtwfSBhdCAoMCwwKSBzaXplIDc4NHgzNgotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NDR4MzYKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA3NDQ6ICJUaGUgc3ZnIGFyZWEgY29udGFpbmVkIGluIHRoZSBkaXYgZWxlbWVudCAo
cmVkIGJveCksIHNob3VsZCBmaWxsIG91dCB0aGUgd2hvbGUgYXJlYSAodHdvIGdyZWVuIHJlY3Rh
bmdsZXMsIGZpcnN0OiAoMCwwKS0iCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRo
IDY4NjogIig1MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSktKDEwMCUsMTAwJSkpLCBlc3BlY2lh
bGx5IGFmdGVyIHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0byBhIGRpZmZlcmVudCBzaXplIgot
ICAgICAgUmVuZGVyQmxvY2sge2Rpdn0gYXQgKDAsNTIpIHNpemUgNDAyeDQwMiBbYm9yZGVyOiAo
MXB4IHNvbGlkICNGRjAwMDApXQotICAgICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg5LDY5
KSBzaXplIDIwMHgyMDAKLSAgICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9
IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7
cmVjdH0gYXQgKDksNjkpIHNpemUgMHgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgw
MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTAuMDBdIFtoZWlnaHQ9MC4wMF0KLSAgICAg
ICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNjkpIHNpemUgMTAweDEwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0
aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
dXNlfSBhdCAoOSw2OSkgc2l6ZSAyMDB4MjAwCi0gICAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lciB7c3ZnfSBhdCAoOSw2OSkgc2l6ZSAyMDB4MjAwCi0gICAgICAgICAgICAgIFJl
bmRlclNWR1JlY3Qge3JlY3R9IGF0ICgxMDksMTY5KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0xMDAuMDBdIFt5PTEwMC4wMF0gW3dpZHRoPTEw
MC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9
IGF0ICg5LDY5KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAw
MF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3luY2hyb25p
emF0aW9uLWNyYXNoLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWNkYTc2NzdlYzc1OWRiMWUxNDhkNDljOGU2
YWU5MGVmODg0MGM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDk3NDIKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1Rnhl
T01qCnojd249PTJCdjFfRFRZUmROdlZrak4jO3FaJCpFPiRpS1ohTGhSRiUkfDk+K3VzNG5ueWFT
VytvZTB6TihGTXxSUAp6aSgkaDV4eShyJnRMTCFCWk10LTRVaW9RMzEmME8oTWtXPngwUjt5STBn
SG9lb0Rlb2R1IWZRR2tzd0c0c14kYT4KemktJWlvMlRUSntsPF5WIXNRaFU3akhWQjg5dmFPYnF2
Z1lCYDhabFhLcjdWSWBmOz48RnhveUVaNkEpZDRAY1hGCnpxd1BhckE5SipRSmxafVVaNkEtZWs0
TXxiLX5xU017PXNQZlY2PVpRK0NMY1dBQl5AN00qOWIme2UjaXwoZGhpKgp6PT18I0Z7UE83aEko
IWtyPT15QHVeJWJNKlBlI3xASyNJZytILTZtNntXNj9tJkhMP3x6fH4kMTQ0JHJqRjYqMlUKRm5n
OVV1WH1BQ1kKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy91c2UtYW5p
bWF0ZS13aWR0aC1hbmQtaGVpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDJh
YTQyNTRkMTJkMDYxY2EwNjAyYjZkOGRlZDRjNTMxYzhhYmMzYzQuLjA0YzYzNTc2YWQ0MTE3YTBl
Y2E2N2YyOTQ4NzI5ODA5MGJlZTY0ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQtZXhw
ZWN0ZWQudHh0CkBAIC05LDQwICs5LDQwIEBAIFBBU1MgdXNlLmhlaWdodC5hbmltVmFsLnZhbHVl
IGlzIDEwMAogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBQQVNTIHVzZS5n
ZXRBdHRyaWJ1dGUoJ3dpZHRoJykgaXMgJzEwMCcKIFBBU1MgdXNlLmdldEF0dHJpYnV0ZSgnaGVp
Z2h0JykgaXMgJzEwMCcKLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwu
dmFsdWUgaXMgMTAwCi1QQVNTIHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMDAKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwu
dmFsdWUgaXMgMTAwCiBQQVNTIHVzZS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwNQogUEFTUyB1
c2Uud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKIFBBU1MgdXNlLmhlaWdodC5hbmltVmFsLnZh
bHVlIGlzIDEwNQogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBGQUlMIHVz
ZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgc2hvdWxkIGJlIDEwNS4gV2FzIDEwMC4KIEZBSUwgdXNl
LmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jykgc2hvdWxkIGJlIDEwNS4gV2FzIDEwMC4KLVBBU1Mgc2hh
ZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTA1Ci1QQVNTIHNoYWRv
d1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDUKK1BBU1MgdXNlRWxl
bWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDUKK1BBU1MgdXNlRWxl
bWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTA1CiBQQVNTIHVzZS53
aWR0aC5hbmltVmFsLnZhbHVlIGlzIDExNQogUEFTUyB1c2Uud2lkdGguYmFzZVZhbC52YWx1ZSBp
cyAxMDAKIFBBU1MgdXNlLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDExNQogUEFTUyB1c2UuaGVp
Z2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBGQUlMIHVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykg
c2hvdWxkIGJlIDExNS4gV2FzIDEwMC4KIEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jykg
c2hvdWxkIGJlIDExNS4gV2FzIDEwMC4KLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRo
LmFuaW1WYWwudmFsdWUgaXMgMTE1Ci1QQVNTIHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQu
YW5pbVZhbC52YWx1ZSBpcyAxMTUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAxMTUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0
LmFuaW1WYWwudmFsdWUgaXMgMTE1CiBQQVNTIHVzZS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEy
NQogUEFTUyB1c2Uud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKIFBBU1MgdXNlLmhlaWdodC5h
bmltVmFsLnZhbHVlIGlzIDEyNQogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAw
CiBGQUlMIHVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgc2hvdWxkIGJlIDEyNS4gV2FzIDEwMC4K
IEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jykgc2hvdWxkIGJlIDEyNS4gV2FzIDEwMC4K
LVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTI1Ci1Q
QVNTIHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMjUKK1BB
U1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMjUKK1BB
U1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTI1CiBQ
QVNTIHVzZS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEzNQogUEFTUyB1c2Uud2lkdGguYmFzZVZh
bC52YWx1ZSBpcyAxMDAKIFBBU1MgdXNlLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEzNQogUEFT
UyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBGQUlMIHVzZS5nZXRBdHRyaWJ1dGUo
J3dpZHRoJykgc2hvdWxkIGJlIDEzNS4gV2FzIDEwMC4KIEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgn
aGVpZ2h0Jykgc2hvdWxkIGJlIDEzNS4gV2FzIDEwMC4KLVBBU1Mgc2hhZG93Um9vdC5maXJzdENo
aWxkLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTM1Ci1QQVNTIHNoYWRvd1Jvb3QuZmlyc3RDaGls
ZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMzUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25l
KCkud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMzUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25l
KCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTM1CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQuaHRtbAppbmRleCBjZGMw
YWQyNDNjODgzYjgwYjA1NTZiNjFjMzZmN2Q5YzkxOTA3MzBmLi4zOTI2ZDQ1NTJkODk0Y2NhMGI4
ZmU4NjhhYjI5ZTkyNTEzMzQyMDQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy91c2UtYW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvdXNlLWFuaW1hdGUtd2lkdGgtYW5kLWhlaWdodC5odG1sCkBAIC01OCw3
ICs1OCwxMSBAQCBhbmltYXRlMi5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMTAwIik7CiBhbmltYXRl
Mi5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMCIpOwogdXNlLmFwcGVuZENoaWxkKGFuaW1hdGUyKTsK
IAotdmFyIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh1c2UpOworZnVuY3Rpb24g
dXNlRWxlbWVudFRhcmdldENsb25lKCkKK3sKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRo
OworICAgIHJldHVybiBpbnRlcm5hbHMuc2hhZG93Um9vdCh1c2UpLmZpcnN0Q2hpbGQ7Cit9CiAK
IGZ1bmN0aW9uIHNhbXBsZTEoKQogewpAQCAtNjksOCArNzMsOCBAQCBmdW5jdGlvbiBzYW1wbGUx
KCkKICAgICBzaG91bGRCZSgidXNlLmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOwogICAg
IHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCd3aWR0aCcpIiwgIicxMDAnIik7CiAgICAgc2hv
dWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpIiwgIicxMDAnIik7Ci0gICAgc2hvdWxk
QmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOwot
ICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hpbGQuaGVpZ2h0LmFuaW1WYWwudmFsdWUi
LCAiMTAwIik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLndpZHRoLmFu
aW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9u
ZSgpLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUy
KCkKQEAgLTgxLDggKzg1LDggQEAgZnVuY3Rpb24gc2FtcGxlMigpCiAgICAgc2hvdWxkQmUoInVz
ZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKICAgICBzaG91bGRCZSgidXNlLmdldEF0
dHJpYnV0ZSgnd2lkdGgnKSIsICInMTA1JyIpOwogICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmli
dXRlKCdoZWlnaHQnKSIsICInMTA1JyIpOwotICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0
Q2hpbGQud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDUiKTsKLSAgICBzaG91bGRCZSgic2hhZG93
Um9vdC5maXJzdENoaWxkLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEwNSIpOworICAgIHNob3Vs
ZEJlKCJ1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEwNSIp
OworICAgIHNob3VsZEJlKCJ1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS5oZWlnaHQuYW5pbVZhbC52
YWx1ZSIsICIxMDUiKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlMygpCkBAIC05Myw4ICs5Nyw4IEBA
IGZ1bmN0aW9uIHNhbXBsZTMoKQogICAgIHNob3VsZEJlKCJ1c2UuaGVpZ2h0LmJhc2VWYWwudmFs
dWUiLCAiMTAwIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykiLCAi
JzExNSciKTsKICAgICBzaG91bGRCZSgidXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0JykiLCAiJzEx
NSciKTsKLSAgICBzaG91bGRCZSgic2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwu
dmFsdWUiLCAiMTE1Iik7Ci0gICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWln
aHQuYW5pbVZhbC52YWx1ZSIsICIxMTUiKTsKKyAgICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdl
dENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMTUiKTsKKyAgICBzaG91bGRCZSgidXNl
RWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTE1Iik7CiB9CiAK
IGZ1bmN0aW9uIHNhbXBsZTQoKSB7CkBAIC0xMDQsOCArMTA4LDggQEAgZnVuY3Rpb24gc2FtcGxl
NCgpIHsKICAgICBzaG91bGRCZSgidXNlLmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOwog
ICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCd3aWR0aCcpIiwgIicxMjUnIik7CiAgICAg
c2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpIiwgIicxMjUnIik7Ci0gICAgc2hv
dWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEyNSIp
OwotICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hpbGQuaGVpZ2h0LmFuaW1WYWwudmFs
dWUiLCAiMTI1Iik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLndpZHRo
LmFuaW1WYWwudmFsdWUiLCAiMTI1Iik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRD
bG9uZSgpLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEyNSIpOwogfQogCiBmdW5jdGlvbiBzYW1w
bGU1KCkKQEAgLTExNiw4ICsxMjAsOCBAQCBmdW5jdGlvbiBzYW1wbGU1KCkKICAgICBzaG91bGRC
ZSgidXNlLmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIpOwogICAgIHNob3VsZEJlKCJ1c2Uu
Z2V0QXR0cmlidXRlKCd3aWR0aCcpIiwgIicxMzUnIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRB
dHRyaWJ1dGUoJ2hlaWdodCcpIiwgIicxMzUnIik7Ci0gICAgc2hvdWxkQmUoInNoYWRvd1Jvb3Qu
Zmlyc3RDaGlsZC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEzNSIpOwotICAgIHNob3VsZEJlKCJz
aGFkb3dSb290LmZpcnN0Q2hpbGQuaGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTM1Iik7CisgICAg
c2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLndpZHRoLmFuaW1WYWwudmFsdWUiLCAi
MTM1Iik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLmhlaWdodC5hbmlt
VmFsLnZhbHVlIiwgIjEzNSIpOwogfQogCiBmdW5jdGlvbiBleGVjdXRlVGVzdCgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNv
bnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQu
eGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjFiODc1MzRjY2I0M2UzM2MxMjVjZGNlNmEwNDcxZGIzZGUzYmJh
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6
ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC54aHRtbApAQCAtMCww
ICsxLDExIEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
Ym9keT4KKyAgICA8cD5UaGUgc3ZnIGFyZWEgY29udGFpbmVkIGluIHRoZSBkaXYgZWxlbWVudCAo
cmVkIGJveCksIHNob3VsZCBmaWxsIG91dCB0aGUgd2hvbGUgYXJlYSAodHdvIGdyZWVuIHJlY3Rh
bmdsZXMsIGZpcnN0OiAoMCwwKS0oNTAlLDUwJSksIHNlY29uZDogKDUwJSw1MCUpLSgxMDAlLDEw
MCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNpemluZyB0aGUgY29udGVudCBib3ggdG8gYSBkaWZm
ZXJlbnQgc2l6ZTwvcD4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAwcHg7IGhlaWdodDogNDAw
cHg7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsiPgorICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPgorICAgICAgICAg
ICAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgICAg
ICAgICA8cmVjdCB4PSIyMDAiIHk9IjIwMCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9
ImdyZWVuIi8+CisgICAgICAgIDwvc3ZnPgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ct
dHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sCmluZGV4
IDYwNGU3ZWI4MThiMDczY2YwYjY4NGQ5OGExYTg3OTk2Y2ZiMzc2YjguLmQ0MjJkNjExN2FiNTZj
ZWUwNjhhZGE4NTFmMjU5OGQ4ZjBiMWM1ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC54aHRt
bAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVl
LWNvbnRlbnQtd2l0aC1zeW1ib2wueGh0bWwKQEAgLTEsOCArMSw3IEBACiA8aHRtbCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMiPjwvc2NyaXB0PgogPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KKzxib2R5PgogICAgIDxwPlRoZSBzdmcg
YXJlYSBjb250YWluZWQgaW4gdGhlIGRpdiBlbGVtZW50IChyZWQgYm94KSwgc2hvdWxkIGZpbGwg
b3V0IHRoZSB3aG9sZSBhcmVhICh0d28gZ3JlZW4gcmVjdGFuZ2xlcywgZmlyc3Q6ICgwLDApLSg1
MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSktKDEwMCUsMTAwJSkpLCBlc3BlY2lhbGx5IGFmdGVy
IHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0byBhIGRpZmZlcmVudCBzaXplPC9wPgogICAgIDxk
aXYgaWQ9ImNvbnRlbnRCb3giIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNDAwcHg7IGJv
cmRlcjogMXB4IHNvbGlkIHJlZDsiPgogICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsi
IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgpAQCAtMTYsOSArMTUsNyBAQAogICAgICAgICA8
L3N2Zz4KICAgICA8L2Rpdj4KICAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiByZXBhaW50
VGVzdCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Qm94
Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4Iik7Ci0gICAgICAgIH0KKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQcm9wZXJ0
eSgid2lkdGgiLCAiNDAwcHgiKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXph
dGlvbi1jcmFzaC1leHBlY3RlZC5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1wcm9w
ZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjVj
N2I2MGY1ODMxOGQyNWM3MTllYjFlMTYxMzhkYWIyZTIzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gt
ZXhwZWN0ZWQuc3ZnCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorPC9zdmc+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0
b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmN2U2ZTkxYzgxYjUwNDA2
ZjQ1MWE3OTdjMzdjZTU2ZTA2NDUyMTBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNo
cm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTogRXJyb3I6IFByb2JsZW0gcGFyc2luZyBwb2lu
dHM9IjAiCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogRXJyb3I6IFByb2JsZW0gcGFyc2luZyBw
b2ludHM9IjAiCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCww
KSBzaXplIDB4MAotICAgICAgICBSZW5kZXJTVkdQYXRoIHtwb2x5bGluZX0gYXQgKDAsMCkgc2l6
ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbcG9pbnRzPSIiXQot
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICBSZW5k
ZXJTVkdQYXRoIHtwb2x5bGluZX0gYXQgKDAsMCkgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbcG9pbnRzPSIiXQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDAsMCkgc2l6ZSAweDAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246272</attachid>
            <date>2015-02-09 07:57:14 -0800</date>
            <delta_ts>2015-02-10 08:25:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141382-20150209075715.patch</filename>
            <type>text/plain</type>
            <size>116664</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZkZDFlY2RlOTM2OGI3
NzlkZjhlMmRlMGQzODA3ZGQwNGYxNTZjNS4uM2E0MWUzZjA4ZTI0NWUxNTczMDg3ZDA5NTU5NjM0
NTVkZTNkNjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NSBAQAorMjAxNS0wMi0wOSAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHVXNlRWxlbWVudCBmb2xs
b3ctdXAgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudENsaWVudC5oOiBSZW1v
dmVkIHVubmVlZGVkIGZvcndhcmQgZGVjbGFyYXRpb24uCisKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZSBvZiBTVkdVc2VFbGVtZW50Lmgu
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA6
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmNsZWFyVGFyZ2V0RGVwZW5kZW5j
aWVzKTogUmVtb3ZlZCB0b28tc3BlY2lmaWMKKyAgICAgICAgY2hlY2sgdGhhdCBhc3N1bWVkIHRo
YXQgU1ZHIGVsZW1lbnRzIGluIHNoYWRvdyB0cmVlcyBhcmUgYWx3YXlzIGZvciA8dXNlPiBlbGVt
ZW50cy4KKyAgICAgICAgVGhpcyBhbW91bnRlZCB0byBhbiB1bm5lZWRlZCBvcHRpbWl6YXRpb24g
dGhhdCBjb3VsZCBiZSByZW1vdmVkIHdpdGggbm8gYmFkIGVmZmVjdC4KKworICAgICAgICAqIHN2
Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNvcnJlc3Bv
bmRpbmdFbGVtZW50KTogUmVtb3ZlZCB0aGUgYXNzZXJ0aW9ucyBzbyB0aGlzIGNvdWxkCisgICAg
ICAgIGJlIHVzZWQgbW9yZSBmcmVlbHkgb3V0c2lkZSBvZiBjYXNlcyB3aGVyZSB0aGUgc2hhZG93
IHRyZWUgc3RhdGUgaXMgZnVsbHkgY29uc2lzdGVudC4KKyAgICAgICAgSXQncyBmaW5lIHRvIGhh
dmUgdGhpcyBqdXN0IGJlIGEgbWVjaGFuaWNhbCBnZXR0ZXI7IHRoZXJlJ3Mgbm90aGluZyBzdXBl
ci10cmlja3kKKyAgICAgICAgaGVyZSB0aGF0IG5lZWRzIHRvIGJlIGNhdWdodCBieSB0aGUgYXNz
ZXJ0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6dGl0bGUpOiBSZXBsYWNlZCB0
aGUgY29tcGxleCB0aXRsZSBjb2RlIHdpdGggYSBjYWxsIHRvIHRoZQorICAgICAgICBjb3JyZXNw
b25kaW5nVXNlRWxlbWVudCBmdW5jdGlvbi4KKworICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQgYW4gb3Zl
cmxvYWQgdGhhdCBkb2Vzbid0IHJlcXVpcmUgZXhwbGljaXRseQorICAgICAgICBwYXNzaW5nIGlu
IHRoZSB0YWcgbmFtZS4KKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuaDogRGl0dG8uCisgICAg
ICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxl
bWVudDo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDogRGl0
dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6IFJlbW92ZWQgYSBsb3Qgb2Yg
dW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpTVkdV
c2VFbGVtZW50KTogUmVtb3ZlZCBjb2RlIHRvIGluaXRpYWxpemUgc29tZSBib29sZWFucy4KKyAg
ICAgICAgV2UgZG8gdGhhdCBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiBub3cuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpjcmVhdGUpOiBSZW1vdmVkIHRoZSBjb2RlIHRoYXQgY2Fs
bHMgdGhlCisgICAgICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QgZnVuY3Rpb24gdW5jb25k
aXRpb25hbGx5LiBUaGF0J3MgcHJvcGVybHkgZG9uZSB3aGVuCisgICAgICAgIG5lZWRlZDsgbm8g
bmVlZCB0byBkbyBpdCBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6flNW
R1VzZUVsZW1lbnQpOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gZGVzdHJveSB0aGUKKyAgICAg
ICAgc2hhZG93IHRyZWUgKHRoYXQgaGFwcGVucyBhdXRvbWF0aWNhbGx5KSBhbmQgc2ltcGxpZmll
ZCB0aGUgY29kZSB0byBzdG9wIGxvYWRpbmcKKyAgICAgICAgdGhlIGV4dGVybmFsIGRvY3VtZW50
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOiBTaW1wbGlmaWVkIHRoaXMuIFJlbW92ZWQgYXNzdW1wdGlvbnMKKyAgICAgICAgYWJvdXQg
dGhlIGludGVyc2VjdGlvbiBvZiB2YXJpb3VzIHNldHMgb2YgYXR0cmlidXRlcywgYW5kIGFsc28g
cmVtb3ZlZCB0aGUKKyAgICAgICAgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUgZnVuY3Rpb24uIFRoaXMg
c2VlbXMgdG8gc2VydmUgbm8gcHVycG9zZSBoZXJlLCBvciBpbiBhbnkKKyAgICAgICAgb3RoZXIg
U1ZHIGVsZW1lbnQgY2xhc3MuIEkgcGxhbiB0byByZW1vdmUgaXQgZXZlcnl3aGVyZSBvdmVyIHRp
bWUuCisgICAgICAgIChXZWJDb3JlOjppc1dlbGxGb3JtZWREb2N1bWVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjppbnNlcnRlZEludG8pOiBTaW1wbGlmaWVk
IGNvZGUgYnkgcmVtb3ZpbmcgYWxsIHRoZQorICAgICAgICBzcGVjaWFsIGNhc2VzIGR1cmluZyBp
bml0aWFsIHBhcnNpbmcsIGFuZCBkaWQgdGhlIGludmFsaWRhdGlvbiBoZXJlIHJhdGhlciB0aGFu
CisgICAgICAgIGRlZmVycmluZyBpdCB0byBkaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9ucy4gQWRk
ZWQgYSBjYWxsIHRvIHRoZSBuZXcgZnVuY3Rpb24sCisgICAgICAgIHVwZGF0ZUV4dGVybmFsRG9j
dW1lbnQsIHNpbmNlIHRoYXQgd29uJ3QgZG8gYW55dGhpbmcgd2hlbiB0aGUgZWxlbWVudCBpcyBu
b3QKKyAgICAgICAgaW4gYSBkb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OmRpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR1VzZUVsZW1lbnQ6OnJlbW92ZWRGcm9tKTogQWRkZWQgY29kZSB0byBjYWxsIGNsZWFy
U2hhZG93VHJlZSBhbmQKKyAgICAgICAgdXBkYXRlRXh0ZXJuYWxEb2N1bWVudC4gQm90aCBhcmUg
ZWZmaWNpZW50IHdoZW4gZG9pbmcgbm90aGluZywgYW5kIGJvdGggYXJlCisgICAgICAgIGFwcHJv
cHJpYXRlIHNpbmNlIHRoZSBlbGVtZW50IGlzIG5vIGxvbmdlciBpbiBhIGRvY3VtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cmVmZXJlbmNlZERvY3VtZW50KTogRGVsZXRl
ZC4gTm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4
dGVybmFsRG9jdW1lbnQpOiBTdHJlYW1saW5lZCB0aGUgbG9naWMgaGVyZSwgcmVtb3ZpbmcKKyAg
ICAgICAgbXVsdGlwbGUgdW5uZWVkZWQgY2hlY2tzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNl
RWxlbWVudDo6dHJhbnNmZXJTaXplQXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUpOiBSZW5hbWVkIHNp
bmNlCisgICAgICAgICJ0YXJnZXQgY2xvbmUiIGlzIGNsZWFyIGVub3VnaCB3aXRoaW4gdGhpcyBj
bGFzcywgd2l0aG91dCBleHBsaWNpdGx5IHN0YXRpbmcKKyAgICAgICAgInNoYWRvdyB0cmVlIi4g
QWxsIHRoZSBjbG9uZXMgYXJlIGluIHRoZSBzaGFkb3cgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOiBSZW1vdmVkIHVubmVlZGVkIGNv
ZGUgY2FsbGluZworICAgICAgICBpc1N1cHBvcnRlZEF0dHJpYnV0ZS4gQ2hhbmdlZCB0aGUgY29k
ZSB0aGF0IGRldGVjdHMgY2hhbmdlcyBpbiBocmVmIHRvIGp1c3QKKyAgICAgICAgY2FsbCB1cGRh
dGVFeHRlcm5hbERvY3VtZW50IChmb3IgdGhlIGRvY3VtZW50IFVSTCkgYW5kIGludmFsaWRhdGVT
aGFkb3dUcmVlCisgICAgICAgIChmb3IgdGhlIGZyYWdtZW50KS4gQWxzbyB1cGRhdGVkIHRoZSB0
cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSBsb2dpYworICAgICAgICB0byBvbmx5
IHRyaWdnZXIgb24gd2lkdGggYW5kIGhlaWdodCBhbmQgdXBkYXRlZCBuYW1lcy4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OndpbGxBdHRhY2hSZW5kZXJlcnMpOiBVcGRhdGVkIGZv
ciB0aGUgbmV3IG5hbWUgb2YKKyAgICAgICAgbV9zaG91bGRSZWJ1aWxkU2hhZG93VHJlZSBhbmQg
YWRkZWQgYSBjYWxsIHRocm91Z2ggdG8gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBbGxvd2VkRWxlbWVudFNldCk6IEFkZGVkLiBBIG1vcmUgZWZmaWNpZW50IHdheSB0
byBpbXBsZW1lbnQKKyAgICAgICAgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBzZXQgZm9yIGlz
RGlzYWxsb3dlZEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjppc0Rpc2FsbG93ZWRFbGVtZW50
KTogU2ltcGxpZmllZCB0aGlzIGJ5IHVzaW5nIHRoZSBmdW5jdGlvbiBhYm92ZSwKKyAgICAgICAg
YW5kIGFsc28gb3ZlcmxvYWRlZCBmb3IgYm90aCBTVkdFbGVtZW50IGFuZCBFbGVtZW50IGZvciBh
IHRpbnkgZWZmaWNpZW5jeSBib29zdC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6
OmNsZWFyU2hhZG93VHJlZSk6IFJlbmFtZWQgZm9ybSBjbGVhclJlc291cmNlUmVmZXJlbmNlcy4K
KyAgICAgICAgVGhpcyBpcyBhIG11Y2ggbW9yZSBzdHJhaWdodGZvcndhcmQgbmFtZS4gQWxzbyBk
ZWxldGVkIHRoZSBjb2RlIHRoYXQgc2V0cyB0aGUKKyAgICAgICAgbV9uZWVkc1NoYWRvd1RyZWVS
ZWNyZWF0aW9uIGZsYWcgdG8gZmFsc2UuIFRoYXQgc2hvdWxkIGJlIGRvbmUgYnkgdGhlIGJ1aWxk
CisgICAgICAgIGZ1bmN0aW9uLCBub3QgaGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKTogTWFkZSB0aGlzIGp1c3QgaW52YWxpZGF0ZSB0
aGUKKyAgICAgICAgc2hhZG93IHRyZWUgbm93IGluc3RlYWQgb2YgZXhwbGljaXRseSBidWlsZGlu
ZyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnVwZGF0ZVNoYWRvd1RyZWUp
OiBNb3ZlZCB0aGUgY29kZSB0byBjcmVhdGUgYSBzaGFkb3cKKyAgICAgICAgdHJlZSBoZXJlIGZy
b20gYnVpbGRQZW5kaW5nUmVzb3VyY2UuIEFMc28gY2hhbmdlZCB0aGUgbG9naWMgc28gdGhhdCB3
ZQorICAgICAgICBhbHdheXMgYmxvdyBhd2F5IHRoZSBvbGQgc2hhZG93IHRyZWUuIE1vdmVkIHRo
ZSBjb21tZW50IGFib3V0IHJlYnVpbGRpbmcgdGhpbmdzCisgICAgICAgIGV2ZXJ5IHRpbWUgaGVy
ZS4gVXBkYXRlZCB0aGUgY29kZSB0byB1c2UgdGhlIGZpbmRUYXJnZXQgYW5kIGNsb25lVGFyZ2V0
IGZ1bmN0aW9ucywKKyAgICAgICAgZWxpbWluYXRpbmcgdGhlIGJ1aWxkU2hhZG93VHJlZSBmdW5j
dGlvbiBlbnRpcmVseS4gTW92ZWQgdGhlIGNhbGwgdG8KKyAgICAgICAgdHJhbnNmZXJTaXplQXR0
cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENsb25lIGluc2lkZSBjbG9uZVRhcmdldC4gQWxzbyB1
cGRhdGVkCisgICAgICAgIGZvciB0aGUgbmFtZSBjaGFuZ2UgZm9yIG1fc2hvdWxkUmVidWlsZFNo
YWRvd1RyZWUuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp0YXJnZXRDbG9uZSk6
IFJlbmFtZWQgZnJvbSBzaGFkb3dUcmVlVGFyZ2V0Q2xvbmUuCisgICAgICAgIE5vIG5lZWQgdG8g
ZW1waGFzaXplICJzaGFkb3cgdHJlZSIgc2luY2UgdGhhdCdzIHdoZXJlIGFsbCBjbG9uZXMgYXJl
LgorICAgICAgICAoV2ViQ29yZTo6aXNEaXJlY3RSZWZlcmVuY2UpOiBTdHJlYW1saW5lZCBhIGJp
dCB1c2luZyAidXNpbmcgbmFtZXNwYWNlIi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OnRvQ2xpcFBhdGgpOiBSZXdyb3RlIHRvIHVzZSBlYXJseSByZXR1cm4gYW5kIHVwZGF0ZWQK
KyAgICAgICAgZm9yIG5hbWUgY2hhbmdlcy4gQWxzbyB1c2VkIEFTQ0lJTGl0ZXJhbC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnJlbmRlcmVyQ2xpcENoaWxkKTogQ2hhbmdlZCBs
b2NhbCB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURpc2FsbG93ZWRF
bGVtZW50c0Zyb21TdWJ0cmVlKTogV3JvdGUgdGhlIGl0ZXJhdGlvbiBpbiBhCisgICAgICAgIHNs
aWdodGx5IG1vcmUgaWRpb21hdGljIHN0eWxlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxl
bWVudDo6ZmluZFRhcmdldCk6IEFkZGVkLiBUaGlzIG5ldyBmdW5jdGlvbiBpbXBsZW1lbnRzCisg
ICAgICAgIHRoZSBydWxlIGZvciBmaW5kaW5nIGEgdmFsaWQgdGFyZ2V0IGZvciBhIHVzZSBlbGVt
ZW50LiBUaGlzIHJlcGxhY2VzIGxvZ2ljCisgICAgICAgIHRoYXQgd2FzIGR1cGxpY2F0ZWQgaW4g
dHdvIGRpZmZlcmVudCBwbGFjZXMgYW5kIGl0IGFsc28gaW5jbHVkZXMgYWxsIHRoZQorICAgICAg
ICBydWxlcyB0aGF0IHdlcmUgZm9ybWVybHkgaW4gdGhlIGlzVmFsaWRUYXJnZXQgZnVuY3Rpb24u
IEFsc28sIHRoaXMgaW1wbGVtZW50cworICAgICAgICBhIGNvcnJlY3QgY2hlY2sgZm9yIGEgY3lj
bGUgdGhhdCBoYW5kbGVzIGNhc2VzIHRoZSBjb2RlIGluIGlzVmFsaWRUYXJnZXQgZGlkIG5vdC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmlzVmFsaWRUYXJnZXQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQpOiBBZGRlZC4g
SGVscGVyIGZ1bmN0aW9uIHVzZWQgYm90aCB3aGVuCisgICAgICAgIGNsb25pbmcgdGhlIHRhcmdl
dCBvZiB0aGUgdG9wIGxldmVsIDx1c2U+IGVsZW1lbnRzIGFuZCBmb3Igb3RoZXIgPHVzZT4gZWxl
bWVudHMKKyAgICAgICAgaW5zaWRlIHRoZSBzaGFkb3cgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6
OmNsb25lRGF0YUFuZENoaWxkcmVuKTogQWRkZWQuIEhlbHBlciBmdW5jdGlvbiB0aGF0IGFsbG93
cyBib3RoIHRoZQorICAgICAgICA8dXNlPiBhbmQgPHN5bWJvbD4gZWxlbWVudCBleHBhbmRpbmcg
ZnVuY3Rpb25zIHRvIGJlIHNob3J0ZXIgYW5kIHNoYXJlIG1vcmUgY29kZS4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKTogUmVt
b3ZlZCB1bm5lZWRlZCBjaGVja3MKKyAgICAgICAgb2YgY2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9h
ZGluZy4gVXNlZCB0aGUgbmV3IGZpbmRUYXJnZXQgZnVuY3Rpb24sIHdoaWNoIGhhbmRsZXMKKyAg
ICAgICAgZmluZGluZyB0aGUgdGFyZ2V0IGNyb3NzLWRvY3VtZW50IGNvcnJlY3RseS4gUmVtb3Zl
ZCB0aGUgaW5jb3JyZWN0IHVzZSBvZgorICAgICAgICByZWZlcmVuY2VkRG9jdW1lbnQgd2hlbiBj
cmVhdGluZyBuZXcgZWxlbWVudHMgYW5kIGZpbmRpbmcgdGFyZ2V0cy4gUmVmYWN0b3JlZAorICAg
ICAgICB0byB1c2UgdGhlIG5ldyBjbG9uZURhdGFBbmRDaGlsZHJlbiBmdW5jdGlvbiBhbmQgYWxz
byBtb3ZlZCB0aGUgY29kZSB0aGF0IHJlbW92ZXMKKyAgICAgICAgdGhlIHNwZWNpYWwgYXR0cmli
dXRlcyBoZXJlLCByZXBsYWNpbmcgdGhlIHRyYW5zZmVyQXR0cmlidXRlc1RvU2hhZG93VHJlZVJl
cGxhY2VtZW50CisgICAgICAgIGZ1bmN0aW9uLiBNYWRlIGEgZmV3IG90aGVyIHNpbXBsaWZpY2F0
aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4cGFuZFN5bWJvbEVsZW1l
bnRzSW5TaGFkb3dUcmVlKTogRGl0dG8sIGp1c3QgbGlrZSB0aGUKKyAgICAgICAgPHVzZT4gY2hh
bmdlcyBvbmx5IHNpbXBsZXIuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp0cmFu
c2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKTogTWFkZSB0aGlzIGNvbnN0LgorICAgICAg
ICBSZW1vdmVkIHVubmVlZGVkIGFzc2VydGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjppbnZhbGlkYXRlU2hhZG93VHJlZSk6IFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aW52YWxpZGF0ZURlcGVuZGVudFNoYWRv
d1RyZWVzKTogUmVtb3ZlZCBhc3NlcnRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVt
ZW50Ojp0cmFuc2ZlckF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVSZXBsYWNlbWVudCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KTogVHdlYWtlZCBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6Om5vdGlm
eUZpbmlzaGVkKTogTWFkZSB0aGlzIGNhbGwgaW52YWxpZGF0ZVNoYWRvd1RyZWUKKyAgICAgICAg
dW5jb25kaXRpb25hbGx5IHNpbmNlIGl0IGRvZXMgbm8gaGFybSB0byBkbyB0aGlzIGZvciBlbGVt
ZW50cyBub3QgaW4gYSBkb2N1bWVudC4KKyAgICAgICAgSXQncyBhY3R1YWxseSB1bmNsZWFyIGhv
dyB0aGlzIGZ1bmN0aW9uIGNvdWxkIGV2ZXIgYmUgY2FsbGVkIHdoZW4gIWluRG9jdW1lbnQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmNhY2hlZERvY3VtZW50SXNTdGlsbExv
YWRpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZmluaXNo
UGFyc2luZ0NoaWxkcmVuKTogUmVtb3ZlZCB0aGUgY29kZSB0aGF0IGNhbGxzCisgICAgICAgIGJ1
aWxkUGVuZGluZ1Jlc291cmNlIGhlcmUuIFNoYWRvdyB0cmVlIHVwZGF0aW5nIGlzIGRyaXZlbiBz
b2xlbHkgYnkgcmVuZGVyZXIKKyAgICAgICAgZ2VuZXJhdGlvbiBub3cuCisgICAgICAgIChXZWJD
b3JlOjpTVkdVc2VFbGVtZW50Ojp1cGRhdGVFeHRlcm5hbERvY3VtZW50KTogUmVwbGFjZWQgc2V0
Q2FjaGVkRG9jdW1lbnQKKyAgICAgICAgd2l0aCB0aGlzLiBUaGlzIGZ1bmN0aW9uIGtub3dzIGhv
dyB0byBsb2FkIGEgZGlmZmVyZW50IGRvY3VtZW50IGlmIHRoZSBVUkwKKyAgICAgICAgaGFzIGNo
YW5nZWQsIG9yIGxlYXZlIGl0IGFsb25lIGlmIG5vdCwgYW5kIGFsc28gc3RvcCB0aGUgbG9hZCBp
ZiBpdCBzaG91bGQuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojppc1ZhbGlkKTog
TW92ZWQgdGhpcyBoZXJlIGZyb20gdGhlIGhlYWRlciwgc2luY2UgaXQncworICAgICAgICBhbHdh
eXMgYmVpbmcgY2FsbGVkIHZpcnR1YWxseS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1l
bnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVXNlRWxlbWVudDo6c2V0SGF2ZUZpcmVkTG9hZEV2ZW50KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpoYXZlRmlyZWRMb2FkRXZlbnQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0xvYWRFdmVudFRpbWVyKTogRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1
ZGUuIE1vdmVkIHRoZSBhbmltYXRlZCBwcm9wZXJ0aWVzCisgICAgICAgIHRvIHRoZSB0b3Agb2Yg
dGhlIGNsYXNzIGJlY2F1c2UgdGhleSBhcmUgcHVibGljIERPTSBBUEkgYW5kIHNvIGFyZSBsb2dp
Y2FsIHRvCisgICAgICAgIGxpc3QgZmlyc3QuIEknZCBsaWtlIHRvIGRvIHRoYXQgZm9yIG90aGVy
IGNsYXNzZXMgdG9vIG92ZXIgdGltZS4gQ2hhbmdlZCB0bworICAgICAgICBkZXJpdmUgcHJpdmF0
ZWx5IGZyb20gQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuIE1hZGUgdGhlIGZ1bmN0aW9uCisgICAg
ICAgIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcyBwcml2YXRlLiBSZW1vdmVkIGRpZE5v
dGlmeVN1YnRyZWVJbnNlcnRpb25zLAorICAgICAgICBpc1N1cHBvcnRlZEF0dHJpYnV0ZSwgY2xl
YXJSZXNvdXJjZVJlZmVyZW5jZXMsIGJ1aWxkU2hhZG93VHJlZSwKKyAgICAgICAgdHJhbnNmZXJB
dHRyaWJ1dGVzVG9TaGFkb3dUcmVlUmVwbGFjZW1lbnQsIGlzUGFyc2VySW5zZXJ0ZWQsIGFuZAor
ICAgICAgICBtX3dhc0luc2VydGVkQnlQYXJzZXIuIEFkZGVkIHVwZGF0ZUV4dGVybmFsRG9jdW1l
bnQsIGNsb25lVGFyZ2V0LCB0YXJnZXRDbG9uZSwKKyAgICAgICAgdXBkYXRlU2hhZG93VHJlZSwg
YW5kIGNsZWFyU2hhZG93VHJlZS4gQWxzbyBkaWQgYSBjb3VwbGUgb3RoZXIgcmVuYW1lcywKKyAg
ICAgICAgaW5jbHVkaW5nIHJlbmFtaW5nIG1fY2FjaGVkRG9jdW1lbnQgdG8gbV9leHRlcm5hbERv
Y3VtZW50LgorCisgICAgICAgICogc3ZnL3N2Z3RhZ3MuaW46IFJlbW92ZWQgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciBmcm9tIHRoZSA8dXNlPgorICAgICAgICBlbGVtZW50IHNpbmNl
IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIGNvbnN0cnVjdGluZyBieSB0aGUgcGFyc2VyIHNwZWNp
YWxseS4KKwogMjAxNS0wMi0wOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYOiBWb2ljZU92ZXIgYXBwZWFycyB1bnJlc3BvbnNpdmUgd2hlbiBKYXZh
U2NyaXB0IGFsZXJ0cyBhcmUgdHJpZ2dlcmVkIHZpYSBmb2N1cyBvciBibHVyIGV2ZW50cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGll
bnQuaAppbmRleCA5YzVhMWUyZmQyMzc2ODViZTFiYjUwMjkzYjhkZGMwMzcyNDM0NTgyLi4zNmFl
ZjI5YmU3NTgyYTRiZGNmODBmYWQ3ZjFkOWNiZWIwYzRjNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaApAQCAtMjcs
OCArMjcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhY2hlZFNWR0RvY3Vt
ZW50OwotCiBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudENsaWVudCA6IHB1YmxpYyBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZHRG9jdW1lbnRDbGll
bnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA4MzVkNjIzMzlj
ODc4ZmYwODYwMTY1NDE0NjVhYjY5YmI0YzUwZDE4Li5hMjE4ODI2NDAwNDkwZmY0OGZjYTQwZjY4
N2VjMTJhZjY5NDA3OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC04
MSw3ICs4MSw2IEBACiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5j
bHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNW
R1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNj
cm9sbExhdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5jcHAKaW5kZXggMGYwZTFkYWJhNDJmNTk0NjVjNTBlMDBlYmM5MzM0OWI1NmRlMmQxNC4u
MDI3MDNkM2RmOTYwNmM4Y2JiYWZiOWE1ZWQ1MDA1ODZjMjJmZDhkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAi
U1ZHVXNlRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggMzZkZTM3N2IyNzAzOWJhOWMw
MWRiOWE1MjdhOWUyMjkwYmFlMmRjOS4uNWFmZDczYThhOGY4ZWY4NjkyYmM0YzFhYTlkMDAxNWNh
ZGU5YTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5z
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5j
cHAKQEAgLTM0MSwxMyArMzQxLDYgQEAgdm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlYnVp
bGRFbGVtZW50cygpCiAKIHZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpjbGVhclRhcmdldERl
cGVuZGVuY2llcyhTVkdFbGVtZW50JiByZWZlcmVuY2VkRWxlbWVudCkKIHsKLSAgICBpZiAocmVm
ZXJlbmNlZEVsZW1lbnQuaXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICAvLyBUaGUgaG9zdCBl
bGVtZW50IChlLmcuIDx1c2U+KSBvZiB0aGUgc2hhZG93IHJvb3Qgd2lsbCByZWJ1aWxkIHRoZSBz
aGFkb3cgdHJlZQotICAgICAgICAvLyBhbmQgYWxsIGl0cyByZWZlcmVuY2VzLgotICAgICAgICBB
U1NFUlQocmVmZXJlbmNlZEVsZW1lbnQuc2hhZG93Um9vdCgpKTsKLSAgICAgICAgQVNTRVJUKG1f
cmVidWlsZEVsZW1lbnRzLmNvbnRhaW5zKHJlZmVyZW5jZWRFbGVtZW50LnNoYWRvd1Jvb3QoKS0+
aG9zdEVsZW1lbnQoKSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIGF1dG8gaXQgPSBt
X2VsZW1lbnREZXBlbmRlbmNpZXMuZmluZCgmcmVmZXJlbmNlZEVsZW1lbnQpOwogICAgIGlmIChp
dCA9PSBtX2VsZW1lbnREZXBlbmRlbmNpZXMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBiNjkxYTY2NTJlOTQ0Y2YwOGI4NDUxMDUwNzM0OTA5
ZmQ1ZjY5OThlLi5jYmFlOTM1MjQ1N2ZiZDBhN2VjZTJiOGQ5Njc2NWQwNTFlNjNlOWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC00NzYsNyArNDc2LDYgQEAgdm9pZCBTVkdFbGVt
ZW50OjpjdXJzb3JJbWFnZVZhbHVlUmVtb3ZlZCgpCiAKIFNWR0VsZW1lbnQqIFNWR0VsZW1lbnQ6
OmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIW1fc3ZnUmFyZURh
dGEgfHwgIW1fc3ZnUmFyZURhdGEtPmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgfHwgY29ycmVzcG9u
ZGluZ1VzZUVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIG1fc3ZnUmFyZURhdGEgPyBtX3N2Z1JhcmVE
YXRhLT5jb3JyZXNwb25kaW5nRWxlbWVudCgpIDogbnVsbHB0cjsKIH0KIApAQCAtOTYxLDIxICs5
NjAsMTIgQEAgU3RyaW5nIFNWR0VsZW1lbnQ6OnRpdGxlKCkgY29uc3QKICAgICBpZiAoaXNPdXRl
cm1vc3RTVkdTVkdFbGVtZW50KCkgJiYgZG9jdW1lbnQoKS50b3BEb2N1bWVudCgpLmlzU1ZHRG9j
dW1lbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgLy8gV2FsayB1cCB0aGUg
dHJlZSwgdG8gZmluZCBvdXQgd2hldGhlciB3ZSdyZSBpbnNpZGUgYSA8dXNlPiBzaGFkb3cgdHJl
ZSwgdG8gZmluZCB0aGUgcmlnaHQgdGl0bGUuCi0gICAgaWYgKGlzSW5TaGFkb3dUcmVlKCkpIHsK
LSAgICAgICAgRWxlbWVudCogc2hhZG93SG9zdEVsZW1lbnQgPSBkb3duY2FzdDxTaGFkb3dSb290
Pih0cmVlU2NvcGUoKS5yb290Tm9kZSgpKS5ob3N0RWxlbWVudCgpOwotICAgICAgICAvLyBBdCB0
aGlzIHRpbWUsIFNWRyBub2RlcyBhcmUgbm90IGFsbG93ZWQgaW4gbm9uLTx1c2U+IHNoYWRvdyB0
cmVlcywgc28gYW55IHNoYWRvdyByb290IHdlIGRvCi0gICAgICAgIC8vIGhhdmUgc2hvdWxkIGJl
IGEgdXNlLiBUaGUgYXNzZXJ0IGFuZCBmb2xsb3dpbmcgdGVzdCBpcyBoZXJlIHRvIGNhdGNoIGZ1
dHVyZSBzaGFkb3cgRE9NIGNoYW5nZXMKLSAgICAgICAgLy8gdGhhdCBkbyBlbmFibGUgU1ZHIGlu
IGEgc2hhZG93IHRyZWUuCi0gICAgICAgIEFTU0VSVCghc2hhZG93SG9zdEVsZW1lbnQgfHwgc2hh
ZG93SG9zdEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnVzZVRhZykpOwotICAgICAgICBp
ZiAoc2hhZG93SG9zdEVsZW1lbnQgJiYgc2hhZG93SG9zdEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnVzZVRhZykpIHsKLSAgICAgICAgICAgIFNWR1VzZUVsZW1lbnQmIHVzZUVsZW1lbnQg
PSBkb3duY2FzdDxTVkdVc2VFbGVtZW50Pigqc2hhZG93SG9zdEVsZW1lbnQpOwotCi0gICAgICAg
ICAgICAvLyBJZiB0aGUgPHVzZT4gdGl0bGUgaXMgbm90IGVtcHR5IHdlIGZvdW5kIHRoZSB0aXRs
ZSB0byB1c2UuCi0gICAgICAgICAgICBTdHJpbmcgdXNlVGl0bGUodXNlRWxlbWVudC50aXRsZSgp
KTsKLSAgICAgICAgICAgIGlmICghdXNlVGl0bGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAg
IHJldHVybiB1c2VUaXRsZTsKLSAgICAgICAgfQorICAgIC8vIEFsbCBpbnN0YW5jZXMgaW5zaWRl
IHRoZSA8dXNlPiBzaGFkb3cgdHJlZSBzaGFyZSB0aGUgdGl0bGUgb2YgdGhlIDx1c2U+IGVsZW1l
bnQuCisgICAgLy8gRklYTUU6IFdoeSwgZXhhY3RseSwgaXMgdGhpcyBoZWxwZnVsPworICAgIGlm
IChhdXRvKiB1c2VFbGVtZW50ID0gY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQoKSkgeworICAgICAg
ICBTdHJpbmcgdGl0bGUgPSB1c2VFbGVtZW50LT50aXRsZSgpOworICAgICAgICBpZiAoIXRpdGxl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB0aXRsZTsKICAgICB9CiAKICAgICAvLyBJ
ZiB3ZSBhcmVuJ3QgYW4gaW5zdGFuY2UgaW4gYSA8dXNlPiBvciB0aGUgPHVzZT4gdGl0bGUgd2Fz
IG5vdCBmb3VuZCwgdGhlbiBmaW5kIHRoZSBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5j
cHAKaW5kZXggYmY3Zjk0YmMyZTc2NWI3MjMxZGI4OWZkNWVjYmZmMjAwODc3NWQ1ZS4uYTIxZjky
ODJjNjE0YTZmYjc5YTRlYmY3MGVkYTllMmFhZWEzZTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0Vs
ZW1lbnQuY3BwCkBAIC00OSw2ICs0OSwxMSBAQCBSZWY8U1ZHR0VsZW1lbnQ+IFNWR0dFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvYwogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKK1JlZjxTVkdHRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIGNyZWF0ZShTVkdOYW1lczo6Z1RhZywgZG9jdW1lbnQpOworfQor
CiBib29sIFNWR0dFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFs
aWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgK
aW5kZXggY2MxZmM1NWY2OTZhYTNhMTYwNDMxMTk2N2IxZmJhYmJjZDlmNDI5Ni4uMzVjZTEwYWY1
NTJkMzM5NjQ5NjAxNDU5NzU2N2ZiMjIwNjkxMWRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50
LmgKQEAgLTMxLDYgKzMxLDcgQEAgY2xhc3MgU1ZHR0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZH
R3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdHRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8U1ZHR0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIFNW
R0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IGM4ZDM4ZDllYjhhZWFlMWIwZTc2ODdjZTFlNGQ4YzNi
ZjRkOGJiMTEuLjdiYzhjNDIyMWMwMzE5NjBmMWZlOTk0NzA3OTQ1YThjZjI2OTJlMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTk5LDYgKzk5LDExIEBAIFJlZjxTVkdT
VkdFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCitSZWY8U1ZHU1ZHRWxlbWVudD4gU1ZHU1ZHRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gY3JlYXRlKFNWR05h
bWVzOjpzdmdUYWcsIGRvY3VtZW50KTsKK30KKwogU1ZHU1ZHRWxlbWVudDo6flNWR1NWR0VsZW1l
bnQoKQogewogICAgIGlmIChtX3ZpZXdTcGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgK
aW5kZXggNjdjMmU0NWQ4YjI3OTM4NTI5MGI5N2ZhNDFkMzVlOWViODQ0NzYzMi4uOGY5YWVkNzM4
MTYxODM2Mjg1MGI4MTE0MmIyMmUwYjNlZmIwNWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIFNWR1NWR0VsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHR3JhcGhpY3NFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdab29tQW5kUGFuIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1NWR0VsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PFNWR1NWR0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgU1ZHR3JhcGhp
Y3NFbGVtZW50OjpyZWY7CiAgICAgdXNpbmcgU1ZHR3JhcGhpY3NFbGVtZW50OjpkZXJlZjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA1ZjMyMGI3YjVjMDQyZTI3MWZkYTFh
MmVlNjBjYTczNTRiZjc0OGU0Li4zMzcyZTU1OTRmMWQ2YTQ2MWZlYzhkZWIyZDYyMGQ0Y2VhZDgw
ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yNywzNCArMjcsMTkg
QEAKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkNhY2hlZFNWR0RvY3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
bGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TGlz
dGVuZXIuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJOb2RlUmVuZGVyU3R5
bGUuaCIKLSNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlJl
bmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTVkdFbGVtZW50UmFy
ZURhdGEuaCIKICNpbmNsdWRlICJTVkdHRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aENv
bnRleHQuaCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N5bWJvbEVsZW1l
bnQuaCIKLSNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5o
IgotI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCi0jaW5jbHVkZSAiWE1MU2VyaWFsaXpl
ci5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIEFuaW1hdGVkIHByb3BlcnR5IGRlZmluaXRpb25zCiBERUZJTkVfQU5JTUFURURf
TEVOR1RIKFNWR1VzZUVsZW1lbnQsIFNWR05hbWVzOjp4QXR0ciwgWCwgeCkKIERFRklORV9BTklN
QVRFRF9MRU5HVEgoU1ZHVXNlRWxlbWVudCwgU1ZHTmFtZXM6OnlBdHRyLCBZLCB5KQogREVGSU5F
X0FOSU1BVEVEX0xFTkdUSChTVkdVc2VFbGVtZW50LCBTVkdOYW1lczo6d2lkdGhBdHRyLCBXaWR0
aCwgd2lkdGgpCkBAIC03MiwxNSArNTcsMTIgQEAgQkVHSU5fUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdVc2VFbGVtZW50KQogICAgIFJFR0lTVEVSX1BBUkVOVF9BTklNQVRFRF9QUk9Q
RVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkKIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKLWlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyKQoraW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKICAgICAs
IG1feShMZW5ndGhNb2RlSGVpZ2h0KQogICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCiAg
ICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93YXNJbnNlcnRlZEJ5UGFy
c2VyKHdhc0luc2VydGVkQnlQYXJzZXIpCi0gICAgLCBtX2hhdmVGaXJlZExvYWRFdmVudChmYWxz
ZSkKLSAgICAsIG1fbmVlZHNTaGFkb3dUcmVlUmVjcmVhdGlvbihmYWxzZSkKICAgICAsIG1fc3Zn
TG9hZEV2ZW50VGltZXIoKnRoaXMsICZTVkdFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChoYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSk7CkBAIC04
OCw0MyArNzAsMjIgQEAgaW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3UKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR1VzZUVsZW1lbnQoKTsKIH0KIAotUmVmPFNWR1VzZUVsZW1lbnQ+
IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlcikKK1JlZjxTVkdVc2VFbGVt
ZW50PiBTVkdVc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIC8vIEFsd2F5cyBidWlsZCBhICNzaGFkb3ctcm9v
dCBmb3IgU1ZHVXNlRWxlbWVudC4KLSAgICBSZWY8U1ZHVXNlRWxlbWVudD4gdXNlID0gYWRvcHRS
ZWYoKm5ldyBTVkdVc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCB3YXNJbnNlcnRlZEJ5UGFy
c2VyKSk7Ci0gICAgdXNlLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7Ci0gICAgcmV0dXJu
IHVzZTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdVc2VFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKIFNWR1VzZUVsZW1lbnQ6On5TVkdVc2VFbGVtZW50KCkKIHsKLSAgICBz
ZXRDYWNoZWREb2N1bWVudCgwKTsKLQotICAgIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7Ci19
Ci0KLWJvb2wgU1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7Ci0gICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKLSAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmFkZChTVkdOYW1lczo6eEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmFkZChTVkdOYW1lczo6eUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5n
ZXQoKS5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwotICAgIH0KLSAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOworICAgIGlmIChtX2V4dGVybmFsRG9jdW1lbnQpCisgICAgICAgIG1fZXh0ZXJu
YWxEb2N1bWVudC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9y
OwogCi0gICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShuYW1lKSkKLSAgICAgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAo
bmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpCisgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRy
KQogICAgICAgICBzZXRYQmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVX
aWR0aCwgdmFsdWUsIHBhcnNlRXJyb3IpKTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVz
Ojp5QXR0cikKICAgICAgICAgc2V0WUJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5n
dGhNb2RlSGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvcikpOwpAQCAtMTMyLDY4ICs5MywzOSBAQCB2
b2lkIFNWR1VzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZwogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5n
dGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWRO
ZWdhdGl2ZUxlbmd0aHMpKTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRB
dHRyKQogICAgICAgICBzZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVu
Z3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocykp
OwotICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
Ci0gICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpCi0gICAgICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKLSAgICB9IGVsc2UKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJv
ciwgbmFtZSwgdmFsdWUpOwotfQogCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotc3RhdGljIGlubGlu
ZSBib29sIGlzV2VsbEZvcm1lZERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBp
ZiAoZG9jdW1lbnQuaXNTVkdEb2N1bWVudCgpIHx8IGRvY3VtZW50LmlzWEhUTUxEb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8WE1MRG9jdW1lbnRQYXJzZXIqPihkb2N1bWVu
dC5wYXJzZXIoKSktPndlbGxGb3JtZWQoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZH
TGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHVVJJUmVmZXJl
bmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9Ci0jZW5kaWYKIAogTm9kZTo6SW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBTVkdVc2VFbGVtZW50OjppbnNlcnRlZEludG8oQ29u
dGFpbmVyTm9kZSYgcm9vdFBhcmVudCkKIHsKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6Omluc2Vy
dGVkSW50byhyb290UGFyZW50KTsKLSAgICBpZiAoIXJvb3RQYXJlbnQuaW5Eb2N1bWVudCgpKQot
ICAgICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKLSAgICBBU1NFUlQoIWhhc1BlbmRpbmdSZXNv
dXJjZXMoKSB8fCAhaXNXZWxsRm9ybWVkRG9jdW1lbnQoZG9jdW1lbnQoKSkpOwotICAgIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6Omluc2VydGVkSW50b0RvY3VtZW50KHRoaXMpOwotICAg
IGlmICghbV93YXNJbnNlcnRlZEJ5UGFyc2VyKQotICAgICAgICByZXR1cm4gSW5zZXJ0aW9uU2hv
dWxkQ2FsbERpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zOworICAgIGlmIChpbkRvY3VtZW50KCkp
IHsKKyAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQodGhpcyk7CisgICAgICAgIGludmFsaWRhdGVTaGFkb3dUcmVlKCk7CisgICAgICAgIHVw
ZGF0ZUV4dGVybmFsRG9jdW1lbnQoKTsKKyAgICB9CiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7
CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6ZGlkTm90aWZ5U3VidHJlZUluc2VydGlvbnMoQ29u
dGFpbmVyTm9kZSopCi17Ci0gICAgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKLX0KLQogdm9pZCBT
VkdVc2VFbGVtZW50OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiByb290UGFyZW50KQogewog
ICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cmVtb3ZlZEZyb20ocm9vdFBhcmVudCk7Ci0gICAgaWYg
KHJvb3RQYXJlbnQuaW5Eb2N1bWVudCgpKQotICAgICAgICBjbGVhclJlc291cmNlUmVmZXJlbmNl
cygpOworICAgIGNsZWFyU2hhZG93VHJlZSgpOworICAgIHVwZGF0ZUV4dGVybmFsRG9jdW1lbnQo
KTsKIH0KIAotRG9jdW1lbnQqIFNWR1VzZUVsZW1lbnQ6OnJlZmVyZW5jZWREb2N1bWVudCgpIGNv
bnN0CitpbmxpbmUgRG9jdW1lbnQqIFNWR1VzZUVsZW1lbnQ6OmV4dGVybmFsRG9jdW1lbnQoKSBj
b25zdAogewotICAgIGlmICghaXNFeHRlcm5hbFVSSVJlZmVyZW5jZShocmVmKCksIGRvY3VtZW50
KCkpKQotICAgICAgICByZXR1cm4gJmRvY3VtZW50KCk7Ci0gICAgcmV0dXJuIGV4dGVybmFsRG9j
dW1lbnQoKTsKKyAgICByZXR1cm4gbV9leHRlcm5hbERvY3VtZW50ID8gbV9leHRlcm5hbERvY3Vt
ZW50LT5kb2N1bWVudCgpIDogbnVsbHB0cjsKIH0KIAotRG9jdW1lbnQqIFNWR1VzZUVsZW1lbnQ6
OmV4dGVybmFsRG9jdW1lbnQoKSBjb25zdAotewotICAgIGlmIChtX2NhY2hlZERvY3VtZW50ICYm
IG1fY2FjaGVkRG9jdW1lbnQtPmlzTG9hZGVkKCkpIHsKLSAgICAgICAgLy8gR3JhY2VmdWxseSBo
YW5kbGUgZXJyb3IgY29uZGl0aW9uLgotICAgICAgICBpZiAobV9jYWNoZWREb2N1bWVudC0+ZXJy
b3JPY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIEFTU0VSVChtX2Nh
Y2hlZERvY3VtZW50LT5kb2N1bWVudCgpKTsKLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkRG9jdW1l
bnQtPmRvY3VtZW50KCk7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi12b2lkIFNWR1VzZUVs
ZW1lbnQ6OnRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVUYXJnZXRDbG9uZShTVkdF
bGVtZW50JiBzaGFkb3dFbGVtZW50KSBjb25zdAordm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2Zl
clNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZShTVkdFbGVtZW50JiBzaGFkb3dFbGVtZW50KSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBUaGUgY2hlY2sgZm9yIHZhbHVlSW5TcGVjaWZpZWRVbml0
cyBiZWluZyBub24temVybyBiZWxvdyBpcyBhIHdvcmthcm91bmQgZm9yIHRoZSBmYWN0CiAgICAg
Ly8gdGhhdCB3ZSBjdXJyZW50bHkgaGF2ZSBubyBnb29kIHdheSB0byB0ZWxsIHdoZXRoZXIgYSBw
YXJ0aWN1bGFyIGFuaW1hdGFibGUgYXR0cmlidXRlIGlzIGEgdmFsdWUKQEAgLTIxNSwxOSArMTQ3
LDE0IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJTaXplQXR0cmlidXRlc1RvU2hhZG93
VHJlZVRhcmdldENsb25lKFNWR0VsZW1lbnQmIHNoCiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBp
ZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKGF0dHJOYW1lKSkgewotICAgICAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCiAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAK
ICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05h
bWVzOjp5QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6d2lkdGhBdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKSB7CiAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Ro
c0luZm9ybWF0aW9uKCk7Ci0gICAgICAgIGlmIChTVkdFbGVtZW50KiBzaGFkb3dUcmVlVGFyZ2V0
Q2xvbmUgPSB0aGlzLT5zaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoKSkgewotICAgICAgICAgICAgLy8g
RklYTUU6IEl0J3MgdW5uZWNlc3NhcmlseSBpbmVmZmljaWVudCB0byBkbyB0aGlzIHdvcmsgYW55
IHRpbWUgd2UgY2hhbmdlICJ4IiBvciAieSIuCisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKSB7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogSXQncyB1bm5lY2Vzc2FyaWx5IGluZWZmaWNpZW50IHRvIHVw
ZGF0ZSBib3RoIHdpZHRoIGFuZCBoZWlnaHQgZWFjaCB0aW1lIGVpdGhlciBpcyBjaGFuZ2VkLgot
ICAgICAgICAgICAgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENsb25l
KCpzaGFkb3dUcmVlVGFyZ2V0Q2xvbmUpOworICAgICAgICAgICAgaWYgKGF1dG8qIHRhcmdldENs
b25lID0gdGhpcy0+dGFyZ2V0Q2xvbmUoKSkKKyAgICAgICAgICAgICAgICB0cmFuc2ZlclNpemVB
dHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSgqdGFyZ2V0Q2xvbmUpOwogICAgICAgICB9CiAgICAgICAg
IGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBSZW5k
ZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9u
KCpyZW5kZXJlcik7CkBAIC0yMzgsMTIzICsxNjUsOTYgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3duQXR0cmlidXRlKGF0
dHJOYW1lKSkgewotICAgICAgICBib29sIGlzRXh0ZXJuYWxSZWZlcmVuY2UgPSBpc0V4dGVybmFs
VVJJUmVmZXJlbmNlKGhyZWYoKSwgZG9jdW1lbnQoKSk7Ci0gICAgICAgIGlmIChpc0V4dGVybmFs
UmVmZXJlbmNlKSB7Ci0gICAgICAgICAgICBVUkwgdXJsID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVS
TChocmVmKCkpOwotICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkg
ewotICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRp
YXRvcih0aGlzKTsKLSAgICAgICAgICAgICAgICBzZXRDYWNoZWREb2N1bWVudChkb2N1bWVudCgp
LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzZXRDYWNoZWREb2N1bWVu
dCgwKTsKLQotICAgICAgICBpZiAoIW1fd2FzSW5zZXJ0ZWRCeVBhcnNlcikKLSAgICAgICAgICAg
IGJ1aWxkUGVuZGluZ1Jlc291cmNlKCk7Ci0KKyAgICAgICAgdXBkYXRlRXh0ZXJuYWxEb2N1bWVu
dCgpOworICAgICAgICBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkK
LSAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyTmFtZSkpIHsKKyAgICBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0cmlidXRlKGF0
dHJOYW1lKSB8fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjppc0tub3duQXR0cmlidXRl
KGF0dHJOYW1lKSkgewogICAgICAgICBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgU1ZHR3JhcGhp
Y3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdV
c2VFbGVtZW50Ojp3aWxsQXR0YWNoUmVuZGVyZXJzKCkKIHsKLSAgICBpZiAobV9uZWVkc1NoYWRv
d1RyZWVSZWNyZWF0aW9uKQotICAgICAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOworICAgIGlm
IChtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSkKKyAgICAgICAgdXBkYXRlU2hhZG93VHJlZSgpOwor
ICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6d2lsbEF0dGFjaFJlbmRlcmVycygpOwogfQogCi1zdGF0
aWMgYm9vbCBpc0Rpc2FsbG93ZWRFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCitzdGF0
aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+IGNyZWF0ZUFsbG93ZWRFbGVtZW50U2V0KCkKIHsKICAg
ICAvLyBTcGVjOiAiQW55ICdzdmcnLCAnc3ltYm9sJywgJ2cnLCBncmFwaGljcyBlbGVtZW50IG9y
IG90aGVyICd1c2UnIGlzIHBvdGVudGlhbGx5IGEgdGVtcGxhdGUgb2JqZWN0IHRoYXQgY2FuIGJl
IHJlLXVzZWQKICAgICAvLyAoaS5lLiwgImluc3RhbmNlZCIpIGluIHRoZSBTVkcgZG9jdW1lbnQg
dmlhIGEgJ3VzZScgZWxlbWVudC4iCiAgICAgLy8gIkdyYXBoaWNzIEVsZW1lbnQiIGlzIGRlZmlu
ZWQgYXMgJ2NpcmNsZScsICdlbGxpcHNlJywgJ2ltYWdlJywgJ2xpbmUnLCAncGF0aCcsICdwb2x5
Z29uJywgJ3BvbHlsaW5lJywgJ3JlY3QnLCAndGV4dCcKICAgICAvLyBFeGNsdWRlZCBhcmUgYW55
dGhpbmcgdGhhdCBpcyB1c2VkIGJ5IHJlZmVyZW5jZSBvciB0aGF0IG9ubHkgbWFrZSBzZW5zZSB0
byBhcHBlYXIgb25jZSBpbiBhIGRvY3VtZW50LgorICAgIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1l
czsKKyAgICBIYXNoU2V0PEF0b21pY1N0cmluZz4gc2V0OworICAgIGZvciAoYXV0byYgdGFnIDog
eyBhVGFnLCBjaXJjbGVUYWcsIGRlc2NUYWcsIGVsbGlwc2VUYWcsIGdUYWcsIGltYWdlVGFnLCBs
aW5lVGFnLCBtZXRhZGF0YVRhZywgcGF0aFRhZywgcG9seWdvblRhZywgcG9seWxpbmVUYWcsIHJl
Y3RUYWcsIHN2Z1RhZywgc3dpdGNoVGFnLCBzeW1ib2xUYWcsIHRleHRUYWcsIHRleHRQYXRoVGFn
LCB0aXRsZVRhZywgdHJlZlRhZywgdHNwYW5UYWcsIHVzZVRhZyB9KQorICAgICAgICBzZXQuYWRk
KHRhZy5sb2NhbE5hbWUoKSk7CisgICAgcmV0dXJuIHNldDsKK30KIAotICAgIGlmICghZWxlbWVu
dC5pc1NWR0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7CitzdGF0aWMgaW5saW5lIGJv
b2wgaXNEaXNhbGxvd2VkRWxlbWVudChjb25zdCBTVkdFbGVtZW50JiBlbGVtZW50KQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PEF0b21pY1N0cmluZz4+IHNldCA9IGNyZWF0
ZUFsbG93ZWRFbGVtZW50U2V0KCk7CisgICAgcmV0dXJuICFzZXQuZ2V0KCkuY29udGFpbnMoZWxl
bWVudC5sb2NhbE5hbWUoKSk7Cit9CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNl
dDxRdWFsaWZpZWROYW1lPj4gYWxsb3dlZEVsZW1lbnRUYWdzOwotICAgIGlmIChhbGxvd2VkRWxl
bWVudFRhZ3MuZ2V0KCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5n
ZXQoKS5hZGQoU1ZHTmFtZXM6OmFUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0
KCkuYWRkKFNWR05hbWVzOjpjaXJjbGVUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3Mu
Z2V0KCkuYWRkKFNWR05hbWVzOjpkZXNjVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdz
LmdldCgpLmFkZChTVkdOYW1lczo6ZWxsaXBzZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50
VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmdUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRh
Z3MuZ2V0KCkuYWRkKFNWR05hbWVzOjppbWFnZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50
VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmxpbmVUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVu
dFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjptZXRhZGF0YVRhZyk7Ci0gICAgICAgIGFsbG93ZWRF
bGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnBhdGhUYWcpOwotICAgICAgICBhbGxvd2Vk
RWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpwb2x5Z29uVGFnKTsKLSAgICAgICAgYWxs
b3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6cG9seWxpbmVUYWcpOwotICAgICAg
ICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpyZWN0VGFnKTsKLSAgICAg
ICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6c3ZnVGFnKTsKLSAgICAg
ICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6c3dpdGNoVGFnKTsKLSAg
ICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6c3ltYm9sVGFnKTsK
LSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6dGV4dFRhZyk7
Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnRleHRQYXRo
VGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6dGl0
bGVUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0
cmVmVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6
dHNwYW5UYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVz
Ojp1c2VUYWcpOwotICAgIH0KLSAgICByZXR1cm4gIWFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oZWxlbWVudC50YWdRTmFtZSgpKTsK
K3N0YXRpYyBpbmxpbmUgYm9vbCBpc0Rpc2FsbG93ZWRFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuICFlbGVtZW50LmlzU1ZHRWxlbWVudCgpIHx8IGlzRGlzYWxs
b3dlZEVsZW1lbnQoZG93bmNhc3Q8U1ZHRWxlbWVudD4oZWxlbWVudCkpOwogfQogCi12b2lkIFNW
R1VzZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKK3ZvaWQgU1ZHVXNlRWxlbWVu
dDo6Y2xlYXJTaGFkb3dUcmVlKCkKIHsKLSAgICAvLyBGSVhNRTogSXQncyBleHBlbnNpdmUgdG8g
cmUtY2xvbmUgdGhlIGVudGlyZSB0cmVlIGV2ZXJ5IHRpbWUuIFdlIHNob3VsZCBmaW5kIGEgbW9y
ZSBlZmZpY2llbnQgd2F5IHRvIGhhbmRsZSB0aGlzLgotICAgIGlmIChTaGFkb3dSb290KiByb290
ID0gdXNlckFnZW50U2hhZG93Um9vdCgpKQorICAgIGlmIChhdXRvKiByb290ID0gdXNlckFnZW50
U2hhZG93Um9vdCgpKQogICAgICAgICByb290LT5yZW1vdmVDaGlsZHJlbigpOwotICAgIG1fbmVl
ZHNTaGFkb3dUcmVlUmVjcmVhdGlvbiA9IGZhbHNlOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkKIHsKLSAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIGlmICghcmVmZXJlbmNlZERvY3VtZW50KCkpCi0gICAgICAgIHJl
dHVybjsKLSAgICBjbGVhclJlc291cmNlUmVmZXJlbmNlcygpOwotICAgIGlmICghaW5Eb2N1bWVu
dCgpKQorICAgIGludmFsaWRhdGVTaGFkb3dUcmVlKCk7Cit9CisKK3ZvaWQgU1ZHVXNlRWxlbWVu
dDo6dXBkYXRlU2hhZG93VHJlZSgpCit7CisgICAgbV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUgPSBm
YWxzZTsKKworICAgIC8vIEZJWE1FOiBJdCdzIGV4cGVuc2l2ZSB0byByZS1jbG9uZSB0aGUgZW50
aXJlIHRyZWUgZXZlcnkgdGltZS4gV2Ugc2hvdWxkIGZpbmQgYSBtb3JlIGVmZmljaWVudCB3YXkg
dG8gaGFuZGxlIHRoaXMuCisgICAgY2xlYXJTaGFkb3dUcmVlKCk7CisKKyAgICBpZiAoaXNJblNo
YWRvd1RyZWUoKSB8fCAhaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJp
bmcgaWQ7Ci0gICAgRWxlbWVudCogdGFyZ2V0ID0gU1ZHVVJJUmVmZXJlbmNlOjp0YXJnZXRFbGVt
ZW50RnJvbUlSSVN0cmluZyhocmVmKCksIGRvY3VtZW50KCksICZpZCwgZXh0ZXJuYWxEb2N1bWVu
dCgpKTsKLSAgICBpZiAoIWlzVmFsaWRUYXJnZXQodGFyZ2V0KSkgewotICAgICAgICBpZiAoZXh0
ZXJuYWxEb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBjYW4ndCBmaW5kIHRoZSB0YXJn
ZXQgaW4gYW4gZXh0ZXJuYWwgZG9jdW1lbnQsIHNvIGp1c3QgZ2l2ZSB1cCBhbmQgZG9uJ3QgdHJ5
IHRvIGRvIGl0IGFnYWluLgotICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBhdHRlbXB0IHRv
IG9ic2VydmUgaWYgYW4gZWxlbWVudCB3aXRoIElEIHNob3dzIHVwIGluIHRoZSBleHRlcm5hbCBk
b2N1bWVudCBsYXRlci4KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBy
ZWZlcmVuY2VkRG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNv
dXJjZShpZCwgdGhpcyk7CisgICAgU3RyaW5nIHRhcmdldElEOworICAgIFNWR0VsZW1lbnQqIHRh
cmdldCA9IGZpbmRUYXJnZXQoJnRhcmdldElEKTsKKyAgICBpZiAoIXRhcmdldCkgeworICAgICAg
ICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRQZW5kaW5nUmVzb3VyY2UodGFy
Z2V0SUQsIHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYnVpbGRTaGFkb3dU
cmVlKGRvd25jYXN0PFNWR0VsZW1lbnQ+KCp0YXJnZXQpKTsKKyAgICBjbG9uZVRhcmdldChlbnN1
cmVVc2VyQWdlbnRTaGFkb3dSb290KCksICp0YXJnZXQpOwogICAgIGV4cGFuZFVzZUVsZW1lbnRz
SW5TaGFkb3dUcmVlKCk7CiAgICAgZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUoKTsK
LSAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoKnNoYWRv
d1RyZWVUYXJnZXRDbG9uZSgpKTsKICAgICB0cmFuc2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dU
cmVlKCk7CisKICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigpOwogCiAgICAg
Ly8gV2hlbiB3ZSBpbnZhbGlkYXRlIHRoZSBvdGhlciBzaGFkb3cgdHJlZXMsIGl0J3MgaW1wb3J0
YW50IHRoYXQgd2UgZG9uJ3QKICAgICAvLyBmb2xsb3cgYW55IGN5Y2xlcyBhbmQgaW52YWxpZGF0
ZSBvdXJzZWx2ZXMuIFRvIGF2b2lkIHRoYXQsIHdlIHRlbXBvcmFyaWx5Ci0gICAgLy8gc2V0IG1f
bmVlZHNTaGFkb3dUcmVlUmVjcmVhdGlvbiB0byB0cnVlIHNvIGludmFsaWRhdGVTaGFkb3dUcmVl
IHdpbGwKKyAgICAvLyBzZXQgbV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUgdG8gdHJ1ZSBzbyBpbnZh
bGlkYXRlU2hhZG93VHJlZSB3aWxsCiAgICAgLy8gcXVpY2tseSByZXR1cm4gYW5kIGRvIG5vdGhp
bmcuCi0gICAgQVNTRVJUKCFtX25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24pOwotICAgIG1fbmVl
ZHNTaGFkb3dUcmVlUmVjcmVhdGlvbiA9IHRydWU7CisgICAgQVNTRVJUKCFtX3NoYWRvd1RyZWVO
ZWVkc1VwZGF0ZSk7CisgICAgbV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUgPSB0cnVlOwogICAgIGlu
dmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpOwotICAgIG1fbmVlZHNTaGFkb3dUcmVlUmVj
cmVhdGlvbiA9IGZhbHNlOworICAgIG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlID0gZmFsc2U7CiB9
CiAKLVNWR0VsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OnNoYWRvd1RyZWVUYXJnZXRDbG9uZSgpIGNv
bnN0CitTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50Ojp0YXJnZXRDbG9uZSgpIGNvbnN0CiB7CiAg
ICAgYXV0byogcm9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICBpZiAoIXJvb3QpCkBA
IC0zNjksNDIgKzI2OSw0NSBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVXNlRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJgogCiBzdGF0aWMgYm9v
bCBpc0RpcmVjdFJlZmVyZW5jZShjb25zdCBTVkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJl
dHVybiBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpCi0gICAgICAgIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6cmVjdFRhZykKLSAgICAgICAgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKFNWR05hbWVzOjpjaXJjbGVUYWcpCi0gICAgICAgIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShTVkdOYW1lczo6ZWxsaXBzZVRhZykKLSAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KFNWR05hbWVzOjpwb2x5Z29uVGFnKQotICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnBvbHlsaW5lVGFnKQotICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OnRleHRUYWcpOworICAgIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKKyAgICByZXR1cm4g
ZWxlbWVudC5oYXNUYWdOYW1lKGNpcmNsZVRhZykKKyAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKGVsbGlwc2VUYWcpCisgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShwYXRoVGFnKQor
ICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocG9seWdvblRhZykKKyAgICAgICAgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHBvbHlsaW5lVGFnKQorICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUocmVjdFRhZykKKyAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRleHRUYWcpOwogfQog
CiB2b2lkIFNWR1VzZUVsZW1lbnQ6OnRvQ2xpcFBhdGgoUGF0aCYgcGF0aCkKIHsKICAgICBBU1NF
UlQocGF0aC5pc0VtcHR5KCkpOwogCi0gICAgU1ZHRWxlbWVudCogZWxlbWVudCA9IHNoYWRvd1Ry
ZWVUYXJnZXRDbG9uZSgpOwotICAgIGlmIChpczxTVkdHcmFwaGljc0VsZW1lbnQ+KGVsZW1lbnQp
KSB7Ci0gICAgICAgIGlmICghaXNEaXJlY3RSZWZlcmVuY2UoKmVsZW1lbnQpKSB7Ci0gICAgICAg
ICAgICAvLyBTcGVjOiBJbmRpcmVjdCByZWZlcmVuY2VzIGFyZSBhbiBlcnJvciAoMTQuMy41KQot
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0RXJyb3Io
Ik5vdCBhbGxvd2VkIHRvIHVzZSBpbmRpcmVjdCByZWZlcmVuY2UgaW4gPGNsaXAtcGF0aD4iKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvd25jYXN0PFNWR0dyYXBoaWNzRWxlbWVu
dD4oKmVsZW1lbnQpLnRvQ2xpcFBhdGgocGF0aCk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogQXZv
aWQgbWFudWFsIHJlc29sdXRpb24gb2YgeC95IGhlcmUuIEl0cyBwb3RlbnRpYWxseSBoYXJtZnVs
LgotICAgICAgICAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KHRoaXMpOwotICAg
ICAgICAgICAgcGF0aC50cmFuc2xhdGUoRmxvYXRTaXplKHgoKS52YWx1ZShsZW5ndGhDb250ZXh0
KSwgeSgpLnZhbHVlKGxlbmd0aENvbnRleHQpKSk7Ci0gICAgICAgICAgICBwYXRoLnRyYW5zZm9y
bShhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkpOwotICAgICAgICB9CisgICAgYXV0byogdGFyZ2V0
Q2xvbmUgPSB0aGlzLT50YXJnZXRDbG9uZSgpOworICAgIGlmICghaXM8U1ZHR3JhcGhpY3NFbGVt
ZW50Pih0YXJnZXRDbG9uZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghaXNEaXJlY3RS
ZWZlcmVuY2UoKnRhcmdldENsb25lKSkgeworICAgICAgICAvLyBTcGVjOiBJbmRpcmVjdCByZWZl
cmVuY2VzIGFyZSBhbiBlcnJvciAoMTQuMy41KQorICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NW
R0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJvcihBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRvIHVz
ZSBpbmRpcmVjdCByZWZlcmVuY2UgaW4gPGNsaXAtcGF0aD4iKSk7CisgICAgICAgIHJldHVybjsK
ICAgICB9CisKKyAgICBkb3duY2FzdDxTVkdHcmFwaGljc0VsZW1lbnQ+KCp0YXJnZXRDbG9uZSku
dG9DbGlwUGF0aChwYXRoKTsKKyAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQodGhp
cyk7CisgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gZG8gdGhpcyB3aXRob3V0IG1hbnVhbCBy
ZXNvbHV0aW9uIG9mIHgveSBoZXJlLiBJdCdzIHBvdGVudGlhbGx5IGluY29ycmVjdC4KKyAgICBw
YXRoLnRyYW5zbGF0ZShGbG9hdFNpemUoeCgpLnZhbHVlKGxlbmd0aENvbnRleHQpLCB5KCkudmFs
dWUobGVuZ3RoQ29udGV4dCkpKTsKKyAgICBwYXRoLnRyYW5zZm9ybShhbmltYXRlZExvY2FsVHJh
bnNmb3JtKCkpOwogfQogCiBSZW5kZXJFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpyZW5kZXJlckNs
aXBDaGlsZCgpIGNvbnN0CiB7Ci0gICAgYXV0byogZWxlbWVudCA9IHNoYWRvd1RyZWVUYXJnZXRD
bG9uZSgpOwotICAgIGlmICghZWxlbWVudCkKKyAgICBhdXRvKiB0YXJnZXRDbG9uZSA9IHRoaXMt
PnRhcmdldENsb25lKCk7CisgICAgaWYgKCF0YXJnZXRDbG9uZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgaWYgKCFpc0RpcmVjdFJlZmVyZW5jZSgqZWxlbWVudCkpCisgICAgaWYgKCFp
c0RpcmVjdFJlZmVyZW5jZSgqdGFyZ2V0Q2xvbmUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICByZXR1cm4gdGFyZ2V0Q2xvbmUt
PnJlbmRlcmVyKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zy
b21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCkBAIC00MTksOCArMzIyLDcgQEAgc3RhdGlj
IHZvaWQgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoU1ZHRWxlbWVudCYgc3Vi
dHJlZSkKIAogICAgIFZlY3RvcjxFbGVtZW50Kj4gZGlzYWxsb3dlZEVsZW1lbnRzOwogICAgIGF1
dG8gZGVzY2VuZGFudHMgPSBkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PihzdWJ0cmVlKTsKLSAg
ICBhdXRvIGVuZCA9IGRlc2NlbmRhbnRzLmVuZCgpOwotICAgIGZvciAoYXV0byBpdCA9IGRlc2Nl
bmRhbnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKSB7CisgICAgZm9yIChhdXRvIGl0ID0gZGVzY2Vu
ZGFudHMuYmVnaW4oKSwgZW5kID0gZGVzY2VuZGFudHMuZW5kKCk7IGl0ICE9IGVuZDsgKSB7CiAg
ICAgICAgIGlmIChpc0Rpc2FsbG93ZWRFbGVtZW50KCppdCkpIHsKICAgICAgICAgICAgIGRpc2Fs
bG93ZWRFbGVtZW50cy5hcHBlbmQoJippdCk7CiAgICAgICAgICAgICBpdC50cmF2ZXJzZU5leHRT
a2lwcGluZ0NoaWxkcmVuKCk7CkBAIC00NjYsOTEgKzM2OCw5OSBAQCBzdGF0aWMgdm9pZCBhc3Nv
Y2lhdGVSZXBsYWNlbWVudENsb25lc1dpdGhPcmlnaW5hbHMoU1ZHRWxlbWVudCYgcmVwbGFjZW1l
bnRDbG9uZQogICAgICAgICBhc3NvY2lhdGVSZXBsYWNlbWVudENsb25lV2l0aE9yaWdpbmFsKHBh
aXIuZmlyc3QsIHBhaXIuc2Vjb25kKTsKIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZFNo
YWRvd1RyZWUoU1ZHRWxlbWVudCYgdGFyZ2V0KQorU1ZHRWxlbWVudCogU1ZHVXNlRWxlbWVudDo6
ZmluZFRhcmdldChTdHJpbmcqIHRhcmdldElEKSBjb25zdAogewotICAgIFJlZjxTVkdFbGVtZW50
PiBjbG9uZWRUYXJnZXQgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0VsZW1lbnQ+KHRhcmdldC5j
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkpLnJlbGVhc2VOb25OdWxsKCk7Ci0g
ICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscyhjbG9uZWRUYXJnZXQuZ2V0KCksIHRhcmdl
dCk7Ci0gICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoY2xvbmVkVGFyZ2V0
LmdldCgpKTsKLSAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGNsb25lZFRhcmdldCkpOwotfQorICAgIFNWR0VsZW1lbnQqIGNvcnJlc3BvbmRpbmdF
bGVtZW50ID0gdGhpcy0+Y29ycmVzcG9uZGluZ0VsZW1lbnQoKTsKKyAgICBjb25zdCBTVkdVc2VF
bGVtZW50JiBvcmlnaW5hbCA9IGNvcnJlc3BvbmRpbmdFbGVtZW50ID8gZG93bmNhc3Q8U1ZHVXNl
RWxlbWVudD4oKmNvcnJlc3BvbmRpbmdFbGVtZW50KSA6ICp0aGlzOworCisgICAgRWxlbWVudCog
dGFyZ2V0Q2FuZGlkYXRlID0gdGFyZ2V0RWxlbWVudEZyb21JUklTdHJpbmcob3JpZ2luYWwuaHJl
ZigpLCBvcmlnaW5hbC5kb2N1bWVudCgpLCB0YXJnZXRJRCwgb3JpZ2luYWwuZXh0ZXJuYWxEb2N1
bWVudCgpKTsKKyAgICBpZiAodGFyZ2V0SUQgJiYgIXRhcmdldElELT5pc051bGwoKSkgeworICAg
ICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGV4dGVybmFsLCBkb24ndCByZXR1cm4gdGhlIHRh
cmdldCBJRCB0byB0aGUgY2FsbGVyLgorICAgICAgICAvLyBUaGUgY2FsbGVyIHdvdWxkIHVzZSB0
aGUgdGFyZ2V0IElEIHRvIHdhaXQgZm9yIGEgcGVuZGluZyByZXNvdXJjZSBvbiB0aGUgd3Jvbmcg
ZG9jdW1lbnQuCisgICAgICAgIC8vIElmIHdlIGV2ZXIgd2FudCB0aGUgY2hhbmdlIHRoYXQgYW5k
IGxldCB0aGUgY2FsbGVyIHRvIHdhaXQgb24gdGhlIGV4dGVybmFsIGRvY3VtZW50LAorICAgICAg
ICAvLyB3ZSBzaG91bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gc28gaXQgcmV0dXJucyB0aGUgYXBw
cm9wcmlhdGUgZG9jdW1lbnQgdG8gZ28gd2l0aCB0aGUgSUQuCisgICAgICAgIGlmIChpc0V4dGVy
bmFsVVJJUmVmZXJlbmNlKG9yaWdpbmFsLmhyZWYoKSwgb3JpZ2luYWwuZG9jdW1lbnQoKSkpCisg
ICAgICAgICAgICAqdGFyZ2V0SUQgPSBTdHJpbmcoKTsKKyAgICB9CisgICAgaWYgKCFpczxTVkdF
bGVtZW50Pih0YXJnZXRDYW5kaWRhdGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBT
VkdFbGVtZW50JiB0YXJnZXQgPSBkb3duY2FzdDxTVkdFbGVtZW50PigqdGFyZ2V0Q2FuZGlkYXRl
KTsKKworICAgIGlmICghdGFyZ2V0LmluRG9jdW1lbnQoKSB8fCBpc0Rpc2FsbG93ZWRFbGVtZW50
KHRhcmdldCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi1ib29sIFNWR1VzZUVsZW1lbnQ6
OmlzVmFsaWRUYXJnZXQoRWxlbWVudCogdGFyZ2V0KSBjb25zdAotewotICAgIGlmICghaXM8U1ZH
RWxlbWVudD4odGFyZ2V0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghdGFyZ2V0
LT5pbkRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTVkdFbGVtZW50JiBj
YXN0ZWRUYXJnZXQgPSBkb3duY2FzdDxTVkdFbGVtZW50PigqdGFyZ2V0KTsKLSAgICBpZiAoJmNh
c3RlZFRhcmdldCA9PSB0aGlzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGlzRGlz
YWxsb3dlZEVsZW1lbnQoY2FzdGVkVGFyZ2V0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IC8vIFJlamVjdCBhbnkgdGFyZ2V0IHRoYXQgd291bGQgY3JlYXRlIGEgY3ljbGUuCi0gICAgZm9y
IChhdXRvJiBhbmNlc3RvciA6IGxpbmVhZ2VPZlR5cGU8U1ZHRWxlbWVudD4oKnRoaXMpKSB7Ci0g
ICAgICAgIGlmIChhbmNlc3Rvci5jb3JyZXNwb25kaW5nRWxlbWVudCgpID09ICZjYXN0ZWRUYXJn
ZXQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGNvcnJlc3BvbmRpbmdFbGVt
ZW50KSB7CisgICAgICAgIGZvciAoYXV0byYgYW5jZXN0b3IgOiBsaW5lYWdlT2ZUeXBlPFNWR0Vs
ZW1lbnQ+KCp0aGlzKSkgeworICAgICAgICAgICAgaWYgKGFuY2VzdG9yLmNvcnJlc3BvbmRpbmdF
bGVtZW50KCkgPT0gJnRhcmdldCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogbGluZWFnZU9mVHlwZTxT
VkdFbGVtZW50PihvcmlnaW5hbCkpIHsKKyAgICAgICAgaWYgKCZhbmNlc3RvciA9PSAmdGFyZ2V0
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiB0cnVlOwor
CisgICAgcmV0dXJuICZ0YXJnZXQ7CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kVXNl
RWxlbWVudHNJblNoYWRvd1RyZWUoKQordm9pZCBTVkdVc2VFbGVtZW50OjpjbG9uZVRhcmdldChD
b250YWluZXJOb2RlJiBjb250YWluZXIsIFNWR0VsZW1lbnQmIHRhcmdldCkgY29uc3QKIHsKLSAg
ICAvLyBGSVhNRTogQ29tYmluZSB0aGlzIHdpdGggYnVpbGRTaGFkb3dUcmVlLgorICAgIFJlZjxT
VkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8U1ZHRWxlbWVudD4o
dGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihkb2N1bWVudCgpKSkucmVsZWFzZU5vbk51
bGwoKTsKKyAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgp
LCB0YXJnZXQpOworICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdl
dENsb25lLmdldCgpKTsKKyAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0
YXJnZXRDbG9uZS5nZXQoKSk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKFdURjo6bW92ZSh0
YXJnZXRDbG9uZSkpOworfQogCi0gICAgaWYgKGNhY2hlZERvY3VtZW50SXNTdGlsbExvYWRpbmco
KSkKLSAgICAgICAgcmV0dXJuOworc3RhdGljIHZvaWQgY2xvbmVEYXRhQW5kQ2hpbGRyZW4oU1ZH
RWxlbWVudCYgcmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2luYWxDbG9uZSkKK3sK
KyAgICAvLyBUaGlzIGFzc2VydGlvbiBjaGVja3MgdGhhdCB3ZSBkb24ndCBjYWxsIHRoaXMgd2l0
aCB0aGUgYXJndW1lbnRzIGJhY2t3YXJkcy4KKyAgICAvLyBUaGUgcmVwbGFjZW1lbnQgY2xvbmUg
aXMgbmV3IGFuZCBzbyBpdCdzIG5vdCBpbnN0YWxsZWQgaW4gYSBwYXJlbnQgeWV0LgorICAgIEFT
U0VSVCghcmVwbGFjZW1lbnRDbG9uZS5wYXJlbnROb2RlKCkpOworCisgICAgcmVwbGFjZW1lbnRD
bG9uZS5jbG9uZURhdGFGcm9tRWxlbWVudChvcmlnaW5hbENsb25lKTsKKyAgICBvcmlnaW5hbENs
b25lLmNsb25lQ2hpbGROb2RlcygmcmVwbGFjZW1lbnRDbG9uZSk7CisgICAgYXNzb2NpYXRlUmVw
bGFjZW1lbnRDbG9uZXNXaXRoT3JpZ2luYWxzKHJlcGxhY2VtZW50Q2xvbmUsIG9yaWdpbmFsQ2xv
bmUpOworICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHJlcGxhY2VtZW50
Q2xvbmUpOworfQogCit2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFk
b3dUcmVlKCkgY29uc3QKK3sKICAgICBhdXRvIGRlc2NlbmRhbnRzID0gZGVzY2VuZGFudHNPZlR5
cGU8U1ZHVXNlRWxlbWVudD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7Ci0gICAgYXV0byBlbmQg
PSBkZXNjZW5kYW50cy5lbmQoKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBkZXNjZW5kYW50cy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICkgewotICAgICAgICBSZWY8U1ZHVXNlRWxlbWVudD4gb3JpZ2luYWwg
PSAqaXQ7CisgICAgZm9yIChhdXRvIGl0ID0gZGVzY2VuZGFudHMuYmVnaW4oKSwgZW5kID0gZGVz
Y2VuZGFudHMuZW5kKCk7IGl0ICE9IGVuZDsgKSB7CisgICAgICAgIFNWR1VzZUVsZW1lbnQmIG9y
aWdpbmFsQ2xvbmUgPSAqaXQ7CiAgICAgICAgIGl0ID0gZW5kOyAvLyBFZmZpY2llbnRseSBxdWll
dHMgYXNzZXJ0aW9ucyBkdWUgdG8gdGhlIG91dHN0YW5kaW5nIGl0ZXJhdG9yLgogCi0gICAgICAg
IGlmIChvcmlnaW5hbC0+Y2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9hZGluZygpKQotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBTVkdFbGVtZW50KiB0YXJnZXQgPSBvcmlnaW5hbENsb25lLmZp
bmRUYXJnZXQoKTsKIAogICAgICAgICAvLyBTcGVjOiBJbiB0aGUgZ2VuZXJhdGVkIGNvbnRlbnQs
IHRoZSAndXNlJyB3aWxsIGJlIHJlcGxhY2VkIGJ5ICdnJywgd2hlcmUgYWxsIGF0dHJpYnV0ZXMg
ZnJvbSB0aGUKICAgICAgICAgLy8gJ3VzZScgZWxlbWVudCBleGNlcHQgZm9yIHgsIHksIHdpZHRo
LCBoZWlnaHQgYW5kIHhsaW5rOmhyZWYgYXJlIHRyYW5zZmVycmVkIHRvIHRoZSBnZW5lcmF0ZWQg
J2cnIGVsZW1lbnQuCiAKLSAgICAgICAgLy8gRklYTUU6IElzIGl0IHJpZ2h0IHRvIHVzZSByZWZl
cmVuY2VkRG9jdW1lbnQoKSBoZXJlIGluc3RlYWQgb2YganVzdCBkb2N1bWVudCgpPwotICAgICAg
ICAvLyBDYW4gYSBzaGFkb3cgdHJlZSB3aXRoaW4gdGhpcyBkb2N1bWVudCByZWFsbHkgY29udGFp
biBlbGVtZW50cyB0aGF0IGFyZSBpbiBhCi0gICAgICAgIC8vIGRpZmZlcmVudCBkb2N1bWVudD8K
LSAgICAgICAgQVNTRVJUKHJlZmVyZW5jZWREb2N1bWVudCgpKTsKLSAgICAgICAgYXV0byByZXBs
YWNlbWVudCA9IFNWR0dFbGVtZW50OjpjcmVhdGUoU1ZHTmFtZXM6OmdUYWcsICpyZWZlcmVuY2Vk
RG9jdW1lbnQoKSk7Ci0gICAgICAgIG9yaWdpbmFsLT50cmFuc2ZlckF0dHJpYnV0ZXNUb1NoYWRv
d1RyZWVSZXBsYWNlbWVudChyZXBsYWNlbWVudC5nZXQoKSk7Ci0gICAgICAgIG9yaWdpbmFsLT5j
bG9uZUNoaWxkTm9kZXMocmVwbGFjZW1lbnQucHRyKCkpOwotICAgICAgICBhc3NvY2lhdGVSZXBs
YWNlbWVudENsb25lc1dpdGhPcmlnaW5hbHMocmVwbGFjZW1lbnQuZ2V0KCksIG9yaWdpbmFsLmdl
dCgpKTsKLQotICAgICAgICBSZWZQdHI8U1ZHRWxlbWVudD4gY2xvbmVkVGFyZ2V0OwotICAgICAg
ICBFbGVtZW50KiB0YXJnZXRDYW5kaWRhdGUgPSBTVkdVUklSZWZlcmVuY2U6OnRhcmdldEVsZW1l
bnRGcm9tSVJJU3RyaW5nKG9yaWdpbmFsLT5ocmVmKCksICpyZWZlcmVuY2VkRG9jdW1lbnQoKSk7
Ci0gICAgICAgIGlmIChvcmlnaW5hbC0+aXNWYWxpZFRhcmdldCh0YXJnZXRDYW5kaWRhdGUpKSB7
Ci0gICAgICAgICAgICBTVkdFbGVtZW50JiBvcmlnaW5hbFRhcmdldCA9IGRvd25jYXN0PFNWR0Vs
ZW1lbnQ+KCp0YXJnZXRDYW5kaWRhdGUpOwotICAgICAgICAgICAgY2xvbmVkVGFyZ2V0ID0gc3Rh
dGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50PihvcmlnaW5hbFRhcmdldC5jbG9uZUVsZW1lbnRX
aXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkpOwotICAgICAgICAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0
aE9yaWdpbmFscygqY2xvbmVkVGFyZ2V0LCBvcmlnaW5hbFRhcmdldCk7Ci0gICAgICAgICAgICBy
ZXBsYWNlbWVudC0+YXBwZW5kQ2hpbGQoY2xvbmVkVGFyZ2V0KTsKLSAgICAgICAgfQorICAgICAg
ICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdHRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgICAgICBjbG9uZURhdGFBbmRDaGlsZHJlbihyZXBsYWNlbWVudENsb25lLmdldCgpLCBv
cmlnaW5hbENsb25lKTsKIAotICAgICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3Vi
dHJlZShyZXBsYWNlbWVudC5nZXQoKSk7CisgICAgICAgIHJlcGxhY2VtZW50Q2xvbmUtPnJlbW92
ZUF0dHJpYnV0ZShTVkdOYW1lczo6eEF0dHIpOworICAgICAgICByZXBsYWNlbWVudENsb25lLT5y
ZW1vdmVBdHRyaWJ1dGUoU1ZHTmFtZXM6OnlBdHRyKTsKKyAgICAgICAgcmVwbGFjZW1lbnRDbG9u
ZS0+cmVtb3ZlQXR0cmlidXRlKFNWR05hbWVzOjp3aWR0aEF0dHIpOworICAgICAgICByZXBsYWNl
bWVudENsb25lLT5yZW1vdmVBdHRyaWJ1dGUoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOworICAgICAg
ICByZXBsYWNlbWVudENsb25lLT5yZW1vdmVBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIp
OwogCi0gICAgICAgIC8vIFJlcGxhY2UgPHVzZT4gd2l0aCB0aGUgPGc+IGVsZW1lbnQgd2UgY3Jl
YXRlZC4KLSAgICAgICAgb3JpZ2luYWwtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxh
Y2VtZW50LnB0cigpLCBvcmlnaW5hbC5wdHIoKSk7CisgICAgICAgIGlmICh0YXJnZXQpCisgICAg
ICAgICAgICBvcmlnaW5hbENsb25lLmNsb25lVGFyZ2V0KHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCks
ICp0YXJnZXQpOwogCi0gICAgICAgIC8vIENhbGwgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvU2hh
ZG93VHJlZVRhcmdldENsb25lIGFmdGVyIHB1dHRpbmcgdGhlIGNsb25lZCBlbGVtZW50cyBpbnRv
IHRoZQotICAgICAgICAvLyBzaGFkb3cgdHJlZSBzbyBpdCBjYW4gdXNlIFNWR0VsZW1lbnQ6OmNv
cnJlc3BvbmRpbmdFbGVtZW50IHdpdGhvdXQgdHJpZ2dlcmluZyBhbiBhc3NlcnRpb24uCi0gICAg
ICAgIGlmIChjbG9uZWRUYXJnZXQpCi0gICAgICAgICAgICBvcmlnaW5hbC0+dHJhbnNmZXJTaXpl
QXR0cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENsb25lKCpjbG9uZWRUYXJnZXQpOworICAgICAg
ICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xv
bmUucHRyKCksICZvcmlnaW5hbENsb25lKTsKIAotICAgICAgICAvLyBDb250aW51ZSBpdGVyYXRp
bmcgZnJvbSB0aGUgPGc+IGVsZW1lbnQgc2luY2UgdGhlIDx1c2U+IGVsZW1lbnQgd2FzIHJlcGxh
Y2VkLgotICAgICAgICBpdCA9IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnQuZ2V0KCkpOwor
ICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVw
bGFjZW1lbnQgY2xvbmUuCisgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVu
dENsb25lLmdldCgpKTsKICAgICB9CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3lt
Ym9sRWxlbWVudHNJblNoYWRvd1RyZWUoKQordm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1i
b2xFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0CiB7CiAgICAgYXV0byBkZXNjZW5kYW50cyA9
IGRlc2NlbmRhbnRzT2ZUeXBlPFNWR1N5bWJvbEVsZW1lbnQ+KCp1c2VyQWdlbnRTaGFkb3dSb290
KCkpOwotICAgIGF1dG8gZW5kID0gZGVzY2VuZGFudHMuZW5kKCk7Ci0gICAgZm9yIChhdXRvIGl0
ID0gZGVzY2VuZGFudHMuYmVnaW4oKTsgaXQgIT0gZW5kOyApIHsKLSAgICAgICAgU1ZHU3ltYm9s
RWxlbWVudCYgb3JpZ2luYWwgPSAqaXQ7CisgICAgZm9yIChhdXRvIGl0ID0gZGVzY2VuZGFudHMu
YmVnaW4oKSwgZW5kID0gZGVzY2VuZGFudHMuZW5kKCk7IGl0ICE9IGVuZDsgKSB7CisgICAgICAg
IFNWR1N5bWJvbEVsZW1lbnQmIG9yaWdpbmFsQ2xvbmUgPSAqaXQ7CiAgICAgICAgIGl0ID0gZW5k
OyAvLyBFZmZpY2llbnRseSBxdWlldHMgYXNzZXJ0aW9ucyBkdWUgdG8gdGhlIG91dHN0YW5kaW5n
IGl0ZXJhdG9yLgogCiAgICAgICAgIC8vIFNwZWM6IFRoZSByZWZlcmVuY2VkICdzeW1ib2wnIGFu
ZCBpdHMgY29udGVudHMgYXJlIGRlZXAtY2xvbmVkIGludG8gdGhlIGdlbmVyYXRlZCB0cmVlLApA
QCAtNTYwLDMwICs0NzAsMTkgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVt
ZW50c0luU2hhZG93VHJlZSgpCiAgICAgICAgIC8vIHRoZSBnZW5lcmF0ZWQgJ3N2ZycuIElmIGF0
dHJpYnV0ZXMgd2lkdGggYW5kL29yIGhlaWdodCBhcmUgbm90IHNwZWNpZmllZCwgdGhlIGdlbmVy
YXRlZAogICAgICAgICAvLyAnc3ZnJyBlbGVtZW50IHdpbGwgdXNlIHZhbHVlcyBvZiAxMDAlIGZv
ciB0aGVzZSBhdHRyaWJ1dGVzLgogCi0gICAgICAgIC8vIEZJWE1FOiBJcyBpdCByaWdodCB0byB1
c2UgcmVmZXJlbmNlZERvY3VtZW50KCkgaGVyZSBpbnN0ZWFkIG9mIGp1c3QgZG9jdW1lbnQoKT8K
LSAgICAgICAgLy8gQ2FuIGEgc2hhZG93IHRyZWUgd2l0aGluIHRoaXMgZG9jdW1lbnQgcmVhbGx5
IGNvbnRhaW4gZWxlbWVudHMgdGhhdCBhcmUgaW4gYQotICAgICAgICAvLyBkaWZmZXJlbnQgZG9j
dW1lbnQ/Ci0gICAgICAgIEFTU0VSVChyZWZlcmVuY2VkRG9jdW1lbnQoKSk7Ci0gICAgICAgIGF1
dG8gcmVwbGFjZW1lbnQgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoU1ZHTmFtZXM6OnN2Z1RhZywg
KnJlZmVyZW5jZWREb2N1bWVudCgpKTsKLSAgICAgICAgcmVwbGFjZW1lbnQtPmNsb25lRGF0YUZy
b21FbGVtZW50KG9yaWdpbmFsKTsKLSAgICAgICAgb3JpZ2luYWwuY2xvbmVDaGlsZE5vZGVzKHJl
cGxhY2VtZW50LnB0cigpKTsKLSAgICAgICAgYXNzb2NpYXRlUmVwbGFjZW1lbnRDbG9uZXNXaXRo
T3JpZ2luYWxzKHJlcGxhY2VtZW50LmdldCgpLCBvcmlnaW5hbCk7Ci0KLSAgICAgICAgcmVtb3Zl
RGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUocmVwbGFjZW1lbnQuZ2V0KCkpOworICAgICAg
ICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CisgICAgICAgIGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCks
IG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIC8vIFJlcGxhY2UgPHN5bWJvbD4gd2l0aCB0aGUg
PHN2Zz4gZWxlbWVudCB3ZSBjcmVhdGVkLgotICAgICAgICBvcmlnaW5hbC5wYXJlbnROb2RlKCkt
PnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudC5wdHIoKSwgJm9yaWdpbmFsKTsKKyAgICAgICAgb3Jp
Z2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0
cigpLCAmb3JpZ2luYWxDbG9uZSk7CiAKLSAgICAgICAgLy8gQ29udGludWUgaXRlcmF0aW5nIGZy
b20gdGhlIDxzdmc+IGVsZW1lbnQgc2luY2UgdGhlIDxzeW1ib2w+IGVsZW1lbnQgd2FzIHJlcGxh
Y2VkLgotICAgICAgICBpdCA9IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnQuZ2V0KCkpOwor
ICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVw
bGFjZW1lbnQgY2xvbmUuCisgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVu
dENsb25lLmdldCgpKTsKICAgICB9CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJF
dmVudExpc3RlbmVyc1RvU2hhZG93VHJlZSgpCit2b2lkIFNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVy
RXZlbnRMaXN0ZW5lcnNUb1NoYWRvd1RyZWUoKSBjb25zdAogewotICAgIEFTU0VSVCh1c2VyQWdl
bnRTaGFkb3dSb290KCkpOwogICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRz
T2ZUeXBlPFNWR0VsZW1lbnQ+KCp1c2VyQWdlbnRTaGFkb3dSb290KCkpKSB7Ci0gICAgICAgIEFT
U0VSVChkZXNjZW5kYW50LmNvcnJlc3BvbmRpbmdFbGVtZW50KCkpOwogICAgICAgICBpZiAoRXZl
bnRUYXJnZXREYXRhKiBkYXRhID0gZGVzY2VuZGFudC5jb3JyZXNwb25kaW5nRWxlbWVudCgpLT5l
dmVudFRhcmdldERhdGEoKSkKICAgICAgICAgICAgIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuY29w
eUV2ZW50TGlzdGVuZXJzTm90Q3JlYXRlZEZyb21NYXJrdXBUb1RhcmdldCgmZGVzY2VuZGFudCk7
CiAgICAgfQpAQCAtNTkxLDkgKzQ5MCw5IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJF
dmVudExpc3RlbmVyc1RvU2hhZG93VHJlZSgpCiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6aW52YWxp
ZGF0ZVNoYWRvd1RyZWUoKQogewotICAgIGlmIChtX25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24p
CisgICAgaWYgKG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlKQogICAgICAgICByZXR1cm47Ci0gICAg
bV9uZWVkc1NoYWRvd1RyZWVSZWNyZWF0aW9uID0gdHJ1ZTsKKyAgICBtX3NoYWRvd1RyZWVOZWVk
c1VwZGF0ZSA9IHRydWU7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhSZWNvbnN0cnVjdFJlbmRl
clRyZWUpOwogICAgIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpOwogfQpAQCAtNjAx
LDc2ICs1MDAsOTEgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjppbnZhbGlkYXRlU2hhZG93VHJlZSgp
CiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpCiB7
CiAgICAgZm9yIChhdXRvKiBpbnN0YW5jZSA6IGluc3RhbmNlcygpKSB7Ci0gICAgICAgIGlmIChT
VkdVc2VFbGVtZW50KiBlbGVtZW50ID0gaW5zdGFuY2UtPmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50
KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOworICAgICAg
ICBpZiAoU1ZHVXNlRWxlbWVudCogZWxlbWVudCA9IGluc3RhbmNlLT5jb3JyZXNwb25kaW5nVXNl
RWxlbWVudCgpKQogICAgICAgICAgICAgZWxlbWVudC0+aW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsK
LSAgICAgICAgfQogICAgIH0KIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlckF0dHJp
YnV0ZXNUb1NoYWRvd1RyZWVSZXBsYWNlbWVudChTVkdHRWxlbWVudCYgcmVwbGFjZW1lbnQpIGNv
bnN0Ci17Ci0gICAgcmVwbGFjZW1lbnQuY2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotCi0g
ICAgcmVwbGFjZW1lbnQucmVtb3ZlQXR0cmlidXRlKFNWR05hbWVzOjp4QXR0cik7Ci0gICAgcmVw
bGFjZW1lbnQucmVtb3ZlQXR0cmlidXRlKFNWR05hbWVzOjp5QXR0cik7Ci0gICAgcmVwbGFjZW1l
bnQucmVtb3ZlQXR0cmlidXRlKFNWR05hbWVzOjp3aWR0aEF0dHIpOwotICAgIHJlcGxhY2VtZW50
LnJlbW92ZUF0dHJpYnV0ZShTVkdOYW1lczo6aGVpZ2h0QXR0cik7Ci0gICAgcmVwbGFjZW1lbnQu
cmVtb3ZlQXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKLX0KLQogYm9vbCBTVkdVc2VF
bGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKIHsKICAgICBpZiAoeCgpLmlz
UmVsYXRpdmUoKSB8fCB5KCkuaXNSZWxhdGl2ZSgpIHx8IHdpZHRoKCkuaXNSZWxhdGl2ZSgpIHx8
IGhlaWdodCgpLmlzUmVsYXRpdmUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRv
KiB0YXJnZXQgPSBzaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoKTsKLSAgICByZXR1cm4gdGFyZ2V0ICYm
IHRhcmdldC0+aGFzUmVsYXRpdmVMZW5ndGhzKCk7CisgICAgYXV0byogdGFyZ2V0Q2xvbmUgPSB0
aGlzLT50YXJnZXRDbG9uZSgpOworICAgIHJldHVybiB0YXJnZXRDbG9uZSAmJiB0YXJnZXRDbG9u
ZS0+aGFzUmVsYXRpdmVMZW5ndGhzKCk7CiB9CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogeworICAgIGludmFsaWRhdGVTaGFk
b3dUcmVlKCk7CiAgICAgaWYgKCFpbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKLQotICAg
IGludmFsaWRhdGVTaGFkb3dUcmVlKCk7CiAgICAgaWYgKHJlc291cmNlLT5lcnJvck9jY3VycmVk
KCkpCiAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJy
b3JFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiAgICAgZWxzZSBpZiAoIXJlc291cmNlLT53YXNDYW5j
ZWxlZCgpKQogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExv
YWRFdmVudCh0aGlzKTsKIH0KIAotYm9vbCBTVkdVc2VFbGVtZW50OjpjYWNoZWREb2N1bWVudElz
U3RpbGxMb2FkaW5nKCkKLXsKLSAgICBpZiAobV9jYWNoZWREb2N1bWVudCAmJiBtX2NhY2hlZERv
Y3VtZW50LT5pc0xvYWRpbmcoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiB7
CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKLSAg
ICBpZiAobV93YXNJbnNlcnRlZEJ5UGFyc2VyKSB7Ci0gICAgICAgIGJ1aWxkUGVuZGluZ1Jlc291
cmNlKCk7Ci0gICAgICAgIG1fd2FzSW5zZXJ0ZWRCeVBhcnNlciA9IGZhbHNlOwotICAgIH0KIH0K
IAotdm9pZCBTVkdVc2VFbGVtZW50OjpzZXRDYWNoZWREb2N1bWVudChDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gY2FjaGVkRG9jdW1lbnQpCit2b2lkIFNWR1VzZUVsZW1l
bnQ6OnVwZGF0ZUV4dGVybmFsRG9jdW1lbnQoKQogewotICAgIGlmIChtX2NhY2hlZERvY3VtZW50
ID09IGNhY2hlZERvY3VtZW50KQotICAgICAgICByZXR1cm47CisgICAgVVJMIGV4dGVybmFsRG9j
dW1lbnRVUkw7CisgICAgaWYgKGluRG9jdW1lbnQoKSAmJiBpc0V4dGVybmFsVVJJUmVmZXJlbmNl
KGhyZWYoKSwgZG9jdW1lbnQoKSkpIHsKKyAgICAgICAgZXh0ZXJuYWxEb2N1bWVudFVSTCA9IGRv
Y3VtZW50KCkuY29tcGxldGVVUkwoaHJlZigpKTsKKyAgICAgICAgaWYgKCFleHRlcm5hbERvY3Vt
ZW50VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICAgICAgZXh0ZXJuYWxEb2N1
bWVudFVSTCA9IFVSTCgpOworICAgIH0KIAotICAgIGlmIChtX2NhY2hlZERvY3VtZW50KQotICAg
ICAgICBtX2NhY2hlZERvY3VtZW50LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgaWYgKGV4dGVy
bmFsRG9jdW1lbnRVUkwgPT0gKG1fZXh0ZXJuYWxEb2N1bWVudCA/IG1fZXh0ZXJuYWxEb2N1bWVu
dC0+dXJsKCkgOiBVUkwoKSkpCisgICAgICAgIHJldHVybjsKIAotICAgIG1fY2FjaGVkRG9jdW1l
bnQgPSBjYWNoZWREb2N1bWVudDsKLSAgICBpZiAobV9jYWNoZWREb2N1bWVudCkgewotICAgICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRoZSBTVkcgZG9jdW1lbnQgdG8gY3JlYXRlIGEgbmV3IGZyYW1l
IGJlY2F1c2UgdGhlIG5ldyBkb2N1bWVudCBiZWxvbmdzIHRvIHRoZSBwYXJlbnQgVXNlRWxlbWVu
dC4KLSAgICAgICAgbV9jYWNoZWREb2N1bWVudC0+c2V0U2hvdWxkQ3JlYXRlRnJhbWVGb3JEb2N1
bWVudChmYWxzZSk7Ci0gICAgICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsK
KyAgICBpZiAobV9leHRlcm5hbERvY3VtZW50KQorICAgICAgICBtX2V4dGVybmFsRG9jdW1lbnQt
PnJlbW92ZUNsaWVudCh0aGlzKTsKKworICAgIGlmIChleHRlcm5hbERvY3VtZW50VVJMLmlzTnVs
bCgpKQorICAgICAgICBtX2V4dGVybmFsRG9jdW1lbnQgPSBudWxscHRyOworICAgIGVsc2Ugewor
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IFJlc291cmNlUmVxdWVzdCB7
IGV4dGVybmFsRG9jdW1lbnRVUkwgfSB9OworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0
aGlzKTsKKyAgICAgICAgbV9leHRlcm5hbERvY3VtZW50ID0gZG9jdW1lbnQoKS5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKKyAgICAgICAgaWYgKG1f
ZXh0ZXJuYWxEb2N1bWVudCkgeworICAgICAgICAgICAgLy8gRklYTUU6IElzIGl0IHJlYWxseSBP
SyBmb3IgdXMgdG8gc2V0IHRoaXMgdG8gZmFsc2UgZm9yIGEgZG9jdW1lbnQgdGhhdCBtaWdodCBi
ZSBzaGFyZWQgYnkgYW5vdGhlciBjbGllbnQ/CisgICAgICAgICAgICBtX2V4dGVybmFsRG9jdW1l
bnQtPnNldFNob3VsZENyZWF0ZUZyYW1lRm9yRG9jdW1lbnQoZmFsc2UpOyAvLyBObyBmcmFtZSBu
ZWVkZWQsIHdlIGp1c3Qgd2FudCB0aGUgZWxlbWVudHMuCisgICAgICAgICAgICBtX2V4dGVybmFs
RG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgfQogICAgIH0KKworICAgIGludmFs
aWRhdGVTaGFkb3dUcmVlKCk7Cit9CisKK2Jvb2wgU1ZHVXNlRWxlbWVudDo6aXNWYWxpZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7Cit9CisKK2Jvb2wgU1ZHVXNl
RWxlbWVudDo6aGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkKK3sKKyAgICByZXR1cm4gU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6aGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCk7
Cit9CisKK3ZvaWQgU1ZHVXNlRWxlbWVudDo6c2V0SGF2ZUZpcmVkTG9hZEV2ZW50KGJvb2wgaGF2
ZUZpcmVkTG9hZEV2ZW50KQoreworICAgIG1faGF2ZUZpcmVkTG9hZEV2ZW50ID0gaGF2ZUZpcmVk
TG9hZEV2ZW50OworfQorCitib29sIFNWR1VzZUVsZW1lbnQ6OmhhdmVGaXJlZExvYWRFdmVudCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGF2ZUZpcmVkTG9hZEV2ZW50OworfQorCitUaW1lciog
U1ZHVXNlRWxlbWVudDo6c3ZnTG9hZEV2ZW50VGltZXIoKQoreworICAgIHJldHVybiAmbV9zdmdM
b2FkRXZlbnRUaW1lcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXgg
MzgzNDAzYTkxNTU5YWYwYWE4YjZiYWJlZTAyNTIwNmFjNzgyZjlhZC4uNDc3MzkyM2M1OGIxYjJl
Y2IzN2YxY2M5ZWNhNTgzNjRkODY0NTZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5o
CkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNs
dWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhp
Y3NFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdVUklSZWZl
cmVuY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzYsODIgKzM1LDY1IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50OwogY2xhc3MgU1ZHR0VsZW1l
bnQ7CiAKLWNsYXNzIFNWR1VzZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3JhcGhpY3NFbGVt
ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklS
ZWZlcmVuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENhY2hlZFNWR0Rv
Y3VtZW50Q2xpZW50IHsKK2NsYXNzIFNWR1VzZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHR3Jh
cGhpY3NFbGVtZW50LCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgcHVibGlj
IFNWR1VSSVJlZmVyZW5jZSwgcHJpdmF0ZSBDYWNoZWRTVkdEb2N1bWVudENsaWVudCB7CisKKyAg
ICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVXNlRWxlbWVudCkKKyAgICAg
ICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoWCwgeCkKKyAgICAgICAgREVDTEFSRV9BTklNQVRF
RF9MRU5HVEgoWSwgeSkKKyAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoV2lkdGgsIHdp
ZHRoKQorICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChIZWlnaHQsIGhlaWdodCkKKyAg
ICAgICAgREVDTEFSRV9BTklNQVRFRF9TVFJJTkcoSHJlZiwgaHJlZikKKyAgICAgICAgREVDTEFS
RV9BTklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQpCisgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUworCiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdVc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKKyAgICBzdGF0
aWMgUmVmPFNWR1VzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKICAgICB2aXJ0dWFsIH5TVkdVc2VFbGVtZW50KCk7CiAKICAgICB2b2lkIGludmFsaWRh
dGVTaGFkb3dUcmVlKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlRGVwZW5kZW50U2hhZG93VHJlZXMo
KTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyQ2xpcENoaWxkKCkgY29uc3Q7CiAKLXBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTm90aWZ5U3VidHJlZUluc2VydGlvbnMoQ29u
dGFpbmVyTm9kZSopIG92ZXJyaWRlOwotCiBwcml2YXRlOgotICAgIFNWR1VzZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsK
LQotICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU1ZH
VGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIFNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZElu
dG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJv
bShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGJ1aWxkUGVuZGlu
Z1Jlc291cmNlKCkgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKLQogICAgIHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7
Ci0KICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdG9D
bGlwUGF0aChQYXRoJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1
aXJlZFJlc291cmNlcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5n
Q2hpbGRyZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVu
Z3RocygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRIYXZlRmlyZWRMb2Fk
RXZlbnQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhdmVGaXJlZExvYWRFdmVu
dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVGltZXIqIHN2Z0xvYWRFdmVudFRpbWVy
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7Cisg
ICAgRG9jdW1lbnQqIGV4dGVybmFsRG9jdW1lbnQoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUV4
dGVybmFsRG9jdW1lbnQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBoYXZlTG9hZGVkUmVxdWlyZWRS
ZXNvdXJjZXMoKSBvdmVycmlkZSB7IHJldHVybiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKTsgfQorICAgIFNWR0VsZW1lbnQqIGZpbmRU
YXJnZXQoU3RyaW5nKiB0YXJnZXRJRCA9IG51bGxwdHIpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBz
ZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjbG9uZVRh
cmdldChDb250YWluZXJOb2RlJiwgU1ZHRWxlbWVudCYgdGFyZ2V0KSBjb25zdDsKKyAgICBTVkdF
bGVtZW50KiB0YXJnZXRDbG9uZSgpIGNvbnN0OwogCi0gICAgLy8gU2hhZG93IHRyZWUgaGFuZGxp
bmcuCi0gICAgdm9pZCBidWlsZFNoYWRvd1RyZWUoU1ZHRWxlbWVudCYgdGFyZ2V0KTsKLSAgICB2
b2lkIGV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCk7Ci0gICAgdm9pZCBleHBhbmRTeW1i
b2xFbGVtZW50c0luU2hhZG93VHJlZSgpOwotICAgIFNWR0VsZW1lbnQqIHNoYWRvd1RyZWVUYXJn
ZXRDbG9uZSgpIGNvbnN0OwotICAgIHZvaWQgdHJhbnNmZXJFdmVudExpc3RlbmVyc1RvU2hhZG93
VHJlZSgpOwotICAgIHZvaWQgdHJhbnNmZXJBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlUmVwbGFjZW1l
bnQoU1ZHR0VsZW1lbnQmKSBjb25zdDsKLSAgICB2b2lkIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNU
b1NoYWRvd1RyZWVUYXJnZXRDbG9uZShTVkdFbGVtZW50JikgY29uc3Q7Ci0gICAgYm9vbCBpc1Zh
bGlkVGFyZ2V0KEVsZW1lbnQqKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZVNoYWRvd1RyZWUoKTsK
KyAgICB2b2lkIGV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3Q7CisgICAgdm9p
ZCBleHBhbmRTeW1ib2xFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0OworICAgIHZvaWQgdHJh
bnNmZXJFdmVudExpc3RlbmVyc1RvU2hhZG93VHJlZSgpIGNvbnN0OworICAgIHZvaWQgdHJhbnNm
ZXJTaXplQXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUoU1ZHRWxlbWVudCYpIGNvbnN0OwogCi0gICAg
QkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1VzZUVsZW1lbnQpCi0gICAgICAg
IERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFgsIHgpCi0gICAgICAgIERFQ0xBUkVfQU5JTUFURURf
TEVOR1RIKFksIHkpCi0gICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFdpZHRoLCB3aWR0
aCkKLSAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoSGVpZ2h0LCBoZWlnaHQpCi0gICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfU1RSSU5HKEhyZWYsIGhyZWYpCi0gICAgICAgIERFQ0xBUkVf
QU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKQotICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKKyAgICB2
b2lkIGNsZWFyU2hhZG93VHJlZSgpOworICAgIHZvaWQgaW52YWxpZGF0ZURlcGVuZGVudFNoYWRv
d1RyZWVzKCk7CiAKLSAgICBib29sIGNhY2hlZERvY3VtZW50SXNTdGlsbExvYWRpbmcoKTsKLSAg
ICBEb2N1bWVudCogZXh0ZXJuYWxEb2N1bWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwotICAgIERvY3VtZW50KiBy
ZWZlcmVuY2VkRG9jdW1lbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldENhY2hlZERvY3VtZW50KENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50Pik7Ci0KLSAgICAvLyBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgdmlydHVhbCB2b2lkIHNldEhhdmVGaXJlZExvYWRF
dmVudChib29sIGhhdmVGaXJlZExvYWRFdmVudCkgb3ZlcnJpZGUgeyBtX2hhdmVGaXJlZExvYWRF
dmVudCA9IGhhdmVGaXJlZExvYWRFdmVudDsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1BhcnNlcklu
c2VydGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV93YXNJbnNlcnRlZEJ5UGFyc2VyOyB9
Ci0gICAgdmlydHVhbCBib29sIGhhdmVGaXJlZExvYWRFdmVudCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1faGF2ZUZpcmVkTG9hZEV2ZW50OyB9Ci0gICAgdmlydHVhbCBUaW1lciogc3ZnTG9h
ZEV2ZW50VGltZXIoKSBvdmVycmlkZSB7IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQot
Ci0gICAgYm9vbCBtX3dhc0luc2VydGVkQnlQYXJzZXI7Ci0gICAgYm9vbCBtX2hhdmVGaXJlZExv
YWRFdmVudDsKLSAgICBib29sIG1fbmVlZHNTaGFkb3dUcmVlUmVjcmVhdGlvbjsKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gbV9jYWNoZWREb2N1bWVudDsKKyAg
ICBib29sIG1faGF2ZUZpcmVkTG9hZEV2ZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hhZG93
VHJlZU5lZWRzVXBkYXRlIHsgdHJ1ZSB9OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNWR0RvY3VtZW50PiBtX2V4dGVybmFsRG9jdW1lbnQ7CiAgICAgVGltZXIgbV9zdmdMb2FkRXZl
bnRUaW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9zdmd0YWdzLmlu
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KaW5kZXggZWZhNWY1MDk4OTgwY2UzMTJm
ODg0NjExMjM0NmU3ZWNlMjBmNTUyZS4uNmMzYzA0ZDg2YzA3YTMwMzQ1MTU5ZDI2ZTM3N2IzMjgz
ZTRkMjIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KQEAgLTkxLDcgKzkxLDcgQEAgdGV4dFBhdGgK
IHRpdGxlCiB0cmVmIGludGVyZmFjZU5hbWU9U1ZHVFJlZkVsZW1lbnQKIHRzcGFuIGludGVyZmFj
ZU5hbWU9U1ZHVFNwYW5FbGVtZW50Ci11c2UgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNl
cgordXNlCiB2aWV3CiAjaWYgRU5BQkxFX1NWR19GT05UUwogdmtlcm4gaW50ZXJmYWNlTmFtZT1T
VkdWS2VybkVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWI4YmZiZWM5NDZkZjFiODUyNjQ5ZDkxM2M2Njg3OGVj
OGEwODFiLi5kMTMxZGQ1N2NlMThjZDJkNTUwZDZkM2FjNjRlNjA3NjM3YjMyMDI2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTUtMDItMDkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFNWR1VzZUVsZW1lbnQgZm9sbG93LXVwIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMzgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgc29tZSB0
ZXN0cyB0byBiZSByZWZlcmVuY2UgdGVzdHMgc2luY2UgdGhlIGNoYW5nZSBpbiBpbXBsZW1lbnRh
dGlvbiBzbGlnaHRseSBjaGFuZ2VkCisgICAgICAgIHRoZSBiZWhhdmlvciwgYnV0IG5vdCBpbiBh
IHdheSB0aGF0IG1hdHRlcnMuIE90aGVyIHNpbWlsYXIgdXBkYXRlcy4KKworICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6IEV4cGVjdCBhIHByb2dyZXNzaW9uIGluIGltcG9ydGVkL21vemlsbGEv
c3ZnL2R5bmFtaWMtdXNlLTAyLnN2Zy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9zdmcvY3Vz
dG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0
ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0
aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1z
eW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2lvcy1zaW0tZGVwcmVjYXRlZC9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRv
dy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFk
b3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtbW91bnRhaW5saW9uL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQt
c2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRy
ZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVu
dC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3Rl
ZC5wbmc6IFJlbW92ZWQuCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy91c2UtYW5pbWF0ZS13
aWR0aC1hbmQtaGVpZ2h0LWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0byBleHBlY3QgdGhlIG5ldyBl
eHByZXNzaW9uCisgICAgICAgIG5hbWUgZnJvbSB0aGUgbW9kaWZpZWQgdGVzdC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy91c2UtYW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0Lmh0bWw6IFRIZSBz
dGF0ZSBvZiB0aGUgc2hhZG93IHJvb3Qgbm93IGRlcGVuZHMgb24KKyAgICAgICAgbGF5b3V0LCBz
byBmb3JjZSBsYXlvdXQgYmVmb3JlIGluc3BlY3RpbmcgaXQuCisKKyAgICAgICAgKiBzdmcvY3Vz
dG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0
ZWQueGh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hh
ZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC54aHRtbDogTWFkZSB0aGlzIG5vIGxvbmdlciBi
ZSBhCisgICAgICAgIHJlcGFpbnQgdGVzdC4gTm90IHN1cmUgd2h5IHdlIGFyZSB1c2luZyB0aG9z
ZSBpbiBzbyBtYW55IGNhc2VzLiBBbHNvIG1hZGUgaXQgYmUgYSByZWZlcmVuY2UgdGVzdC4KKwor
ICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1l
eHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5
bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMTUtMDItMDkg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBhZGQgbmV3IGJhc2VsaW5lIHNpbmNlIHIxNzk3OTYuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAzZDMwNWZmYjU1MGNhZTgwOWU1MWRiM2Q1MWY3MzhmYTk4YjNjNzczLi5jODMxYzAzMzg4
OGZkZjhkNTFlNjM2NGUzNzExNWQxZDc4YzQ0YmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM5
OSw3ICszOTksNiBAQCB3ZWJraXQub3JnL2IvMTM5MTU1IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5
bmFtaWMtdGV4dFBhdGgtMDIuc3ZnIFsgSW1hZ2VPbmx5RmFpbAogd2Via2l0Lm9yZy9iLzEzOTE1
NSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9keW5hbWljLXRleHRQYXRoLTAzLnN2ZyBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTE1NSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9keW5h
bWljLXBhdHRlcm4tMDEuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM5
MTU1IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtdXNlLTAxLnN2ZyBbIEltYWdlT25seUZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzEzOTE1NSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9keW5hbWlj
LXVzZS0wMi5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzkxNTUgaW1w
b3J0ZWQvbW96aWxsYS9zdmcvZHluYW1pYy11c2UtMDMuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTM5MTU1IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtdXNlLTA3
LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTE4MyBpbXBvcnRlZC9t
b3ppbGxhL3N2Zy90ZXh0L3BzZXVkby1maXJzdC1sZXR0ZXIuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9yZWxh
dGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRv
dy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmYjQwYzA3YWZhZTc3MWM1NTU3MzQyOWVhZDQzZTg0ODM1MzdhYjg0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEzNDkyCnpjbWVIdWRvPE1oK3FRT0Y/VDIw
M1pIRlQ0VTZDQTFXa3slOU4pYVdEXkdLcWNoSCk2b3NselRtZ2RgK2tOME1fNgp6Nkp3WXVJWWdu
SCMkZ3h7YXZGdiglJFJ4Wlk1KDVDdikoYDdjZGQ3PVhZRnJtNGF2OyteU005d2Vjamh9LVFTYHYK
elNmMUc7QXVrfiZDYnMzUSoocXg9djVtaXBpVHo7eigrfV95OEVLaClATVY5bnNlU08zWWdlIU0x
Y21zQ0FyMms3CnpkaWIhJUs/OCUhOSo2WldBSkZ3Yzk2b2E3dmJ6VzMlSEBPYmJAUlpoNXFRJWtj
az9yKyNEdDxoZjdSd0RpaSFPdQp6Y0p8Wj5vM0pPZGdXKTc7TSFKcSolSmRJfjdrOSpOPyR6N2tt
WmwlLSt3PistY007PXlzOTdXTm17QHhgaDBnUDMKejZNazUxJCV5KGpaU056TzgrVyF7R3VfX0w9
cVk5P0FESkJKcSgwa29rSGNGfShXKStKJVVkayElcS0zP0s4SWhNCnolPjZ9Nz9ESmthZHl8LTBq
c0s2RFZtRHNAS1laIW47UmdFcWBgZytxVUF8d3ZuQFcpaTNKT2s2UEVuX19OPXB4Ugp6PkU2REZw
MTwyNVhgITA5V3lfV212T0RWOFoyI1F9eWA0QGlleVFFdi1EPVRzeTleJGolVz1nZHg8NmY+I19Y
e3IKej89OTxfWD15cDluc18kMXZtcXVUUlhwSXVDOG4jS0sqQ055XlNMTG5efnpye0R8eTNQP1ND
IV8pWEV0bUBANXxoCno0Oyh2b09peGVHX01FaDdwWVFWOCh6SzZ7UHAoeGFrK093MlhhU2R7cklI
Qnwmb1p9bmJkMkU2ZTslWV9TQF59KQp6M3pDQGA4T0JfJD9CU1ZWQk51MDl7UVU1bituYzN8b2hm
Qj1jbTZ6YkBaaUElMlZPRllaMmFHO3M7VWFVPChlRWgKemEpZUFLRD9ZUW1hXj1kTkokdj85V2lZ
MkpXSVVNSjN3dnl6K0dWUnYmQ015eCVSa1B7akwlWF9ZaTthKUshMV9xCnpBb2YoeF4hXj5YY01f
ZG1tWVlBayhGS3ohUVRGOHQtfkd8ISQ1WWVPM2QraD54dCo9OHR0dSFLfDFxSCpTd2J0egp6e1Y2
Z3M2NT91XlgtcFhaa1A3Iyl1KEU+aCpTPDYtUDZrSn55TmBVRT4/fj0rPUFrUC1mQnNDUChRYSUw
cDRqfjQKelNoKCY/OW1NO0ArcFI7THVVQF9TYilWJn5tJG47PjJ5NWBgeHBPb2crbSZWU3xFP3s9
RDl2SiV6N0swfmtucnY2CnpyKjt6fC1wazkmM2pIJH5tNzxVKkw5Vlc/Q0NtLWdSPGVqWjlFO30p
cCk3Vj5rWHpEfjlLTWlTUmpiV1UlSTZiTwp6akJNe0hlI1ApP2o7fVVBQGJTRm0qI2NOT3IlP2du
JilsSjtxKWo5PUdpR3FLaEB+VlcmKSUtQ1ZBdXdpcDRqWGAKekFQfUQ1O31zMmlTUztaSyN9JCo9
blZBX2pUV05sIyo8QTFGKFp7V3hJdytibVRVP3BRe21mPndlPWoxR05TNV5YCnpyfVJCU299JjJh
QWBuPSg2Tiowfl9sNiFLP2w0UlZubUIjdGpQa0x0YE4yOGolQ0lAXktheHtZRHFwPnQ1YDJESAp6
a2kmZWJHXklUK3VjcFJKY31hMlFUc1BeRyl4WVBqPGRLPTVnQSM4RFNZWiFoaHI7Jj4jXj1ZPSZf
bEpqNiglSn0KejlLQzwjRmA5fEQlYFYkOHl9cldJU3pYejRDaGtqe3k2V35RM1dYOUM3M0hEWipW
Jm0hJjJWI2ZjbFkjc1VSPXpzCnp5Q2I9QHY/T2tCQDhZN1VxJV8yMmBnKGc7MllqeVU/WH5CeHol
Z1c+aU1LcHx7JVUhalRKKkBRRj1VbVlwI3BOSwp6eDN7LVJuZEJVPilMMihuKlZXYXZ3aWE+YSR8
ITg4V0FZblpRJlpsbWlQeGBQK2FXSk0xcl83I3RMYm1lUUhVYFYKelU2NiZQckdhMUdDQTc3KkJf
fTdWTUwqOUtVMDV2RUQmeUVyKCFpdEMpRj47PSt8MH18bEhnZG48O3U1aiZwSWMkCnpmMTBUIz9v
PzdAUGZhPHh4QHl+eGM2NCt3bmE9Ny1RJlVzd21HPnBtZi14QTN4M0BQSWk9YygoOS1vekx1UWpI
Vgp6Y31sRFlUaSZCQipsRmpSZWAhYUNuMlBLQ2lgdilVVXJuVmRVPjlOTTB8TnU/bklgUj88eHV7
Vk9LMjZBZWFNZkMKenglOG8tcD5uVkcjJX12NyY5O2hWejJvRGFCJEJZUEBpWUpmPFFqWGY7U0tf
VXNIfmB2SHZOPmE9THtlU1IyYXRUCnpOT1Y/PW9ETmEySSlTRkdkZnQmRk5RNT80LTV6Vkt0PWY+
N21eZUs+JjU/KDlyPStDN3g4QGxKYEFrbDFZLXwtTAp6SjNCa2lNbUAzbEx3a0V1d3tgSllnRSFp
aGEoUFJjPGheX00+WG9rKWVaTUdsdWt0P2JUQ3t+fiZgZldzaz43LVMKejU7cGQybiN8JlJWXlI9
Z1ZmfClRIUUkeHVrYzxVU0xxcD5UK3gtWjtVcChwM1hxfXwtRlFIaGhNKkY8MipIVE5TCnp6c2x6
N0ZVQyVWYjtoPCNENDs/OSkjQnBmQGZEeHoqUk98JHpKZ1F1O34qQGYxYihMNHlTJSYlMnpUZXM5
bHJZdQp6eyR0MVMwYCF4Tz5HNi0hKHJ9eStRLX5MWXEle3BPWUJFRiMkfUs2OzV4bkdnbWt7QS02
TkplQ0dwdXpzYzZONXcKeiRqQXV4NG49cS1VVEorQUM5Sk5oK1I+QihYPzY0Rk8+V21yeCo9QXtD
P1ooRVV4ajM3aWRWKmxndmM7aGlUa1lOCno8Pmo/cVl4RTVhUnZZOXtyIUdFaF9FPWs2XkI8fVNw
WUFEb15YM2c/PzFTXl8jNDkmTkEzS1hDODN2QT12YSlKIwp6WTswVmRYd08hUTA0TX5NMWtmNCRe
ZUdWRHZSTyokKVd0NDFDPFgleWV7RjdWdUNBXndwey01ejZnZ2QjRWBsSHcKejdla0hNczMpMjJq
YmAqUm5LZntAPXhVN1F7PnJtK0BKYUJWTHRicj0qYmsybHhReH5YTmpPc0o5NCpGNmV4dUN9Cno0
JkR9TiFAdCRqKCpxa3wpcjFFQHdrTWUzbSU1UTh7OzBDRDM5Kkp1Szd2NTNNNElwfjJMK1dnNj99
SFNWZGhzPgp6Ul89cU9LXzJSfCRKajx7PkshYE4zMSFzViVOPEtXNW0oMWpJTGhYLUwjMD1tSmlX
Wm8lJkpjdjlvOHQ2aUhRbGwKendsPmBmPEsjMnxyXkRyalFEa0sxP3J+Vj1hayVEOTY9WDgzUjdW
ZzhgI2dIK1AhTkZOaD5ZIVE4MiVHaCtPKmsyCnpIfFpSP3FUKStfJlN7K1ktfSR4Nmd2Zjc8Umdq
ZEY0RSZJdW5GLWgqbyVRMUIpODctIVlRaXxYd1J3PGJLaUZicAp6UGQ9OEJZPUpCelM1YDdRcnNa
K1NXMyFCMkt8Z2pEZT8rXjZgfEghR3BIYm08QzJOeSolekdHflo+YT4mPF4pTWoKelIjcWF9O2JS
SEpvbW14Xz9kQnJodSNNRkRLQW1mZmBDYFY3SCVMTlYzWmJwMzk9LTZvI1h9Y2UhKWVTaFBsM2p6
CnpZaDxLb2BVeSZVdj8tcD44PVFtT198fXI3MGlZcWkmd2NiWWFpbChLZTArUmBNV1Z3cDEmPCta
N1E7P01yLXtaZwp6KVNAP1MrQkNBMFFkQmhpQUB4dzhsMXsqNk0tRWB7XlhDOV4jb1BreHF2QDc4
KV8jNnwlN2t5OTspJm1+QV5YM2wKejVZMU4pUD1McCMmYl9Mdmd0QTZhRmdlaXIoXmAlMy0xJEsp
dEpPbW4mWHUkPmgqZFZtS1dnPEhKPHtrangtai1XCnpNRiRtRTNHalg5WG5MRTZGNFJNX01fRXx4
RHFWSmU8XjJhfmh0cGJAbXpIVypoSCF6NGp+X29pX3B7Iz8kIyYkJgp6e2BGV2k8P2F+YmRFTEp6
WStOb2olS0B8bkEwNiFKU3glcUJQWlUpU01VMktHXmJpT1pWUHowODZnSykrJTdvZTkKekA5NkJU
eHpneChgYXREIUxxa0opZE9DQzhSVkB8ZGB9PD4/dkkrX2NhJnNxbUVUUTFfPig+aGw3KXFVYWpg
ZHY0CnpxTlRhSElVMD93QHA3cE5KSUg5ZWQtcEQ2SlFPb1ZMdyN1SEN8eGNkTjc+WkhVYCpKaG9Y
Wio2UyQ8cWcoSWotbgp6OWA5IWQ1TEpgNjUqKmR4bnVoZVp6ZGlFPEc8Vkw0VFZlbVB6UGBSUCN7
ekRVVXspV3cwcG45aEZyM2gjZHZEQS0Kem5mNztyQz5sam5jJGZIMHk0Wk8zbSpsTURgcEp2a1JZ
RjxQWmt6UGE4aWxufXhsWWFPaFhZPFF3IU9JJFlpWF5YCnpsQTtXTzIrYnYwOFNsNDhvO2N8MT1W
eUJIQSlSVl5RSlZDJEhJTSV8ZjNYe0pAZSN9S2RGTGN4aUNWTyp0U28+VAp6QiR1Nj9VNiRJcDlC
WGx9QTlZaGRLdSN6Tjx8RS1xcG91Z010VT0wJU4pTz03PldNeVFybXZpUDtSfCNqZmVMITgKeiU/
a1Jmd3poVjBRSVZGV3JaajNkcXBRb05fLXFuT3xJbmZHXjc2ISgzNGopX182JFgzV21hRWJ2Kk99
Q0RTbGdmCnp5QnZQZUVWb2xkcj5DSCVhcGIlX3trYURaOylEJGltSDZaQVl6ejVpLUwlZ3htYmAp
O3JoZGBaPHpsem9zZiN2OQp6cSNWTUt7ZkQkRVdFWiluYlpYZkZnXkN2KEpSei15I1BEe01nJU8/
WT9WK2NRTiQ4fG54S2N4QkU5dlhBZk59QSMKekA+P3A7dG47ZSFSRmFyRzdzbmIyTD9TSkBNUThF
YCopaXQhO2dad2p4Z1Jie3lIb3t5RV5qeEVgRV9WeVdUZDV+CnoxK2IkemFvQHptZ3RAQiVFcUIp
MGVCOypaYzcrI34kPXxBemhxYHJWUSshREdVOHV9RGJLLTk0biMhcjRHbzVmKwp6Z1BNSyEwQ3Ju
PUdwO31sTHhPe0NUczwjY3kyTSRAeTU7XmFSP0BWTWJHdnY8e0BVWChueG1zKk9UJE9WQXRyZzQK
emI/UFNpLVk+Yklebld7WkAhT2x0JTNycW83dnwrbj05O1dlQjJrMnAoWipRWjNZKU9keWlaRkBF
N3ZqfD5LaFZnCnpwWEhNcyVGNk1peF4lTz5aSjh6fTJNej40RWttZHw5TF5qYCRaSUl6alZjUiFo
bFlxaV9BbmAlUWhjcXU1c2c8Kwp6MGxOQ2U3b0tTUmkraE9yK2NSWFp1NUZxbGp5Smw3VGI7LSto
KHAmZloyano7ZV8/ZS09aE5JK0UteV4rMzlUOUQKentGUDcyPlgyfGE+VG53QiNPSkhKc25CaD5k
XmdUTHlVJTRrNC1Cc35CYkE7bF8tSURtKTtDKlImUUQmT3tRQzc4CnpGY2w+d3BlWiVNbGgpRnZ3
e1BFV2hgYil0LUkzckpEdU8/YTZoZ052cWw0PUJkPnUwemszSnBuU2BeQk9AJHN6YQp6dDJNYmhY
Xm1FdUJjNUhmXzh4IUlkcmhed1RyVHRpSk4jNG9WXj9LJWVmdTZqQWwyPmJ7VHdjNV5vSmhkdU96
d2EKekswWEJweygjUVREMGFhSypIPDZ9RUk/eUArRzdERXVjIWU0fDdkJCtrZj19JiNCXyo4O1Bz
VnpnQGxBOzt1cD5lCnojeFNMREwydTRucFlnaXJzJEhDTzdGTHxaK0pWfCVSI3Z0aF4oYS0/MWs1
NVZtMThnfEYlaHhjLV88YHJ1Y19JRQp6Nyo9NnZXPjBZJlhZK0N7dERMRD5tZyU7PmV3cD0xQyp3
Q3ZXUnRmO2dZaktXVjttNXg/USN+Qkl2a01lP2dBdFoKemhlSG9taHNeZXFgNnw5Pkd9Mk59MT41
TXBJZ2o2Tz8jfGxVUUIjfHJMKTshITU2dGd3V01vPWVUOFJ0dzYpXkNMCnp3KUVobWljTjc2LWpp
bkNufDJLcStFWnBrMW0keDZRQmZ9TDhrNEg+TnBUOCR2SzlFciFmZVJobEt4aUFNd2R9egp6Pk9Q
Km09WlM7UiVUJV5VQl8kPD05UzZTall0KlNYPi0+RDBZRE5qTGU8eXRLeW5fMENIWU5ed0U2XztM
N1l9aTcKei1vMVBHO2UmOz1ERmd9Tnh9QV9fS29afnlnIVMyaCVFZmtCIWc4TSVBUDhXLXFNezti
eVJmRD5zZnh5Sz1pPXcpCnpkVTthe1BAK3piaj9pciRsRWpBTGtPMTsxaURNdj5BY3ZGWTI5a1kz
d2F5cFNpbjE2YFZCXk0oV1N2fUQ2JEdaYwp6YWktKyZLLXY7Y3lnKCF+UlhHb2w+PX55UXpiaHl5
OEhkakZhej5qcHE9JXEzbXpQN215ZTEtKmlUWn5ST0FEcDwKenlhS0UjRSZULSolcDRkbilZckZ2
JDtVdXFEa2I/RzJaZUQ1YiY2ZHdpWCtGNUN1dUMqcDhLSXhRY245clRVJD9lCnpjYUMqbCZfbzsx
eSQ+SGcpTCR2MyQ4YDxlMDFfRFVwNV8qMCVNT1dNXnk8RCZjam0xYT9kdkw9ZX58Z3Byd3lMbQp6
ZHtMUHs7UTJQIVFiU2N6UWQhVFM8UDVRRj5FTjJiYzdUQVJRbUh7SktrbkdNYkNTKURKODU0V0Y1
fipeZGkmfVcKemBRb3hBeUVIRV5QYXFKJEQ/fGpVbURfYWdxSTdKMHl3c0wwZSpYU1lTTj4/VU4l
KEB0XzNRZy10fGljVktmakZ4CnpXJT11YHplNFB3KlJJbGN3fFNPfWxEb1diMkFDTz80OFZPWVMw
Tk5NYmJyNzF3UUtydE82LVExbT4zamNzVCg+Tgp6VClfVEQ0eEwtMnt7ZUpmZSVDSmlAPVBDPiVM
Ui1GekpLIU1UVG1MelNKMkMjI3lvVCNuOXR6cjJ4NUcwRChjaW8KelNLY0shb09ubkomUGM8JWNW
QGQyLWcpVDRwPyNnNWIrTmJLMG1AIWtTQDw8Tzl2WlVoekl+ZkZaeXFmdzEjU2oxCnp4dVQqQUAq
YWRpTWE0SHpufCp6S212U3g3VFViYUoxX2xLTTFxMX1aNHBTfGxYKjhIVClVcjNqfE0yM2tidHRp
Pgp6STdLUStEMWU8Y0g4bW1hPn0yS1NwYWMlVlolUEloc08hYFdgJj1wfUxuOChYJS1nfVRRTVdD
LTRCVmc2PSVKZW0KellzYl9Gb3J+KVMxXk15Z2dfYD5pUDJoQVJhekFnfjNQNXhpZms2QkZnSnVw
RSNyOW9BTnklSjhqOWp6RjBfK2lYCnpxIXU7YChkaG9nX3hrbF83dElIanh1ZVExKng9d1ZiNmFL
MzYofDI1bFhXZDNCNyNVSDFfcDlLSjlsPD1Ed0ZzZQp6a1NnMXdQQnFzbCRqZXN+Yyp7Xy1qIXNV
YXRoZSFUYW98MlF6Qzg7M14xeSpAYk1BfjFsKEs+WEhEYndJUCN1a0oKem9TZEEqQElzbjUpI0p7
ZyhRfmpfUjgzZVo7MGR9Q0ZvPGFleXdGUUd3TTd4LTs0bkVve1hUdW4qfTxWJVhEfWZsCnpWTUd7
THBqS0pRJkleWT9YJjRscTIpJF8hQ2tXY24zMD5SR1dJbk1fbTZNWSpKYkR5XlJlNW9NbHN4bVV6
VyZyJAp6T0ZSMVk9aGtUUHRDQDdsTlVKQENBIy07PnNgKXg4RnRGNXtIPTM1ek1lfntIdjQxYWNM
VkBLRmJ6JF5wNmxQWTEKek5+eCVAM0k3WTR5VG8hfEBLRzFjVD03ZFE1VXNFWlhPY05sWjZiYUtR
bVpyOTNJekhTNS13KU1UfFo+WDF8JHJWCnokXjgyRER8QXBQO3s1STRxcVM2TzhtczAoTmZhdzF0
Pm9OTCFpMGk0WEVIWik2WTNoaUc3WmpiVlJ0OStGVzVLUwp6QmNSMCVoY2hHXkJpVDktRio7YEtU
K0tjPlA1eDJ8c2k+cXhseFdjbThQcUhfU0dBa2wyJEJmazlAcj45MV4jajAKel85KiNqd34hRHJq
Yl5NKGNJPmdnIVclWDVFYmp2V2I3UTZZMTM5IUxjN05DanR0fWMjOTc1clgxPEI+d0ZMOyY4CnpX
PUlxYDBVZ3JuZCF3U1BXVVhLNGUjXjdUdWt5cEcqSEUhQCtGRHUtTlNjbjBqJktacVczYD4raWc5
VCR5a2VsRAp6QERrY1paTExlVnh6Z3oockkrRGo9WnhOSVooRENLJndeeS1sI0VHckI9am87Z3E2
RG9fUjBBY0o0VSFydXcpQ0sKemo5d2pXOyFqNmVyS0dofXl7dzs2Un1lOTI3aS0jKzJkRitzak1C
UiQmfiFlMmVuczRScEpzeXRYfDE1MV8rISRECno2N0c+dCFZM3VKM1h1IW5ub2pNJF8qdV5jYzx+
cDUxJn4mQjRLTlp+K3VKOGx2V2BlM2t7Xj0wUF8xNTUqb2E4eAp6NUFSPE1gaTg7eTYkaSR1Qjtu
RCE2TWlCLUoqeT5JKnE7RVQ+Yzl4az42MVdqR0dvWlRPbFA3ITZMSiUoMm5TNXIKejgpZDVIXnFq
ZU1gKXRsVVNQMms0O3pEQlBzZiFnZm5nQyFOeEZ5PFpJPV4tVWBBNkVAN3YxaDY7antjPnBMbXdn
CnpBWV43cVVZTmhwZ3xaPE1wJl4/PmNyJWAjITtwelVqI2krYWt+Z1AlYFohb31fU0c0Q2F7SCtj
SDZMeWZVZXloYAp6UCMtS0ZGRSpNQ3VLdUVWNXdsaEVVQTlVWkAoRSNhcUpWS1c+QyZJNVkjYTNA
YUpZaHgwPj1SI1hMS31MODkpRSMKenYoZmZsJWcraTVlMWUwNnAmR2x4RXVEUXNMemV+WEpRTXpC
c25Qd3FYfDE4YiFPfkEreyMtWmNEaWJES0BIUzlhCnptKUx7MEY7QTFuV2otS0Y1PkZiSz9xfnMm
Z1RpQzxeZ0wreGZXVDlsPmd5UVMhb3lkRz0/fU1SMi00ZjhTRlQwNAp6RG49cmdTcjR1WUwjRDx6
I0MkJUlRUXxzekx0SmVCeWlJMyFQdm58Q0A5bENsZihYYkFkQitYXld2cGdvRnQyZEEKemsoNW9Q
QWpRK3k4PCZpVktYWUg1VUtKN29gZ310cEI5NzkyfExtaGYre0ZCU1A8ZCVBQ2VzVktuanUmNkYj
bDVFCnppNmd7PD0qMENyOytDSEpgZyRsVjAyJVE3bmk/Q1Ezb2lUa1hrZ3oqTChjJGI0fCl5NmdT
czBII1ZoZyVSSjtVTgp6QkxFUD1eSDQhNmh3TGEyZiU0OXMySF5gfDNjYFFYQ0dLN2EyXiV4Iz17
bj0yREAqWmo2akRLbzlYTjB5S3lLIU4Kei0lcXtrRFVfKk90cVQlJUdqUTg0VXB5I1YkVz5MYEAz
eUNzR1g8an1xKVN6R0sqTV9hXmVLMGxzV1BWKnt6NHJ+CnpOdFQ9RzJJOzt1JjRCbn1sN3o4KDJN
PTw5dWZoYFpoVyEmdTNVQjNBeCMxPUFJbiFFZ1BsaXArPn19KVJ7X1EkKQp6NX0kM195ZzdIRjl7
VzVsPnNuWUNjWEBVSVM+ajU3LTFCRXZ7YkYpQip3MWZ2ZylVcU5hQXJrSjdmbXh0bnBPQDEKens5
Pl55PEU/MzlwNy1De281Sl4+dmRAP1pgSE16X0x5SXtlI2dBa1ZndnN8emkzcmR1SlJYaygmV0s2
R0gjT2xBCnptNFIpcWNzZkRkOyVRP3RnfXZhOEdUJi1NSCg9NH5nMU90a2olbkRycCNkfn55Pl5a
Oz1kJnRTeiNNYVFlVGZ1Vgp6I20hUWxgWmwwampKU3lsdUZyNGY+NjFob14zaUV+NWNAXk9XKWRM
QFpMQVdfNTtXKSNlPDNBVz8lZ2gyJj1GZW0KeiVLJGZNaSoxSVN1SyYkTmchVjFjZDxXeTkyZ2Io
NUhBWmRfY3tGUyQxdys0VF52dzImQT1XPVFfIzFmNUI5RiZzCnpASWM4VWJoRXY1YThOYDljKDNj
UmgjQHNJZ1RGVHRGNH5Bfkw5ZGh2ZV9rY0MlR3VSKnNKfW0tN3kwU2FDdHAzPgp6PmNVdGAmeTlT
U3AoWl9PeGNpQlBiTU5PSTRTND0lPzt0anJOYm94SmtPSG8oJjFoWlM5fEdZZlJMQ3A9emlPejgK
enYpPUV2dzdpXlFnblA5eCtkbj1yMFowPEdgNmUqOShjSCZxS2ZmXj00YTVfLT9pVG8rYTREflVK
JWpVaHppO2FkCnpwMmxMazMyQ3R2cCluJWBzK2x2fW1pRzl1d3NZMENfUz4tSUx4JkNsYihHVX5l
bThpKkQ+TzZ8JE9qbWo/LUtSXgp6KztnUFZ7O05rQm02QDlBO05URllFVSVvb2NXUUY3ZDNfdTl5
WkArOGkrM2kxR1czZWNSOWUqOThGUzBPNXYzTW4KeldtbSR5OClrbFlPN0k+UF4yUmVTJDM1RzYk
PkJvZDteSEVoYih+SWJwYnA/b2ZoIXJMajNZbD4wbyZxI2MkPzgjCnoqRGhiYTQydk5VWUQtSHc7
UEp7Mz9aSmlwI3BJMF5hclplczluaDZaSDU2V0xrWXg3dXshOTZWRjQpa1o9bSklXgp6Q3F3PiNf
V2B1eTt8JW4wWGomR2tvZ1k2UUlERUtrYTQ9b3Q9Pndybk5IJXoxPEpDMzVKd19VMF8/dGt7TEtr
OTYKenM/VXU+T257Xlk3UnhJckBWS00jbEsjNmdTIUFfbjtRRylxcC09MGshaVA0OzV9T2xSdSY+
WU57aVZ7Tkt2X25OCnpTOSppVE1XPlVsVCotIWhTNitULVdvNl9wcSFUYntrb0J6bE0lcClrPkZ+
WEJyQXJGSjQ4KjxuR2Ure2xmYTQlJgp6O0B4MiZ7YGtVSkk7enxIeyReR051QmZBYCsqVHY8P1dO
XnlZflYoNCg+S2s3Szt2TzJ7UCR9a0YxeFdGaFAyeUUKekBXdWNWaXxzKXZqT3RiY0xFZnk0emQk
KD1Tckg5KWY/byNeIWM0bjNJZjA9PldQcjhYKj9Hdm9VPyhhRTJPPFM5CnpEb2t6LWo3dTRrPEZT
WnVVKHFEcUstOTFNZklSXnY4cCkqX2gwUERNMmRQa0U/NXwmfExaKjlRIWpoJXQ0T0lgKwp6OFU2
fCY8bC1fWTYyNCMmaEp9REJGWnlaZkF1c3JaZz9KQ0pfSl9lQDZLREtIR0g9WkNLKlN7Wm9TYkxW
enUzejgKekNnO20yQjt+aHs9PSNIbCZDYj5Xanw3NFNPNTJ9Qk9WX0JBZUB+QFEhbW5TUzFRXzhe
R21lRktlRWIqeXY9KiNPCno5VTM/NWs0NWwzSy0rLS1HfUBeSz8rNHdgZlVWIX1JdCtGWktIQE08
RGh5OHYta281VVYtMGVycypqVT58OWBvcwp6e0t6cEc7VXo1dkUmNithMSg1dkUoX2ooKzxYdVlI
NylEKklJeGsrUHY0OUB9WShjKlREPDA0MTIxMjJ8ITlLZkgKeispKGc4NFBjVWdURlMwR3tOfkp1
YFRrJHpTQHNgYXJsekk+JEFMenlMKzNCTipQLTdOK0x2N2hfTHI4UFVLPT1pCnpudCVLaWNjK2Z7
PTB9bn13aXBCM2ZgYTRDZT93TDJGdiZkNVFwPmlJRi13VjhGVXJCXytnem0rel5HeColelItbgp6
Y1BCUDhZckBOY0VmRjkwUXMteWBlU0pHZ1l2Wkt6QG1iZCgtPjZnYG4wfW1EO2liR1RLO2soVG9k
bj13cXUkTTYKelJNS2NlcEZTbnY/dFVgMkgkOGRzQj5xflpHaWVsXkQkO1UkeDZqZHFMXiF7ezlZ
XjZUT0VDS3RfOGhONztMY3k+CnpDdUxQdXVBREpoeU5FQkkwOTZobzk7Un47QiRMJTxzfVpTcUVT
UGopIUF3dDFVaWJDQXJ+SWNKPnVhY3cmb2xgMgp6aV8qWTZBK3R6PTJ+d1FnMH1fQGphPUFLayUq
OWpPQHNJfnFYKTJIaGVFUVJCO1I0ZC1yOS19Klp9Uz9BVURWWV4Kenh1TDZ8WFlhKTtHXzxTS0xA
YkdoQyRWR2M3T0lQcTMtSkN4SCZ8JmsjUExwUl9zNVNQQSg0VHZsUHY0NEZqYDhpCno1cGdCTVAp
KSghdVFOMEVxJnxiTzItVikqWkNsMWooUlBXSjNNUzBxU1RVS3A1MXFvbXVvVUtVWCZ0cipNYDgr
Swp6QVo7O3k/KHBIbUZtQXlFTHFRM2JQQF5+N1lKWVB6PEBoVV5ldUN+VVlIKjt4LX50bUk9OEA5
OzxlY3A2SnEkOGUKemhjWDY/X1pYMzEjWE9GeDRoSEtKYUREI2xlITdaYDklYys3JVF5fVIlM2xI
SiRWOWw+RSpndWRDI2ZARCFyO21hCnpnREhkWGZ7X1hlUjhHZkwpNzg9Nk1kcWtJckZ0UExFcVlQ
JXVQWFVQVlAqMHlPQHxRTlVgOWpjMT4xck9AM0RhMQp6bVE5NlJDcFVwajYzTzVsY3FCQ0xORE5B
X2tpdjBKcXs8QCU3eWJFNyZ9PEhAeXJlKkwyaEkpbiRLc0Q4KDZ2aUYKenRCVnVEWH1WeH53dndm
LT8tMX4hMEJVMHU8dEdWWjREZDxCIz16MUE9KFNXJDxtNj83UlNOYjRjTlJKWXY8N2dYCnpEY1BG
OyNUczsoLUokJkFRRCZ4MlojUV9qJW91MjQmPztgUm87UUhKakdwdTRSbVV7fEdPPjRvWGckZTQ9
KTRyfQp6QykyO31CQGd2SlUtRGM5clhqaG85bjd+fHk0cXBqdkdDeFdgT34+al5sdHliM0d4UD4w
Izt8Zj5zP2w3PU9TYnoKekBPUmomRj5iayN5QzxrYlFuUFFHRksxSj1HeCpZX1BHZGRDOFdpLXMh
SjY8eiRQZzltMEc9fDRoY091NHVtT3AoCnpiK0wzZHYhKDl4dXg+JHkjRXVRd3BUTV5mRT9AcFYp
Z3N4KVVOXk5TYmhjbEZjKEFlal9HZjlDbkkkPjVsTGB2egp6WUBEK2xDM04ye1lZUDVVfExTUkRs
UzN7e0ljZDhyZUhsT0xPZmk9UiNSZ3RFYmgqKlVveDNpSmlBayU4bygxP1oKei03clI0Y3QrYlUq
RSRkTUlpTnBwMT9vJHtnRWp9MDU1VSQzXmdlRGBCek55NWk9I3wrUXdzeCgrK1l0QHFfc3w8Cno/
PVhEalBlOUZwaTtlZiNFckBfVlgzUVBGNGVtJCVDRCU3czR8MyFsSjJ5MFcoS01MdHMpRFk8XntJ
RF41S1VrSgp6Smklb1RrN3BQfVB6KDk8ZTZfSHsmZ0RXQGxFeTAhZl4xNlE4fHB8dDM8JmFUWWI1
UX4ocGRjRygzJGArbEJaS1oKemBAbm8/OW5gKkJ3NU8rTWJpNmI+PGZjbFIlYVRoSCVRWW4xXmtP
ZyFQfUhKXyFZOSlFODg4PDUrcVFnSlI7Q05kCnpVfktHKTJkWGpmTTBvNEIjRXkpZkRrO3R8Y3Ar
ZXohYFJjdUMjR0c+JmVjc3p2Q3o+NG1tVkZ7VH4+Njx4MUNAIQp6ZEhMUVJvYn5jZ2NLOVJDI1Z5
Y2w7Z0ImWW9XP35XVWl2ViY+WHA/MVhXYCluMzEtcXY/dzdXN0wpS349N0FrKGsKeisqeWNnbTwp
Y2lJe2VuUDBsY0khTWFiPT9leksxIXo5Um49RVV6WmtBWiZFTyVEWXw/MWhAZzFgUnNVM0RpMiU9
Cno/KXl1NGFvYW9TNCRjfDA7TDN5cyZaVEp0TyEzdnRXK1QpY0h0Rl5uNn5FaTgoMkgmNTkkcCla
aipUaCQlUSFucgp6bWs2JXBxVlJ9ejgmckxtQTtXclQ2K3FuJWk2a3dUWFBTbmVuTmc8KFBqLWta
NTJrVXo2QlkzeyQwQSZeKlpuRz4KejB8MHtZeGxKWjxDSmtQbXA1RGpDMURCP3syUClBZmtpWERv
ITBxcDJTKjthPjhmMXtSPmhHVnU5P1JSdGRSP0JBCnpxb09wMSs0NnRianVNaUVJayM7S2RgZDBf
bU84JCZlS0FYNnMya2wyXnNzN0NkSmBTRjdrayRvbDNsbm1IOTkmOQp6MVAoZU9CczJKWUFhZ2pa
R3BBMWpzYWhvRUEyMnF+dXV2VUU3WCE4cjRoX1o4U3JnQjEwfkxWOXBMOCptSGlhWVEKenNRazkt
Xjh1bCZ5UGZvIShjUF9STE9obWcwbmM2VmZkaiV8eHwhcXZSO2FvOGR1Ul59UWQlJU90RCNUfjFs
UHw+CnpufkhBTHs9Q0krMEc/Tz8qb0RkRjJ1V1U5bkkxR0BgNmUpaTV2SGpnVD5iPn1VQjF3I01w
fmBPPyZkdlNmaml9RAp6S29mckpFZnBETTxQPEU4VFk9O3wqans7a0ctJXVjc0FySz08dkFqKklQ
aGxGc29qPTtMU2otMHo3PkVsUCRqYEkKejx1SkpnSitPSTh1eCV6YFMrcGB4NSYqVHVsNEk0Y2Fg
aCU4YkAhV1k/dE4hVi1EZGh9ZXRzVjJoK3Zrd0tEYFhSCno5Kyl6R2lzJVVpczYlYG5AeT08eFMt
MCt+YH54eks3cy1BeTl5b1VQSWpPNGhmUGt4V1VveWEwViNQSVBOYFViTQp6PT9Gand3RzNWfSM5
RC14Sz9yVj9AK1JZPk4yfC1xN0gldV5lX09mSzM7Nn58amlRRVg2XmtaTGEyfiomMEVPZFgKelY7
aGlERV81UW4qTFA7Qnk4emYzSF4/Nj5EbVMtYjc/WnQ2VF9LWGRCeERIJUU1M1I+ODAtT2docHdx
M0FrUENXCnpmckVxKko3Z2Z4V0gycVEodk5+YEh4Q2pZSXRQciZfaW00WiE4bEE1Ozc5P3UwV057
XyNUJjFeJGppRzl5ZDM7SAp6c0NoQ3UxWmJrMG47V3ByNERtUWMhJSg0TTlxM0piZTAmbyEwVmFS
SW18PFJkNDR5WkV1QyF7aGtMYzJySEg+JkcKeks2byRkOFYwaWY4Vyl9d2h9ViZaU3QoNGB0b0Nq
bj4pKTJvKCtUZlpMNn48KHBJMSQ2U2ZZXjB3aWc7OTU1YjR6Cno5NkFuYEkyZU5fMGA0ZXV6ejFq
QGhhcCUyIzFHJlFjemJ6eTVHWUZFM2xMNX5CY05qTmoxbE56PW9jSkc1ZDVjNAp6cEJAcHlZIUwp
d2YqSClsITJLbnk8JnhBaHlyOUU/RVJ+Y0UxTiQzejJLVSVTLUJocHc5cEwjT3B3UTVmO2xQZz8K
ejhjSUdrZitJVjh4UG40KTBRTUh9QEVSVX1PcWw3LXlhdnBrcUhUNWx7MXojeHJweiU9PEYmUTVz
VFE3NE5oYE9ZCnpZalQ/dyNpYC09ckZJfjs1Tk5wTyFQeCp8NEgrKVkqVlNmX2I4PlFraUd+P0tI
YkhUfmpsS1Ete1h6S35TV3tIJAp6dVpEdmxmUjktP29zcEpTdSt8OUomTnUlSEJveGYyITA+fWRm
c1BzKHQjZ2BgbD9eYV42VS1qXl81enMhR1RXWVIKeiRtczhmcilZQVlLWm5VR2doRiFEO21Uc0RJ
Rlp+NzFIUHpYQCtVOyQhNmdwMyEyV3BYeUNmMitTUlVwQiM2WnhmCno2PUFePTVAakNVdm1yUUgo
alRAKDlwTHZOaSs2MnglODRgciVOa0BPOzEmSkRgYzxlblNnU3pzKz8keTRLSHVGNQp6WVdnM21B
PlhKfXJ2cTdWTFUzYntFMVplZWdAcHdYI0FPUWs2T29uQ1lTSFlXU31Ic2tmWU50KCs0dXlpPShg
Vj8KelBMSmt9dEhGNT1fY3ZGaXBGZStvbTlAOHIhR0p9QCVHN3xKKnk7KE54MlVyZjN+JXNUSEhA
PT44SktxYStnJkt6Cnp2VmtocE1KbWVwQnxFQz9zb1EyWVQ7OzxmNV5JM1hrZH1+TjsrZTtCPlR+
P2Ngam94TUpfe2luIV5oczxNPGopMwp6MWtIZkl5fkRWb3ZCeGdpaihVI1V7X1F+U2BVU00+MnJI
NUo/YjhgPzluak9XZSVoaClYUm9zcUQ5Jjt0VGhoK3UKek05WT1zLW5GJHlqKldGJHlRdClqODBC
NGNRcERyZkNFdSVsVGhiNDkoeHhhcCN9c2NlZWJSOXFDWCUzZHBwZD0hCno+M281dm1leDhMaS1L
az1WaDIyYGZhd1hfO1l1JTZUZk95YD9QLThRVXpZWXdla3I0e3gkeEZUSD1Qc3dyKTA/Ugp6Xnxo
dGlwXm9KdjJhWChCZj0zJCFKaH45fi03ZmB1ZCNFI007V1l4ODZsbnl7ZVNwJmRiYm5KZyZBdD5T
QH1FOWsKeiNMdkNDMFolXnduSFJvUTc5MD87MT4xWVYldFpIX2RgV2ReVzd6S3lQZ0MpMjBEKjhV
ZUJse0BHM3txSDR7OEFnCnojKmZmNU1VbzdqMDY+NGZgWU8rNjNUQzQpWEhQS0cpWHsxM3heRHVr
cVVCOGY0YVZ1REpAJXp6VmBGR0dlfjBrWgp6djxqKFdSfGE/KWAwdExHPSk+YXg4eFp1b2ZDdWRS
N1Q+K2clJWRTdyh9ZHNIakI3eWtmbCklWHp7eHxkSCNTdm8KekVReCZsZ1JHYnN4bk4xeFIhcSEk
dWlGTihBNjVTXlVYcnl9cT1YWWYwVn0wJT55Mz9UQG00MTUpb0VoJEVhMVEoCnojRCVRKS1yXzco
cz9jWDsrVyZgPT57QkR0e3VeRWtOMlB4a0pNSVNTX34rJUg4MnBuNXwxSGE0UWJQRU9NLU4zZwp6
OGdpRy1fO2RBKSE1Pnt1ZFRJPE9qcnthYSZpfEExfDFFUj1wTnt0TGhDWD50X3tnbEwmfnNqXmoy
RDZzNldpKnYKemRWQFMydzJnYXVIRDFXQWJeP08lV2NRQ15LV1R+dipUZ3xURnxue0J7YWZOPCth
QUYlQFNtNHxWKHxZZjR8O2BDCmFQb0NpU2RneU9RIX5aQX1KOE5vcnNgd0FMVG1LMVd1MDJ9LQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZl
LXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRy
ZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU4OGM3MTQ3MjU3ZWU1NDFkMGE3Yjc3YmM4MzMxZGEwN2ZiODQ4OWQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13
aXRoLXN5bWJvbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1s
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDQ3NgotICBSZW5kZXJCbG9jayB7aHRtbH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NDc2Ci0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsMTYpIHNp
emUgNzg0eDQ1MgotICAgICAgUmVuZGVyQmxvY2sge3B9IGF0ICgwLDApIHNpemUgNzg0eDM0Ci0g
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcyOXgzNAotICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcyOTogIlRoZSBzdmcgYXJlYSBjb250YWluZWQgaW4g
dGhlIGRpdiBlbGVtZW50IChyZWQgYm94KSwgc2hvdWxkIGZpbGwgb3V0IHRoZSB3aG9sZSBhcmVh
ICh0d28gZ3JlZW4gcmVjdGFuZ2xlcywgZmlyc3Q6ICgwLDApLSIKLSAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwxNykgd2lkdGggNjcwOiAiKDUwJSw1MCUpLCBzZWNvbmQ6ICg1MCUsNTAlKS0oMTAw
JSwxMDAlKSksIGVzcGVjaWFsbHkgYWZ0ZXIgcmVzaXppbmcgdGhlIGNvbnRlbnQgYm94IHRvIGEg
ZGlmZmVyZW50IHNpemUiCi0gICAgICBSZW5kZXJCbG9jayB7ZGl2fSBhdCAoMCw1MCkgc2l6ZSA0
MDJ4NDAyIFtib3JkZXI6ICgxcHggc29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDksNjcpIHNpemUgNDAweDQwMAotICAgICAgICAgIFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICAgIFJlbmRlclNW
R0hpZGRlbkNvbnRhaW5lciB7c3ltYm9sfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAg
ICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw2Nykgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MC4wMF0gW2hl
aWdodD0wLjAwXQotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw2Nykg
c2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4w
MF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg5LDY3KSBzaXplIDQwMHg0MDAKLSAgICAgICAgICAg
IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICg5LDY3KSBzaXplIDQwMHg0MDAK
LSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDIwOSwyNjcpIHNpemUgMjAw
eDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTEwMC4wMF0gW3k9
MTAwLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgICAgICAgUmVu
ZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNjcpIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFto
ZWlnaHQ9MTAwLjAwXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3VzZS1w
cm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFz
aC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjMTRiNjA1N2Qy
NzczYTRhZTk4NzI3MDgxMGI0OGZmMTZhNDdhODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxp
dGVyYWwgMjg1OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxB
JUBXcyRsSGBvazxtfT9vVG19bk0KejxDSWhiMTUtMmU2aGtBIXF8YCklQj1lLXk8V3dgV01BSDtB
IXtofD58RyRCbipwal42VF5SbUA7RFd1JkNvP2NgCnp0QDNubjQ1XnMmX1MhKkMxX2dsdzJCclYh
bz4lMitRVzVAZyk3RkBxcTJYTW1FQ2EmXz4xSXwyMHBrYjsyRSRSdAp6WGRzTkhnd2IzdW5oUXBB
IUR1Y1IlPnw+bVVeRXhkQl5QWXVXPXZzVVlqV3smRTNoNVE7T1hrO3ZkJEA/Mj5eel4KQnpWIWVB
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbS1kZXByZWNhdGVkL3N2
Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltLWRlcHJlY2F0ZWQvc3Zn
L2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTEwMWI3MTk4MzhjMmZk
YzYyMTQ0YTEzNWVmYTVmNDIyNmIxYWM3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltLWRlcHJlY2F0ZWQv
c3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9s
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLWxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDgyCi0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBz
aXplIDgwMHg0ODIKLSAgICBSZW5kZXJCb2R5IHtib2R5fSBhdCAoOCwxNikgc2l6ZSA3ODR4NDU4
Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4NDAKLSAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzQ2eDM5Ci0gICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNzQ2OiAiVGhlIHN2ZyBhcmVhIGNvbnRhaW5lZCBpbiB0aGUgZGl2IGVs
ZW1lbnQgKHJlZCBib3gpLCBzaG91bGQgZmlsbCBvdXQgdGhlIHdob2xlIGFyZWEgKHR3byBncmVl
biByZWN0YW5nbGVzLCBmaXJzdDogKDAsMCktIgotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIw
KSB3aWR0aCA2ODY6ICIoNTAlLDUwJSksIHNlY29uZDogKDUwJSw1MCUpLSgxMDAlLDEwMCUpKSwg
ZXNwZWNpYWxseSBhZnRlciByZXNpemluZyB0aGUgY29udGVudCBib3ggdG8gYSBkaWZmZXJlbnQg
c2l6ZSIKLSAgICAgIFJlbmRlckJsb2NrIHtkaXZ9IGF0ICgwLDU2KSBzaXplIDQwMng0MDIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KLSAgICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoOSw3Mykgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
IHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0wLjAwXSBbaGVpZ2h0PTAuMDBd
Ci0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDEwMHgx
MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAw
XSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge3VzZX0gYXQgKDksNzMpIHNpemUgNDAweDQwMAotICAgICAgICAgICAgUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDksNzMpIHNpemUgNDAweDQwMAotICAgICAgICAg
ICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjA5LDI3Mykgc2l6ZSAyMDB4MjAwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTAwLjAwXSBbeT0xMDAuMDBdIFt3
aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0
IHtyZWN0fSBhdCAoOSw3Mykgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAu
MDBdCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3JlbGF0
aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3JlbGF0aXZlLXNp
emVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTAxYjcxOTgzOGMyZmRjNjIxNDRhMTM1ZWZhNWY0MjI2
YjFhYzczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Ivc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXpl
ZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDgy
Ci0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg0ODIKLSAgICBSZW5kZXJC
b2R5IHtib2R5fSBhdCAoOCwxNikgc2l6ZSA3ODR4NDU4Ci0gICAgICBSZW5kZXJCbG9jayB7cH0g
YXQgKDAsMCkgc2l6ZSA3ODR4NDAKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNzQ2eDM5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzQ2OiAiVGhl
IHN2ZyBhcmVhIGNvbnRhaW5lZCBpbiB0aGUgZGl2IGVsZW1lbnQgKHJlZCBib3gpLCBzaG91bGQg
ZmlsbCBvdXQgdGhlIHdob2xlIGFyZWEgKHR3byBncmVlbiByZWN0YW5nbGVzLCBmaXJzdDogKDAs
MCktIgotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIwKSB3aWR0aCA2ODY6ICIoNTAlLDUwJSks
IHNlY29uZDogKDUwJSw1MCUpLSgxMDAlLDEwMCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNpemlu
ZyB0aGUgY29udGVudCBib3ggdG8gYSBkaWZmZXJlbnQgc2l6ZSIKLSAgICAgIFJlbmRlckJsb2Nr
IHtkaXZ9IGF0ICgwLDU2KSBzaXplIDQwMng0MDIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYwMDAw
KV0KLSAgICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOSw3Mykgc2l6ZSA0MDB4NDAwCi0g
ICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4
MAotICAgICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgwLDAp
IHNpemUgMHgwCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDczKSBz
aXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5
PTAuMDBdIFt3aWR0aD0wLjAwXSBbaGVpZ2h0PTAuMDBdCi0gICAgICAgICAgICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0
PTEwMC4wMF0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDksNzMpIHNp
emUgNDAweDQwMAotICAgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30g
YXQgKDksNzMpIHNpemUgNDAweDQwMAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0
fSBhdCAoMjA5LDI3Mykgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDgwMDBdfV0gW3g9MTAwLjAwXSBbeT0xMDAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAw
LjAwXQotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw3Mykgc2l6ZSAy
MDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9
MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLW1vdW50YWlubGlvbi9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVl
LWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLW1vdW50YWlubGlvbi9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNv
bnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxMWE3ODNjZTJiNjFhZjZmYzE0ZWIzNzhhNDczODA3NjQ5M2IwZDVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1tb3VudGFpbmxpb24vc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1j
b250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICsw
LDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDc4Ci0gIFJlbmRlckJsb2Nr
IHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg0NzgKLSAgICBSZW5kZXJCb2R5IHtib2R5fSBhdCAo
OCwxNikgc2l6ZSA3ODR4NDU0Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3
ODR4MzYKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzI5eDM2Ci0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzI5OiAiVGhlIHN2ZyBhcmVhIGNvbnRh
aW5lZCBpbiB0aGUgZGl2IGVsZW1lbnQgKHJlZCBib3gpLCBzaG91bGQgZmlsbCBvdXQgdGhlIHdo
b2xlIGFyZWEgKHR3byBncmVlbiByZWN0YW5nbGVzLCBmaXJzdDogKDAsMCktIgotICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA2NzA6ICIoNTAlLDUwJSksIHNlY29uZDogKDUwJSw1
MCUpLSgxMDAlLDEwMCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNpemluZyB0aGUgY29udGVudCBi
b3ggdG8gYSBkaWZmZXJlbnQgc2l6ZSIKLSAgICAgIFJlbmRlckJsb2NrIHtkaXZ9IGF0ICgwLDUy
KSBzaXplIDQwMng0MDIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYwMDAwKV0KLSAgICAgICAgUmVu
ZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOSw2OSkgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAg
UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDY5KSBzaXplIDB4MCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0w
LjAwXSBbaGVpZ2h0PTAuMDBdCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0
ICg5LDY5KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19
XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDksNjkpIHNpemUgNDAweDQwMAotICAg
ICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDksNjkpIHNpemUg
NDAweDQwMAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjA5LDI2OSkg
c2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTAw
LjAwXSBbeT0xMDAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAg
ICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw2OSkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEw
MC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXpl
ZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjBlNjAyZDgwN2QyODdiY2Q3ZmMwMTVkMzViYzcxYzJkNjkw
OTY5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNDk2OQp6Y21lSWJgQ0YzZGAj
Oz4/RyleXmJUQ1VCc09qOW1uPCp3TG5Xb0JrK2liXkF5Q0wkPiFEdU9MRCkwN0w5clJHeyQKenhn
eG0kMHM/SjlZSEZyfXZYLVBJMjs+NE5DX0ZUdSZ3RzBSMUo3fU1wWVBMODsoYyk1X2ojUyRiLXUz
R2I9X1ApCnphb2xKNV92WVd2bj5UT3lrOzRhMCZZUVB6PEdndGImVjBBVGMlP0E7JTA9VSFVeX19
PU5kbWAyZmd4fU5ibHp7Uwp6UFBAK1NjNSNmXzhGbFhXLXlAP08meipPNUtJYW5rSkpAT1dgUUlY
VT45Mmc4RmJkNndwWSspYHVkZDUtYmwkdUAKel5OdCtZZG4jcVZUbzlkVytaT1UhOFM8a0x3ZXJR
TG1mU3owOWFzT2Zfe2FJTUpsTS1nZ1I/PWhXenBxcCZ3dzlqCnpYMlBxVnQtVy1SSkhGNT0zUG49
dkhXKkUreVd2XzlPe3YrdzMqV005aGYtUjRGUy08XkFkYGZILX5HNjgmIXVfdQp6N2M0UzxfLSpm
ZHRGM24pZUR9e2t8OWlEfihkTFp7Rjh9V3JqTXB3LVNnYHUkZ30oMjl7I1I8eG8mYFRJYExFaikK
ell+NDhqLVhZd158R0xaT2pna0woI3thaShWWkQzKWozaCVacCZHUCEhJGEtckg3UFFuQ3s1IyVH
M254OCVRbFNMCno3IXJjeGlnfGp5KHg5KEhUUExEISpFaCNePVQ7aXQ0SnF7c3I5ditrPjdnQHl6
N3NPVFlffW8oWCZQUjQ3Q25AcQp6dDtuRzBqM1A9XkA1K2d9e2x4T2A1cD4lNGM9TyReNHx1JjRw
WD84QmdJbkAzbyRKMGwqMWFfQ0x4TlFXPVpAfmgKel5JVXBObyRneDNedEJfOFkwVSpKeHVsfEp2
ZW05LVI8SXZpKHlAZ3JLNFM3RnItU0Q5PT9EcHRzdm8oezFyWF9WCnpAdGs7fFBRI3hsPTlKMUZR
JCF2WjxJfVo8IUo2NVhoUi1XU2I0STtwTTtFQW4kKFo7Qj44JUVQQ3U+R3I3JkEkJAp6dj9aZE01
XjktI3cyWTEtQXlGaSVOSmtTPGI7Y28mUT9ZWGNTUTwpIyM3Sm0/WTRUcyEjM1czaE1IKTJIWDBG
RXUKenQrN3s1KnNsendNaEAjMzJBeHRVXzdhS30zanl5SkkoTkB+eGhIYkAkViZiRG1CUkVuZlBl
RGs5VDg9eFl+dS0lCnpwSmE/VU5NO0xZYGNGYF51QnVGMU1nNXxsX1hjfVYjO0BvKHZ5NT53cX1f
PXhEKExFS1gjR3BZa0JydGNVXkk+MQp6eDw7aDtPcztwVFc/OStpV2t9YEphcG1yYXc1UDAqPWt+
azV4SWpOM25TSlIhYD83YnN2ZWFnM3VnJW5lMVh5PGUKeit5QGBiTTtgQDdnVXJ3PDBzK0g7WT08
KHNYZm4rRF5BNSh1aiozXzFfMXgrOWB8aHlUUUt3PTFaWkVOSEhQJU1eCnp6PW9vYD5PRmxtRnoo
R1pfP198UXghSyltSW1CPz9eaUI5UExLSWlvX1B4PmdhUU5GPz1yRkkwPTd2fG5BY1ozQAp6PnZ9
cEo9NSpQaj5Gbk9uayMrYyNSLVZvRD81LXtBQzJBJDFPQmJQM01JZT5hSW0raEwqXmJlK095IzlO
S0w2Iz8KekA8SEtDfExDaXJ6Yy09M1M2QiVAU1JGU2pxM2I2YzM9X1JAIzJ6eWd1WG9kRFBSMU4z
U2FjZT9ZTWNQbDVtcSsxCnpoTUJaWCt7SnJ0ZERQbFRtYUZnP2JBcC0oUlc7bEpxKU59Y0wwbUdJ
bzdJWF9kbWZsMG5hfFdJd1JLb3wxNDRLJAp6Si0lNjQoenJ9emJnUFhMRnROIXk1a3smM0B1WEsx
RjFtUEFtUThGWGFSWVl0S2IlTSlWWVFYbXczYFA7IW59bHIKeklndnBEMjhAOGFYejZLflpuKSgl
RGBTPmI7WUA8SGVkZVRoYWBAPGhZdl9UfFZWbz1OMnxxIT5OXk0hMkEtSzhpCnpfYys8WjJtITMj
RThlPyVCS0BRQDVkUTJqOWQjMW5fOTlnWXBVYmVzLWIqMDZFY0pARHUtPnd5TlM4NjFqflB8dQp6
MCFETD4lUmE9dkFmY3JkN14mYkYlK04yVFk/aCRlbjxTVHUoeH52K0FxVnxYemw7UFFaZHFJRSZE
ZnB9bDx5YSEKemU4aWdvTHpAJnI8KHlFZEZjIWJtJis1RV5IKGN1cERFXipHSVB0NUF2UUVQMDJf
KVA+a0ZfZ2wlZGgjP19qdHNoCnptYkVgbExtKU41OExEOD1mYyN7dCEmcGtVTGw7NGtBWSVrKXZs
MGU5bD4xd1YkcytlP24/R1kyU1kwIWdtb184cAp6RXxGYXd6RnZDRDtMeCRIWlM7N3N2ZXtEK1dh
SGlEdTU1a2xSNyRgZk91eDw/cHF5fTRWeGN1ekkwO2p+YXk7YyUKemVXNUleVmd6UFQhJDh7PE44
QX1GVWYqLURDWTlOfGZLT0BlWjVRZkI7aGZ5ej4lQF51ekcjeENrZlR8WGF6fCNFCnpKRE1ecyNJ
RFpBdUQrSChhXkgrMm9qX3ZFdVg8MUpAYGh7TCU0WFh0b0hgaEA5U3J7NW12V1JEcE40Pkxue1RW
Jgp6QFNKb21LSW1EYWkkLSVUV254Z2cyKiZWZmlXeSN0ZEI0PTJqP3lgcCY+UC1ncTEjUDBrY2A+
bj9JSEx7UiZ2e00KeilHJXNIeyYzaCFlVUNBJU1+NzUxV3Jtc1ArIytFdDxhYlJUc2J4NFJTaHZn
Z1leNkokUkh5eSkoaFQjI09ofVdVCno9I3RVJHYpPFpyPz0oI3pyKTVPM0FNa1BpQGwzXm5Nfnx3
eU0+SVd1WF5mU15FOXg9T0NaViE0e0MraWZnSWE8WAp6Tj1ucDlUJnNlYylQdWByJW9IKEZIQmxn
U1IwV2F2eHNxbERCKVM4KkNvYXloVlJQKSFsMFU5QWM+SjtEcUorM30KejZyZXcwd0Y3X084Y309
dj94ND5ARX1tTHxQdURCSjNwSnorOW0jKk07WDt9RSFZPl8pUzN5QnI9WUJZRHZ2PF8pCnpNWj1X
dj1VUi0+P3xQTXclPiFBd04rWD17MGpqa1A2bDlMSnN3fSlSWXQ9JldeIVVJWT0rQmk1ZlVGVDlU
a0NCRgp6TTF5byhQQVRgSz91JnRSMmR9MUVtSTNRZUhrXip6SjxaeFRgWERqXj8qJnZEdTlyPDs0
Oy1VdWB8JHZRM1UtU04KejdoSWt6P3clPFFQPz1mRmRmfD8kN3NvUmx4KDNhMVRqTH0kYVU4aGB0
Jm1fODdrKkhvWkFkJUxRLVF0N2J6QF57Cno/ZTg3dlNCbFlCRmRjcTw3PTFEeiVvR3hTJSlBJFVz
KEp2VUZUWVArZjxpeUZoMFAkfktKZE5wPDRDIztKNUUlUwp6JE5SXiMrbCtNcDxrOUtTOFBNLVM+
WW1RKFBXaW5qK3x4elcxV0dgNHZJUnJ7djUmI3plfkU2ISNXUW1eUGUqQyYKemd+bEFxRkt2ZmlH
Z2MkMShCbnZGPHskd0NIVzx+Qzk5UTF5JEtNX1E1PmdkPHloMXxNcjh1dlE4ZHdqRmh4TFQ7CnpU
fH15YFFFXjtuZXJHUiVRRmlyMHZCcl5CRG0ocj1iZ1Y/Si1GYTB5cnZlI042Kkd4bTNlR3IoVDt4
KzdKPGZNcwp6NDs8KENXcVFnTzw4XzFOQCF4VlJ1PkF5VHZDNk0oI1dyaG1hVk40aFdISkd2SUNL
SiFUcG8rKyEmbmQ3K3UoNSEKelJ4I0ROS2ZnNntAe24/JCVnVE50Sz1zeFVVNnZ8OzFGSyF5NzRE
eT52SDs7Rm12SDJBd311Jk5ZN0hjbkdYeXZhCnp5dj1oV0wocXVQbmRtYUtJPmBAVT0yNmE5ZnVY
YUwtaUZDdSpKXjBFMSRDVXdmOW12JGxkIXYhUEAqZ0xrMikyXgp6VlR7WmdeIyp5amBwQit2PnhD
MEIyM0BVX3lBUCp4MjxKd35hQzdxRU9TQm4mO1omazkrN0khb3kjK318NU9CfVUKeiV7X0xEYW1Y
USEyeXBBO153VkZlWXArakZIflEhRD0/LXhFOWFqYnk9IzltPil6SVR8IWJBaEtXV3h9QnJhWDtF
CnokQl5VQU1EeGs4bSRFVllwRnkqJnBtZlVtQ0JtVFMtNH5uJjg0M2o2O3skIXY1NjFPRz56cUN5
SThCUnpSKCRwJgp6cEArUis1T15jQDxIT2NIeWZiZi0hd2klP0Y1NVZsLV9qUkRiQUBMZldxaTda
YERCdHd3QlAzVUNjTl9kemsmZ2IKelhAP0NsSk1BYDdVTmBNZz85eihNKkR0Uz8zZ353UWkkWFU1
Znd9M0tfXm84cXRJQTEkNT88fUFPQVopb1kla2Y9CnpWY2wyXz9YUGlgM19jcEhmOVghKmFAfXxo
X0E+KkpYeVdvYiRLVUtyNz9UUUJSQm9ifktwTVdVeEJLcHhVYHpiWgp6dT9mM2B4S1cqeXg4Uldr
XyV+cT5eY0kyOForMTdwa28rT2tleExRdnJWZlBZYUQlaWJsSCFhbGZQNyVMWm99ZkIKejRvfSFS
PHpXNmMhIVNyY3tPZnJjJWUyYHElUHZiUU4pTFMkQj5hPk1qey1AcmQxPDBiaWtAYzVobDREUlpV
K3dCCnpOcGlWWVJeITc4bXRHd3Y9WXc0QWNSODQ1eyVQNmBNVHUpVDdMM2tjd3BnamMhR3U9TUx7
NWd6WEAhVDwzRnMpOwp6X3M5ZDctOFBpOzI0ViNZRlVseWk7Mm4pKXZjdWxLej5tKSExV2dAdTsz
dGkkME5nOzNpP1MpWnt4X3s9Plo2cFEKek9He3EhYyF1Ym5LbUJwZ2JHRGdyQHpMVGFhTGI+OFo2
YENrbHsyTUVIeDwmY3ItbEViK0RfSjl0QUtKfGYkQzNOCnpNeFBvWntUOCFoTHpPQDleJDRMRHMy
PSo5XnFIckpjKUI8WWhveClxU2QyNWE5fUQjZ1d9TWQ0ZCZQUVYjcmFxYwp6bippPCNGU194WmQl
YD1ad3wzQCVFVXI2JG9edzlCSDh7UHMlNCRvUG9RbWBjVlorakNyMztETEk9VVRgdlZwXjMKem97
Yk1MVmlNQCZUQnA1fXtEYHJ2I0Mpc0BEYUlFaWdfQU9DTSNga2BoKSUhQUl8KFIyPWJCRX43S2lZ
S15hKjIrCnp2LT9tIUk0eSs0Ukg4Wk5UV2tkdlY7fUlmX2xiUlVVNCNLJkJ9MjFNNWctb3MtOGd4
a0g0cD9VeXhQP3xQRUpNYwp6U2g5bjNYMihidVJDZE9DR1NIRkFGTjlEcXdJdG5HTXd6VUdRaz50
ZVN5XzUlX2hsekg8YjJxMztsMmhPKWVtdmgKeloweVJAPDhgfUNpZEYxJEomXkVpPUVXVVlTZCFs
S041Mikma3tYalkxQkN9ekReRFU8KWZCZl45KyU7KypMcn0hCnp6WCR4N3R5UER5a2dHO2w5SiQp
a2ROQDttcjgwU0g7MWEkTE49V1R7M19xPCVpSC0/Ukh2N1o9UX52fHBlQ081SQp6I3pUaCpyP0cx
MlN5SHcoQ308NztESWt+fjtVVVclVU9aN2FzV2IqXis8RVl4PG9WV2UqVjdta1hzJShiTkUoVlIK
emJsb31YRGNCM1U/NmdFRlRecjNufDl6JlZ1TXt5P2I4SWY0NEI8az41JlA9d3VHeFA9SVU/TWo0
PjchU2t3NTkkCno/YSVMaytqMnYqcVY2MzVmKzZeXllvRCVaWVplYkM/by1ONDMkd0ZMPE43Tldj
YjdoWTNePzwtPHhfe0xmQS14Rwp6RWMyK0BKRUVfKzI1cHxYVmFuR2ZiVU4kYzM0QXQ9eEh+dyFA
eUc1NTktLXAlMmR9P1F0WU1nb09CJHkpT3JDSnIKelF6JkQkPj5QUEhMYzg1YmxuemRVQTstQnE+
d2I3QCpHUDhNeSQoKkA0ODx8UGBfODs5eVdIWXg1S3RaKHBVKS1tCnpreEUlc0NYSVUmMHs2WSVE
TkdxfjJXNVZnZFQxWHNFNWNOTUt4X3hua2Z1bmBsRXRpSzV2NyNzOUwyVGwyQDA8UAp6RWohUVko
TjwyJkxpMH5ZdkR3O1RKXzZuY15OakRERkQ5dEtsREhsS2RyQGktTWlwYmgoTHk0bChUYmtHUnlD
R1QKemt0K3x+Wlk8M2BZT2ZqTGRYPGdMSUdXe1c8dDsrJDtUKHlzJk03dG5hPThhYUFVdWtGdnIw
eChzeUkjdlQ2ZHhKCnpXUzlhY1hSR0tfYkJRYjUlfjwmKDA+bFF2OCFQMnNicyg4ZWAqYTJ6MlVn
ZjVJRil2e09vemZXZ04oJGspO0hQfgp6aGttNjRXfDF0eG9QREtZVVgxSyM/dE4/Nlh+S1BQbEc3
XlpYYE90Wi1KO09IYjh3NDsxfGNTU2lrbldxSXtsdTUKemB2fF81Pmltckl3MmJHVFZSQ2dWLVAj
QXVXOEFsSEowP05+bXA/T3llaj8rdyklZGd6VTc+NkNFUFA1YkB3c287CnomQyFEKUtmXkJYQ2Ju
LWQ2QVAxTlNMKnFQZkpKWERRZS0mRXA/ZmxwN0sxTVY+aE5YMihoUiU8Z3JqfF5ZY3sjbwp6QmMh
UXVHT0F1NTAzSHdFXj1AV3xRejlFUFc2YWJ6YE4/QkE+fGk1RSQ8d0B5WippdT41XmJGfEwjZFgj
dFhjSU8Kel81TEhyZiQ5IWklQlFmcWc1PFhNMGxLcSZxQEN2OGNLYnFPQkZzVTR2O0FiY09pJkpv
X3ElNGU5NE8zSjZHdDlJCnpLSyRjSmczIXZLSXRhMDNXYzVxQXtISl5wdkI/UH0/fVVvZVdoQF82
U2VZYiZ1Nik2Yk01ajk5MSlWcW9nelgmSgp6U2J4Rz44MH5wVlZfSVBNSHVQLXJyc35CfFFUezB4
TVIpNlFJalJeIy0raThxTDI7ZnFkT1AzfG94MjJLOCNva2UKejRfMCRYbDNld1hafjMkaUIqRyVn
KEA0Jm9xNUd9TG9hdUM0SDNaNmxqcjk9fCFXM3dSckg5T3xzekUpJV4jeGNsCnpfPVAqdkJjMUlh
dHheUjhTMEk9dm5rUnxPOy18TG84NUxvIS0lJjtoIWIzUXhQJH5yPDEpKVl7NmhuOTlEMGU5JQp6
MCtZeDIxSj1Oe0M/S2NUKE9GQk1JVlhHNGs1PVB0NGxRXz5Ue0JXcWtDKzQoTHAoSm4pNjtjIyRK
V0ZpVHl0cHQKelBHZigrRjdXTUMoVnZ1UWpYSV58RXBHfWUlUTxnVDVweDMzUmV5Ni1DQT5aTXZ1
SENMQkRnK2FRTXw/Nz94PWY0CnpTdEA4blEtQ2xmP3JyfE9xKzIyTy0hV3gmcnEhXkpCcz48SXAy
Zis+RXs9bTA8dmFxPGd5dCV+WVoqX0VCQzVDcQp6VVBGJU5nNT5kK0lzeTwzcnhjUUNURCl3b1Fo
d258ckdjOEY5eyZxJmE/OTZ8UH1oeD8oZzgkZXpHSCVAZnooQ1AKekBYdiZxJURfSzA1KTY7aUpZ
I0thSkVZK2NoJERGclI8UE52dHV1aDVnT1hfdVorKyZiUlVyKHpve29oazJTfXJMCnpobFoob3ZX
NmRtWCZJdjZMdnAtYDYtZyVjVmFzUTZWcyRDJXlLZFNmWHAtQzlBQEMlSGVkcFptSDhvcUdIQUFD
Pgp6LSp8fXdgKT0xJm8pbDk3XjF7QkFiZmpNaHNFQytqKD04eUNEUztlYVNXJEswSTZHTzloQm8/
Pz52cTR2eWh6YVIKemFDcndpR3hHLT5VN2gxR2koVHp1bSMhTilzWiN1UHs+WmVqYHwjOzk4ZC1o
WXBYSj59PFNAZWhjV3g4cjllR1ZACnppUTxFSkFRXm1XJk54ak57VFA8ZFBMQHg7PCgwcG9OfkNY
OV9ob3x2aHUrbTYtKlc/LSg3OGRVUEFRdSFURWk/Qgp6NipxXmlRRVh9S20/JX1fTDleREhITUxN
UHA8PDZjMzJeQEQwVn0rZCt1Rip4dz9XOUNlMTlsPiVWSXlJdEB0RXkKelZMc1gmdjE5TylUeEgp
TkA5cUF2bjBJdHUrSyRGZHJWfGpsWjV6fDRqX0R7RWpnYElWZUV+bTQ1dnk+bEV+Z3Z8CnpKV19M
aUszfndNY3hwQDlzbDFZfj08QF50NCNIbTcoJmU1PWB1Sj1GRDJSZEU5UGhSdlhPYl5YITBUbzFV
YV9iZgp6bXhaY05mflEofW45aVpLans/d0M+OWhrWGptOGR6b18oekopZFRtfnZKYEJgZUNjP2x2
SDdtYU0yTUBrVll9I3MKei1sMHZaVTFyJUQ7Wk5aKGNfMVRWKkgtR0stRzVPRkc+dlhueWNnMVUm
Y2N3OHVCRUJZTD44bigzfX0xM0tQOTRDCnpeTyltJW4zfldPN3RBYD42dnJ1ZVg8cV9Vc3Z6QTd6
cGZ5KSQyPEBGVlFOPHpTfEkzSXtTSEhpJHd1Qz4tT31RbAp6UWIrNml5VCNLd3doRipgKCo5fC1i
QG9oKkNNP0diU3RlXkUhMXFYQ0dWTmdaey1qT152UGByLVZeYVhsSWF4MnMKekdFOFFgRkpBWU53
Pkt2VUk0R2Q4WlooZTBqRm43c0lxbjhCO217TVBPdG9NM1dZfkV+NTExbyhWJCN1TlBXPSV5Cno1
N0E/U1ZCNiNhWWE0e25EO1JVNmJzfi1KMFQmI0k2YEJMXyRqTWs0US1mQTMlXmtIQT48SkEjUDdM
YUR4RihOUwp6YzZoJHZBKXI4SW4hLXlObGN9dmxGMU16ZlBrTHxifEN4JjFDWStzKHt6eV99c2t0
ZkNzdzNzQ3tNVTstVT84TVYKeklodWB9cit4N0djMFM8NnNkPmV+WCsmdjQxI1lvJT9LQlpiVXEw
S3o5JHYmaF87NW1OeDJDX29tUEZsZCNkQk9OCnpKZF5Ibm90UW1ZTEp5aGNOSkBPNFE3KTxxNGcm
Z1ZIWWFpWGd0YD9GJDVUSE52czstM1hWZEJ1blZPUHZ5RTNXawp6NSo5ZioyVmpvUD9fek5CWCti
RkYkMXtXZHp3aFlySlV1YUUqcDNgK3ZDcnMoR3tHIWd0UlhQUjVidnojQjhhJHwKempfRXRvXjJB
R340VVBiXilHSjtLX25tV2k7X2pvMHg3ZG5PZ0JnemxTKmtmI2pIakNheEZLSmN0b1kjOCNZbCNn
Cnpzbn1NMXNgUComdHhGZlklOT1Ddm9XaUh1c0ZYNk10aHdqbmc+KnVPRzlwe19lWHpsNCMwTkIk
MkNRZHl5Sm92Ugp6TnlZc2Nqb2lpb2ooZUh6eTRRNVY+YmheO09RSllXZ3VFSk1vNkt9OEdEKWpB
bnxgZCh0O3ooJiR9ViNFb3NgbT0KelFyMzF5bH5uc2shcX0rO3dqQ2spOSNScWJgZE9ENygpezgy
eyl7KHBMZHtJTSNqZCtmVkxyVU4+a1JiPCZUVTUqCnpUYlVRVlpia21rI1NwX2Q7PmFvVm9lYSpT
JE9sO1NWNzhXZkR4fHo2MlpZSiteTEZyMzI2RDhJdnt8dz9FcUN7OQp6ekE9alNpMU01Sm1VZkQw
WXQ5dGVocjMrc095TChVPnsxQzF6ZllxYnM5T3g9Nz4zPEg2YkB7TiFtX2ojO35YRVYKenhsNCFZ
ZmJRSHxoVHxfUHpBJWdgPjgtISMoMHYtQHo8YHd2Mk16aWZYbkpUc3M3SSk7RHF4Q3YlO2xze1Rv
ZmwrCnp0fT5ocWNmZUl1PigqO2ZzPURMR0lmOTlGeHl6YzRIdytVazlsU3V+QD1tZU5Jekk9RWp1
IzR5eSl1UlZvYlNkVwp6PF90NDR5amlYb2BxTWVlMj0qTShsSCtrPWorJCk5ZmZRI3lMS1JEZilo
WGkrNTNveSt0M0V5Q20lTGlBYFNsZkMKeit4P0ItayZhUkt2TDZMaEFnfCMkPUFacCt7VVFhYztA
fElmTyskamNSLUtBS1pxdkBEJnAmeDBuUWxNVGZmS2lUCnphOyMyVyh5WTNjcXJBMk9SYUBJYFdB
Yk4wPjV7fUZLMWQrOSFYKXpnOTtqV2pOJWZXY2Y5YGBxWXdXanRQYmkxRwp6STNfPEk7fVp5Zkpj
MXskWU9ucT9NR2opQGMoPnI7UEEmdVYlZlI/dFVYa1l4SmpKT2hzfmVROHNKflBsP3BHUFkKeihj
NW9KYnJ+b3VhM0BOYkZucCFHZ25KSm5qfHU0QXtCSDQ5RU53RUZOdjJ5YVkmdWdWcElQVWkzTzE9
Qz49Kmh5CnotMTYoYUswVV5qa1F1PkJWbShtR2F3Rnt4Mj1DK3Y/TjZQOTRQQlpPXihqP2VlJEV8
UTJqI0p+NzlGbj1VSjExMAp6VmFKQUBuZjslTnltVTt6YGtuO3ZjPD1iODg1dm5pYVhkWT8mViVP
THhVU3Bvako8MEErJUNRYz1nYktROXRaQ0MKek5uRnpJJCgpOFVkTCl0YHhSUjRMd2N6U0JDdnxM
YUxPKW9YKGY4cnFiaFJLdjluZHtnUGtzUFRkVm50I1p3Zlh4Cno2XkdadV9qaGdDZXdVe0lYO1J2
PXBsKkVeRns5SDBUPG59fGsqTnd0cFA3eUJDOUAqUyhhZ21KRUgoPVpRd15sfAp6Z31wMCYlVVo7
QiRaemtZUDcqK1F0JFQ7VkpQdWAhWXN2MXh0ZFdPMypFKU1UVTFZQUVrPlFGb3tgdFhYWWE4K2YK
ejtwaHYmQm91NklBJkl7JSh1ME0tOTM2Wi14VExYYXIzRkA7X1NWJkkxKFNhPSl5KlhzbVZHVjRu
PjFYQUsqViR+CnpubTMzdlZVam9pclZuRnAlXy0ldTVsWmVVJiRUWXU5ZyZZeVlWX3FHbmRTfEp6
N311dlVOTjthWWpkciQ1eHk7Kgp6bmtDYX4+aVd3ZTM1YnstXiU9dkglWCs1aTY4cU5VSSRNJks7
YVk4JWppKVFMciktPkA0fHlXcjZ5JSEhQkJfSEwKenAmMCZkcG9oNmJLVnhVamV3VHkhb1dJKzU9
dygrUzlDTkVjaz1ZdVJLY2BISD94QDdnen4xY1doYnkoLUJSTXBSCnowJDBVTXJ4JTBOTGs7Zkhm
aSQpO0Y/ezR6JDI7bCtpfGpsMVgzTW9uUnhBUHBCREN1d01tfTlzPjg5bSgkQytBbQp6e3UxS0M8
bFNnKCRLfkFSQVJkK308KF47fXhVaDQrNj15eFVEWntaPml3RF8xXzNVO1BicXRUK2xOZD1OZEIq
Ym8KekhGNG9qP0okS095UClBYHpyU2dKVGhgaC1RRDdQKz4kLTVDXlBFTyhJcVVLcl47c09XS1lD
RncrbGBkN1ZQVS1PCnpBdHM7JC1rKEZ7Q2ROWXk/USFxVXpgUWBleG08U21NV24oMk1adzgoa1R0
MjZOMDlUfkg3VzZVMmpIV287WU00ZQp6clMyYDNLbWRmWFVQaWN+UjNJQm9ySlJoTkJvfkJvOXhJ
aUI4bDBIWkV2T2g5dUlEc3NXRjkmdnFGdENoNnMybTAKeiszYTNJKjtyaCgtI1IqLWFPUDhGem9f
eXxqPyRCfDJiVkVDUVA3KSk0eDY8UHNSaEMyX3RwYioyIzxHfkZYUy0hCnpYZktXYHdOalptPmA1
SmI+VigrXiFTR2BfUFVGRXBHKnl6amlEdVY7a2BOQWJaalM5SkRkb3V8SUIqP0ttU31Bcwp6I0xj
VXhBezUqSihPUzMrb2lDeUczMnw9ayEkaTFsZip1cG4/T1ZTfjRQNnpVWVBacWozNyQmS0o4TnFJ
eWN4KXQKelg/RWMjV15COTFUfHZlKzckR3lLVER6IVYoRGM3JGhWdDV+U1k7NTY8KFUhPjRaZD0r
Q0E7ViNSP016MVo/UHFnCnoydWVZOTdJfXs3eTBPKUNLRmZtdVg1PklFQVpfRjZTWCQ2ZnxNSTsw
XkwhclRLck14Mj10d09wejJ0ZjFqcEZBIQp6UTJeYW9xcj4obVo8P3FwV0Y5TFd4TlI8cnpWbHBs
UytOZ1VMQUwxPTZjKDJxZSZHTjRRRnhRflchVCklNE9SQTQKemB7TSNQRTlESyg9ZHJGJW0tRGxw
Ki0wKzc+dk4xVzFsNUg7cDZ4KXsoQnJCUTM8bEhYQzBGeCo3PHFOMEQ9ZCZ1CnppRWxBZyVsP1Jz
JSpBaTcyMDhiNmVCXlhaWlZCM1E0clJsI1VhYVhsdjIxZXNSWSFfYGNzZlBwXkVCZjdZKjwxcwp6
Rk5vJFIzVi1CWVBzO0syQnd7dnhkaS1gUFYpTiZkVy0rJmZKfSM2MiZHYm87X1ZvZD93cVplUSZs
QU8zNztWMn0Kemd5ISkzelpafi03Z0VIMHteVz9uVExJa3Bqc0AzSW9jN3Q9NFAhTElVK0xYQUJs
alRITE8tZWFtX0tVYio2RmUqCno3b1pedjY4K0diJipQN1ViQzEzXzhwS3hDZ31FeXBZcWNGeHRE
RWkqc09FRkNgKFdlaS1Vd0FHUmV3RTZUbDBrawp6ejA1TkVCKF9CPj1veH1WPFNDT19Zc1JibT9o
VW43NWRpY3w2WDljMnt2fVc3R3dKQFhPeSlEZ19wP2d1czZoIyoKent9Jnk0PkRpaTkmQno1aUc0
Uz52c1A/Qks2KzQ9JWpUNTBzZlUtZn02T0JPSXhuUGMrSX4rN2ElVDV2RHp9anRgCnpMPnxQRCRq
QmUhNUo7anU8SikrcDlsNDVKaD5ZNCNMPk1BYWJyQDlwfDlrXzdDKkBjJWVnWj1iekZfRyk4Qmo3
dAp6KjUjMHl7YmF8cTN2YV5IPUVBSi1SPUwwQGxDR0tFLVhLc043PmNMUSZHSGlVSkxvOUlrQCho
Rjh4K21vdEx6K0YKei1RQCtpKE1hbF5BWWNPRG00fHVjTnQlX00mT25zZEskb0QlVzE8MkB2fTth
LWxNVTgmQWRgMVlvNX5ydlE0alRVCnppOW0oZ1h0PmkmPj0yckB8Tjk4PEtaTzFncUB6VmZCcHVZ
UEhabmtTNnszczFGIUphTjQqblN3IW9VT2ArdU5edgp6cTtMdHFXaHteUGpAeU5TVloxbDlTNV9t
IXlnJDA+UzQkc3tBYk5DcHUkakRHay1sPDs3MDFTMHcpQVN+JEVsaX4KenlvIXVEXkNwYl94bW9r
M0YyUXt7YSg4ZShybjF0dzFqTFpFTk9VUyVoYlhDNnhrN29SNTY/dXFMRlowSHBhKW1KCno2PjY1
TUlTR3pifDFRLV9CYWVxSCk0djVMXmYwdVRTTWR5SmQ0PnZeNU8hPmVgWUlwRHUlTSR1IWA5YHVv
PzMldQp6eipAdzQkSFElSit7MUs9KFpuR0ZYcTd3MEZHZXp8KyUqTjYqNnUma0ElOW11bk0jd1N7
cTR2KFNmNkdYRnB7MFQKelleKk8+QGxNdTF7dUE/S3ghUHlnK1lnd3J6USVQLWBTVGNiaUBCVmEm
UVUmdlZQY09OLVcjZFMoV20rcT9ZUlM/CnpfcyNJeEhTTisjbUglWTdLKmdHLUR8S3xgNmZjSFp6
PU98cERRQ05TJiVoS1o/fD4jX2B0eTQ7WDdUazVtRzZxdQp6QiYkO1BxPXErNDBqT2xVezdGU2Bz
RUFiK0VVTyY0PztYcHZBPE1XKV9WSyNBcUh0SnwoJTM9cHhDSFBWLX1sMigKemN7Z0ReIVBaS2JX
RC1fI3NwJl9eMmY+dlYrYCtAU0ZVLT1Qbi0keVZnbHxPUU0xXmtgSlp1e1peaX5EPnVSJilOCnpK
VUl5TCk/Nz5GWUpZIWZHa3d7blNAKihXX0M7PygzSTAhdlMoajx6bVFAX3YzRSZ5RSUqIUlCe3ti
dUVfdDhpYAp6VGptIVV7KWxTNCp2ayQ1MGo8PHZsb3gqSTt5cTxBIWhpMEE/V2hGVXhwRWotaVYz
dnMpSXZRTV5nTWF7KnNsaXMKenBZWTZmdCtZX1l7O2pZdkMkcUZuQEpxUlUyUD84Tl5LYH5vTC1R
eG13RHsxTFRZakpDbVM1d0IjeDxvI3YyTkp8Cnpxb2dXPUNfbFh8emopfjNwUXVCMmJ3X1hOMW1o
aD9YeU9+OUFzT0dzRl9ldVR1dm4lemQ/V1BJK1ZVLTlYc0A5cgp6djMrKXhGQ0xrNSVeWXMkUFc5
I0NUTkVVTz9WNzI3b1ZVX3h0Q0Q5azxDelVLNW4mTUdpNj9EQVVNU2poK30/TFgKejFkQy1gN1Bl
aiN6ZHkyTnFiZ2RwVzJESENJZ0lIeiFQe3cxbCV7NyY2NUZFRGpVVTNvVipfMmZAe0lQVFcze3Ny
CnpxfHNCMWtxPm9YZjdGNl5taT5nIXAmaDx9bSVsPzhrIzZ9VHBGQF90LWNOJG5nYWY7c0ArPkBY
X3xXfT9DKV51Ngp6REYtMypXbFpfeytsTXBVbGpyemsjP198Tj5pd1BeTFc3KHgmWng7PThESnd4
Tm4yY317VnZEYEMmaXojSCM9YkcKejNBRFgpIU9ZYzs+R0tSQiE3Wkxte0U3V1l2fWhMKmdINm5C
Sk0rcXskIzE3MUI+cnNwdUNgTm4jY3xUYypxaDA5Cnp4MDxGKiZ6WkVnVExENEFVREs2aylgWTUq
X1dPWSpPe044WW00YnNZcEpDOUYzUz9tRDZ3UStPaE5uUT82NVBsSAp6c0BmPHZYfkVed3diJmIo
dERAeURgbGx4eWR4UEdyaDFzI1dwPHlLZEJPVE4wUF8yT3AwWTVtRGQwVHhaOHFBbTQKem5USG1E
eGFRdCtAN3F8bFAzQ0s5cWF5UjRWcFVASmk1VnVqQFBKeTI+P1ZZcCF9QkFRbU1oKTFEdG00MnFV
RnhhCno0KVVBPjRXbnFyTml1dElpKGR0OCpjNm02MzFSaDI1T25GWigtRXh2eFU4S3djKzQqQj59
emNDJFkpKH4jdDZOJgp6bD5sdHg8O2UmdjVFbjB0YiYpV2daQ00oQjg1ajt4X0dPKSRPcHVZMjJp
ISV1VzdpTz1EK2xSdGFDRz57Rz0wdjsKekdLKiF6WiV9MjVnRTAqKyRqQXg4NE9tPTdvdDJAM2Z+
RFlpdUJEcGtpTTEpTVBNeTtEJihrc2UxQmA8fnV6UTQhCnprbFhxJWRuMyROPUshOEdVQFlpTChM
XjRwY3krRlFIQ29gWTFgSylUQF9oQ1NCUnw/YmZSJCpoc2UkfVVHVyMlQQp6dld2UmNkIz18WDZu
dCQjZE1maEM7c34/SitjeWBgKzhSQndIWUdeb2tHQ0MkJTFTUTVrQHBNTnJxSz5jcXRXYlcKemBS
VmFMSWYrdU1OQll5c0ZCP0Rydj4rP3JeWEFSdnYlPEx6eiVfN0tUWEordSNAdSpnMEE0RHg+UTw7
bi1VPXhDCnolOUUwfnBNbj4jTEZlalB4UDlTb2ckZD9CNzcxaT50JG97dHU7VkVyUmsjUjJxMFVx
WChfJD9yOTxwJUYmOE4kMwp6Y2pRSGxwSEFja2YmUVQ+UmpFK2hjI2JrfFU3NUpjRkFwalJoX3py
KT5naFlgTzN+YFUtYnRWVjtuSXhWPkoqV2UKeipNYXRaaXB1fGx6QHIyY3FYTjljbXFoZEtFOHh8
OWVDKV9zVSpAJEhLWj1iaVFadkJge2pSWXNQQytgMDElZCs/Cnp2aHdDUkFFIVg+P05gPktkKDY7
MUNUO3RidVQ9cjlPZHByZkxJOytzejBqU1dUNnFSeUVvPDJsPU92O3hmYSN5ZQp6QGl9K3FJbnlu
QTEkSzx7SEZ9eVg9JW1udC1pbVkja0wwI1kteiVIQjJTWE9aaG48anA+PEVXQGIpQUN5UXQ7VyUK
enp8UTRjUkdtQHNVUTNTU1RATGpjWkgqOTlRdlFuM3AhQEMhZHwrYmIjZFcqeG9qeWJfc257JTg0
b2k3Q0lMWkRTCnpIJCR1IWsrKE9kSSpSRkNfND9Rcj1qYk1wayF1TXE5X2lCKEZ8bm59ayl4QVFY
YWtvK1M1Sis5KEFGVkNAPzl1QAp6YEdEKClsRERlIXNTRU0kWSk8RkcmWlhmbS1DMmo3Y2huI1Fj
aG1xQnhsNiErIU9YezlSRE1AJGtnbV42NntzNHMKem55VkE1X0gpe19qbWImU1B2JV9LeWQ4IVBg
ZEcodGp5bSF3ckpwVmhFbFYhTks/Yip3PzU9NmdMcHJMRmN2KyhxCno9JCUjTWk8MUFVcDBHX2VN
LWR6K25XM0NGRHE9cjlYTEtlJCNvMGZwUEslTTlLUEtySTBlfWdSUjh+YDdse1lpbAp6S0U1Y14r
eTxUSHJJWGZVPllCWT1EJipNPSs8Rkx4M2sqS2hFcDR6aWx2fDAlYEpOUShxTEE2byMkN2ZTPk1G
O00KekYpOClQRWhzYzNWIzlEc3heezcwK1J7ZlJAN0k0VUtMUyNuMXxjKkVrT29vbG9kMy01V2l2
cVU5fEdDcF9oPFVCCnphfjNWal5SYHxnWll8aEtCSEF6VHF0bjw0ZWtxR0Q8WXIoYyNJMEReRUVE
RjV6VnFhSEBWPlZQMjd8MSlMP2lCTgp6IVduTmBpJVRxPTx1VWZNNTdMcW1LVXRYNl55VjFwWnQ2
MnlhJVR7PUNmRnA7e3h5TWk8Tj9sUGp+VD1Dd2NuSFEKelhHSTZObHpGR3tfQU9mPUdnKWU8XzVa
TShRfFk7OUBlQ3RIPlY2T0xwYn0kTyooZmg1SGZ7JVQwUThlRzQqez18CnpKbDB3OVRBVG1tWU9Q
OTRoczlTPysrJFJ0cGZHLWV7fl5fbEdUOEtBdXg4WXA0M3gxR1pAQUlAI3dUbm93Z2FkMQp6MzJR
blYoLVVCdXdmRj59bTI7UkdkV2A2NWRuZ1ltZXE8N0YpKDswfTdUWjc0a2FfUzYkSExRUzZ3Zy0k
OS1KcW8KekhiJFYlZjZWYjw/Wj51M3dCP0JgcUttWiFZRDs2YmM8QkU0eVR9S1FDb189cTx4QlF2
KjR5N3teI3pLYkNVN0Z9CnpLV2dOZCpGZnplTHNMa2Y7KXtic3JpWTs1YFA4dGlybjdiPHB9VTwl
ZkxaSXhJZFIjVXJxZyEhWjtUVlF2SFhAbgp6Y05UZiM9KT40KHBveHFnLT9nRF9LTk1PQWQyQEZ2
MzAhIyllY2RQWGg5bD0oQDZUajFqdHIoMSRmbmlNN1Emfm8KekI+XlRBdzhfI1VuOHk9KFhxT35K
eSgtVUNJQyFjb3tgaFgyQnhvZ3s4NERDNDZ8LXF7dkhPIW5Ab31vP2dtPkFjCnpCYUBNSXE3d15H
RHVxTmB1dWtjT004TTY8ei00dUlvdDxEfFReQUhwemRPZVlpPm1KamduTFZ8K1VqJVVfM0A9fgp6
SDVzeWUofShAYUZaLXpjbSVhWGJSSiRFcFRhQWo0RnVTJnB5c2lhQ25IcS1RNGVpUjspfTFqUSYj
M2FzIyV0QHUKejYjWTY8Yn56NE9nU0piU1hfelRUaj19cGk+RGAqKkUmP0xRU2pRbkV3dElNbkc/
ViN1ZjxqJEshc1RsQDFiUkl1Cnowb1orLU9+I0I4YU58Z09yYWYqKUEpWU59Pn0yIVVvfEp5KD5j
V3ZoRUAhcVV2fnMzZUZTMFBtQ2VqVTQtLWpMQgp6UUBFJC1RdlNsby00JS0tVytzXlJvNXEwPyFy
bXRaME9RNUZgdEw2RUBiKW5sQlBGOWx7Zz5vM19QaFE1MitzPUwKemdRVVpPWWU0ZXt0ekd+b2BX
Sjs8JW1KSjQ/IWN1YmtyK19ePDlOcm47bXpFV3NvfCN6Py16IS1gPnpReigkc2xBCnpZaTc0YSZ2
M1B9KzBka3tSfVR9cGwmMyl2VG01UmlvZDRjWXYkTSNSODl1RjZVVTYzTnF4LUtVQCgqQGFEP09n
egp6T2IhRWUkb1VzT15wKV4jeSZkazBqSjdxVXsrSkNmUyZePTFZQE9Ma0ZwfWw9QCVfSmFxX0xJ
YTw4WlN+KUFARF8KemRAezBBRUxsX054cXp7Y1ooRjViSGJAO1c0Yk9eJm5jPWZecFoxeiV5fitH
QTk3TU1BRjMhaGk8NTV0RVhFdWpxCnpVODR5cTtnS2xENVQzSitlU0BnT0s/aDFMelJjM2FFQn5x
R0okYmI4MFlKNyE1IyNJKCtgU0d8bDN7REZpLX59VAp6bT10anhaX2ZjRGRrYlErRyt9N2JkSXZW
cylmI1BWa3JQJXE8bEx4TlRMOHI9Wnt9d1VCNnlqRTFiI35UQFQ1c3kKeiZKR09Fb3NQSz5LZnR2
bndUdykoNm9NY2JFOE96YGtpN2w1JmkhMClWaGBXUUNhK3shN0Y+WCpuQHMpX3QyP04mCnpIO0Vu
UEpHbTRUQEhSVUlSXnk7XkEhO2tkNWRYUDVVX3xVKi11Z0hUczNyS204YkxFSWVSaWNQOTVkVWtD
eklqKwp6eWEteihJeVZFVlNjaSUzYnlgeldZY3g3PTM/Y1lyLWxIT0hlbj4zTkIrJTtOKip1Q3VM
ZFA/enlBS3lyMV9NaFIKejJvO2t+Tk15UzVrM1JvYUpeX2Q+amIwYG1weVpmQUh2TVlSamIlWXQk
SHpydi0meilOYzNLPDYmelpDTFFtOHR9Cno8MExiMUs2X29odnt3ZTR7MWp4N04mZklRejJDaDBC
T1ZIeUVsZDZeXjQ8NW9tMn15cW5tLVJfVmJZJStlJSEyVwp6PihKSUY7KH08fjM2XzMmQTkzcTZR
U25UKmtQZW91QFhybWBBKG5tfmo0dCE/K1puIXxEdGxeS0VHYCVabzgzfTAKekpGUGx4cSpzRXhe
Mn1+XmM+fUQyaXFhJiUkQSRsMFJGR0NnN1R0TXd6e1RgRSY1T2J9e3x6Y0FzVEhEdHh2OXBECnpT
WjtvMj9meCRNT251cSsoZXMkUWtKMSpRKnM5JSV0IzJNQkJ5Ync9UkFCIWk1PGlYQil8fm1GUVol
Nnx3YTkjQwp6emYoMXNYa2opcTQ0MlU5VGtYJGwrUV5qVDJjT0UoZXJKdFFQOEAxOVFKaXREXj02
O0UmMFJwSm9eNElGbk99dzgKekc/RWBCMkA2Wj1pOGEpIyhvSGhBek5kfXZSKVlXJD03R2tMM1J+
JGxsQmJmJXslT05ZIzdEQilkVGRIRVVfMSt+CnpSaj4jRmUmaX54UXpwaSN3U1NrOzt9eEdxX1BP
bDVhbSRucUVfVSF2PEdQTTFnYWRganl2KldLUCR9dFNkRnEzaQp6bjU8eihRVng4fiVlMWxjVkU5
YHFiJTBNUF5+cXktJEVPbCNHc3E/eXRJS1dWcWNxVHZ3SjB0YEp4eEojXk56ZHwKenJnbkZkI09X
T0BIQj5mb2ZeJEVpQjdAdjU8biteXlF3SV5ZSVkqRCk3XmNITT12O3g0NGRAbSNVKWZHfFdSMSlS
CnowYzVoOT4xI3ptVn1ne0kkUXRha09IX0lZTmhPb2VMMHZgVl5pRCRkYnFLZkRXM2tBJSgtJmlv
P0k0IXpmTygyawp6JjQ2JkJZcWZuVkpPYW9nZkdlfn16eERGYnV1VVZSRT54TXNVZSY+I3J1dGB7
JlpqakdSTGRUeENSeShLTENVKyQKelQrT15TUG84Wl5Ya2tAPS1uWVU2PE5BPDRHXj8mYVh8am5H
WD1lRTx7Yzw2KGVpfiNXK0p7Xjhra3hMdj1JbThlCnoqayg0WG1JMiVRX1IlfU5jbWU0JlI8UylF
RGlHTWRFXjAyaVpgPnhpUmlIYEA0SV5lPlBtLWx+TlJCM0A2KX5fRQp6cml3YEpwb0tOKDkjRnh7
WXNjfE5hMilFYyNRNE9UUyhUdE5Bc15aWTRiZnw1P2ErNnFKfl85IVZESnxkXmdeUDgKekp0Ynhl
Q01hdV9rZWdxVipIPm53PD5PeUxrTDdHeTE8V2Zre0dGTCZXbmpfPWFVQ0ZRaEQhQz01aXpSNSEy
eiFkCnpmVGZ5dTE9SzArTTNgODFaR0NRc2UhV0RIIzwjJUFNU15DKXA7TlV9SylwN2xvZVhedyh0
MVJ2YWI7PiE7Xzl9cQp6TkpBPlB4WVIwYSQoPV9ARU51WEJxP3c2UERNaXt0dU9eRElwfjVyI2Up
WChSNWV1Qnoke01zVUt8PChXITRhN3sKenojJno7TTQ1dz9iJj01eVVTKDE2Mjs/bmEwNXkqPElq
JUYzeDJeQkExR0lyXmY2OV8xZGNCak9BNFdALUo4TmcmCno0VXBDOG5uQXBVZDFxcmIwbUFGV2JU
Vmo9Z2ljRk9Fe0QoemxAKzQ4V1plMmQ/PFRKPClwWEw4WT1pWTxrWVd3awp6OyRVZzFje35zPWlu
ZitkMUdlLW96Y0pvKnV7KyR7QVAxd2dpfHd+PTZzJUpXNFc2VHI/JXZBemYmUFh1bSVwJSkKemJo
RF57XiNZbiZydk08Iz5pK3kpWFF6Q1BOS2lhUGJoMGx3SmlvOXtEaiV7PjFvdj5wYD5RZkxEPHU9
Zmk8NktHCnpzaDNWJmxiJUhMKHQ7bSY2bjVaX2w8IyNtSj45YCFnSXd4UVZIS3xHZmNoTXstNzlI
Zms1KEtgJWdqWHFLQEtHUQp6Ny1QYGZvPUwzOWxBYEBleFk0dDNVUVNxfCowMiY4NU9MKUJHRnVy
KlBmNSRkSH57aCFkZyFWZGE7cHl2dDVOdk8KenZIdClKSFBVJCRJMWUqMzZeZCtVRiN6dUcqbmlU
fCUhQmYma0FFOGUhUGpfeSF3R1BGc18+dDU/dHJVUWA/SE0rCnpFdHx3TUxgSnt6MjRzaFBsXkU1
KSZ5IyVpZmJgSGxjentHKyhteCMzTE1SdnxzTWFnJXE3c00lKWl9ZW5VQSpLTwp6ODwxYUdeRnxu
OFpTI3ZvK1hPcW89LWp7TT9jM1hgOTlWMSFzKk5gUVF6akB8QnFLYnkxZEAmbnxEPjI2dXRxb3oK
eiU8YHhle3JETWo4U2F5RHBQb0MxZD9xeCVoYzFiUHZfS2R3ZTxoKTdWTjhmQDV7aFB3TiNMOVlv
WTtEWkpufnRLCnpsVEI0bEsyfWV5OGprPEQkdk5oQylDQ0pVI01ZKEVwPDdobnxOOSpwZkl8UkJo
djk3YFgpWDRzYmtHbGMoaWNhVQp6N3B1ZTxmIS1wRz1BSThWVUswPUhiVE5afjs2YGBBXzAtezBt
a2R2cThHRE5BQmdeKWZqbl5ZU3EpISUhWDdecGAKejVxd3p2cnxBSUhqJXsrJmJQeDwjPCZCOStA
Wl45bWhoOTw8ISteTypTVlk5Rl89XnJec29fJlBQRDEjZXtPYlgwCnpDYTFIYHZYWipHeW9sMUA+
e3AxJTt7I1Q9MHUwaSgzbVJIZWhXbSlCcHs3TE9BNmJpMENWeWNIbmxfKU9BO3p1RAp6dlRkbztF
fjk8S2M0O0d2SFljKldoeHpROy1RSGRBcCtNaStsKTFIZ0UxeEt8bGVUbW1zZD9AV1ZES09INXt0
aWMKelBmaSFIZXNoO0o/e1RebnFAUCZmemg9dGEmQW5zX1lRVHd5XjNiPFlIaTh8O1FUWjF9WiRw
dmNPcGdQdDJYaV5pCnozKXpsP1M/an15Xj5rKEE+MGB1Q0hLSWY1JlAkbHhsVVpRKj1vUElAR1BE
blRoYXRyNFpSVDdlc0pveG8oKlJ3KQp6VT1gfClCZ3hZVFZKUnsxMjdPcnR1I3MlUVZtLUVjYk8m
Vyp4dCtWUyVVWigoPnZsV3lMWjYhTDBEcmljV341e0QKei1+bzs8QmV+NGJXZ3N2KV4mI2cqaUsk
Ym96eFhNM1N+Vn4hX1ltJj0pdD1SQ3d7PClDUmRSeG1FdSVTVyZ1I0VQCnooYE5OYSZuNjlzVkVX
OXtOMXlyWjFrYFokPF9xYDJ2ZUdwNXg1clJzV0RZUlBpTTUrQ2IjPH42MT8/d2lmRnJvbwp6OVdr
N1M7QGVOKjY4VmV+NFpAPWQ+MkYlRmpWaV58VlFIWmMlWDJ7QWskNyNtUXQydzFybmpEc2E8T0xs
NWR0cXEKej5wTjtARHhBLUliLTdyMylOK15fUkRGfHVxeXYlaWR5Z21hKmRob0wtYUUwUkJQTGk8
eDF2Sz9nUFA7QklnK3w0Cno4bTB7QGY5blkzeCUlVXNhJkYrYEtaVyZ7R0pSYmhxKThyflltYGFY
YHZSbHZjKV8oVT1lTlVPZmYydUFtYD0jbAp6b0N1elVNK2NoOWMzRU1lMURCaXpIUTktdUR0Iz1j
NVF1N1RidCFkc01TcV4mUEtSKHt7JClyc00xYEdXSjJRPC0KeiVlXk11MjR1WG9tMyUkY2lmN1o8
YncxdHZ1X1FFRGshPVhiYDcqYXVkbWtBMWxsVylNKWZVX2pQMkt4UWZCJDtNCnp7RlVHUDRwUDdG
YEUkVGYmJkllX29PM1FZcG9aUGNucl9OTHpeSFgrbSR6KXlGTHt8TGJFIV9jdGwwRk9mR2xtaQp6
ZTdERXZGN3VKTStUbyhiPitsJXJkZ3FXVlBfS3UydnxkYiZYe3Y8UDd9dDFQQTVycH5ZRE1KSD08
Zl5QVGZCJCUKemxNWHlnaT9jZ1F7WTBFc1E+JUJuYUpTX1lpYCNxZkhAeFc8QElLa1R3XnNTOWFt
NzJLPytLP19Ua0NHJD1GNl5YCnpCVX02aWhqM2IjdiVhTjs9QDlVZm1zTUB7ak4zUTBPLWdGVlo+
QnVFUGNAVSVkIUdoQSZvcjxUMHolTXRLQTU2VQp6K0ske2doISg4OCQ8Zm9oOXdVRHspRylCR0pU
cXYjX2FrdVBxPlkzdWw9ZW9WXyo+JHlLbz53QVBydTFJN2lrI2AKekkjMU0kN2kzTXdHZ2YoOWk5
U1kqVkpBNSZIKCY/O0N6aHF0bUVnTDhuel9fPEhSMCFebFR1ZXhTcEZCcD1WTjZQCnpjYFVnT3Io
WHwkOW4temRuMXRoSmlpKnJgbHJ3PVF4NEQ5WCpqYVZAPGVzX1V4VTI7SmkmX2I8VilKSEZmKTlU
Qgp6KkNpZkxyc2JBKUlucWZjaFA0KmJkTXZZfDklak9fWnxgKTs3SXBReTcyPER7eDVzdEdoYyVy
VFJZaiR7Ym5tdH4KemcmbiNHc1dKOC1VOHVTaT5BKzBwPHNtfHZHdmAhJXtYMmREblBBNmdmM3V+
YF9MfFJkRmwme3A5OGcwMnFhSlAxCnprKTNhUHZxWjtGPC1zNnlgQW9Za1l7VCYyYlFoX2kkZjJS
T1dxamRhX1QzeHsxZio7SW9hNHlOYVdgRkwxOz9GRQp6Ylk3fUtOYTl2Uk1BLVB+M1dGUWtZNV9H
WitOVE5xR1pWNExEe1V5Jk50NG5yK2laOWFPWEBpa1dkJjQwSWhRP2UKemkxZXB9eXZ4cGJ2RFZ8
fGZANClTdkh0WiVLKHRgSjlSTzhGdUFvNH1KR2pjKno9VTB2NGNrbEVLeGtWOWcmb31hCnpWOXhY
T0lJN0JQJVpsKUI/ZU5kd3k2dHM5aSN8R1RnMilYOWFjdWdMdiYxKnIzcDlDbGk4aTZ7Y1QwfWpq
YT5HKwp6ZW5QXkQ4M0srbis+KnRNeWlmMUFmMlBpeFNQQ2dsUXM2TGRGOFojezs4eThsIzZmVlBv
MVBUXjNmZnVqUj85anMKenNsd2hNQG50b1o0WUoocjV+a3JkKSUyOCE9T2lFQUoqVUs8OExXYnBj
X14mMSstYk9GXkB8fV8jcih5IWJBYD8zCnppekxMYFNNMns8Sl4mJFplWHQ7OV5XeD50eDxyM21q
RiVNPFJqdHI1a2pNNTYqI2J2KDJxNVR1WmItJXZSRVY8dgp6I3whbVRLQmJAdWd4OSM1SGc9I1g3
ZjxXaWtQWWhESmIxNEVVI2dkLWxNU2BROTJGUVM+QXJCR05zbWU4UHA0VSMKejVtZCZ3TVRoPXlJ
e0E3JHkwRFl8WEgqfUpNVnFkKl5PTUBgdGBsaGNuT2tpMGJFK15+aiZ2SXRLU0JsT2NMdlIhCnop
Y2NyWTZhNUMtRGx1NkhPaSVjUzdKOSheNz9nMkpVOWk4NDVEb0QoVHsjRF9iZGNPbyZrPG9kVmxR
aClreGZ4JQp6bztjPWRwVGtgKiU9ISNaNXhDbjdrRDQ0OVY0enR1SFU3THJZamQ2NGl9LVlHPGUq
OEhGQXY+ZWFqMFhhbElZfC0Kek5ycmBNcSRHcn1vdn5ZX0Q0OSUlZlErOT5aPEB3NGJkKyhuWE08
fGxyU3trfEVnWFhKNCRoflkzQUtVJE48Nng4Cnoha25YNGppVz9uSnt8Uk09fEZJXyhvIyUtU1FU
MXFwQTU2fkkqdkxOJkoramY4WFdTOSMxNSlLSDAkYFZRfmFTSAp6JHteeE81IXpiR2JJQEZga01i
Zmk0TyYld3d8akQpRV9fbk9vQFJgPT5POEYkMXBsJjhZPH4hOCQhdH1jYG8tS0QKeishSmJlUVZA
YzthQzsyOzkzVWtgKmRgJkxQP3ZVNHhzNmdwTz00K1liNDxmbnsxSWZaTC1eWCNKRXUpM2l0VG1Z
CnpiOyFDRiNwZmhQXmxPYHdVY3FkIVhOSnJYUyo0SUxLYSV3K3BWWVElWll0UGJvakAxTXFtK2hV
MTdIdjBRMHAmYAp6eSFod0g3RHtYKG50dGZQWjtlKFNxRD9AUjUjR2x4Ym5QPHxpfX1RN3ttVHdf
IyRBeV5wUT4wNyYjIUtKOHp1fVgKejNRM01xXjt7OV5kRFNtKkdHfGBvOW5KMW4yaEM8b2dJMT1w
Vncja05FV3FqJEx2WWRKNzspN0JISnVlNlNhRlJqCnp4cXl9NzlMWEc7bTRlY0NESmZGTHNiKXBy
d1ExTT8pRShITSEtPSVHM1VaQnd0Mz5oSWBga1NyX2gyTUt4QlF5bQp6dURtPXRUYyUpWXg/YjQ5
dk1qNHNIcitMOW1HZ3xZYGV5I3wjPWJrb15QVDw/X3AhJk94fXIwP1ppQGdTMHJrR1cKemo0aGVm
ZUskWip6VnBKI1EkbDVAU0hGdnY9e1Zpd0I9Q25JbXhIQjJuXlo+SGJJKmQrS1BHJVY0MGBGPT8j
cHVICnozS31rREB2NSZVT0R9R296d0dzYEckMyU8enNGN2FYWjk+ZTZ0NmhwYDlFaCp6d29ie21M
MS1jKTVxZjt7Zyt+Vwp6Jm9ySmt3TG80UGBZTEM2IzM9VmokUFc1P3pTUENePHxUZ2Yhbk9XaTxx
akw9SG1RaWopJkpfeVR6X2ZOTjJiO04KemwmXjk9dDhaU2l0UmZOYXsoSFJqU0B6PTE4KGtGaFRL
XiUwfEl5NiN3byZkZDRUdC0zTGlUXmc4RT9DQkp+PzZPCnp3JGlWMXd+V1ZSZVdYejZtVllnQTVv
e2NDdyNUMEZ1V350P0tpfX1wby0tSmYyM2tgbD1idGU+MyVMd1NROy18Kwp6c3M5fFomSDNlYDxO
V0klPy19NXAxcl85MCp4VSNTKEFnajhWcE10LXw3PShIdGRqRztUeXdYe15tbG9ge1g0dmsKemQo
SVlLVDZFNXdhT0diJHp4KG0jck45NVJ1Sk9ZWXFrVyRRP0QrZCV3ZGMpV19WQGE0eEE8UitlWTNe
YVZFSlo/Cnp8RCRZaTIpNStyeW0+ekBgMF8zUVcwQ3ZqbyZUZX1eWiMjO3Y8d3lBN0hUX1R3RFRe
eVcyO2p9NDU7JWJrSzc8MQp6ZE4kcEJzMTVNSHYpXlVJcz9SSV9LS3lPMmA4TDtsPnB9azBNfUYo
YXpWXm83WjFLJCZ8NGkhdFooeD58JGp+Ri0KenJ+UClCZ3FafXxqRDtPUEBHbnEyYHtXWEcmLXZJ
TG5nMyM8WFV+bGdhT3VpPG94bDdHPCRlcD92dFZaK0Z5eU87CnpSQGlUeEAwS3p6Mkpta21hYH5Q
U2FvKiMkZjg3WHRAdUNwYEszfStKQCspP0l2LWFrdEgrP34tVSF8Xl45TngzUwp6ZFMybUk9eFdx
eChZWXRZaE9hUXJHUiVtMEtoSnhje3VSMElHVX5YQ2FRRVE5PDlQcXhgMXE/IUZPN1QhdF84bXUK
ei1Ae2Fldjs4V3kpWGEhP0o/SEglYCNSV1RNamVrcXFyTzZRKkpkTiFlTHcmSCUtNng1fE5paGQ2
TVp3JGUqKkdiCno2biNzeVo/KShAQ0c9YWx7eCtrMW9BbSNLWHVrREQtJik2U3Q+Yl4lYClBKn0+
O0YzZE5YdDtRK0kjWk5ZM2t0aAp6fElHVmVrUVp0fXsrZ1I0SXpwTCh7fDcpX01xaD8kcFVpUCt7
fTduaFIpMWJxeUJ8U2Z7dWMqe0dsRENre14oYXwKemQyIXEyRkteOz9FMzA9dWxAR0R+UHZwJEkl
ditZU15rY0k2PSs9S3g9dFdsfVJ7S0IreVpSTVJAe2IjbHAkQlRxCnpTSjNCTFk8JEFTQFZlKDs7
YW1KS016KnFxY0tmVEM8cmxHTGQoUFJmKDIlc29OVEdIYHcwI3ZAVkg5JTwlWkwyLQp6LSNRKU02
Q2FIfl9mX25nUU92VGchPlFuM3Zwa2E8bk5VKD1AWG9KZEZPOVYwM2VLP2t2OUQrfipAI3dvZ0ZF
aGgKejc1aVdteUN6RnF7JEp6dUZwZ0l+Y0s1JTtFKml5TkJGSWE9ajw+blFJTm9uJmBldnFZKGV5
M3B6U1g5MENIJmg9Cmpfa1ZGaWFNYGRsXiQoOz9gX1ZVVCMtQi07Y2pWeWwxOWtoKFVpcDZqKTgy
UikKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxh
dGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRv
dy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzYzQ4YTc1ZjRmNWEyMDgyZDdhNWFkZjY3NjE1OTUzYTM0YmY2ZDlmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRl
bnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBA
QAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg0NzgKLSAgUmVuZGVyQmxvY2sge2h0
bWx9IGF0ICgwLDApIHNpemUgODAweDQ3OAotICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICg4LDE2
KSBzaXplIDc4NHg0NTQKLSAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwwKSBzaXplIDc4NHgz
NgotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NDR4MzYKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3NDQ6ICJUaGUgc3ZnIGFyZWEgY29udGFpbmVk
IGluIHRoZSBkaXYgZWxlbWVudCAocmVkIGJveCksIHNob3VsZCBmaWxsIG91dCB0aGUgd2hvbGUg
YXJlYSAodHdvIGdyZWVuIHJlY3RhbmdsZXMsIGZpcnN0OiAoMCwwKS0iCi0gICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMTgpIHdpZHRoIDY4NjogIig1MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSkt
KDEwMCUsMTAwJSkpLCBlc3BlY2lhbGx5IGFmdGVyIHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0
byBhIGRpZmZlcmVudCBzaXplIgotICAgICAgUmVuZGVyQmxvY2sge2Rpdn0gYXQgKDAsNTIpIHNp
emUgNDAyeDQwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQotICAgICAgICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICg5LDY5KSBzaXplIDIwMHgyMDAKLSAgICAgICAgICBSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAg
ICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNjkpIHNpemUgMHgwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTAuMDBd
IFtoZWlnaHQ9MC4wMF0KLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDks
NjkpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4
PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoOSw2OSkgc2l6ZSAyMDB4MjAwCi0gICAgICAg
ICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoOSw2OSkgc2l6ZSAyMDB4
MjAwCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgxMDksMTY5KSBzaXpl
IDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0xMDAuMDBd
IFt5PTEwMC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgICAg
IFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDY5KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAw
XSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91
c2UtcHJvcGVydHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24t
Y3Jhc2gtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWNkYTc2
NzdlYzc1OWRiMWUxNDhkNDljOGU2YWU5MGVmODg0MGM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDk3NDIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZ
YnBSem5rQjlnQ0NNNDckPVN1RnhlT01qCnojd249PTJCdjFfRFRZUmROdlZrak4jO3FaJCpFPiRp
S1ohTGhSRiUkfDk+K3VzNG5ueWFTVytvZTB6TihGTXxSUAp6aSgkaDV4eShyJnRMTCFCWk10LTRV
aW9RMzEmME8oTWtXPngwUjt5STBnSG9lb0Rlb2R1IWZRR2tzd0c0c14kYT4KemktJWlvMlRUSnts
PF5WIXNRaFU3akhWQjg5dmFPYnF2Z1lCYDhabFhLcjdWSWBmOz48RnhveUVaNkEpZDRAY1hGCnpx
d1BhckE5SipRSmxafVVaNkEtZWs0TXxiLX5xU017PXNQZlY2PVpRK0NMY1dBQl5AN00qOWIme2Uj
aXwoZGhpKgp6PT18I0Z7UE83aEkoIWtyPT15QHVeJWJNKlBlI3xASyNJZytILTZtNntXNj9tJkhM
P3x6fH4kMTQ0JHJqRjYqMlUKRm5nOVV1WH1BQ1kKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy91c2UtYW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQt
ZXhwZWN0ZWQudHh0CmluZGV4IDJhYTQyNTRkMTJkMDYxY2EwNjAyYjZkOGRlZDRjNTMxYzhhYmMz
YzQuLjA0YzYzNTc2YWQ0MTE3YTBlY2E2N2YyOTQ4NzI5ODA5MGJlZTY0ZjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRl
LXdpZHRoLWFuZC1oZWlnaHQtZXhwZWN0ZWQudHh0CkBAIC05LDQwICs5LDQwIEBAIFBBU1MgdXNl
LmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwMAogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFs
dWUgaXMgMTAwCiBQQVNTIHVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgaXMgJzEwMCcKIFBBU1Mg
dXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0JykgaXMgJzEwMCcKLVBBU1Mgc2hhZG93Um9vdC5maXJz
dENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTAwCi1QQVNTIHNoYWRvd1Jvb3QuZmlyc3RD
aGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgdXNlRWxlbWVudFRhcmdldENs
b25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDAKK1BBU1MgdXNlRWxlbWVudFRhcmdldENs
b25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTAwCiBQQVNTIHVzZS53aWR0aC5hbmltVmFs
LnZhbHVlIGlzIDEwNQogUEFTUyB1c2Uud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKIFBBU1Mg
dXNlLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwNQogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwu
dmFsdWUgaXMgMTAwCiBGQUlMIHVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgc2hvdWxkIGJlIDEw
NS4gV2FzIDEwMC4KIEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jykgc2hvdWxkIGJlIDEw
NS4gV2FzIDEwMC4KLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFs
dWUgaXMgMTA1Ci1QQVNTIHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1
ZSBpcyAxMDUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyAxMDUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFs
dWUgaXMgMTA1CiBQQVNTIHVzZS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDExNQogUEFTUyB1c2Uu
d2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKIFBBU1MgdXNlLmhlaWdodC5hbmltVmFsLnZhbHVl
IGlzIDExNQogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBGQUlMIHVzZS5n
ZXRBdHRyaWJ1dGUoJ3dpZHRoJykgc2hvdWxkIGJlIDExNS4gV2FzIDEwMC4KIEZBSUwgdXNlLmdl
dEF0dHJpYnV0ZSgnaGVpZ2h0Jykgc2hvdWxkIGJlIDExNS4gV2FzIDEwMC4KLVBBU1Mgc2hhZG93
Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTE1Ci1QQVNTIHNoYWRvd1Jv
b3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMTUKK1BBU1MgdXNlRWxlbWVu
dFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMTUKK1BBU1MgdXNlRWxlbWVu
dFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTE1CiBQQVNTIHVzZS53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDEyNQogUEFTUyB1c2Uud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAx
MDAKIFBBU1MgdXNlLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEyNQogUEFTUyB1c2UuaGVpZ2h0
LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBGQUlMIHVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgc2hv
dWxkIGJlIDEyNS4gV2FzIDEwMC4KIEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jykgc2hv
dWxkIGJlIDEyNS4gV2FzIDEwMC4KLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFu
aW1WYWwudmFsdWUgaXMgMTI1Ci1QQVNTIHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5p
bVZhbC52YWx1ZSBpcyAxMjUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5p
bVZhbC52YWx1ZSBpcyAxMjUKK1BBU1MgdXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFu
aW1WYWwudmFsdWUgaXMgMTI1CiBQQVNTIHVzZS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEzNQog
UEFTUyB1c2Uud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAxMDAKIFBBU1MgdXNlLmhlaWdodC5hbmlt
VmFsLnZhbHVlIGlzIDEzNQogUEFTUyB1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUgaXMgMTAwCiBG
QUlMIHVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykgc2hvdWxkIGJlIDEzNS4gV2FzIDEwMC4KIEZB
SUwgdXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jykgc2hvdWxkIGJlIDEzNS4gV2FzIDEwMC4KLVBB
U1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTM1Ci1QQVNT
IHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMzUKK1BBU1Mg
dXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMzUKK1BBU1Mg
dXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTM1CiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQu
aHRtbCBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1o
ZWlnaHQuaHRtbAppbmRleCBjZGMwYWQyNDNjODgzYjgwYjA1NTZiNjFjMzZmN2Q5YzkxOTA3MzBm
Li4zOTI2ZDQ1NTJkODk0Y2NhMGI4ZmU4NjhhYjI5ZTkyNTEzMzQyMDQ1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy91c2UtYW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvdXNlLWFuaW1hdGUtd2lkdGgtYW5k
LWhlaWdodC5odG1sCkBAIC01OCw3ICs1OCwxMSBAQCBhbmltYXRlMi5zZXRBdHRyaWJ1dGUoImZy
b20iLCAiMTAwIik7CiBhbmltYXRlMi5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMCIpOwogdXNlLmFw
cGVuZENoaWxkKGFuaW1hdGUyKTsKIAotdmFyIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93
Um9vdCh1c2UpOworZnVuY3Rpb24gdXNlRWxlbWVudFRhcmdldENsb25lKCkKK3sKKyAgICBkb2N1
bWVudC5ib2R5Lm9mZnNldFdpZHRoOworICAgIHJldHVybiBpbnRlcm5hbHMuc2hhZG93Um9vdCh1
c2UpLmZpcnN0Q2hpbGQ7Cit9CiAKIGZ1bmN0aW9uIHNhbXBsZTEoKQogewpAQCAtNjksOCArNzMs
OCBAQCBmdW5jdGlvbiBzYW1wbGUxKCkKICAgICBzaG91bGRCZSgidXNlLmhlaWdodC5iYXNlVmFs
LnZhbHVlIiwgIjEwMCIpOwogICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCd3aWR0aCcp
IiwgIicxMDAnIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpIiwg
IicxMDAnIik7Ci0gICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC53aWR0aC5hbmlt
VmFsLnZhbHVlIiwgIjEwMCIpOwotICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hpbGQu
aGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRU
YXJnZXRDbG9uZSgpLndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CisgICAgc2hvdWxkQmUo
InVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOwog
fQogCiBmdW5jdGlvbiBzYW1wbGUyKCkKQEAgLTgxLDggKzg1LDggQEAgZnVuY3Rpb24gc2FtcGxl
MigpCiAgICAgc2hvdWxkQmUoInVzZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIxMDAiKTsKICAg
ICBzaG91bGRCZSgidXNlLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSIsICInMTA1JyIpOwogICAgIHNo
b3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSIsICInMTA1JyIpOwotICAgIHNob3Vs
ZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hpbGQud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDUiKTsK
LSAgICBzaG91bGRCZSgic2hhZG93Um9vdC5maXJzdENoaWxkLmhlaWdodC5hbmltVmFsLnZhbHVl
IiwgIjEwNSIpOworICAgIHNob3VsZEJlKCJ1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjEwNSIpOworICAgIHNob3VsZEJlKCJ1c2VFbGVtZW50VGFyZ2V0Q2xv
bmUoKS5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMDUiKTsKIH0KIAogZnVuY3Rpb24gc2FtcGxl
MygpCkBAIC05Myw4ICs5Nyw4IEBAIGZ1bmN0aW9uIHNhbXBsZTMoKQogICAgIHNob3VsZEJlKCJ1
c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRB
dHRyaWJ1dGUoJ3dpZHRoJykiLCAiJzExNSciKTsKICAgICBzaG91bGRCZSgidXNlLmdldEF0dHJp
YnV0ZSgnaGVpZ2h0JykiLCAiJzExNSciKTsKLSAgICBzaG91bGRCZSgic2hhZG93Um9vdC5maXJz
dENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTE1Iik7Ci0gICAgc2hvdWxkQmUoInNoYWRv
d1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMTUiKTsKKyAgICBzaG91
bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMTUi
KTsKKyAgICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwu
dmFsdWUiLCAiMTE1Iik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTQoKSB7CkBAIC0xMDQsOCArMTA4
LDggQEAgZnVuY3Rpb24gc2FtcGxlNCgpIHsKICAgICBzaG91bGRCZSgidXNlLmhlaWdodC5iYXNl
VmFsLnZhbHVlIiwgIjEwMCIpOwogICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCd3aWR0
aCcpIiwgIicxMjUnIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcp
IiwgIicxMjUnIik7Ci0gICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC53aWR0aC5h
bmltVmFsLnZhbHVlIiwgIjEyNSIpOwotICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hp
bGQuaGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTI1Iik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1l
bnRUYXJnZXRDbG9uZSgpLndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTI1Iik7CisgICAgc2hvdWxk
QmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEyNSIp
OwogfQogCiBmdW5jdGlvbiBzYW1wbGU1KCkKQEAgLTExNiw4ICsxMjAsOCBAQCBmdW5jdGlvbiBz
YW1wbGU1KCkKICAgICBzaG91bGRCZSgidXNlLmhlaWdodC5iYXNlVmFsLnZhbHVlIiwgIjEwMCIp
OwogICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCd3aWR0aCcpIiwgIicxMzUnIik7CiAg
ICAgc2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpIiwgIicxMzUnIik7Ci0gICAg
c2hvdWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC53aWR0aC5hbmltVmFsLnZhbHVlIiwgIjEz
NSIpOwotICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hpbGQuaGVpZ2h0LmFuaW1WYWwu
dmFsdWUiLCAiMTM1Iik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLndp
ZHRoLmFuaW1WYWwudmFsdWUiLCAiMTM1Iik7CisgICAgc2hvdWxkQmUoInVzZUVsZW1lbnRUYXJn
ZXRDbG9uZSgpLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEzNSIpOwogfQogCiBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZl
LXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQueGh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQt
d2l0aC1zeW1ib2wtZXhwZWN0ZWQueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFiODc1MzRjY2I0M2UzM2Mx
MjVjZGNlNmEwNDcxZGIzZGUzYmJhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1l
eHBlY3RlZC54aHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8Ym9keT4KKyAgICA8cD5UaGUgc3ZnIGFyZWEgY29udGFpbmVk
IGluIHRoZSBkaXYgZWxlbWVudCAocmVkIGJveCksIHNob3VsZCBmaWxsIG91dCB0aGUgd2hvbGUg
YXJlYSAodHdvIGdyZWVuIHJlY3RhbmdsZXMsIGZpcnN0OiAoMCwwKS0oNTAlLDUwJSksIHNlY29u
ZDogKDUwJSw1MCUpLSgxMDAlLDEwMCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNpemluZyB0aGUg
Y29udGVudCBib3ggdG8gYSBkaWZmZXJlbnQgc2l6ZTwvcD4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0
aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsiPgorICAgICAg
ICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjQwMCIgaGVp
Z2h0PSI0MDAiPgorICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZp
bGw9ImdyZWVuIi8+CisgICAgICAgICAgICA8cmVjdCB4PSIyMDAiIHk9IjIwMCIgd2lkdGg9IjIw
MCIgaGVpZ2h0PSIyMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgICAgIDwvc3ZnPgorICAgIDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdp
dGgtc3ltYm9sLnhodG1sCmluZGV4IDYwNGU3ZWI4MThiMDczY2YwYjY4NGQ5OGExYTg3OTk2Y2Zi
Mzc2YjguLmQ0MjJkNjExN2FiNTZjZWUwNjhhZGE4NTFmMjU5OGQ4ZjBiMWM1ZGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29u
dGVudC13aXRoLXN5bWJvbC54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0
aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wueGh0bWwKQEAgLTEsOCAr
MSw3IEBACiA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CiA8aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KKzxi
b2R5PgogICAgIDxwPlRoZSBzdmcgYXJlYSBjb250YWluZWQgaW4gdGhlIGRpdiBlbGVtZW50IChy
ZWQgYm94KSwgc2hvdWxkIGZpbGwgb3V0IHRoZSB3aG9sZSBhcmVhICh0d28gZ3JlZW4gcmVjdGFu
Z2xlcywgZmlyc3Q6ICgwLDApLSg1MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSktKDEwMCUsMTAw
JSkpLCBlc3BlY2lhbGx5IGFmdGVyIHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0byBhIGRpZmZl
cmVudCBzaXplPC9wPgogICAgIDxkaXYgaWQ9ImNvbnRlbnRCb3giIHN0eWxlPSJ3aWR0aDogMTAw
cHg7IGhlaWdodDogNDAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsiPgogICAgICAgICA8c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgpAQCAtMTYs
OSArMTUsNyBAQAogICAgICAgICA8L3N2Zz4KICAgICA8L2Rpdj4KICAgICA8c2NyaXB0PgotICAg
ICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4
Iik7Ci0gICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRC
b3giKS5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiKTsKICAgICA8L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNl
LXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5zdmcgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQu
c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFiNjVjN2I2MGY1ODMxOGQyNWM3MTllYjFlMTYxMzhkYWIyZTIzNjEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1z
eW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQuc3ZnCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPC9zdmc+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFz
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5j
aHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmN2U2ZTkxYzgxYjUwNDA2ZjQ1MWE3OTdjMzdjZTU2ZTA2NDUyMTBhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0
b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTogRXJyb3I6
IFByb2JsZW0gcGFyc2luZyBwb2ludHM9IjAiCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogRXJy
b3I6IFByb2JsZW0gcGFyc2luZyBwb2ludHM9IjAiCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJTVkdQYXRoIHtw
b2x5bGluZX0gYXQgKDAsMCkgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbcG9pbnRzPSIiXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgw
LDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6
ZSAweDAKLSAgICAgICAgICBSZW5kZXJTVkdQYXRoIHtwb2x5bGluZX0gYXQgKDAsMCkgc2l6ZSAw
eDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbcG9pbnRzPSIiXQotICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246326</attachid>
            <date>2015-02-10 08:25:54 -0800</date>
            <delta_ts>2015-02-11 09:40:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141382-20150210082555.patch</filename>
            <type>text/plain</type>
            <size>116576</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ5MDA1ZTkyNTY2NmQy
OTNmM2UyYTFmYTZmODE2NmFiYzYxYTQ5Ny4uZDhmNmNlN2EwYjg2MTIzMTBkMzA5NDBjOWNkZjE0
OTYyNzI4MDRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBAQAorMjAxNS0wMi0xMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHVXNlRWxlbWVudCBmb2xs
b3ctdXAgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudENsaWVudC5oOiBSZW1v
dmVkIHVubmVlZGVkIGZvcndhcmQgZGVjbGFyYXRpb24uCisKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZSBvZiBTVkdVc2VFbGVtZW50Lmgu
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA6
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmNsZWFyVGFyZ2V0RGVwZW5kZW5j
aWVzKTogUmVtb3ZlZCB0b28tc3BlY2lmaWMKKyAgICAgICAgY2hlY2sgdGhhdCBhc3N1bWVkIHRo
YXQgU1ZHIGVsZW1lbnRzIGluIHNoYWRvdyB0cmVlcyBhcmUgYWx3YXlzIGZvciA8dXNlPiBlbGVt
ZW50cy4KKyAgICAgICAgVGhpcyBhbW91bnRlZCB0byBhbiB1bm5lZWRlZCBvcHRpbWl6YXRpb24g
dGhhdCBjb3VsZCBiZSByZW1vdmVkIHdpdGggbm8gYmFkIGVmZmVjdC4KKworICAgICAgICAqIHN2
Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNvcnJlc3Bv
bmRpbmdFbGVtZW50KTogUmVtb3ZlZCB0aGUgYXNzZXJ0aW9ucyBzbyB0aGlzIGNvdWxkCisgICAg
ICAgIGJlIHVzZWQgbW9yZSBmcmVlbHkgb3V0c2lkZSBvZiBjYXNlcyB3aGVyZSB0aGUgc2hhZG93
IHRyZWUgc3RhdGUgaXMgZnVsbHkgY29uc2lzdGVudC4KKyAgICAgICAgSXQncyBmaW5lIHRvIGhh
dmUgdGhpcyBqdXN0IGJlIGEgbWVjaGFuaWNhbCBnZXR0ZXI7IHRoZXJlJ3Mgbm90aGluZyBzdXBl
ci10cmlja3kKKyAgICAgICAgaGVyZSB0aGF0IG5lZWRzIHRvIGJlIGNhdWdodCBieSB0aGUgYXNz
ZXJ0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6dGl0bGUpOiBSZW1vdmVkIHVu
bmVlZGVkIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRpdGxlcyBpbnNpZGUKKyAgICAgICAgdGhlIHNo
YWRvdyB0cmVlLgorCisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0dFbGVtZW50OjpjcmVhdGUpOiBBZGRlZCBhbiBvdmVybG9hZCB0aGF0IGRvZXNu
J3QgcmVxdWlyZSBleHBsaWNpdGx5CisgICAgICAgIHBhc3NpbmcgaW4gdGhlIHRhZyBuYW1lLgor
ICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHU1ZH
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGUpOiBE
aXR0by4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOiBEaXR0by4KKworICAgICAgICAq
IHN2Zy9TVkdVc2VFbGVtZW50LmNwcDogUmVtb3ZlZCBhIGxvdCBvZiB1bm5lZWRlZCBpbmNsdWRl
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOiBSZW1v
dmVkIGNvZGUgdG8gaW5pdGlhbGl6ZSBzb21lIGJvb2xlYW5zLgorICAgICAgICBXZSBkbyB0aGF0
IGluIHRoZSBjbGFzcyBkZWZpbml0aW9uIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OmNyZWF0ZSk6IFJlbW92ZWQgdGhlIGNvZGUgdGhhdCBjYWxscyB0aGUKKyAgICAgICAg
ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCBmdW5jdGlvbiB1bmNvbmRpdGlvbmFsbHkuIFRoYXQn
cyBwcm9wZXJseSBkb25lIHdoZW4KKyAgICAgICAgbmVlZGVkOyBubyBuZWVkIHRvIGRvIGl0IGhl
cmUuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp+U1ZHVXNlRWxlbWVudCk6IFJl
bW92ZWQgdW5uZWVkZWQgY29kZSB0byBkZXN0cm95IHRoZQorICAgICAgICBzaGFkb3cgdHJlZSAo
dGhhdCBoYXBwZW5zIGF1dG9tYXRpY2FsbHkpIGFuZCBzaW1wbGlmaWVkIHRoZSBjb2RlIHRvIHN0
b3AgbG9hZGluZworICAgICAgICB0aGUgZXh0ZXJuYWwgZG9jdW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdVc2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IFNpbXBsaWZpZWQg
dGhpcy4gUmVtb3ZlZCBhc3N1bXB0aW9ucworICAgICAgICBhYm91dCB0aGUgaW50ZXJzZWN0aW9u
IG9mIHZhcmlvdXMgc2V0cyBvZiBhdHRyaWJ1dGVzLCBhbmQgYWxzbyByZW1vdmVkIHRoZQorICAg
ICAgICBpc1N1cHBvcnRlZEF0dHJpYnV0ZSBmdW5jdGlvbi4gVGhpcyBzZWVtcyB0byBzZXJ2ZSBu
byBwdXJwb3NlIGhlcmUsIG9yIGluIGFueQorICAgICAgICBvdGhlciBTVkcgZWxlbWVudCBjbGFz
cy4gSSBwbGFuIHRvIHJlbW92ZSBpdCBldmVyeXdoZXJlIG92ZXIgdGltZS4KKyAgICAgICAgKFdl
YkNvcmU6OmlzV2VsbEZvcm1lZERvY3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR1VzZUVsZW1lbnQ6Omluc2VydGVkSW50byk6IFNpbXBsaWZpZWQgY29kZSBieSByZW1vdmlu
ZyBhbGwgdGhlCisgICAgICAgIHNwZWNpYWwgY2FzZXMgZHVyaW5nIGluaXRpYWwgcGFyc2luZywg
YW5kIGRpZCB0aGUgaW52YWxpZGF0aW9uIGhlcmUgcmF0aGVyIHRoYW4KKyAgICAgICAgZGVmZXJy
aW5nIGl0IHRvIGRpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zLiBBZGRlZCBhIGNhbGwgdG8gdGhl
IG5ldyBmdW5jdGlvbiwKKyAgICAgICAgdXBkYXRlRXh0ZXJuYWxEb2N1bWVudCwgc2luY2UgdGhh
dCB3b24ndCBkbyBhbnl0aGluZyB3aGVuIHRoZSBlbGVtZW50IGlzIG5vdAorICAgICAgICBpbiBh
IGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZGlkTm90aWZ5U3Vi
dHJlZUluc2VydGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVu
dDo6cmVtb3ZlZEZyb20pOiBBZGRlZCBjb2RlIHRvIGNhbGwgY2xlYXJTaGFkb3dUcmVlIGFuZAor
ICAgICAgICB1cGRhdGVFeHRlcm5hbERvY3VtZW50LiBCb3RoIGFyZSBlZmZpY2llbnQgd2hlbiBk
b2luZyBub3RoaW5nLCBhbmQgYm90aCBhcmUKKyAgICAgICAgYXBwcm9wcmlhdGUgc2luY2UgdGhl
IGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGluIGEgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdVc2VFbGVtZW50OjpyZWZlcmVuY2VkRG9jdW1lbnQpOiBEZWxldGVkLiBObyBsb25nZXIgbmVl
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZXh0ZXJuYWxEb2N1bWVudCk6
IFN0cmVhbWxpbmVkIHRoZSBsb2dpYyBoZXJlLCByZW1vdmluZworICAgICAgICBtdWx0aXBsZSB1
bm5lZWRlZCBjaGVja3MuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp0cmFuc2Zl
clNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSk6IFJlbmFtZWQgc2luY2UKKyAgICAgICAgInRh
cmdldCBjbG9uZSIgaXMgY2xlYXIgZW5vdWdoIHdpdGhpbiB0aGlzIGNsYXNzLCB3aXRob3V0IGV4
cGxpY2l0bHkgc3RhdGluZworICAgICAgICAic2hhZG93IHRyZWUiLiBBbGwgdGhlIGNsb25lcyBh
cmUgaW4gdGhlIHNoYWRvdyB0cmVlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCk6IFJlbW92ZWQgdW5uZWVkZWQgY29kZSBjYWxsaW5nCisgICAg
ICAgIGlzU3VwcG9ydGVkQXR0cmlidXRlLiBDaGFuZ2VkIHRoZSBjb2RlIHRoYXQgZGV0ZWN0cyBj
aGFuZ2VzIGluIGhyZWYgdG8ganVzdAorICAgICAgICBjYWxsIHVwZGF0ZUV4dGVybmFsRG9jdW1l
bnQgKGZvciB0aGUgZG9jdW1lbnQgVVJMKSBhbmQgaW52YWxpZGF0ZVNoYWRvd1RyZWUKKyAgICAg
ICAgKGZvciB0aGUgZnJhZ21lbnQpLiBBbHNvIHVwZGF0ZWQgdGhlIHRyYW5zZmVyU2l6ZUF0dHJp
YnV0ZXNUb1RhcmdldENsb25lIGxvZ2ljCisgICAgICAgIHRvIG9ubHkgdHJpZ2dlciBvbiB3aWR0
aCBhbmQgaGVpZ2h0IGFuZCB1cGRhdGVkIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNl
RWxlbWVudDo6d2lsbEF0dGFjaFJlbmRlcmVycyk6IFVwZGF0ZWQgZm9yIHRoZSBuZXcgbmFtZSBv
ZgorICAgICAgICBtX3Nob3VsZFJlYnVpbGRTaGFkb3dUcmVlIGFuZCBhZGRlZCBhIGNhbGwgdGhy
b3VnaCB0byB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFsbG93ZWRF
bGVtZW50U2V0KTogQWRkZWQuIEEgbW9yZSBlZmZpY2llbnQgd2F5IHRvIGltcGxlbWVudAorICAg
ICAgICB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHNldCBmb3IgaXNEaXNhbGxvd2VkRWxlbWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRGlzYWxsb3dlZEVsZW1lbnQpOiBTaW1wbGlmaWVkIHRo
aXMgYnkgdXNpbmcgdGhlIGZ1bmN0aW9uIGFib3ZlLAorICAgICAgICBhbmQgYWxzbyBvdmVybG9h
ZGVkIGZvciBib3RoIFNWR0VsZW1lbnQgYW5kIEVsZW1lbnQgZm9yIGEgdGlueSBlZmZpY2llbmN5
IGJvb3N0LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xlYXJTaGFkb3dUcmVl
KTogUmVuYW1lZCBmb3JtIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzLgorICAgICAgICBUaGlzIGlz
IGEgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCBuYW1lLiBBbHNvIGRlbGV0ZWQgdGhlIGNvZGUg
dGhhdCBzZXRzIHRoZQorICAgICAgICBtX25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24gZmxhZyB0
byBmYWxzZS4gVGhhdCBzaG91bGQgYmUgZG9uZSBieSB0aGUgYnVpbGQKKyAgICAgICAgZnVuY3Rp
b24sIG5vdCBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6YnVpbGRQZW5k
aW5nUmVzb3VyY2UpOiBNYWRlIHRoaXMganVzdCBpbnZhbGlkYXRlIHRoZQorICAgICAgICBzaGFk
b3cgdHJlZSBub3cgaW5zdGVhZCBvZiBleHBsaWNpdGx5IGJ1aWxkaW5nIGl0LgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6dXBkYXRlU2hhZG93VHJlZSk6IE1vdmVkIHRoZSBjb2Rl
IHRvIGNyZWF0ZSBhIHNoYWRvdworICAgICAgICB0cmVlIGhlcmUgZnJvbSBidWlsZFBlbmRpbmdS
ZXNvdXJjZS4gQUxzbyBjaGFuZ2VkIHRoZSBsb2dpYyBzbyB0aGF0IHdlCisgICAgICAgIGFsd2F5
cyBibG93IGF3YXkgdGhlIG9sZCBzaGFkb3cgdHJlZS4gTW92ZWQgdGhlIGNvbW1lbnQgYWJvdXQg
cmVidWlsZGluZyB0aGluZ3MKKyAgICAgICAgZXZlcnkgdGltZSBoZXJlLiBVcGRhdGVkIHRoZSBj
b2RlIHRvIHVzZSB0aGUgZmluZFRhcmdldCBhbmQgY2xvbmVUYXJnZXQgZnVuY3Rpb25zLAorICAg
ICAgICBlbGltaW5hdGluZyB0aGUgYnVpbGRTaGFkb3dUcmVlIGZ1bmN0aW9uIGVudGlyZWx5LiBN
b3ZlZCB0aGUgY2FsbCB0bworICAgICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9TaGFkb3dU
cmVlVGFyZ2V0Q2xvbmUgaW5zaWRlIGNsb25lVGFyZ2V0LiBBbHNvIHVwZGF0ZWQKKyAgICAgICAg
Zm9yIHRoZSBuYW1lIGNoYW5nZSBmb3IgbV9zaG91bGRSZWJ1aWxkU2hhZG93VHJlZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnRhcmdldENsb25lKTogUmVuYW1lZCBmcm9tIHNo
YWRvd1RyZWVUYXJnZXRDbG9uZS4KKyAgICAgICAgTm8gbmVlZCB0byBlbXBoYXNpemUgInNoYWRv
dyB0cmVlIiBzaW5jZSB0aGF0J3Mgd2hlcmUgYWxsIGNsb25lcyBhcmUuCisgICAgICAgIChXZWJD
b3JlOjppc0RpcmVjdFJlZmVyZW5jZSk6IFN0cmVhbWxpbmVkIGEgYml0IHVzaW5nICJ1c2luZyBu
YW1lc3BhY2UiLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6dG9DbGlwUGF0aCk6
IFJld3JvdGUgdG8gdXNlIGVhcmx5IHJldHVybiBhbmQgdXBkYXRlZAorICAgICAgICBmb3IgbmFt
ZSBjaGFuZ2VzLiBBbHNvIHVzZWQgQVNDSUlMaXRlcmFsLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VXNlRWxlbWVudDo6cmVuZGVyZXJDbGlwQ2hpbGQpOiBDaGFuZ2VkIGxvY2FsIHZhcmlhYmxlIG5h
bWVzLgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRy
ZWUpOiBXcm90ZSB0aGUgaXRlcmF0aW9uIGluIGEKKyAgICAgICAgc2xpZ2h0bHkgbW9yZSBpZGlv
bWF0aWMgc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpmaW5kVGFyZ2V0
KTogQWRkZWQuIFRoaXMgbmV3IGZ1bmN0aW9uIGltcGxlbWVudHMKKyAgICAgICAgdGhlIHJ1bGUg
Zm9yIGZpbmRpbmcgYSB2YWxpZCB0YXJnZXQgZm9yIGEgdXNlIGVsZW1lbnQuIFRoaXMgcmVwbGFj
ZXMgbG9naWMKKyAgICAgICAgdGhhdCB3YXMgZHVwbGljYXRlZCBpbiB0d28gZGlmZmVyZW50IHBs
YWNlcyBhbmQgaXQgYWxzbyBpbmNsdWRlcyBhbGwgdGhlCisgICAgICAgIHJ1bGVzIHRoYXQgd2Vy
ZSBmb3JtZXJseSBpbiB0aGUgaXNWYWxpZFRhcmdldCBmdW5jdGlvbi4gQWxzbywgdGhpcyBpbXBs
ZW1lbnRzCisgICAgICAgIGEgY29ycmVjdCBjaGVjayBmb3IgYSBjeWNsZSB0aGF0IGhhbmRsZXMg
Y2FzZXMgdGhlIGNvZGUgaW4gaXNWYWxpZFRhcmdldCBkaWQgbm90LgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVXNlRWxlbWVudDo6aXNWYWxpZFRhcmdldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdVc2VFbGVtZW50OjpjbG9uZVRhcmdldCk6IEFkZGVkLiBIZWxwZXIgZnVuY3Rpb24g
dXNlZCBib3RoIHdoZW4KKyAgICAgICAgY2xvbmluZyB0aGUgdGFyZ2V0IG9mIHRoZSB0b3AgbGV2
ZWwgPHVzZT4gZWxlbWVudHMgYW5kIGZvciBvdGhlciA8dXNlPiBlbGVtZW50cworICAgICAgICBp
bnNpZGUgdGhlIHNoYWRvdyB0cmVlLgorICAgICAgICAoV2ViQ29yZTo6Y2xvbmVEYXRhQW5kQ2hp
bGRyZW4pOiBBZGRlZC4gSGVscGVyIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIGJvdGggdGhlCisgICAg
ICAgIDx1c2U+IGFuZCA8c3ltYm9sPiBlbGVtZW50IGV4cGFuZGluZyBmdW5jdGlvbnMgdG8gYmUg
c2hvcnRlciBhbmQgc2hhcmUgbW9yZSBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxl
bWVudDo6ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUpOiBSZW1vdmVkIHVubmVlZGVkIGNo
ZWNrcworICAgICAgICBvZiBjYWNoZWREb2N1bWVudElzU3RpbGxMb2FkaW5nLiBVc2VkIHRoZSBu
ZXcgZmluZFRhcmdldCBmdW5jdGlvbiwgd2hpY2ggaGFuZGxlcworICAgICAgICBmaW5kaW5nIHRo
ZSB0YXJnZXQgY3Jvc3MtZG9jdW1lbnQgY29ycmVjdGx5LiBSZW1vdmVkIHRoZSBpbmNvcnJlY3Qg
dXNlIG9mCisgICAgICAgIHJlZmVyZW5jZWREb2N1bWVudCB3aGVuIGNyZWF0aW5nIG5ldyBlbGVt
ZW50cyBhbmQgZmluZGluZyB0YXJnZXRzLiBSZWZhY3RvcmVkCisgICAgICAgIHRvIHVzZSB0aGUg
bmV3IGNsb25lRGF0YUFuZENoaWxkcmVuIGZ1bmN0aW9uIGFuZCBhbHNvIG1vdmVkIHRoZSBjb2Rl
IHRoYXQgcmVtb3ZlcworICAgICAgICB0aGUgc3BlY2lhbCBhdHRyaWJ1dGVzIGhlcmUsIHJlcGxh
Y2luZyB0aGUgdHJhbnNmZXJBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlUmVwbGFjZW1lbnQKKyAgICAg
ICAgZnVuY3Rpb24uIE1hZGUgYSBmZXcgb3RoZXIgc2ltcGxpZmljYXRpb25zLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUp
OiBEaXR0bywganVzdCBsaWtlIHRoZQorICAgICAgICA8dXNlPiBjaGFuZ2VzIG9ubHkgc2ltcGxl
ci4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyRXZlbnRMaXN0ZW5l
cnNUb1NoYWRvd1RyZWUpOiBNYWRlIHRoaXMgY29uc3QuCisgICAgICAgIFJlbW92ZWQgdW5uZWVk
ZWQgYXNzZXJ0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmludmFsaWRh
dGVTaGFkb3dUcmVlKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFuZ2UuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdVc2VFbGVtZW50OjppbnZhbGlkYXRlRGVwZW5kZW50U2hhZG93VHJlZXMpOiBSZW1vdmVk
IGFzc2VydGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyQXR0
cmlidXRlc1RvU2hhZG93VHJlZVJlcGxhY2VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR1VzZUVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMpOiBUd2Vha2VkIG5hbWVz
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOiBSZW1v
dmVkIHRoZSBpbkRvY3VtZW50IGNoZWNrLCBzaW5jZQorICAgICAgICB0aGlzIGZ1bmN0aW9uIHdp
bGwgb25seSBiZSBjYWxsZWQgZm9yIGVsZW1lbnRzIHRoYXQgYXJlIGluIGEgZG9jdW1lbnQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpjYWNoZWREb2N1bWVudElzU3RpbGxMb2Fk
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmZpbmlzaFBh
cnNpbmdDaGlsZHJlbik6IFJlbW92ZWQgdGhlIGNvZGUgdGhhdCBjYWxscworICAgICAgICBidWls
ZFBlbmRpbmdSZXNvdXJjZSBoZXJlLiBTaGFkb3cgdHJlZSB1cGRhdGluZyBpcyBkcml2ZW4gc29s
ZWx5IGJ5IHJlbmRlcmVyCisgICAgICAgIGdlbmVyYXRpb24gbm93LgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVXNlRWxlbWVudDo6dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCk6IFJlcGxhY2VkIHNldENh
Y2hlZERvY3VtZW50CisgICAgICAgIHdpdGggdGhpcy4gVGhpcyBmdW5jdGlvbiBrbm93cyBob3cg
dG8gbG9hZCBhIGRpZmZlcmVudCBkb2N1bWVudCBpZiB0aGUgVVJMCisgICAgICAgIGhhcyBjaGFu
Z2VkLCBvciBsZWF2ZSBpdCBhbG9uZSBpZiBub3QsIGFuZCBhbHNvIHN0b3AgdGhlIGxvYWQgaWYg
aXQgc2hvdWxkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aXNWYWxpZCk6IE1v
dmVkIHRoaXMgaGVyZSBmcm9tIHRoZSBoZWFkZXIsIHNpbmNlIGl0J3MKKyAgICAgICAgYWx3YXlz
IGJlaW5nIGNhbGxlZCB2aXJ0dWFsbHkuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50
OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR1VzZUVsZW1lbnQ6OnNldEhhdmVGaXJlZExvYWRFdmVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aGF2ZUZpcmVkTG9hZEV2ZW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1lcik6IERpdHRvLgor
CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRl
LiBNb3ZlZCB0aGUgYW5pbWF0ZWQgcHJvcGVydGllcworICAgICAgICB0byB0aGUgdG9wIG9mIHRo
ZSBjbGFzcyBiZWNhdXNlIHRoZXkgYXJlIHB1YmxpYyBET00gQVBJIGFuZCBzbyBhcmUgbG9naWNh
bCB0bworICAgICAgICBsaXN0IGZpcnN0LiBJJ2QgbGlrZSB0byBkbyB0aGF0IGZvciBvdGhlciBj
bGFzc2VzIHRvbyBvdmVyIHRpbWUuIENoYW5nZWQgdG8KKyAgICAgICAgZGVyaXZlIHByaXZhdGVs
eSBmcm9tIENhY2hlZFNWR0RvY3VtZW50Q2xpZW50LiBNYWRlIHRoZSBmdW5jdGlvbgorICAgICAg
ICBpbnZhbGlkYXRlRGVwZW5kZW50U2hhZG93VHJlZXMgcHJpdmF0ZS4gUmVtb3ZlZCBkaWROb3Rp
ZnlTdWJ0cmVlSW5zZXJ0aW9ucywKKyAgICAgICAgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUsIGNsZWFy
UmVzb3VyY2VSZWZlcmVuY2VzLCBidWlsZFNoYWRvd1RyZWUsCisgICAgICAgIHRyYW5zZmVyQXR0
cmlidXRlc1RvU2hhZG93VHJlZVJlcGxhY2VtZW50LCBpc1BhcnNlckluc2VydGVkLCBhbmQKKyAg
ICAgICAgbV93YXNJbnNlcnRlZEJ5UGFyc2VyLiBBZGRlZCB1cGRhdGVFeHRlcm5hbERvY3VtZW50
LCBjbG9uZVRhcmdldCwgdGFyZ2V0Q2xvbmUsCisgICAgICAgIHVwZGF0ZVNoYWRvd1RyZWUsIGFu
ZCBjbGVhclNoYWRvd1RyZWUuIEFsc28gZGlkIGEgY291cGxlIG90aGVyIHJlbmFtZXMsCisgICAg
ICAgIGluY2x1ZGluZyByZW5hbWluZyBtX2NhY2hlZERvY3VtZW50IHRvIG1fZXh0ZXJuYWxEb2N1
bWVudC4KKworICAgICAgICAqIHN2Zy9zdmd0YWdzLmluOiBSZW1vdmVkIGNvbnN0cnVjdG9yTmVl
ZHNDcmVhdGVkQnlQYXJzZXIgZnJvbSB0aGUgPHVzZT4KKyAgICAgICAgZWxlbWVudCBzaW5jZSB3
ZSBkb24ndCBoYXZlIHRvIGhhbmRsZSBjb25zdHJ1Y3RpbmcgYnkgdGhlIHBhcnNlciBzcGVjaWFs
bHkuCisKIDIwMTUtMDItMTAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gZG9uJ3QgZ2V0IG91dCBvZiBzeW5jIHdoZW4gaW50ZXJydXB0L3Jl
c3VtZSBjYWxscyBhcmUgbm90IGJhbGFuY2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudENsaWVudC5oCmluZGV4IDljNWExZTJmZDIzNzY4
NWJlMWJiNTAyOTNiOGRkYzAzNzI0MzQ1ODIuLjM2YWVmMjliZTc1ODJhNGJkY2Y4MGZhZDdmMWQ5
Y2JlYjBjNGM2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTVkdEb2N1bWVudENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdEb2N1bWVudENsaWVudC5oCkBAIC0yNyw4ICsyNyw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7Ci0KIGNsYXNzIENhY2hlZFNWR0Rv
Y3VtZW50Q2xpZW50IDogcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5DYWNoZWRTVkdEb2N1bWVudENsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCmluZGV4IDgzNWQ2MjMzOWM4NzhmZjA4NjAxNjU0MTQ2NWFiNjliYjRj
NTBkMTguLmEyMTg4MjY0MDA0OTBmZjQ4ZmNhNDBmNjg3ZWMxMmFmNjk0MDc4YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTgxLDcgKzgxLDYgQEAKICNpbmNsdWRlICJS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogI2luY2x1ZGUg
IlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGJhci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAppbmRleCAwZjBlMWRhYmE0
MmY1OTQ2NWM1MGUwMGViYzkzMzQ5YjU2ZGUyZDE0Li4wMjcwM2QzZGY5NjA2YzhjYmJhZmI5YTVl
ZDUwMDU4NmMyMmZkOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcApAQCAtMjcsNyArMjcsNiBA
QAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1
ZGUgIlNWR1NWR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3Vt
ZW50RXh0ZW5zaW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNp
b25zLmNwcAppbmRleCAzNmRlMzc3YjI3MDM5YmE5YzAxZGI5YTUyN2E5ZTIyOTBiYWUyZGM5Li41
YWZkNzNhOGE4ZjhlZjg2OTJiYzRjMWFhOWQwMDE1Y2FkZTlhOWRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcApAQCAtMzQxLDEzICszNDEsNiBAQCB2
b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVidWlsZEVsZW1lbnRzKCkKIAogdm9pZCBTVkdE
b2N1bWVudEV4dGVuc2lvbnM6OmNsZWFyVGFyZ2V0RGVwZW5kZW5jaWVzKFNWR0VsZW1lbnQmIHJl
ZmVyZW5jZWRFbGVtZW50KQogewotICAgIGlmIChyZWZlcmVuY2VkRWxlbWVudC5pc0luU2hhZG93
VHJlZSgpKSB7Ci0gICAgICAgIC8vIFRoZSBob3N0IGVsZW1lbnQgKGUuZy4gPHVzZT4pIG9mIHRo
ZSBzaGFkb3cgcm9vdCB3aWxsIHJlYnVpbGQgdGhlIHNoYWRvdyB0cmVlCi0gICAgICAgIC8vIGFu
ZCBhbGwgaXRzIHJlZmVyZW5jZXMuCi0gICAgICAgIEFTU0VSVChyZWZlcmVuY2VkRWxlbWVudC5z
aGFkb3dSb290KCkpOwotICAgICAgICBBU1NFUlQobV9yZWJ1aWxkRWxlbWVudHMuY29udGFpbnMo
cmVmZXJlbmNlZEVsZW1lbnQuc2hhZG93Um9vdCgpLT5ob3N0RWxlbWVudCgpKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CiAgICAgYXV0byBpdCA9IG1fZWxlbWVudERlcGVuZGVuY2llcy5maW5k
KCZyZWZlcmVuY2VkRWxlbWVudCk7CiAgICAgaWYgKGl0ID09IG1fZWxlbWVudERlcGVuZGVuY2ll
cy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4
IDhkY2IxMGNhOTRjODdlYjU1Yjk3NTk4Njk0YTVhZWNhNWMyZDE2NTAuLmRjZDJhNjk3MGU3Njc3
YWNiM2Y3MGI2NTU1ODBjZDhlODBhOTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
QEAgLTQ4Miw3ICs0ODIsNiBAQCB2b2lkIFNWR0VsZW1lbnQ6OmN1cnNvckltYWdlVmFsdWVSZW1v
dmVkKCkKIAogU1ZHRWxlbWVudCogU1ZHRWxlbWVudDo6Y29ycmVzcG9uZGluZ0VsZW1lbnQoKSBj
b25zdAogewotICAgIEFTU0VSVCghbV9zdmdSYXJlRGF0YSB8fCAhbV9zdmdSYXJlRGF0YS0+Y29y
cmVzcG9uZGluZ0VsZW1lbnQoKSB8fCBjb3JyZXNwb25kaW5nVXNlRWxlbWVudCgpKTsKICAgICBy
ZXR1cm4gbV9zdmdSYXJlRGF0YSA/IG1fc3ZnUmFyZURhdGEtPmNvcnJlc3BvbmRpbmdFbGVtZW50
KCkgOiBudWxscHRyOwogfQogCkBAIC05NjYsMjYgKzk2NSw2IEBAIFN0cmluZyBTVkdFbGVtZW50
Ojp0aXRsZSgpIGNvbnN0CiAgICAgLy8gdGhlIGRvY3VtZW50LCBub3QgYSB0b29sdGlwKSBzbyB3
ZSBpbnN0YW50bHkgcmV0dXJuLgogICAgIGlmIChpc091dGVybW9zdFNWR1NWR0VsZW1lbnQoKSAm
JiBkb2N1bWVudCgpLnRvcERvY3VtZW50KCkuaXNTVkdEb2N1bWVudCgpKQogICAgICAgICByZXR1
cm4gU3RyaW5nKCk7Ci0KLSAgICAvLyBXYWxrIHVwIHRoZSB0cmVlLCB0byBmaW5kIG91dCB3aGV0
aGVyIHdlJ3JlIGluc2lkZSBhIDx1c2U+IHNoYWRvdyB0cmVlLCB0byBmaW5kIHRoZSByaWdodCB0
aXRsZS4KLSAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICBFbGVtZW50KiBzaGFk
b3dIb3N0RWxlbWVudCA9IGRvd25jYXN0PFNoYWRvd1Jvb3Q+KHRyZWVTY29wZSgpLnJvb3ROb2Rl
KCkpLmhvc3RFbGVtZW50KCk7Ci0gICAgICAgIC8vIEF0IHRoaXMgdGltZSwgU1ZHIG5vZGVzIGFy
ZSBub3QgYWxsb3dlZCBpbiBub24tPHVzZT4gc2hhZG93IHRyZWVzLCBzbyBhbnkgc2hhZG93IHJv
b3Qgd2UgZG8KLSAgICAgICAgLy8gaGF2ZSBzaG91bGQgYmUgYSB1c2UuIFRoZSBhc3NlcnQgYW5k
IGZvbGxvd2luZyB0ZXN0IGlzIGhlcmUgdG8gY2F0Y2ggZnV0dXJlIHNoYWRvdyBET00gY2hhbmdl
cwotICAgICAgICAvLyB0aGF0IGRvIGVuYWJsZSBTVkcgaW4gYSBzaGFkb3cgdHJlZS4KLSAgICAg
ICAgQVNTRVJUKCFzaGFkb3dIb3N0RWxlbWVudCB8fCBzaGFkb3dIb3N0RWxlbWVudC0+aGFzVGFn
TmFtZShTVkdOYW1lczo6dXNlVGFnKSk7Ci0gICAgICAgIGlmIChzaGFkb3dIb3N0RWxlbWVudCAm
JiBzaGFkb3dIb3N0RWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6dXNlVGFnKSkgewotICAg
ICAgICAgICAgU1ZHVXNlRWxlbWVudCYgdXNlRWxlbWVudCA9IGRvd25jYXN0PFNWR1VzZUVsZW1l
bnQ+KCpzaGFkb3dIb3N0RWxlbWVudCk7Ci0KLSAgICAgICAgICAgIC8vIElmIHRoZSA8dXNlPiB0
aXRsZSBpcyBub3QgZW1wdHkgd2UgZm91bmQgdGhlIHRpdGxlIHRvIHVzZS4KLSAgICAgICAgICAg
IFN0cmluZyB1c2VUaXRsZSh1c2VFbGVtZW50LnRpdGxlKCkpOwotICAgICAgICAgICAgaWYgKCF1
c2VUaXRsZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHVzZVRpdGxlOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgLy8gSWYgd2UgYXJlbid0IGFuIGluc3RhbmNlIGluIGEgPHVz
ZT4gb3IgdGhlIDx1c2U+IHRpdGxlIHdhcyBub3QgZm91bmQsIHRoZW4gZmluZCB0aGUgZmlyc3QK
LSAgICAvLyA8dGl0bGU+IGNoaWxkIG9mIHRoaXMgZWxlbWVudC4KICAgICBhdXRvIGZpcnN0VGl0
bGUgPSBjaGlsZHJlbk9mVHlwZTxTVkdUaXRsZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAg
IHJldHVybiBmaXJzdFRpdGxlID8gY29uc3RfY2FzdDxTVkdUaXRsZUVsZW1lbnQqPihmaXJzdFRp
dGxlKS0+aW5uZXJUZXh0KCkgOiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQu
Y3BwCmluZGV4IGJmN2Y5NGJjMmU3NjViNzIzMWRiODlmZDVlY2JmZjIwMDg3NzVkNWUuLmEyMWY5
MjgyYzYxNGE2ZmI3OWE0ZWJmNzBlZGE5ZTJhYWVhM2UzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dF
bGVtZW50LmNwcApAQCAtNDksNiArNDksMTEgQEAgUmVmPFNWR0dFbGVtZW50PiBTVkdHRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2MKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCitSZWY8U1ZHR0VsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQoreworICAgIHJldHVybiBjcmVhdGUoU1ZHTmFtZXM6OmdUYWcsIGRvY3VtZW50KTsKK30K
KwogYm9vbCBTVkdHRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5o
CmluZGV4IGNjMWZjNTVmNjk2YWEzYTE2MDQzMTE5NjdiMWZiYWJiY2Q5ZjQyOTYuLjM1Y2UxMGFm
NTUyZDMzOTY0OTYwMTQ1OTc1NjdmYjIyMDY5MTFkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVu
dC5oCkBAIC0zMSw2ICszMSw3IEBAIGNsYXNzIFNWR0dFbGVtZW50IGZpbmFsIDogcHVibGljIFNW
R0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHR0Vs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPFNWR0dFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBT
VkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCBjOGQzOGQ5ZWI4YWVhZTFiMGU3Njg3Y2UxZTRkOGMz
YmY0ZDhiYjExLi43YmM4YzQyMjFjMDMxOTYwZjFmZTk5NDcwNzk0NWE4Y2YyNjkyZTAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC05OSw2ICs5OSwxMSBAQCBSZWY8U1ZH
U1ZHRWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1NWR0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAorUmVmPFNWR1NWR0VsZW1lbnQ+IFNWR1NWR0VsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGNyZWF0ZShTVkdO
YW1lczo6c3ZnVGFnLCBkb2N1bWVudCk7Cit9CisKIFNWR1NWR0VsZW1lbnQ6On5TVkdTVkdFbGVt
ZW50KCkKIHsKICAgICBpZiAobV92aWV3U3BlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5o
CmluZGV4IDY3YzJlNDVkOGIyNzkzODUyOTBiOTdmYTQxZDM1ZTllYjg0NDc2MzIuLjhmOWFlZDcz
ODE2MTgzNjI4NTBiODExNDJiMjJlMGIzZWZiMDVkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBTVkdTVkdFbGVtZW50IGZpbmFsIDogcHVi
bGljIFNWR0dyYXBoaWNzRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs
aWMgU1ZHWm9vbUFuZFBhbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdTVkdFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJl
ZjxTVkdTVkdFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIFNWR0dyYXBo
aWNzRWxlbWVudDo6cmVmOwogICAgIHVzaW5nIFNWR0dyYXBoaWNzRWxlbWVudDo6ZGVyZWY7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNWYzMjBiN2I1YzA0MmUyNzFmZGEx
YTJlZTYwY2E3MzU0YmY3NDhlNC4uZGZiNTU1NmI0NDZjMWFkMTVmOTQ5NWFjZmZlODEzM2M2ZGQ0
M2YwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjcsMzQgKzI3LDE5
IEBACiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJDYWNoZWRTVkdEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudExp
c3RlbmVyLmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTm9kZVJlbmRlclN0
eWxlLmgiCi0jaW5jbHVkZSAiUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU1ZHRWxlbWVudFJh
cmVEYXRhLmgiCiAjaW5jbHVkZSAiU1ZHR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdMZW5ndGhD
b250ZXh0LmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdTTUlMRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTeW1ib2xFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMu
aCIKLSNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgotI2luY2x1ZGUgIlhNTFNlcmlhbGl6
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0vLyBBbmltYXRlZCBwcm9wZXJ0eSBkZWZpbml0aW9ucwogREVGSU5FX0FOSU1BVEVE
X0xFTkdUSChTVkdVc2VFbGVtZW50LCBTVkdOYW1lczo6eEF0dHIsIFgsIHgpCiBERUZJTkVfQU5J
TUFURURfTEVOR1RIKFNWR1VzZUVsZW1lbnQsIFNWR05hbWVzOjp5QXR0ciwgWSwgeSkKIERFRklO
RV9BTklNQVRFRF9MRU5HVEgoU1ZHVXNlRWxlbWVudCwgU1ZHTmFtZXM6OndpZHRoQXR0ciwgV2lk
dGgsIHdpZHRoKQpAQCAtNzIsMTUgKzU3LDEyIEBAIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMoU1ZHVXNlRWxlbWVudCkKICAgICBSRUdJU1RFUl9QQVJFTlRfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdHcmFwaGljc0VsZW1lbnQpCiBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVS
VElFUwogCi1pbmxpbmUgU1ZHVXNlRWxlbWVudDo6U1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBh
cnNlcikKK2lubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCiAgICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKICAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQog
ICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2FzSW5zZXJ0ZWRCeVBh
cnNlcih3YXNJbnNlcnRlZEJ5UGFyc2VyKQotICAgICwgbV9oYXZlRmlyZWRMb2FkRXZlbnQoZmFs
c2UpCi0gICAgLCBtX25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24oZmFsc2UpCiAgICAgLCBtX3N2
Z0xvYWRFdmVudFRpbWVyKCp0aGlzLCAmU1ZHRWxlbWVudDo6c3ZnTG9hZEV2ZW50VGltZXJGaXJl
ZCkKIHsKICAgICBBU1NFUlQoaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpOwpAQCAt
ODgsNDMgKzcwLDIyIEBAIGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1CiAgICAgcmVnaXN0ZXJBbmlt
YXRlZFByb3BlcnRpZXNGb3JTVkdVc2VFbGVtZW50KCk7CiB9CiAKLVJlZjxTVkdVc2VFbGVtZW50
PiBTVkdVc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpCitSZWY8U1ZHVXNlRWxl
bWVudD4gU1ZHVXNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICAvLyBBbHdheXMgYnVpbGQgYSAjc2hhZG93LXJv
b3QgZm9yIFNWR1VzZUVsZW1lbnQuCi0gICAgUmVmPFNWR1VzZUVsZW1lbnQ+IHVzZSA9IGFkb3B0
UmVmKCpuZXcgU1ZHVXNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgd2FzSW5zZXJ0ZWRCeVBh
cnNlcikpOwotICAgIHVzZS0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwotICAgIHJldHVy
biB1c2U7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVXNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCiBTVkdVc2VFbGVtZW50Ojp+U1ZHVXNlRWxlbWVudCgpCiB7Ci0gICAg
c2V0Q2FjaGVkRG9jdW1lbnQoMCk7Ci0KLSAgICBjbGVhclJlc291cmNlUmVmZXJlbmNlcygpOwot
fQotCi1ib29sIFNWR1VzZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOwotICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgewotICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1
cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7Ci0gICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRl
cyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQo
KS5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQo
KS5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQo
KS5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKKyAgICBpZiAobV9leHRlcm5hbERvY3VtZW50KQorICAgICAgICBtX2V4dGVy
bmFsRG9jdW1lbnQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAogdm9pZCBTVkdVc2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJv
cjsKIAotICAgIGlmICghaXNTdXBwb3J0ZWRBdHRyaWJ1dGUobmFtZSkpCi0gICAgICAgIFNWR0dy
YXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIGVsc2UgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyKQorICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp4QXR0
cikKICAgICAgICAgc2V0WEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2Rl
V2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1l
czo6eUF0dHIpCiAgICAgICAgIHNldFlCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVu
Z3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IpKTsKQEAgLTEzMiw2OCArOTMsMzkgQEAg
dm9pZCBTVkdVc2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcKICAgICAgICAgc2V0V2lkdGhCYXNlVmFsdWUoU1ZHTGVu
Z3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlk
TmVnYXRpdmVMZW5ndGhzKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0
QXR0cikKICAgICAgICAgc2V0SGVpZ2h0QmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExl
bmd0aE1vZGVIZWlnaHQsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMp
KTsKLSAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KQotICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKQotICAgICAgICAgICAgIHx8IFNWR1VSSVJlZmVyZW5jZTo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKSB7Ci0gICAgfSBlbHNlCi0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJy
b3IsIG5hbWUsIHZhbHVlKTsKLX0KIAotI2lmICFBU1NFUlRfRElTQUJMRUQKLXN0YXRpYyBpbmxp
bmUgYm9vbCBpc1dlbGxGb3JtZWREb2N1bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAg
aWYgKGRvY3VtZW50LmlzU1ZHRG9jdW1lbnQoKSB8fCBkb2N1bWVudC5pc1hIVE1MRG9jdW1lbnQo
KSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFhNTERvY3VtZW50UGFyc2VyKj4oZG9jdW1l
bnQucGFyc2VyKCkpLT53ZWxsRm9ybWVkKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
IFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR1VSSVJlZmVy
ZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQotI2VuZGlmCiAKIE5vZGU6Oklu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgU1ZHVXNlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENv
bnRhaW5lck5vZGUmIHJvb3RQYXJlbnQpCiB7CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjppbnNl
cnRlZEludG8ocm9vdFBhcmVudCk7Ci0gICAgaWYgKCFyb290UGFyZW50LmluRG9jdW1lbnQoKSkK
LSAgICAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7Ci0gICAgQVNTRVJUKCFoYXNQZW5kaW5nUmVz
b3VyY2VzKCkgfHwgIWlzV2VsbEZvcm1lZERvY3VtZW50KGRvY3VtZW50KCkpKTsKLSAgICBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjppbnNlcnRlZEludG9Eb2N1bWVudCh0aGlzKTsKLSAg
ICBpZiAoIW1fd2FzSW5zZXJ0ZWRCeVBhcnNlcikKLSAgICAgICAgcmV0dXJuIEluc2VydGlvblNo
b3VsZENhbGxEaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9uczsKKyAgICBpZiAoaW5Eb2N1bWVudCgp
KSB7CisgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6Omluc2VydGVkSW50b0Rv
Y3VtZW50KHRoaXMpOworICAgICAgICBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOworICAgICAgICB1
cGRhdGVFeHRlcm5hbERvY3VtZW50KCk7CisgICAgfQogICAgIHJldHVybiBJbnNlcnRpb25Eb25l
OwogfQogCi12b2lkIFNWR1VzZUVsZW1lbnQ6OmRpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zKENv
bnRhaW5lck5vZGUqKQotewotICAgIGJ1aWxkUGVuZGluZ1Jlc291cmNlKCk7Ci19Ci0KIHZvaWQg
U1ZHVXNlRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgcm9vdFBhcmVudCkKIHsK
ICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnJlbW92ZWRGcm9tKHJvb3RQYXJlbnQpOwotICAgIGlm
IChyb290UGFyZW50LmluRG9jdW1lbnQoKSkKLSAgICAgICAgY2xlYXJSZXNvdXJjZVJlZmVyZW5j
ZXMoKTsKKyAgICBjbGVhclNoYWRvd1RyZWUoKTsKKyAgICB1cGRhdGVFeHRlcm5hbERvY3VtZW50
KCk7CiB9CiAKLURvY3VtZW50KiBTVkdVc2VFbGVtZW50OjpyZWZlcmVuY2VkRG9jdW1lbnQoKSBj
b25zdAoraW5saW5lIERvY3VtZW50KiBTVkdVc2VFbGVtZW50OjpleHRlcm5hbERvY3VtZW50KCkg
Y29uc3QKIHsKLSAgICBpZiAoIWlzRXh0ZXJuYWxVUklSZWZlcmVuY2UoaHJlZigpLCBkb2N1bWVu
dCgpKSkKLSAgICAgICAgcmV0dXJuICZkb2N1bWVudCgpOwotICAgIHJldHVybiBleHRlcm5hbERv
Y3VtZW50KCk7CisgICAgcmV0dXJuIG1fZXh0ZXJuYWxEb2N1bWVudCA/IG1fZXh0ZXJuYWxEb2N1
bWVudC0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7CiB9CiAKLURvY3VtZW50KiBTVkdVc2VFbGVtZW50
OjpleHRlcm5hbERvY3VtZW50KCkgY29uc3QKLXsKLSAgICBpZiAobV9jYWNoZWREb2N1bWVudCAm
JiBtX2NhY2hlZERvY3VtZW50LT5pc0xvYWRlZCgpKSB7Ci0gICAgICAgIC8vIEdyYWNlZnVsbHkg
aGFuZGxlIGVycm9yIGNvbmRpdGlvbi4KLSAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQtPmVy
cm9yT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBBU1NFUlQobV9j
YWNoZWREb2N1bWVudC0+ZG9jdW1lbnQoKSk7Ci0gICAgICAgIHJldHVybiBtX2NhY2hlZERvY3Vt
ZW50LT5kb2N1bWVudCgpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBTVkdVc2VF
bGVtZW50Ojp0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9TaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoU1ZH
RWxlbWVudCYgc2hhZG93RWxlbWVudCkgY29uc3QKK3ZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNm
ZXJTaXplQXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUoU1ZHRWxlbWVudCYgc2hhZG93RWxlbWVudCkg
Y29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhlIGNoZWNrIGZvciB2YWx1ZUluU3BlY2lmaWVkVW5p
dHMgYmVpbmcgbm9uLXplcm8gYmVsb3cgaXMgYSB3b3JrYXJvdW5kIGZvciB0aGUgZmFjdAogICAg
IC8vIHRoYXQgd2UgY3VycmVudGx5IGhhdmUgbm8gZ29vZCB3YXkgdG8gdGVsbCB3aGV0aGVyIGEg
cGFydGljdWxhciBhbmltYXRhYmxlIGF0dHJpYnV0ZSBpcyBhIHZhbHVlCkBAIC0yMTUsMTkgKzE0
NywxNCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1NoYWRv
d1RyZWVUYXJnZXRDbG9uZShTVkdFbGVtZW50JiBzaAogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAg
aWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKLSAgICAgICAgU1ZHR3JhcGhp
Y3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwog
CiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6eUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikgewogICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0
aHNJbmZvcm1hdGlvbigpOwotICAgICAgICBpZiAoU1ZHRWxlbWVudCogc2hhZG93VHJlZVRhcmdl
dENsb25lID0gdGhpcy0+c2hhZG93VHJlZVRhcmdldENsb25lKCkpIHsKLSAgICAgICAgICAgIC8v
IEZJWE1FOiBJdCdzIHVubmVjZXNzYXJpbHkgaW5lZmZpY2llbnQgdG8gZG8gdGhpcyB3b3JrIGFu
eSB0aW1lIHdlIGNoYW5nZSAieCIgb3IgInkiLgorICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikgewog
ICAgICAgICAgICAgLy8gRklYTUU6IEl0J3MgdW5uZWNlc3NhcmlseSBpbmVmZmljaWVudCB0byB1
cGRhdGUgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGVhY2ggdGltZSBlaXRoZXIgaXMgY2hhbmdlZC4K
LSAgICAgICAgICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVUYXJnZXRDbG9u
ZSgqc2hhZG93VHJlZVRhcmdldENsb25lKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiB0YXJnZXRD
bG9uZSA9IHRoaXMtPnRhcmdldENsb25lKCkpCisgICAgICAgICAgICAgICAgdHJhbnNmZXJTaXpl
QXR0cmlidXRlc1RvVGFyZ2V0Q2xvbmUoKnRhcmdldENsb25lKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgUmVu
ZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlv
bigqcmVuZGVyZXIpOwpAQCAtMjM4LDEyMyArMTY1LDk2IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkpIHsKLSAgICAgICAgYm9vbCBpc0V4dGVybmFsUmVmZXJlbmNlID0gaXNFeHRlcm5h
bFVSSVJlZmVyZW5jZShocmVmKCksIGRvY3VtZW50KCkpOwotICAgICAgICBpZiAoaXNFeHRlcm5h
bFJlZmVyZW5jZSkgewotICAgICAgICAgICAgVVJMIHVybCA9IGRvY3VtZW50KCkuY29tcGxldGVV
UkwoaHJlZigpKTsKLSAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkp
IHsKLSAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QodXJsLnN0cmluZygpKSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IodGhpcyk7Ci0gICAgICAgICAgICAgICAgc2V0Q2FjaGVkRG9jdW1lbnQoZG9jdW1lbnQo
KS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc2V0Q2FjaGVkRG9jdW1l
bnQoMCk7Ci0KLSAgICAgICAgaWYgKCFtX3dhc0luc2VydGVkQnlQYXJzZXIpCi0gICAgICAgICAg
ICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotCisgICAgICAgIHVwZGF0ZUV4dGVybmFsRG9jdW1l
bnQoKTsKKyAgICAgICAgaW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
Ci0gICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmlzS25vd25BdHRyaWJ1
dGUoYXR0ck5hbWUpKSB7CisgICAgaWYgKFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyTmFtZSkpIHsKICAgICAgICAgaW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFNWR0dyYXBo
aWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZH
VXNlRWxlbWVudDo6d2lsbEF0dGFjaFJlbmRlcmVycygpCiB7Ci0gICAgaWYgKG1fbmVlZHNTaGFk
b3dUcmVlUmVjcmVhdGlvbikKLSAgICAgICAgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKKyAgICBp
ZiAobV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUpCisgICAgICAgIHVwZGF0ZVNoYWRvd1RyZWUoKTsK
KyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OndpbGxBdHRhY2hSZW5kZXJlcnMoKTsKIH0KIAotc3Rh
dGljIGJvb2wgaXNEaXNhbGxvd2VkRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQorc3Rh
dGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiBjcmVhdGVBbGxvd2VkRWxlbWVudFNldCgpCiB7CiAg
ICAgLy8gU3BlYzogIkFueSAnc3ZnJywgJ3N5bWJvbCcsICdnJywgZ3JhcGhpY3MgZWxlbWVudCBv
ciBvdGhlciAndXNlJyBpcyBwb3RlbnRpYWxseSBhIHRlbXBsYXRlIG9iamVjdCB0aGF0IGNhbiBi
ZSByZS11c2VkCiAgICAgLy8gKGkuZS4sICJpbnN0YW5jZWQiKSBpbiB0aGUgU1ZHIGRvY3VtZW50
IHZpYSBhICd1c2UnIGVsZW1lbnQuIgogICAgIC8vICJHcmFwaGljcyBFbGVtZW50IiBpcyBkZWZp
bmVkIGFzICdjaXJjbGUnLCAnZWxsaXBzZScsICdpbWFnZScsICdsaW5lJywgJ3BhdGgnLCAncG9s
eWdvbicsICdwb2x5bGluZScsICdyZWN0JywgJ3RleHQnCiAgICAgLy8gRXhjbHVkZWQgYXJlIGFu
eXRoaW5nIHRoYXQgaXMgdXNlZCBieSByZWZlcmVuY2Ugb3IgdGhhdCBvbmx5IG1ha2Ugc2Vuc2Ug
dG8gYXBwZWFyIG9uY2UgaW4gYSBkb2N1bWVudC4KKyAgICB1c2luZyBuYW1lc3BhY2UgU1ZHTmFt
ZXM7CisgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IHNldDsKKyAgICBmb3IgKGF1dG8mIHRhZyA6
IHsgYVRhZywgY2lyY2xlVGFnLCBkZXNjVGFnLCBlbGxpcHNlVGFnLCBnVGFnLCBpbWFnZVRhZywg
bGluZVRhZywgbWV0YWRhdGFUYWcsIHBhdGhUYWcsIHBvbHlnb25UYWcsIHBvbHlsaW5lVGFnLCBy
ZWN0VGFnLCBzdmdUYWcsIHN3aXRjaFRhZywgc3ltYm9sVGFnLCB0ZXh0VGFnLCB0ZXh0UGF0aFRh
ZywgdGl0bGVUYWcsIHRyZWZUYWcsIHRzcGFuVGFnLCB1c2VUYWcgfSkKKyAgICAgICAgc2V0LmFk
ZCh0YWcubG9jYWxOYW1lKCkpOworICAgIHJldHVybiBzZXQ7Cit9CiAKLSAgICBpZiAoIWVsZW1l
bnQuaXNTVkdFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiB0cnVlOworc3RhdGljIGlubGluZSBi
b29sIGlzRGlzYWxsb3dlZEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCYgZWxlbWVudCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxBdG9taWNTdHJpbmc+PiBzZXQgPSBjcmVh
dGVBbGxvd2VkRWxlbWVudFNldCgpOworICAgIHJldHVybiAhc2V0LmdldCgpLmNvbnRhaW5zKGVs
ZW1lbnQubG9jYWxOYW1lKCkpOworfQogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4+IGFsbG93ZWRFbGVtZW50VGFnczsKLSAgICBpZiAoYWxsb3dlZEVs
ZW1lbnRUYWdzLmdldCgpLmlzRW1wdHkoKSkgewotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3Mu
Z2V0KCkuYWRkKFNWR05hbWVzOjphVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdl
dCgpLmFkZChTVkdOYW1lczo6Y2lyY2xlVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdz
LmdldCgpLmFkZChTVkdOYW1lczo6ZGVzY1RhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFn
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmVsbGlwc2VUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVu
dFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpnVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRU
YWdzLmdldCgpLmFkZChTVkdOYW1lczo6aW1hZ2VUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVu
dFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpsaW5lVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1l
bnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6bWV0YWRhdGFUYWcpOwotICAgICAgICBhbGxvd2Vk
RWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpwYXRoVGFnKTsKLSAgICAgICAgYWxsb3dl
ZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6cG9seWdvblRhZyk7Ci0gICAgICAgIGFs
bG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnBvbHlsaW5lVGFnKTsKLSAgICAg
ICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6cmVjdFRhZyk7Ci0gICAg
ICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnN2Z1RhZyk7Ci0gICAg
ICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnN3aXRjaFRhZyk7Ci0g
ICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnN5bWJvbFRhZyk7
Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnRleHRUYWcp
OwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0ZXh0UGF0
aFRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnRp
dGxlVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6
dHJlZlRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6
OnRzcGFuVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1l
czo6dXNlVGFnKTsKLSAgICB9Ci0gICAgcmV0dXJuICFhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCku
Y29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGVsZW1lbnQudGFnUU5hbWUoKSk7
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNEaXNhbGxvd2VkRWxlbWVudChjb25zdCBFbGVtZW50JiBl
bGVtZW50KQoreworICAgIHJldHVybiAhZWxlbWVudC5pc1NWR0VsZW1lbnQoKSB8fCBpc0Rpc2Fs
bG93ZWRFbGVtZW50KGRvd25jYXN0PFNWR0VsZW1lbnQ+KGVsZW1lbnQpKTsKIH0KIAotdm9pZCBT
VkdVc2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCit2b2lkIFNWR1VzZUVsZW1l
bnQ6OmNsZWFyU2hhZG93VHJlZSgpCiB7Ci0gICAgLy8gRklYTUU6IEl0J3MgZXhwZW5zaXZlIHRv
IHJlLWNsb25lIHRoZSBlbnRpcmUgdHJlZSBldmVyeSB0aW1lLiBXZSBzaG91bGQgZmluZCBhIG1v
cmUgZWZmaWNpZW50IHdheSB0byBoYW5kbGUgdGhpcy4KLSAgICBpZiAoU2hhZG93Um9vdCogcm9v
dCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKKyAgICBpZiAoYXV0byogcm9vdCA9IHVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKSkKICAgICAgICAgcm9vdC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX25l
ZWRzU2hhZG93VHJlZVJlY3JlYXRpb24gPSBmYWxzZTsKIH0KIAogdm9pZCBTVkdVc2VFbGVtZW50
OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiB7Ci0gICAgaWYgKGlzSW5TaGFkb3dUcmVlKCkpCi0g
ICAgICAgIHJldHVybjsKLSAgICBpZiAoIXJlZmVyZW5jZWREb2N1bWVudCgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgY2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKTsKLSAgICBpZiAoIWluRG9jdW1l
bnQoKSkKKyAgICBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOworfQorCit2b2lkIFNWR1VzZUVsZW1l
bnQ6OnVwZGF0ZVNoYWRvd1RyZWUoKQoreworICAgIG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlID0g
ZmFsc2U7CisKKyAgICAvLyBGSVhNRTogSXQncyBleHBlbnNpdmUgdG8gcmUtY2xvbmUgdGhlIGVu
dGlyZSB0cmVlIGV2ZXJ5IHRpbWUuIFdlIHNob3VsZCBmaW5kIGEgbW9yZSBlZmZpY2llbnQgd2F5
IHRvIGhhbmRsZSB0aGlzLgorICAgIGNsZWFyU2hhZG93VHJlZSgpOworCisgICAgaWYgKGlzSW5T
aGFkb3dUcmVlKCkgfHwgIWluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3Ry
aW5nIGlkOwotICAgIEVsZW1lbnQqIHRhcmdldCA9IFNWR1VSSVJlZmVyZW5jZTo6dGFyZ2V0RWxl
bWVudEZyb21JUklTdHJpbmcoaHJlZigpLCBkb2N1bWVudCgpLCAmaWQsIGV4dGVybmFsRG9jdW1l
bnQoKSk7Ci0gICAgaWYgKCFpc1ZhbGlkVGFyZ2V0KHRhcmdldCkpIHsKLSAgICAgICAgaWYgKGV4
dGVybmFsRG9jdW1lbnQoKSkgewotICAgICAgICAgICAgLy8gV2UgY2FuJ3QgZmluZCB0aGUgdGFy
Z2V0IGluIGFuIGV4dGVybmFsIGRvY3VtZW50LCBzbyBqdXN0IGdpdmUgdXAgYW5kIGRvbid0IHRy
eSB0byBkbyBpdCBhZ2Fpbi4KLSAgICAgICAgICAgIC8vIFdlIHNob3VsZCBub3QgYXR0ZW1wdCB0
byBvYnNlcnZlIGlmIGFuIGVsZW1lbnQgd2l0aCBJRCBzaG93cyB1cCBpbiB0aGUgZXh0ZXJuYWwg
ZG9jdW1lbnQgbGF0ZXIuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAg
cmVmZXJlbmNlZERvY3VtZW50KCktPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRQZW5kaW5nUmVz
b3VyY2UoaWQsIHRoaXMpOworICAgIFN0cmluZyB0YXJnZXRJRDsKKyAgICBTVkdFbGVtZW50KiB0
YXJnZXQgPSBmaW5kVGFyZ2V0KCZ0YXJnZXRJRCk7CisgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAg
ICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkuYWRkUGVuZGluZ1Jlc291cmNlKHRh
cmdldElELCB0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJ1aWxkU2hhZG93
VHJlZShkb3duY2FzdDxTVkdFbGVtZW50PigqdGFyZ2V0KSk7CisgICAgY2xvbmVUYXJnZXQoZW5z
dXJlVXNlckFnZW50U2hhZG93Um9vdCgpLCAqdGFyZ2V0KTsKICAgICBleHBhbmRVc2VFbGVtZW50
c0luU2hhZG93VHJlZSgpOwogICAgIGV4cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlKCk7
Ci0gICAgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENsb25lKCpzaGFk
b3dUcmVlVGFyZ2V0Q2xvbmUoKSk7CiAgICAgdHJhbnNmZXJFdmVudExpc3RlbmVyc1RvU2hhZG93
VHJlZSgpOworCiAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAogICAg
IC8vIFdoZW4gd2UgaW52YWxpZGF0ZSB0aGUgb3RoZXIgc2hhZG93IHRyZWVzLCBpdCdzIGltcG9y
dGFudCB0aGF0IHdlIGRvbid0CiAgICAgLy8gZm9sbG93IGFueSBjeWNsZXMgYW5kIGludmFsaWRh
dGUgb3Vyc2VsdmVzLiBUbyBhdm9pZCB0aGF0LCB3ZSB0ZW1wb3JhcmlseQotICAgIC8vIHNldCBt
X25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24gdG8gdHJ1ZSBzbyBpbnZhbGlkYXRlU2hhZG93VHJl
ZSB3aWxsCisgICAgLy8gc2V0IG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlIHRvIHRydWUgc28gaW52
YWxpZGF0ZVNoYWRvd1RyZWUgd2lsbAogICAgIC8vIHF1aWNrbHkgcmV0dXJuIGFuZCBkbyBub3Ro
aW5nLgotICAgIEFTU0VSVCghbV9uZWVkc1NoYWRvd1RyZWVSZWNyZWF0aW9uKTsKLSAgICBtX25l
ZWRzU2hhZG93VHJlZVJlY3JlYXRpb24gPSB0cnVlOworICAgIEFTU0VSVCghbV9zaGFkb3dUcmVl
TmVlZHNVcGRhdGUpOworICAgIG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlID0gdHJ1ZTsKICAgICBp
bnZhbGlkYXRlRGVwZW5kZW50U2hhZG93VHJlZXMoKTsKLSAgICBtX25lZWRzU2hhZG93VHJlZVJl
Y3JlYXRpb24gPSBmYWxzZTsKKyAgICBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSA9IGZhbHNlOwog
fQogCi1TVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpzaGFkb3dUcmVlVGFyZ2V0Q2xvbmUoKSBj
b25zdAorU1ZHRWxlbWVudCogU1ZHVXNlRWxlbWVudDo6dGFyZ2V0Q2xvbmUoKSBjb25zdAogewog
ICAgIGF1dG8qIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgaWYgKCFyb290KQpA
QCAtMzY5LDQyICsyNjksNDUgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1VzZUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYKIAogc3RhdGljIGJv
b2wgaXNEaXJlY3RSZWZlcmVuY2UoY29uc3QgU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBy
ZXR1cm4gZWxlbWVudC5oYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKQotICAgICAgICB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnJlY3RUYWcpCi0gICAgICAgIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShTVkdOYW1lczo6Y2lyY2xlVGFnKQotICAgICAgICB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmVsbGlwc2VUYWcpCi0gICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShTVkdOYW1lczo6cG9seWdvblRhZykKLSAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKFNW
R05hbWVzOjpwb2x5bGluZVRhZykKLSAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKFNWR05h
bWVzOjp0ZXh0VGFnKTsKKyAgICB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CisgICAgcmV0dXJu
IGVsZW1lbnQuaGFzVGFnTmFtZShjaXJjbGVUYWcpCisgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShlbGxpcHNlVGFnKQorICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocGF0aFRhZykK
KyAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHBvbHlnb25UYWcpCisgICAgICAgIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShwb2x5bGluZVRhZykKKyAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKHJlY3RUYWcpCisgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZXh0VGFnKTsKIH0K
IAogdm9pZCBTVkdVc2VFbGVtZW50Ojp0b0NsaXBQYXRoKFBhdGgmIHBhdGgpCiB7CiAgICAgQVNT
RVJUKHBhdGguaXNFbXB0eSgpKTsKIAotICAgIFNWR0VsZW1lbnQqIGVsZW1lbnQgPSBzaGFkb3dU
cmVlVGFyZ2V0Q2xvbmUoKTsKLSAgICBpZiAoaXM8U1ZHR3JhcGhpY3NFbGVtZW50PihlbGVtZW50
KSkgewotICAgICAgICBpZiAoIWlzRGlyZWN0UmVmZXJlbmNlKCplbGVtZW50KSkgewotICAgICAg
ICAgICAgLy8gU3BlYzogSW5kaXJlY3QgcmVmZXJlbmNlcyBhcmUgYW4gZXJyb3IgKDE0LjMuNSkK
LSAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydEVycm9y
KCJOb3QgYWxsb3dlZCB0byB1c2UgaW5kaXJlY3QgcmVmZXJlbmNlIGluIDxjbGlwLXBhdGg+Iik7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb3duY2FzdDxTVkdHcmFwaGljc0VsZW1l
bnQ+KCplbGVtZW50KS50b0NsaXBQYXRoKHBhdGgpOwotICAgICAgICAgICAgLy8gRklYTUU6IEF2
b2lkIG1hbnVhbCByZXNvbHV0aW9uIG9mIHgveSBoZXJlLiBJdHMgcG90ZW50aWFsbHkgaGFybWZ1
bC4KLSAgICAgICAgICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dCh0aGlzKTsKLSAg
ICAgICAgICAgIHBhdGgudHJhbnNsYXRlKEZsb2F0U2l6ZSh4KCkudmFsdWUobGVuZ3RoQ29udGV4
dCksIHkoKS52YWx1ZShsZW5ndGhDb250ZXh0KSkpOwotICAgICAgICAgICAgcGF0aC50cmFuc2Zv
cm0oYW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpKTsKLSAgICAgICAgfQorICAgIGF1dG8qIHRhcmdl
dENsb25lID0gdGhpcy0+dGFyZ2V0Q2xvbmUoKTsKKyAgICBpZiAoIWlzPFNWR0dyYXBoaWNzRWxl
bWVudD4odGFyZ2V0Q2xvbmUpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWlzRGlyZWN0
UmVmZXJlbmNlKCp0YXJnZXRDbG9uZSkpIHsKKyAgICAgICAgLy8gU3BlYzogSW5kaXJlY3QgcmVm
ZXJlbmNlcyBhcmUgYW4gZXJyb3IgKDE0LjMuNSkKKyAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NT
VkdFeHRlbnNpb25zKCkucmVwb3J0RXJyb3IoQVNDSUlMaXRlcmFsKCJOb3QgYWxsb3dlZCB0byB1
c2UgaW5kaXJlY3QgcmVmZXJlbmNlIGluIDxjbGlwLXBhdGg+IikpOworICAgICAgICByZXR1cm47
CiAgICAgfQorCisgICAgZG93bmNhc3Q8U1ZHR3JhcGhpY3NFbGVtZW50PigqdGFyZ2V0Q2xvbmUp
LnRvQ2xpcFBhdGgocGF0aCk7CisgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KHRo
aXMpOworICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGRvIHRoaXMgd2l0aG91dCBtYW51YWwg
cmVzb2x1dGlvbiBvZiB4L3kgaGVyZS4gSXQncyBwb3RlbnRpYWxseSBpbmNvcnJlY3QuCisgICAg
cGF0aC50cmFuc2xhdGUoRmxvYXRTaXplKHgoKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgeSgpLnZh
bHVlKGxlbmd0aENvbnRleHQpKSk7CisgICAgcGF0aC50cmFuc2Zvcm0oYW5pbWF0ZWRMb2NhbFRy
YW5zZm9ybSgpKTsKIH0KIAogUmVuZGVyRWxlbWVudCogU1ZHVXNlRWxlbWVudDo6cmVuZGVyZXJD
bGlwQ2hpbGQoKSBjb25zdAogewotICAgIGF1dG8qIGVsZW1lbnQgPSBzaGFkb3dUcmVlVGFyZ2V0
Q2xvbmUoKTsKLSAgICBpZiAoIWVsZW1lbnQpCisgICAgYXV0byogdGFyZ2V0Q2xvbmUgPSB0aGlz
LT50YXJnZXRDbG9uZSgpOworICAgIGlmICghdGFyZ2V0Q2xvbmUpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGlmICghaXNEaXJlY3RSZWZlcmVuY2UoKmVsZW1lbnQpKQorICAgIGlmICgh
aXNEaXJlY3RSZWZlcmVuY2UoKnRhcmdldENsb25lKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgcmV0dXJuIHRhcmdldENsb25l
LT5yZW5kZXJlcigpOwogfQogCiBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNG
cm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQpAQCAtNDE5LDggKzMyMiw3IEBAIHN0YXRp
YyB2b2lkIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1
YnRyZWUpCiAKICAgICBWZWN0b3I8RWxlbWVudCo+IGRpc2FsbG93ZWRFbGVtZW50czsKICAgICBh
dXRvIGRlc2NlbmRhbnRzID0gZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oc3VidHJlZSk7Ci0g
ICAgYXV0byBlbmQgPSBkZXNjZW5kYW50cy5lbmQoKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBkZXNj
ZW5kYW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICkgeworICAgIGZvciAoYXV0byBpdCA9IGRlc2Nl
bmRhbnRzLmJlZ2luKCksIGVuZCA9IGRlc2NlbmRhbnRzLmVuZCgpOyBpdCAhPSBlbmQ7ICkgewog
ICAgICAgICBpZiAoaXNEaXNhbGxvd2VkRWxlbWVudCgqaXQpKSB7CiAgICAgICAgICAgICBkaXNh
bGxvd2VkRWxlbWVudHMuYXBwZW5kKCYqaXQpOwogICAgICAgICAgICAgaXQudHJhdmVyc2VOZXh0
U2tpcHBpbmdDaGlsZHJlbigpOwpAQCAtNDY2LDkxICszNjgsOTYgQEAgc3RhdGljIHZvaWQgYXNz
b2NpYXRlUmVwbGFjZW1lbnRDbG9uZXNXaXRoT3JpZ2luYWxzKFNWR0VsZW1lbnQmIHJlcGxhY2Vt
ZW50Q2xvbmUKICAgICAgICAgYXNzb2NpYXRlUmVwbGFjZW1lbnRDbG9uZVdpdGhPcmlnaW5hbChw
YWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6YnVpbGRT
aGFkb3dUcmVlKFNWR0VsZW1lbnQmIHRhcmdldCkKK1NWR0VsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6
OmZpbmRUYXJnZXQoU3RyaW5nKiB0YXJnZXRJRCkgY29uc3QKIHsKLSAgICBSZWY8U1ZHRWxlbWVu
dD4gY2xvbmVkVGFyZ2V0ID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQu
Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVsbCgpOwot
ICAgIGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5hbHMoY2xvbmVkVGFyZ2V0LmdldCgpLCB0YXJn
ZXQpOwotICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKGNsb25lZFRhcmdl
dC5nZXQoKSk7Ci0gICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVuZENoaWxkKFdU
Rjo6bW92ZShjbG9uZWRUYXJnZXQpKTsKKyAgICBTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxl
bWVudCA9IHRoaXMtPmNvcnJlc3BvbmRpbmdFbGVtZW50KCk7CisgICAgY29uc3QgU1ZHVXNlRWxl
bWVudCYgb3JpZ2luYWwgPSBjb3JyZXNwb25kaW5nRWxlbWVudCA/IGRvd25jYXN0PFNWR1VzZUVs
ZW1lbnQ+KCpjb3JyZXNwb25kaW5nRWxlbWVudCkgOiAqdGhpczsKKworICAgIEVsZW1lbnQqIHRh
cmdldENhbmRpZGF0ZSA9IHRhcmdldEVsZW1lbnRGcm9tSVJJU3RyaW5nKG9yaWdpbmFsLmhyZWYo
KSwgb3JpZ2luYWwuZG9jdW1lbnQoKSwgdGFyZ2V0SUQsIG9yaWdpbmFsLmV4dGVybmFsRG9jdW1l
bnQoKSk7CisgICAgaWYgKHRhcmdldElEICYmICF0YXJnZXRJRC0+aXNOdWxsKCkpIHsKKyAgICAg
ICAgLy8gSWYgdGhlIHJlZmVyZW5jZSBpcyBleHRlcm5hbCwgZG9uJ3QgcmV0dXJuIHRoZSB0YXJn
ZXQgSUQgdG8gdGhlIGNhbGxlci4KKyAgICAgICAgLy8gVGhlIGNhbGxlciB3b3VsZCB1c2UgdGhl
IHRhcmdldCBJRCB0byB3YWl0IGZvciBhIHBlbmRpbmcgcmVzb3VyY2Ugb24gdGhlIHdyb25nIGRv
Y3VtZW50LgorICAgICAgICAvLyBJZiB3ZSBldmVyIHdhbnQgdGhlIGNoYW5nZSB0aGF0IGFuZCBs
ZXQgdGhlIGNhbGxlciB0byB3YWl0IG9uIHRoZSBleHRlcm5hbCBkb2N1bWVudCwKKyAgICAgICAg
Ly8gd2Ugc2hvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIHNvIGl0IHJldHVybnMgdGhlIGFwcHJv
cHJpYXRlIGRvY3VtZW50IHRvIGdvIHdpdGggdGhlIElELgorICAgICAgICBpZiAoaXNFeHRlcm5h
bFVSSVJlZmVyZW5jZShvcmlnaW5hbC5ocmVmKCksIG9yaWdpbmFsLmRvY3VtZW50KCkpKQorICAg
ICAgICAgICAgKnRhcmdldElEID0gU3RyaW5nKCk7CisgICAgfQorICAgIGlmICghaXM8U1ZHRWxl
bWVudD4odGFyZ2V0Q2FuZGlkYXRlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgU1ZH
RWxlbWVudCYgdGFyZ2V0ID0gZG93bmNhc3Q8U1ZHRWxlbWVudD4oKnRhcmdldENhbmRpZGF0ZSk7
CisKKyAgICBpZiAoIXRhcmdldC5pbkRvY3VtZW50KCkgfHwgaXNEaXNhbGxvd2VkRWxlbWVudCh0
YXJnZXQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIC8vIFJlamVjdCBhbnkgdGFy
Z2V0IHRoYXQgaGFzIGFscmVhZHkgYmVlbiBjbG9uZWQgdG8gY3JlYXRlIG9uZSBvZiB0aGUgYW5j
ZXN0b3JzIG9mIHRoaXMgZWxlbWVudCwKKyAgICAvLyBhbHJlYWR5IGluIHRoZSBzaGFkb3cgdHJl
ZS4gVGhpcyBpcyBzdWZmaWNpZW50IHRvIHByZXZlbnQgY3ljbGVzLgorICAgIGlmIChjb3JyZXNw
b25kaW5nRWxlbWVudCkgeworICAgICAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogbGluZWFnZU9m
VHlwZTxTVkdFbGVtZW50PigqdGhpcykpIHsKKyAgICAgICAgICAgIGlmIChhbmNlc3Rvci5jb3Jy
ZXNwb25kaW5nRWxlbWVudCgpID09ICZ0YXJnZXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gJnRhcmdldDsKIH0KIAotYm9v
bCBTVkdVc2VFbGVtZW50Ojppc1ZhbGlkVGFyZ2V0KEVsZW1lbnQqIHRhcmdldCkgY29uc3QKK3Zv
aWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBT
VkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgaWYgKCFpczxTVkdFbGVtZW50Pih0YXJn
ZXQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF0YXJnZXQtPmluRG9jdW1lbnQo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFNWR0VsZW1lbnQmIGNhc3RlZFRhcmdldCA9
IGRvd25jYXN0PFNWR0VsZW1lbnQ+KCp0YXJnZXQpOwotICAgIGlmICgmY2FzdGVkVGFyZ2V0ID09
IHRoaXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoaXNEaXNhbGxvd2VkRWxlbWVu
dChjYXN0ZWRUYXJnZXQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gUmVqZWN0IGFu
eSB0YXJnZXQgdGhhdCB3b3VsZCBjcmVhdGUgYSBjeWNsZS4KLSAgICBmb3IgKGF1dG8mIGFuY2Vz
dG9yIDogbGluZWFnZU9mVHlwZTxTVkdFbGVtZW50PigqdGhpcykpIHsKLSAgICAgICAgaWYgKGFu
Y2VzdG9yLmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgPT0gJmNhc3RlZFRhcmdldCkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisgICAgUmVmPFNWR0Vs
ZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0YXJn
ZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVsbCgp
OworICAgIGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5hbHModGFyZ2V0Q2xvbmUuZ2V0KCksIHRh
cmdldCk7CisgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUodGFyZ2V0Q2xv
bmUuZ2V0KCkpOworICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1RhcmdldENsb25lKHRhcmdl
dENsb25lLmdldCgpKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRhcmdl
dENsb25lKSk7CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kVXNlRWxlbWVudHNJblNo
YWRvd1RyZWUoKQorc3RhdGljIHZvaWQgY2xvbmVEYXRhQW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYg
cmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2luYWxDbG9uZSkKIHsKLSAgICAvLyBG
SVhNRTogQ29tYmluZSB0aGlzIHdpdGggYnVpbGRTaGFkb3dUcmVlLgorICAgIC8vIFRoaXMgYXNz
ZXJ0aW9uIGNoZWNrcyB0aGF0IHdlIGRvbid0IGNhbGwgdGhpcyB3aXRoIHRoZSBhcmd1bWVudHMg
YmFja3dhcmRzLgorICAgIC8vIFRoZSByZXBsYWNlbWVudCBjbG9uZSBpcyBuZXcgYW5kIHNvIGl0
J3Mgbm90IGluc3RhbGxlZCBpbiBhIHBhcmVudCB5ZXQuCisgICAgQVNTRVJUKCFyZXBsYWNlbWVu
dENsb25lLnBhcmVudE5vZGUoKSk7CiAKLSAgICBpZiAoY2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9h
ZGluZygpKQotICAgICAgICByZXR1cm47CisgICAgcmVwbGFjZW1lbnRDbG9uZS5jbG9uZURhdGFG
cm9tRWxlbWVudChvcmlnaW5hbENsb25lKTsKKyAgICBvcmlnaW5hbENsb25lLmNsb25lQ2hpbGRO
b2RlcygmcmVwbGFjZW1lbnRDbG9uZSk7CisgICAgYXNzb2NpYXRlUmVwbGFjZW1lbnRDbG9uZXNX
aXRoT3JpZ2luYWxzKHJlcGxhY2VtZW50Q2xvbmUsIG9yaWdpbmFsQ2xvbmUpOworICAgIHJlbW92
ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHJlcGxhY2VtZW50Q2xvbmUpOworfQogCit2
b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QK
K3sKICAgICBhdXRvIGRlc2NlbmRhbnRzID0gZGVzY2VuZGFudHNPZlR5cGU8U1ZHVXNlRWxlbWVu
dD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7Ci0gICAgYXV0byBlbmQgPSBkZXNjZW5kYW50cy5l
bmQoKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBkZXNjZW5kYW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7
ICkgewotICAgICAgICBSZWY8U1ZHVXNlRWxlbWVudD4gb3JpZ2luYWwgPSAqaXQ7CisgICAgZm9y
IChhdXRvIGl0ID0gZGVzY2VuZGFudHMuYmVnaW4oKSwgZW5kID0gZGVzY2VuZGFudHMuZW5kKCk7
IGl0ICE9IGVuZDsgKSB7CisgICAgICAgIFNWR1VzZUVsZW1lbnQmIG9yaWdpbmFsQ2xvbmUgPSAq
aXQ7CiAgICAgICAgIGl0ID0gZW5kOyAvLyBFZmZpY2llbnRseSBxdWlldHMgYXNzZXJ0aW9ucyBk
dWUgdG8gdGhlIG91dHN0YW5kaW5nIGl0ZXJhdG9yLgogCi0gICAgICAgIGlmIChvcmlnaW5hbC0+
Y2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9hZGluZygpKQotICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBTVkdFbGVtZW50KiB0YXJnZXQgPSBvcmlnaW5hbENsb25lLmZpbmRUYXJnZXQoKTsKIAog
ICAgICAgICAvLyBTcGVjOiBJbiB0aGUgZ2VuZXJhdGVkIGNvbnRlbnQsIHRoZSAndXNlJyB3aWxs
IGJlIHJlcGxhY2VkIGJ5ICdnJywgd2hlcmUgYWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUKICAgICAg
ICAgLy8gJ3VzZScgZWxlbWVudCBleGNlcHQgZm9yIHgsIHksIHdpZHRoLCBoZWlnaHQgYW5kIHhs
aW5rOmhyZWYgYXJlIHRyYW5zZmVycmVkIHRvIHRoZSBnZW5lcmF0ZWQgJ2cnIGVsZW1lbnQuCiAK
LSAgICAgICAgLy8gRklYTUU6IElzIGl0IHJpZ2h0IHRvIHVzZSByZWZlcmVuY2VkRG9jdW1lbnQo
KSBoZXJlIGluc3RlYWQgb2YganVzdCBkb2N1bWVudCgpPwotICAgICAgICAvLyBDYW4gYSBzaGFk
b3cgdHJlZSB3aXRoaW4gdGhpcyBkb2N1bWVudCByZWFsbHkgY29udGFpbiBlbGVtZW50cyB0aGF0
IGFyZSBpbiBhCi0gICAgICAgIC8vIGRpZmZlcmVudCBkb2N1bWVudD8KLSAgICAgICAgQVNTRVJU
KHJlZmVyZW5jZWREb2N1bWVudCgpKTsKLSAgICAgICAgYXV0byByZXBsYWNlbWVudCA9IFNWR0dF
bGVtZW50OjpjcmVhdGUoU1ZHTmFtZXM6OmdUYWcsICpyZWZlcmVuY2VkRG9jdW1lbnQoKSk7Ci0g
ICAgICAgIG9yaWdpbmFsLT50cmFuc2ZlckF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVSZXBsYWNlbWVu
dChyZXBsYWNlbWVudC5nZXQoKSk7Ci0gICAgICAgIG9yaWdpbmFsLT5jbG9uZUNoaWxkTm9kZXMo
cmVwbGFjZW1lbnQucHRyKCkpOwotICAgICAgICBhc3NvY2lhdGVSZXBsYWNlbWVudENsb25lc1dp
dGhPcmlnaW5hbHMocmVwbGFjZW1lbnQuZ2V0KCksIG9yaWdpbmFsLmdldCgpKTsKLQotICAgICAg
ICBSZWZQdHI8U1ZHRWxlbWVudD4gY2xvbmVkVGFyZ2V0OwotICAgICAgICBFbGVtZW50KiB0YXJn
ZXRDYW5kaWRhdGUgPSBTVkdVUklSZWZlcmVuY2U6OnRhcmdldEVsZW1lbnRGcm9tSVJJU3RyaW5n
KG9yaWdpbmFsLT5ocmVmKCksICpyZWZlcmVuY2VkRG9jdW1lbnQoKSk7Ci0gICAgICAgIGlmIChv
cmlnaW5hbC0+aXNWYWxpZFRhcmdldCh0YXJnZXRDYW5kaWRhdGUpKSB7Ci0gICAgICAgICAgICBT
VkdFbGVtZW50JiBvcmlnaW5hbFRhcmdldCA9IGRvd25jYXN0PFNWR0VsZW1lbnQ+KCp0YXJnZXRD
YW5kaWRhdGUpOwotICAgICAgICAgICAgY2xvbmVkVGFyZ2V0ID0gc3RhdGljX3BvaW50ZXJfY2Fz
dDxTVkdFbGVtZW50PihvcmlnaW5hbFRhcmdldC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9j
dW1lbnQoKSkpOwotICAgICAgICAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscygqY2xv
bmVkVGFyZ2V0LCBvcmlnaW5hbFRhcmdldCk7Ci0gICAgICAgICAgICByZXBsYWNlbWVudC0+YXBw
ZW5kQ2hpbGQoY2xvbmVkVGFyZ2V0KTsKLSAgICAgICAgfQorICAgICAgICBhdXRvIHJlcGxhY2Vt
ZW50Q2xvbmUgPSBTVkdHRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICBjbG9u
ZURhdGFBbmRDaGlsZHJlbihyZXBsYWNlbWVudENsb25lLmdldCgpLCBvcmlnaW5hbENsb25lKTsK
IAotICAgICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBsYWNlbWVu
dC5nZXQoKSk7CisgICAgICAgIHJlcGxhY2VtZW50Q2xvbmUtPnJlbW92ZUF0dHJpYnV0ZShTVkdO
YW1lczo6eEF0dHIpOworICAgICAgICByZXBsYWNlbWVudENsb25lLT5yZW1vdmVBdHRyaWJ1dGUo
U1ZHTmFtZXM6OnlBdHRyKTsKKyAgICAgICAgcmVwbGFjZW1lbnRDbG9uZS0+cmVtb3ZlQXR0cmli
dXRlKFNWR05hbWVzOjp3aWR0aEF0dHIpOworICAgICAgICByZXBsYWNlbWVudENsb25lLT5yZW1v
dmVBdHRyaWJ1dGUoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOworICAgICAgICByZXBsYWNlbWVudENs
b25lLT5yZW1vdmVBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogCi0gICAgICAgIC8v
IFJlcGxhY2UgPHVzZT4gd2l0aCB0aGUgPGc+IGVsZW1lbnQgd2UgY3JlYXRlZC4KLSAgICAgICAg
b3JpZ2luYWwtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50LnB0cigpLCBv
cmlnaW5hbC5wdHIoKSk7CisgICAgICAgIGlmICh0YXJnZXQpCisgICAgICAgICAgICBvcmlnaW5h
bENsb25lLmNsb25lVGFyZ2V0KHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksICp0YXJnZXQpOwogCi0g
ICAgICAgIC8vIENhbGwgdHJhbnNmZXJTaXplQXR0cmlidXRlc1RvU2hhZG93VHJlZVRhcmdldENs
b25lIGFmdGVyIHB1dHRpbmcgdGhlIGNsb25lZCBlbGVtZW50cyBpbnRvIHRoZQotICAgICAgICAv
LyBzaGFkb3cgdHJlZSBzbyBpdCBjYW4gdXNlIFNWR0VsZW1lbnQ6OmNvcnJlc3BvbmRpbmdFbGVt
ZW50IHdpdGhvdXQgdHJpZ2dlcmluZyBhbiBhc3NlcnRpb24uCi0gICAgICAgIGlmIChjbG9uZWRU
YXJnZXQpCi0gICAgICAgICAgICBvcmlnaW5hbC0+dHJhbnNmZXJTaXplQXR0cmlidXRlc1RvU2hh
ZG93VHJlZVRhcmdldENsb25lKCpjbG9uZWRUYXJnZXQpOworICAgICAgICBvcmlnaW5hbENsb25l
LnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUucHRyKCksICZvcmln
aW5hbENsb25lKTsKIAotICAgICAgICAvLyBDb250aW51ZSBpdGVyYXRpbmcgZnJvbSB0aGUgPGc+
IGVsZW1lbnQgc2luY2UgdGhlIDx1c2U+IGVsZW1lbnQgd2FzIHJlcGxhY2VkLgotICAgICAgICBp
dCA9IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnQuZ2V0KCkpOworICAgICAgICAvLyBSZXN1
bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVwbGFjZW1lbnQgY2xvbmUu
CisgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudENsb25lLmdldCgpKTsK
ICAgICB9CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJblNo
YWRvd1RyZWUoKQordm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50c0luU2hh
ZG93VHJlZSgpIGNvbnN0CiB7CiAgICAgYXV0byBkZXNjZW5kYW50cyA9IGRlc2NlbmRhbnRzT2ZU
eXBlPFNWR1N5bWJvbEVsZW1lbnQ+KCp1c2VyQWdlbnRTaGFkb3dSb290KCkpOwotICAgIGF1dG8g
ZW5kID0gZGVzY2VuZGFudHMuZW5kKCk7Ci0gICAgZm9yIChhdXRvIGl0ID0gZGVzY2VuZGFudHMu
YmVnaW4oKTsgaXQgIT0gZW5kOyApIHsKLSAgICAgICAgU1ZHU3ltYm9sRWxlbWVudCYgb3JpZ2lu
YWwgPSAqaXQ7CisgICAgZm9yIChhdXRvIGl0ID0gZGVzY2VuZGFudHMuYmVnaW4oKSwgZW5kID0g
ZGVzY2VuZGFudHMuZW5kKCk7IGl0ICE9IGVuZDsgKSB7CisgICAgICAgIFNWR1N5bWJvbEVsZW1l
bnQmIG9yaWdpbmFsQ2xvbmUgPSAqaXQ7CiAgICAgICAgIGl0ID0gZW5kOyAvLyBFZmZpY2llbnRs
eSBxdWlldHMgYXNzZXJ0aW9ucyBkdWUgdG8gdGhlIG91dHN0YW5kaW5nIGl0ZXJhdG9yLgogCiAg
ICAgICAgIC8vIFNwZWM6IFRoZSByZWZlcmVuY2VkICdzeW1ib2wnIGFuZCBpdHMgY29udGVudHMg
YXJlIGRlZXAtY2xvbmVkIGludG8gdGhlIGdlbmVyYXRlZCB0cmVlLApAQCAtNTYwLDMwICs0Njcs
MTkgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50c0luU2hhZG93VHJl
ZSgpCiAgICAgICAgIC8vIHRoZSBnZW5lcmF0ZWQgJ3N2ZycuIElmIGF0dHJpYnV0ZXMgd2lkdGgg
YW5kL29yIGhlaWdodCBhcmUgbm90IHNwZWNpZmllZCwgdGhlIGdlbmVyYXRlZAogICAgICAgICAv
LyAnc3ZnJyBlbGVtZW50IHdpbGwgdXNlIHZhbHVlcyBvZiAxMDAlIGZvciB0aGVzZSBhdHRyaWJ1
dGVzLgogCi0gICAgICAgIC8vIEZJWE1FOiBJcyBpdCByaWdodCB0byB1c2UgcmVmZXJlbmNlZERv
Y3VtZW50KCkgaGVyZSBpbnN0ZWFkIG9mIGp1c3QgZG9jdW1lbnQoKT8KLSAgICAgICAgLy8gQ2Fu
IGEgc2hhZG93IHRyZWUgd2l0aGluIHRoaXMgZG9jdW1lbnQgcmVhbGx5IGNvbnRhaW4gZWxlbWVu
dHMgdGhhdCBhcmUgaW4gYQotICAgICAgICAvLyBkaWZmZXJlbnQgZG9jdW1lbnQ/Ci0gICAgICAg
IEFTU0VSVChyZWZlcmVuY2VkRG9jdW1lbnQoKSk7Ci0gICAgICAgIGF1dG8gcmVwbGFjZW1lbnQg
PSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoU1ZHTmFtZXM6OnN2Z1RhZywgKnJlZmVyZW5jZWREb2N1
bWVudCgpKTsKLSAgICAgICAgcmVwbGFjZW1lbnQtPmNsb25lRGF0YUZyb21FbGVtZW50KG9yaWdp
bmFsKTsKLSAgICAgICAgb3JpZ2luYWwuY2xvbmVDaGlsZE5vZGVzKHJlcGxhY2VtZW50LnB0cigp
KTsKLSAgICAgICAgYXNzb2NpYXRlUmVwbGFjZW1lbnRDbG9uZXNXaXRoT3JpZ2luYWxzKHJlcGxh
Y2VtZW50LmdldCgpLCBvcmlnaW5hbCk7Ci0KLSAgICAgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1l
bnRzRnJvbVN1YnRyZWUocmVwbGFjZW1lbnQuZ2V0KCkpOworICAgICAgICBhdXRvIHJlcGxhY2Vt
ZW50Q2xvbmUgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgIGNs
b25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUp
OwogCi0gICAgICAgIC8vIFJlcGxhY2UgPHN5bWJvbD4gd2l0aCB0aGUgPHN2Zz4gZWxlbWVudCB3
ZSBjcmVhdGVkLgotICAgICAgICBvcmlnaW5hbC5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChy
ZXBsYWNlbWVudC5wdHIoKSwgJm9yaWdpbmFsKTsKKyAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJl
bnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0cigpLCAmb3JpZ2luYWxD
bG9uZSk7CiAKLSAgICAgICAgLy8gQ29udGludWUgaXRlcmF0aW5nIGZyb20gdGhlIDxzdmc+IGVs
ZW1lbnQgc2luY2UgdGhlIDxzeW1ib2w+IGVsZW1lbnQgd2FzIHJlcGxhY2VkLgotICAgICAgICBp
dCA9IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnQuZ2V0KCkpOworICAgICAgICAvLyBSZXN1
bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVwbGFjZW1lbnQgY2xvbmUu
CisgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudENsb25lLmdldCgpKTsK
ICAgICB9CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJFdmVudExpc3RlbmVyc1Rv
U2hhZG93VHJlZSgpCit2b2lkIFNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyRXZlbnRMaXN0ZW5lcnNU
b1NoYWRvd1RyZWUoKSBjb25zdAogewotICAgIEFTU0VSVCh1c2VyQWdlbnRTaGFkb3dSb290KCkp
OwogICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPFNWR0VsZW1l
bnQ+KCp1c2VyQWdlbnRTaGFkb3dSb290KCkpKSB7Ci0gICAgICAgIEFTU0VSVChkZXNjZW5kYW50
LmNvcnJlc3BvbmRpbmdFbGVtZW50KCkpOwogICAgICAgICBpZiAoRXZlbnRUYXJnZXREYXRhKiBk
YXRhID0gZGVzY2VuZGFudC5jb3JyZXNwb25kaW5nRWxlbWVudCgpLT5ldmVudFRhcmdldERhdGEo
KSkKICAgICAgICAgICAgIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuY29weUV2ZW50TGlzdGVuZXJz
Tm90Q3JlYXRlZEZyb21NYXJrdXBUb1RhcmdldCgmZGVzY2VuZGFudCk7CiAgICAgfQpAQCAtNTkx
LDkgKzQ4Nyw5IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJFdmVudExpc3RlbmVyc1Rv
U2hhZG93VHJlZSgpCiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6aW52YWxpZGF0ZVNoYWRvd1RyZWUo
KQogewotICAgIGlmIChtX25lZWRzU2hhZG93VHJlZVJlY3JlYXRpb24pCisgICAgaWYgKG1fc2hh
ZG93VHJlZU5lZWRzVXBkYXRlKQogICAgICAgICByZXR1cm47Ci0gICAgbV9uZWVkc1NoYWRvd1Ry
ZWVSZWNyZWF0aW9uID0gdHJ1ZTsKKyAgICBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSA9IHRydWU7
CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhSZWNvbnN0cnVjdFJlbmRlclRyZWUpOwogICAgIGlu
dmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpOwogfQpAQCAtNjAxLDM4ICs0OTcsMjIgQEAg
dm9pZCBTVkdVc2VFbGVtZW50OjppbnZhbGlkYXRlU2hhZG93VHJlZSgpCiB2b2lkIFNWR1VzZUVs
ZW1lbnQ6OmludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpCiB7CiAgICAgZm9yIChhdXRv
KiBpbnN0YW5jZSA6IGluc3RhbmNlcygpKSB7Ci0gICAgICAgIGlmIChTVkdVc2VFbGVtZW50KiBl
bGVtZW50ID0gaW5zdGFuY2UtPmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KCkpIHsKLSAgICAgICAg
ICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOworICAgICAgICBpZiAoU1ZHVXNlRWxl
bWVudCogZWxlbWVudCA9IGluc3RhbmNlLT5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCgpKQogICAg
ICAgICAgICAgZWxlbWVudC0+aW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKLSAgICAgICAgfQogICAg
IH0KIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlckF0dHJpYnV0ZXNUb1NoYWRvd1Ry
ZWVSZXBsYWNlbWVudChTVkdHRWxlbWVudCYgcmVwbGFjZW1lbnQpIGNvbnN0Ci17Ci0gICAgcmVw
bGFjZW1lbnQuY2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotCi0gICAgcmVwbGFjZW1lbnQu
cmVtb3ZlQXR0cmlidXRlKFNWR05hbWVzOjp4QXR0cik7Ci0gICAgcmVwbGFjZW1lbnQucmVtb3Zl
QXR0cmlidXRlKFNWR05hbWVzOjp5QXR0cik7Ci0gICAgcmVwbGFjZW1lbnQucmVtb3ZlQXR0cmli
dXRlKFNWR05hbWVzOjp3aWR0aEF0dHIpOwotICAgIHJlcGxhY2VtZW50LnJlbW92ZUF0dHJpYnV0
ZShTVkdOYW1lczo6aGVpZ2h0QXR0cik7Ci0gICAgcmVwbGFjZW1lbnQucmVtb3ZlQXR0cmlidXRl
KFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKLX0KLQogYm9vbCBTVkdVc2VFbGVtZW50OjpzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKIHsKICAgICBpZiAoeCgpLmlzUmVsYXRpdmUoKSB8fCB5
KCkuaXNSZWxhdGl2ZSgpIHx8IHdpZHRoKCkuaXNSZWxhdGl2ZSgpIHx8IGhlaWdodCgpLmlzUmVs
YXRpdmUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvKiB0YXJnZXQgPSBzaGFk
b3dUcmVlVGFyZ2V0Q2xvbmUoKTsKLSAgICByZXR1cm4gdGFyZ2V0ICYmIHRhcmdldC0+aGFzUmVs
YXRpdmVMZW5ndGhzKCk7CisgICAgYXV0byogdGFyZ2V0Q2xvbmUgPSB0aGlzLT50YXJnZXRDbG9u
ZSgpOworICAgIHJldHVybiB0YXJnZXRDbG9uZSAmJiB0YXJnZXRDbG9uZS0+aGFzUmVsYXRpdmVM
ZW5ndGhzKCk7CiB9CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlKQogewotICAgIGlmICghaW5Eb2N1bWVudCgpKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOwogICAgIGlmIChyZXNvdXJjZS0+
ZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwpAQCAtNjQwLDM3ICs1MjAsNjYg
QEAgdm9pZCBTVkdVc2VFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpCiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9h
ZEV2ZW50KHRoaXMpOwogfQogCi1ib29sIFNWR1VzZUVsZW1lbnQ6OmNhY2hlZERvY3VtZW50SXNT
dGlsbExvYWRpbmcoKQotewotICAgIGlmIChtX2NhY2hlZERvY3VtZW50ICYmIG1fY2FjaGVkRG9j
dW1lbnQtPmlzTG9hZGluZygpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIHZvaWQgU1ZHVXNlRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsK
ICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwogICAgIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwotICAg
IGlmIChtX3dhc0luc2VydGVkQnlQYXJzZXIpIHsKLSAgICAgICAgYnVpbGRQZW5kaW5nUmVzb3Vy
Y2UoKTsKLSAgICAgICAgbV93YXNJbnNlcnRlZEJ5UGFyc2VyID0gZmFsc2U7Ci0gICAgfQogfQog
Ci12b2lkIFNWR1VzZUVsZW1lbnQ6OnNldENhY2hlZERvY3VtZW50KENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNWR0RvY3VtZW50PiBjYWNoZWREb2N1bWVudCkKK3ZvaWQgU1ZHVXNlRWxlbWVu
dDo6dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCgpCiB7Ci0gICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQg
PT0gY2FjaGVkRG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKKyAgICBVUkwgZXh0ZXJuYWxEb2N1
bWVudFVSTDsKKyAgICBpZiAoaW5Eb2N1bWVudCgpICYmIGlzRXh0ZXJuYWxVUklSZWZlcmVuY2Uo
aHJlZigpLCBkb2N1bWVudCgpKSkgeworICAgICAgICBleHRlcm5hbERvY3VtZW50VVJMID0gZG9j
dW1lbnQoKS5jb21wbGV0ZVVSTChocmVmKCkpOworICAgICAgICBpZiAoIWV4dGVybmFsRG9jdW1l
bnRVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBleHRlcm5hbERvY3Vt
ZW50VVJMID0gVVJMKCk7CisgICAgfQogCi0gICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQpCi0gICAg
ICAgIG1fY2FjaGVkRG9jdW1lbnQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICBpZiAoZXh0ZXJu
YWxEb2N1bWVudFVSTCA9PSAobV9leHRlcm5hbERvY3VtZW50ID8gbV9leHRlcm5hbERvY3VtZW50
LT51cmwoKSA6IFVSTCgpKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jYWNoZWREb2N1bWVu
dCA9IGNhY2hlZERvY3VtZW50OwotICAgIGlmIChtX2NhY2hlZERvY3VtZW50KSB7Ci0gICAgICAg
IC8vIFdlIGRvbid0IG5lZWQgdGhlIFNWRyBkb2N1bWVudCB0byBjcmVhdGUgYSBuZXcgZnJhbWUg
YmVjYXVzZSB0aGUgbmV3IGRvY3VtZW50IGJlbG9uZ3MgdG8gdGhlIHBhcmVudCBVc2VFbGVtZW50
LgotICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5zZXRTaG91bGRDcmVhdGVGcmFtZUZvckRvY3Vt
ZW50KGZhbHNlKTsKLSAgICAgICAgbV9jYWNoZWREb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOwor
ICAgIGlmIChtX2V4dGVybmFsRG9jdW1lbnQpCisgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+
cmVtb3ZlQ2xpZW50KHRoaXMpOworCisgICAgaWYgKGV4dGVybmFsRG9jdW1lbnRVUkwuaXNOdWxs
KCkpCisgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudCA9IG51bGxwdHI7CisgICAgZWxzZSB7Cisg
ICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgUmVzb3VyY2VSZXF1ZXN0IHsg
ZXh0ZXJuYWxEb2N1bWVudFVSTCB9IH07CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRo
aXMpOworICAgICAgICBtX2V4dGVybmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291
cmNlTG9hZGVyKCkucmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOworICAgICAgICBpZiAobV9l
eHRlcm5hbERvY3VtZW50KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSXMgaXQgcmVhbGx5IE9L
IGZvciB1cyB0byBzZXQgdGhpcyB0byBmYWxzZSBmb3IgYSBkb2N1bWVudCB0aGF0IG1pZ2h0IGJl
IHNoYXJlZCBieSBhbm90aGVyIGNsaWVudD8KKyAgICAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVu
dC0+c2V0U2hvdWxkQ3JlYXRlRnJhbWVGb3JEb2N1bWVudChmYWxzZSk7IC8vIE5vIGZyYW1lIG5l
ZWRlZCwgd2UganVzdCB3YW50IHRoZSBlbGVtZW50cy4KKyAgICAgICAgICAgIG1fZXh0ZXJuYWxE
b2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICB9CiAgICAgfQorCisgICAgaW52YWxp
ZGF0ZVNoYWRvd1RyZWUoKTsKK30KKworYm9vbCBTVkdVc2VFbGVtZW50Ojppc1ZhbGlkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsKK30KKworYm9vbCBTVkdVc2VF
bGVtZW50OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKQoreworICAgIHJldHVybiBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKTsK
K30KKwordm9pZCBTVkdVc2VFbGVtZW50OjpzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCBoYXZl
RmlyZWRMb2FkRXZlbnQpCit7CisgICAgbV9oYXZlRmlyZWRMb2FkRXZlbnQgPSBoYXZlRmlyZWRM
b2FkRXZlbnQ7Cit9CisKK2Jvb2wgU1ZHVXNlRWxlbWVudDo6aGF2ZUZpcmVkTG9hZEV2ZW50KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXZlRmlyZWRMb2FkRXZlbnQ7Cit9CisKK1RpbWVyKiBT
VkdVc2VFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1lcigpCit7CisgICAgcmV0dXJuICZtX3N2Z0xv
YWRFdmVudFRpbWVyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCAz
ODM0MDNhOTE1NTlhZjBhYThiNmJhYmVlMDI1MjA2YWM3ODJmOWFkLi40NzczOTIzYzU4YjFiMmVj
YjM3ZjFjYzllY2E1ODM2NGQ4NjQ1NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgK
QEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1
ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGlj
c0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVy
ZW5jZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNiw4MiArMzUsNjUgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBTVkdHRWxlbWVu
dDsKIAotY2xhc3MgU1ZHVXNlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1l
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJl
ZmVyZW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgQ2FjaGVkU1ZHRG9j
dW1lbnRDbGllbnQgeworY2xhc3MgU1ZHVXNlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdHcmFw
aGljc0VsZW1lbnQsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBwdWJsaWMg
U1ZHVVJJUmVmZXJlbmNlLCBwcml2YXRlIENhY2hlZFNWR0RvY3VtZW50Q2xpZW50IHsKKworICAg
IEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdVc2VFbGVtZW50KQorICAgICAg
ICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChYLCB4KQorICAgICAgICBERUNMQVJFX0FOSU1BVEVE
X0xFTkdUSChZLCB5KQorICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChXaWR0aCwgd2lk
dGgpCisgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKEhlaWdodCwgaGVpZ2h0KQorICAg
ICAgICBERUNMQVJFX0FOSU1BVEVEX1NUUklORyhIcmVmLCBocmVmKQorICAgICAgICBERUNMQVJF
X0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCkKKyAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCisKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1VzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOworICAgIHN0YXRp
YyBSZWY8U1ZHVXNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgflNWR1VzZUVsZW1lbnQoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0
ZVNoYWRvd1RyZWUoKTsKLSAgICB2b2lkIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygp
OwogCiAgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXJDbGlwQ2hpbGQoKSBjb25zdDsKIAotcHJv
dGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBkaWROb3RpZnlTdWJ0cmVlSW5zZXJ0aW9ucyhDb250
YWluZXJOb2RlKikgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgU1ZHVXNlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwot
Ci0gICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTVkdU
ZXN0czo6aXNWYWxpZCgpOyB9CisgICAgU1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYnVpbGRQZW5kaW5n
UmVzb3VyY2UoKSBvdmVycmlkZTsKLQotICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwotCiAgICAgdmlydHVhbCB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsK
LQogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB0b0Ns
aXBQYXRoKFBhdGgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGF2ZUxvYWRlZFJlcXVp
cmVkUmVzb3VyY2VzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdD
aGlsZHJlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5n
dGhzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEhhdmVGaXJlZExvYWRF
dmVudChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBUaW1lciogc3ZnTG9hZEV2ZW50VGltZXIo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3Vy
Y2UqKSBvdmVycmlkZTsKIAotICAgIHZvaWQgY2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKTsKKyAg
ICBEb2N1bWVudCogZXh0ZXJuYWxEb2N1bWVudCgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlRXh0
ZXJuYWxEb2N1bWVudCgpOwogCi0gICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJl
c291cmNlcygpIG92ZXJyaWRlIHsgcmV0dXJuIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6
OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpOyB9CisgICAgU1ZHRWxlbWVudCogZmluZFRh
cmdldChTdHJpbmcqIHRhcmdldElEID0gbnVsbHB0cikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNsb25lVGFy
Z2V0KENvbnRhaW5lck5vZGUmLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0OworICAgIFNWR0Vs
ZW1lbnQqIHRhcmdldENsb25lKCkgY29uc3Q7CiAKLSAgICAvLyBTaGFkb3cgdHJlZSBoYW5kbGlu
Zy4KLSAgICB2b2lkIGJ1aWxkU2hhZG93VHJlZShTVkdFbGVtZW50JiB0YXJnZXQpOwotICAgIHZv
aWQgZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKTsKLSAgICB2b2lkIGV4cGFuZFN5bWJv
bEVsZW1lbnRzSW5TaGFkb3dUcmVlKCk7Ci0gICAgU1ZHRWxlbWVudCogc2hhZG93VHJlZVRhcmdl
dENsb25lKCkgY29uc3Q7Ci0gICAgdm9pZCB0cmFuc2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dU
cmVlKCk7Ci0gICAgdm9pZCB0cmFuc2ZlckF0dHJpYnV0ZXNUb1NoYWRvd1RyZWVSZXBsYWNlbWVu
dChTVkdHRWxlbWVudCYpIGNvbnN0OwotICAgIHZvaWQgdHJhbnNmZXJTaXplQXR0cmlidXRlc1Rv
U2hhZG93VHJlZVRhcmdldENsb25lKFNWR0VsZW1lbnQmKSBjb25zdDsKLSAgICBib29sIGlzVmFs
aWRUYXJnZXQoRWxlbWVudCopIGNvbnN0OworICAgIHZvaWQgdXBkYXRlU2hhZG93VHJlZSgpOwor
ICAgIHZvaWQgZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdDsKKyAgICB2b2lk
IGV4cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3Q7CisgICAgdm9pZCB0cmFu
c2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKCkgY29uc3Q7CisgICAgdm9pZCB0cmFuc2Zl
clNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZShTVkdFbGVtZW50JikgY29uc3Q7CiAKLSAgICBC
RUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVXNlRWxlbWVudCkKLSAgICAgICAg
REVDTEFSRV9BTklNQVRFRF9MRU5HVEgoWCwgeCkKLSAgICAgICAgREVDTEFSRV9BTklNQVRFRF9M
RU5HVEgoWSwgeSkKLSAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoV2lkdGgsIHdpZHRo
KQotICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChIZWlnaHQsIGhlaWdodCkKLSAgICAg
ICAgREVDTEFSRV9BTklNQVRFRF9TVFJJTkcoSHJlZiwgaHJlZikKLSAgICAgICAgREVDTEFSRV9B
TklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQpCi0gICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUworICAgIHZv
aWQgY2xlYXJTaGFkb3dUcmVlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRGVwZW5kZW50U2hhZG93
VHJlZXMoKTsKIAotICAgIGJvb2wgY2FjaGVkRG9jdW1lbnRJc1N0aWxsTG9hZGluZygpOwotICAg
IERvY3VtZW50KiBleHRlcm5hbERvY3VtZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7Ci0gICAgRG9jdW1lbnQqIHJl
ZmVyZW5jZWREb2N1bWVudCgpIGNvbnN0OwotICAgIHZvaWQgc2V0Q2FjaGVkRG9jdW1lbnQoQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+KTsKLQotICAgIC8vIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SGF2ZUZpcmVkTG9hZEV2
ZW50KGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50KSBvdmVycmlkZSB7IG1faGF2ZUZpcmVkTG9hZEV2
ZW50ID0gaGF2ZUZpcmVkTG9hZEV2ZW50OyB9Ci0gICAgdmlydHVhbCBib29sIGlzUGFyc2VySW5z
ZXJ0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dhc0luc2VydGVkQnlQYXJzZXI7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9oYXZlRmlyZWRMb2FkRXZlbnQ7IH0KLSAgICB2aXJ0dWFsIFRpbWVyKiBzdmdMb2Fk
RXZlbnRUaW1lcigpIG92ZXJyaWRlIHsgcmV0dXJuICZtX3N2Z0xvYWRFdmVudFRpbWVyOyB9Ci0K
LSAgICBib29sIG1fd2FzSW5zZXJ0ZWRCeVBhcnNlcjsKLSAgICBib29sIG1faGF2ZUZpcmVkTG9h
ZEV2ZW50OwotICAgIGJvb2wgbV9uZWVkc1NoYWRvd1RyZWVSZWNyZWF0aW9uOwotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBtX2NhY2hlZERvY3VtZW50OworICAg
IGJvb2wgbV9oYXZlRmlyZWRMb2FkRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaGFkb3dU
cmVlTmVlZHNVcGRhdGUgeyB0cnVlIH07CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U1ZHRG9jdW1lbnQ+IG1fZXh0ZXJuYWxEb2N1bWVudDsKICAgICBUaW1lciBtX3N2Z0xvYWRFdmVu
dFRpbWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvc3ZndGFncy5pbgppbmRleCBlZmE1ZjUwOTg5ODBjZTMxMmY4
ODQ2MTEyMzQ2ZTdlY2UyMGY1NTJlLi42YzNjMDRkODZjMDdhMzAzNDUxNTlkMjZlMzc3YjMyODNl
NGQyMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvc3ZndGFncy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvc3ZndGFncy5pbgpAQCAtOTEsNyArOTEsNyBAQCB0ZXh0UGF0aAog
dGl0bGUKIHRyZWYgaW50ZXJmYWNlTmFtZT1TVkdUUmVmRWxlbWVudAogdHNwYW4gaW50ZXJmYWNl
TmFtZT1TVkdUU3BhbkVsZW1lbnQKLXVzZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2Vy
Cit1c2UKIHZpZXcKICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCiB2a2VybiBpbnRlcmZhY2VOYW1lPVNW
R1ZLZXJuRWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0OTJmOWJjNmQ0ODRlMGMxNDM4YmQwMDEyMjk2YWE5ZGI4
NDBkODAuLmViNTY3Yzg5MmQ0ZThkZWUyOWFiZDVmNjgxYTJiNzM4M2MzOThiNmQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNyBAQAorMjAxNS0wMi0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CisKKyAgICAgICAgU1ZHVXNlRWxlbWVudCBmb2xsb3ctdXAgaW1wcm92ZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEzODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmllZCBzb21lIHRl
c3RzIHRvIGJlIHJlZmVyZW5jZSB0ZXN0cyBzaW5jZSB0aGUgY2hhbmdlIGluIGltcGxlbWVudGF0
aW9uIHNsaWdodGx5IGNoYW5nZWQKKyAgICAgICAgdGhlIGJlaGF2aW9yLCBidXQgbm90IGluIGEg
d2F5IHRoYXQgbWF0dGVycy4gT3RoZXIgc2ltaWxhciB1cGRhdGVzLgorCisgICAgICAgICogVGVz
dEV4cGVjdGF0aW9uczogRXhwZWN0IGEgcHJvZ3Jlc3Npb24gaW4gaW1wb3J0ZWQvbW96aWxsYS9z
dmcvZHluYW1pYy11c2UtMDIuc3ZnLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0
b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3Rl
ZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcmVsYXRp
dmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5
bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vaW9zLXNpbS1kZXByZWNhdGVkL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93
LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRv
dy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy1tb3VudGFpbmxpb24vc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1z
aGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJl
ZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50
LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVk
LnBuZzogUmVtb3ZlZC4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdp
ZHRoLWFuZC1oZWlnaHQtZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHRvIGV4cGVjdCB0aGUgbmV3IGV4
cHJlc3Npb24KKyAgICAgICAgbmFtZSBmcm9tIHRoZSBtb2RpZmllZCB0ZXN0LgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRoLWFuZC1oZWlnaHQuaHRtbDogVEhlIHN0
YXRlIG9mIHRoZSBzaGFkb3cgcm9vdCBub3cgZGVwZW5kcyBvbgorICAgICAgICBsYXlvdXQsIHNv
IGZvcmNlIGxheW91dCBiZWZvcmUgaW5zcGVjdGluZyBpdC4KKworICAgICAgICAqIHN2Zy9jdXN0
b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3Rl
ZC54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFk
b3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sOiBNYWRlIHRoaXMgbm8gbG9uZ2VyIGJl
IGEKKyAgICAgICAgcmVwYWludCB0ZXN0LiBOb3Qgc3VyZSB3aHkgd2UgYXJlIHVzaW5nIHRob3Nl
IGluIHNvIG1hbnkgY2FzZXMuIEFsc28gbWFkZSBpdCBiZSBhIHJlZmVyZW5jZSB0ZXN0LgorCisg
ICAgICAgICogc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4
cGVjdGVkLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3lu
Y2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKwogMjAxNS0wMi0xMCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBk
b24ndCBnZXQgb3V0IG9mIHN5bmMgd2hlbiBpbnRlcnJ1cHQvcmVzdW1lIGNhbGxzIGFyZSBub3Qg
YmFsYW5jZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNkMzA1ZmZiNTUwY2FlODA5ZTUxZGIzZDUx
ZjczOGZhOThiM2M3NzMuLmM4MzFjMDMzODg4ZmRmOGQ1MWU2MzY0ZTM3MTE1ZDFkNzhjNDRiYjEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzk5LDcgKzM5OSw2IEBAIHdlYmtpdC5vcmcvYi8xMzkx
NTUgaW1wb3J0ZWQvbW96aWxsYS9zdmcvZHluYW1pYy10ZXh0UGF0aC0wMi5zdmcgWyBJbWFnZU9u
bHlGYWlsCiB3ZWJraXQub3JnL2IvMTM5MTU1IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMt
dGV4dFBhdGgtMDMuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM5MTU1
IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtcGF0dGVybi0wMS5zdmcgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzkxNTUgaW1wb3J0ZWQvbW96aWxsYS9zdmcvZHluYW1p
Yy11c2UtMDEuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTM5MTU1IGlt
cG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtdXNlLTAyLnN2ZyBbIEltYWdlT25seUZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzEzOTE1NSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9keW5hbWljLXVzZS0w
My5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzkxNTUgaW1wb3J0ZWQv
bW96aWxsYS9zdmcvZHluYW1pYy11c2UtMDcuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMTM5MTgzIGltcG9ydGVkL21vemlsbGEvc3ZnL3RleHQvcHNldWRvLWZpcnN0LWxl
dHRlci5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQt
d2l0aC1zeW1ib2wtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9j
dXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNDBjMDdhZmFlNzcxYzU1
NTczNDI5ZWFkNDNlODQ4MzUzN2FiODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwg
MTM0OTIKemNtZUh1ZG88TWgrcVFPRj9UMjAzWkhGVDRVNkNBMVdreyU5TilhV0ReR0txY2hIKTZv
c2x6VG1nZGAra04wTV82Cno2SndZdUlZZ25IIyRneHthdkZ2KCUkUnhaWTUoNUN2KShgN2NkZDc9
WFlGcm00YXY7K15TTTl3ZWNqaH0tUVNgdgp6U2YxRztBdWt+JkNiczNRKihxeD12NW1pcGlUejt6
KCt9X3k4RUtoKUBNVjluc2VTTzNZZ2UhTTFjbXNDQXIyazcKemRpYiElSz84JSE5KjZaV0FKRndj
OTZvYTd2YnpXMyVIQE9iYkBSWmg1cVEla2NrP3IrI0R0PGhmN1J3RGlpIU91CnpjSnxaPm8zSk9k
Z1cpNztNIUpxKiVKZEl+N2s5Kk4/JHo3a21abCUtK3c+Ky1jTTs9eXM5N1dObXtAeGBoMGdQMwp6
Nk1rNTEkJXkoalpTTnpPOCtXIXtHdV9fTD1xWTk/QURKQkpxKDBrb2tIY0Z9KFcpK0olVWRrISVx
LTM/SzhJaE0KeiU+Nn03P0RKa2FkeXwtMGpzSzZEVm1Ec0BLWVohbjtSZ0VxYGBnK3FVQXx3dm5A
VylpM0pPazZQRW5fX049cHhSCno+RTZERnAxPDI1WGAhMDlXeV9XbXZPRFY4WjIjUX15YDRAaWV5
UUV2LUQ9VHN5OV4kaiVXPWdkeDw2Zj4jX1h7cgp6Pz05PF9YPXlwOW5zXyQxdm1xdVRSWHBJdUM4
biNLSypDTnleU0xMbl5+enJ7RHx5M1A/U0MhXylYRXRtQEA1fGgKejQ7KHZvT2l4ZUdfTUVoN3BZ
UVY4KHpLNntQcCh4YWsrT3cyWGFTZHtySUhCfCZvWn1uYmQyRTZlOyVZX1NAXn0pCnozekNAYDhP
Ql8kP0JTVlZCTnUwOXtRVTVuK25jM3xvaGZCPWNtNnpiQFppQSUyVk9GWVoyYUc7cztVYVU8KGVF
aAp6YSllQUtEP1lRbWFePWROSiR2PzlXaVkySldJVU1KM3d2eXorR1ZSdiZDTXl4JVJrUHtqTCVY
X1lpO2EpSyExX3EKekFvZih4XiFePlhjTV9kbW1ZWUFrKEZLeiFRVEY4dC1+R3whJDVZZU8zZCto
Pnh0Kj04dHR1IUt8MXFIKlN3YnR6Cnp7VjZnczY1P3VeWC1wWFprUDcjKXUoRT5oKlM8Ni1QNmtK
fnlOYFVFPj9+PSs9QWtQLWZCc0NQKFFhJTBwNGp+NAp6U2goJj85bU07QCtwUjtMdVVAX1NiKVYm
fm0kbjs+Mnk1YGB4cE9vZyttJlZTfEU/ez1EOXZKJXo3SzB+a25ydjYKenIqO3p8LXBrOSYzakgk
fm03PFUqTDlWVz9DQ20tZ1I8ZWpaOUU7fSlwKTdWPmtYekR+OUtNaVNSamJXVSVJNmJPCnpqQk17
SGUjUCk/ajt9VUFAYlNGbSojY05PciU/Z24mKWxKO3Epajk9R2lHcUtoQH5WVyYpJS1DVkF1d2lw
NGpYYAp6QVB9RDU7fXMyaVNTO1pLI30kKj1uVkFfalRXTmwjKjxBMUYoWntXeEl3K2JtVFU/cFF7
bWY+d2U9ajFHTlM1XlgKenJ9UkJTb30mMmFBYG49KDZOKjB+X2w2IUs/bDRSVm5tQiN0alBrTHRg
TjI4aiVDSUBeS2F4e1lEcXA+dDVgMkRICnpraSZlYkdeSVQrdWNwUkpjfWEyUVRzUF5HKXhZUGo8
ZEs9NWdBIzhEU1laIWhocjsmPiNePVk9Jl9sSmo2KCVKfQp6OUtDPCNGYDl8RCVgViQ4eX1yV0lT
elh6NENoa2p7eTZXflEzV1g5QzczSERaKlYmbSEmMlYjZmNsWSNzVVI9enMKenlDYj1Adj9Pa0JA
OFk3VXElXzIyYGcoZzsyWWp5VT9YfkJ4eiVnVz5pTUtwfHslVSFqVEoqQFFGPVVtWXAjcE5LCnp4
M3stUm5kQlU+KUwyKG4qVldhdndpYT5hJHwhODhXQVluWlEmWmxtaVB4YFArYVdKTTFyXzcjdExi
bWVRSFVgVgp6VTY2JlByR2ExR0NBNzcqQl99N1ZNTCo5S1UwNXZFRCZ5RXIoIWl0QylGPjs9K3ww
fXxsSGdkbjw7dTVqJnBJYyQKemYxMFQjP28/N0BQZmE8eHhAeX54YzY0K3duYT03LVEmVXN3bUc+
cG1mLXhBM3gzQFBJaT1jKCg5LW96THVRakhWCnpjfWxEWVRpJkJCKmxGalJlYCFhQ24yUEtDaWB2
KVVVcm5WZFU+OU5NMHxOdT9uSWBSPzx4dXtWT0syNkFlYU1mQwp6eCU4by1wPm5WRyMlfXY3Jjk7
aFZ6Mm9EYUIkQllQQGlZSmY8UWpYZjtTS19Vc0h+YHZIdk4+YT1Me2VTUjJhdFQKek5PVj89b0RO
YTJJKVNGR2RmdCZGTlE1PzQtNXpWS3Q9Zj43bV5lSz4mNT8oOXI9K0M3eDhAbEpgQWtsMVktfC1M
CnpKM0JraU1tQDNsTHdrRXV3e2BKWWdFIWloYShQUmM8aF5fTT5Yb2spZVpNR2x1a3Q/YlRDe35+
JmBmV3NrPjctUwp6NTtwZDJuI3wmUlZeUj1nVmZ8KVEhRSR4dWtjPFVTTHFwPlQreC1aO1VwKHAz
WHF9fC1GUUhoaE0qRjwyKkhUTlMKenpzbHo3RlVDJVZiO2g8I0Q0Oz85KSNCcGZAZkR4eipST3wk
ekpnUXU7fipAZjFiKEw0eVMlJiUyelRlczlscll1Cnp7JHQxUzBgIXhPPkc2LSEocn15K1EtfkxZ
cSV7cE9ZQkVGIyR9SzY7NXhuR2dta3tBLTZOSmVDR3B1enNjNk41dwp6JGpBdXg0bj1xLVVUSitB
QzlKTmgrUj5CKFg/NjRGTz5XbXJ4Kj1Be0M/WihFVXhqMzdpZFYqbGd2YztoaVRrWU4Kejw+aj9x
WXhFNWFSdlk5e3IhR0VoX0U9azZeQjx9U3BZQURvXlgzZz8/MVNeXyM0OSZOQTNLWEM4M3ZBPXZh
KUojCnpZOzBWZFh3TyFRMDRNfk0xa2Y0JF5lR1ZEdlJPKiQpV3Q0MUM8WCV5ZXtGN1Z1Q0Fed3B7
LTV6NmdnZCNFYGxIdwp6N2VrSE1zMykyMmpiYCpSbktme0A9eFU3UXs+cm0rQEphQlZMdGJyPSpi
azJseFF4flhOak9zSjk0KkY2ZXh1Q30KejQmRH1OIUB0JGooKnFrfClyMUVAd2tNZTNtJTVROHs7
MENEMzkqSnVLN3Y1M000SXB+MkwrV2c2P31IU1ZkaHM+CnpSXz1xT0tfMlJ8JEpqPHs+SyFgTjMx
IXNWJU48S1c1bSgxaklMaFgtTCMwPW1KaVdabyUmSmN2OW84dDZpSFFsbAp6d2w+YGY8SyMyfHJe
RHJqUURrSzE/cn5WPWFrJUQ5Nj1YODNSN1ZnOGAjZ0grUCFORk5oPlkhUTgyJUdoK08qazIKekh8
WlI/cVQpK18mU3srWS19JHg2Z3ZmNzxSZ2pkRjRFJkl1bkYtaCpvJVExQik4Ny0hWVFpfFh3Unc8
YktpRmJwCnpQZD04Qlk9SkJ6UzVgN1Fyc1orU1czIUIyS3xnakRlPyteNmB8SCFHcEhibTxDMk55
KiV6R0d+Wj5hPiY8XilNagp6UiNxYX07YlJISm9tbXhfP2RCcmh1I01GREtBbWZmYENgVjdIJUxO
VjNaYnAzOT0tNm8jWH1jZSEpZVNoUGwzanoKelloPEtvYFV5JlV2Py1wPjg9UW1PX3x9cjcwaVlx
aSZ3Y2JZYWlsKEtlMCtSYE1XVndwMSY8K1o3UTs/TXIte1pnCnopU0A/UytCQ0EwUWRCaGlBQHh3
OGwxeyo2TS1FYHteWEM5XiNvUGt4cXZANzgpXyM2fCU3a3k5OykmbX5BXlgzbAp6NVkxTilQPUxw
IyZiX0x2Z3RBNmFGZ2VpciheYCUzLTEkSyl0Sk9tbiZYdSQ+aCpkVm1LV2c8SEo8e2tqeC1qLVcK
ek1GJG1FM0dqWDlYbkxFNkY0Uk1fTV9FfHhEcVZKZTxeMmF+aHRwYkBtekhXKmhIIXo0an5fb2lf
cHsjPyQjJiQmCnp7YEZXaTw/YX5iZEVMSnpZK05vaiVLQHxuQTA2IUpTeCVxQlBaVSlTTVUyS0de
YmlPWlZQejA4NmdLKSslN29lOQp6QDk2QlR4emd4KGBhdEQhTHFrSilkT0NDOFJWQHxkYH08Pj92
SStfY2Emc3FtRVRRMV8+KD5obDcpcVVhamBkdjQKenFOVGFISVUwP3dAcDdwTkpJSDllZC1wRDZK
UU9vVkx3I3VIQ3x4Y2RONz5aSFVgKkpob1haKjZTJDxxZyhJai1uCno5YDkhZDVMSmA2NSoqZHhu
dWhlWnpkaUU8RzxWTDRUVmVtUHpQYFJQI3t6RFVVeylXdzBwbjloRnIzaCNkdkRBLQp6bmY3O3JD
PmxqbmMkZkgweTRaTzNtKmxNRGBwSnZrUllGPFBaa3pQYThpbG59eGxZYU9oWFk8UXchT0kkWWlY
XlgKemxBO1dPMitidjA4U2w0OG87Y3wxPVZ5QkhBKVJWXlFKVkMkSElNJXxmM1h7SkBlI31LZEZM
Y3hpQ1ZPKnRTbz5UCnpCJHU2P1U2JElwOUJYbH1BOVloZEt1I3pOPHxFLXFwb3VnTXRVPTAlTilP
PTc+V015UXJtdmlQO1J8I2pmZUwhOAp6JT9rUmZ3emhWMFFJVkZXclpqM2RxcFFvTl8tcW5PfElu
ZkdeNzYhKDM0ailfXzYkWDNXbWFFYnYqT31DRFNsZ2YKenlCdlBlRVZvbGRyPkNIJWFwYiVfe2th
RFo7KUQkaW1INlpBWXp6NWktTCVneG1iYCk7cmhkYFo8emx6b3NmI3Y5CnpxI1ZNS3tmRCRFV0Va
KW5iWlhmRmdeQ3YoSlJ6LXkjUER7TWclTz9ZP1YrY1FOJDh8bnhLY3hCRTl2WEFmTn1BIwp6QD4/
cDt0bjtlIVJGYXJHN3NuYjJMP1NKQE1ROEVgKilpdCE7Z1p3anhnUmJ7eUhve3lFXmp4RWBFX1Z5
V1RkNX4KejErYiR6YW9Aem1ndEBCJUVxQikwZUI7KlpjNysjfiQ9fEF6aHFgclZRKyFER1U4dX1E
YkstOTRuIyFyNEdvNWYrCnpnUE1LITBDcm49R3A7fWxMeE97Q1RzPCNjeTJNJEB5NTteYVI/QFZN
Ykd2djx7QFVYKG54bXMqT1QkT1ZBdHJnNAp6Yj9QU2ktWT5iSV5uV3taQCFPbHQlM3Jxbzd2fCtu
PTk7V2VCMmsycChaKlFaM1kpT2R5aVpGQEU3dmp8PktoVmcKenBYSE1zJUY2TWl4XiVPPlpKOHp9
Mk16PjRFa21kfDlMXmpgJFpJSXpqVmNSIWhsWXFpX0FuYCVRaGNxdTVzZzwrCnowbE5DZTdvS1NS
aStoT3IrY1JYWnU1RnFsanlKbDdUYjstK2gocCZmWjJqejtlXz9lLT1oTkkrRS15XiszOVQ5RAp6
e0ZQNzI+WDJ8YT5UbndCI09KSEpzbkJoPmReZ1RMeVUlNGs0LUJzfkJiQTtsXy1JRG0pO0MqUiZR
RCZPe1FDNzgKekZjbD53cGVaJU1saClGdnd7UEVXaGBiKXQtSTNySkR1Tz9hNmhnTnZxbDQ9QmQ+
dTB6azNKcG5TYF5CT0Akc3phCnp0Mk1iaFhebUV1QmM1SGZfOHghSWRyaF53VHJUdGlKTiM0b1Ze
P0slZWZ1NmpBbDI+YntUd2M1Xm9KaGR1T3p3YQp6SzBYQnB7KCNRVEQwYWFLKkg8Nn1FST95QCtH
N0RFdWMhZTR8N2QkK2tmPX0mI0JfKjg7UHNWemdAbEE7O3VwPmUKeiN4U0xETDJ1NG5wWWdpcnMk
SENPN0ZMfForSlZ8JVIjdnRoXihhLT8xazU1Vm0xOGd8RiVoeGMtXzxgcnVjX0lFCno3Kj02dlc+
MFkmWFkrQ3t0RExEPm1nJTs+ZXdwPTFDKndDdldSdGY7Z1lqS1dWO201eD9RI35CSXZrTWU/Z0F0
Wgp6aGVIb21oc15lcWA2fDk+R30yTn0xPjVNcElnajZPPyN8bFVRQiN8ckwpOyEhNTZ0Z3dXTW89
ZVQ4UnR3NileQ0wKencpRWhtaWNONzYtamluQ258MktxK0VacGsxbSR4NlFCZn1MOGs0SD5OcFQ4
JHZLOUVyIWZlUmhsS3hpQU13ZH16Cno+T1AqbT1aUztSJVQlXlVCXyQ8PTlTNlNqWXQqU1g+LT5E
MFlETmpMZTx5dEt5bl8wQ0hZTl53RTZfO0w3WX1pNwp6LW8xUEc7ZSY7PURGZ31OeH1BX19Lb1p+
eWchUzJoJUVma0IhZzhNJUFQOFctcU17O2J5UmZEPnNmeHlLPWk9dykKemRVO2F7UEAremJqP2ly
JGxFakFMa08xOzFpRE12PkFjdkZZMjlrWTN3YXlwU2luMTZgVkJeTShXU3Z9RDYkR1pjCnphaS0r
JkstdjtjeWcoIX5SWEdvbD49fnlRemJoeXk4SGRqRmF6PmpwcT0lcTNtelA3bXllMS0qaVRaflJP
QURwPAp6eWFLRSNFJlQtKiVwNGRuKVlyRnYkO1V1cURrYj9HMlplRDViJjZkd2lYK0Y1Q3V1Qypw
OEtJeFFjbjlyVFUkP2UKemNhQypsJl9vOzF5JD5IZylMJHYzJDhgPGUwMV9EVXA1XyowJU1PV01e
eTxEJmNqbTFhP2R2TD1lfnxncHJ3eUxtCnpke0xQeztRMlAhUWJTY3pRZCFUUzxQNVFGPkVOMmJj
N1RBUlFtSHtKS2tuR01iQ1MpREo4NTRXRjV+Kl5kaSZ9Vwp6YFFveEF5RUhFXlBhcUokRD98alVt
RF9hZ3FJN0oweXdzTDBlKlhTWVNOPj9VTiUoQHRfM1FnLXR8aWNWS2ZqRngKelclPXVgemU0UHcq
UklsY3d8U099bERvV2IyQUNPPzQ4Vk9ZUzBOTk1iYnI3MXdRS3J0TzYtUTFtPjNqY3NUKD5OCnpU
KV9URDR4TC0ye3tlSmZlJUNKaUA9UEM+JUxSLUZ6SkshTVRUbUx6U0oyQyMjeW9UI245dHpyMng1
RzBEKGNpbwp6U0tjSyFvT25uSiZQYzwlY1ZAZDItZylUNHA/I2c1YitOYkswbUAha1NAPDxPOXZa
VWh6SX5mRlp5cWZ3MSNTajEKenh1VCpBQCphZGlNYTRIem58KnpLbXZTeDdUVWJhSjFfbEtNMXEx
fVo0cFN8bFgqOEhUKVVyM2p8TTIza2J0dGk+CnpJN0tRK0QxZTxjSDhtbWE+fTJLU3BhYyVWWiVQ
SWhzTyFgV2AmPXB9TG44KFglLWd9VFFNV0MtNEJWZzY9JUplbQp6WXNiX0Zvcn4pUzFeTXlnZ19g
PmlQMmhBUmF6QWd+M1A1eGlmazZCRmdKdXBFI3I5b0FOeSVKOGo5anpGMF8raVgKenEhdTtgKGRo
b2dfeGtsXzd0SUhqeHVlUTEqeD13VmI2YUszNih8MjVsWFdkM0I3I1VIMV9wOUtKOWw8PUR3RnNl
CnprU2cxd1BCcXNsJGplc35jKntfLWohc1VhdGhlIVRhb3wyUXpDODszXjF5KkBiTUF+MWwoSz5Y
SERid0lQI3VrSgp6b1NkQSpASXNuNSkjSntnKFF+al9SODNlWjswZH1DRm88YWV5d0ZRR3dNN3gt
OzRuRW97WFR1bip9PFYlWER9ZmwKelZNR3tMcGpLSlEmSV5ZP1gmNGxxMikkXyFDa1djbjMwPlJH
V0luTV9tNk1ZKkpiRHleUmU1b01sc3htVXpXJnIkCnpPRlIxWT1oa1RQdENAN2xOVUpAQ0EjLTs+
c2ApeDhGdEY1e0g9MzV6TWV+e0h2NDFhY0xWQEtGYnokXnA2bFBZMQp6Tn54JUAzSTdZNHlUbyF8
QEtHMWNUPTdkUTVVc0VaWE9jTmxaNmJhS1FtWnI5M0l6SFM1LXcpTVR8Wj5YMXwkclYKeiReODJE
RHxBcFA7ezVJNHFxUzZPOG1zMChOZmF3MXQ+b05MIWkwaTRYRUhaKTZZM2hpRzdaamJWUnQ5K0ZX
NUtTCnpCY1IwJWhjaEdeQmlUOS1GKjtgS1QrS2M+UDV4MnxzaT5xeGx4V2NtOFBxSF9TR0FrbDIk
QmZrOUByPjkxXiNqMAp6XzkqI2p3fiFEcmpiXk0oY0k+Z2chVyVYNUVianZXYjdRNlkxMzkhTGM3
TkNqdHR9YyM5NzVyWDE8Qj53Rkw7JjgKelc9SXFgMFVncm5kIXdTUFdVWEs0ZSNeN1R1a3lwRypI
RSFAK0ZEdS1OU2NuMGomS1pxVzNgPitpZzlUJHlrZWxECnpARGtjWlpMTGVWeHpneihySStEaj1a
eE5JWihEQ0smd155LWwjRUdyQj1qbztncTZEb19SMEFjSjRVIXJ1dylDSwp6ajl3alc7IWo2ZXJL
R2h9eXt3OzZSfWU5MjdpLSMrMmRGK3NqTUJSJCZ+IWUyZW5zNFJwSnN5dFh8MTUxXyshJEQKejY3
Rz50IVkzdUozWHUhbm5vak0kXyp1XmNjPH5wNTEmfiZCNEtOWn4rdUo4bHZXYGUza3tePTBQXzE1
NSpvYTh4Cno1QVI8TWBpODt5NiRpJHVCO25EITZNaUItSip5PkkqcTtFVD5jOXhrPjYxV2pHR29a
VE9sUDchNkxKJSgyblM1cgp6OClkNUhecWplTWApdGxVU1AyazQ7ekRCUHNmIWdmbmdDIU54Rnk8
Wkk9Xi1VYEE2RUA3djFoNjtqe2M+cExtd2cKekFZXjdxVVlOaHBnfFo8TXAmXj8+Y3IlYCMhO3B6
VWojaStha35nUCVgWiFvfV9TRzRDYXtIK2NINkx5ZlVleWhgCnpQIy1LRkZFKk1DdUt1RVY1d2xo
RVVBOVVaQChFI2FxSlZLVz5DJkk1WSNhM0BhSlloeDA+PVIjWExLfUw4OSlFIwp6dihmZmwlZytp
NWUxZTA2cCZHbHhFdURRc0x6ZX5YSlFNekJzblB3cVh8MThiIU9+QSt7Iy1aY0RpYkRLQEhTOWEK
em0pTHswRjtBMW5Xai1LRjU+RmJLP3F+cyZnVGlDPF5nTCt4ZldUOWw+Z3lRUyFveWRHPT99TVIy
LTRmOFNGVDA0CnpEbj1yZ1NyNHVZTCNEPHojQyQlSVFRfHN6THRKZUJ5aUkzIVB2bnxDQDlsQ2xm
KFhiQWRCK1heV3ZwZ29GdDJkQQp6ayg1b1BBalEreTg8JmlWS1hZSDVVS0o3b2BnfXRwQjk3OTJ8
TG1oZit7RkJTUDxkJUFDZXNWS25qdSY2RiNsNUUKemk2Z3s8PSowQ3I7K0NISmBnJGxWMDIlUTdu
aT9DUTNvaVRrWGtneipMKGMkYjR8KXk2Z1NzMEgjVmhnJVJKO1VOCnpCTEVQPV5INCE2aHdMYTJm
JTQ5czJIXmB8M2NgUVhDR0s3YTJeJXgjPXtuPTJEQCpaajZqREtvOVhOMHlLeUshTgp6LSVxe2tE
VV8qT3RxVCUlR2pRODRVcHkjViRXPkxgQDN5Q3NHWDxqfXEpU3pHSypNX2FeZUswbHNXUFYqe3o0
cn4Kek50VD1HMkk7O3UmNEJufWw3ejgoMk09PDl1ZmhgWmhXISZ1M1VCM0F4IzE9QUluIUVnUGxp
cCs+fX0pUntfUSQpCno1fSQzX3lnN0hGOXtXNWw+c25ZQ2NYQFVJUz5qNTctMUJFdntiRilCKncx
ZnZnKVVxTmFBcmtKN2ZteHRucE9AMQp6ezk+Xnk8RT8zOXA3LUN7bzVKXj52ZEA/WmBITXpfTHlJ
e2UjZ0FrVmd2c3x6aTNyZHVKUlhrKCZXSzZHSCNPbEEKem00UilxY3NmRGQ7JVE/dGd9dmE4R1Qm
LU1IKD00fmcxT3RraiVuRHJwI2R+fnk+Xlo7PWQmdFN6I01hUWVUZnVWCnojbSFRbGBabDBqakpT
eWx1RnI0Zj42MWhvXjNpRX41Y0BeT1cpZExAWkxBV181O1cpI2U8M0FXPyVnaDImPUZlbQp6JUsk
Zk1pKjFJU3VLJiROZyFWMWNkPFd5OTJnYig1SEFaZF9je0ZTJDF3KzRUXnZ3MiZBPVc9UV8jMWY1
QjlGJnMKekBJYzhVYmhFdjVhOE5gOWMoM2NSaCNAc0lnVEZUdEY0fkF+TDlkaHZlX2tjQyVHdVIq
c0p9bS03eTBTYUN0cDM+Cno+Y1V0YCZ5OVNTcChaX094Y2lCUGJNTk9JNFM0PSU/O3Rqck5ib3hK
a09IbygmMWhaUzl8R1lmUkxDcD16aU96OAp6dik9RXZ3N2leUWduUDl4K2RuPXIwWjA8R2A2ZSo5
KGNIJnFLZmZePTRhNV8tP2lUbythNER+VUolalVoemk7YWQKenAybExrMzJDdHZwKW4lYHMrbHZ9
bWlHOXV3c1kwQ19TPi1JTHgmQ2xiKEdVfmVtOGkqRD5PNnwkT2ptaj8tS1JeCnorO2dQVns7TmtC
bTZAOUE7TlRGWUVVJW9vY1dRRjdkM191OXlaQCs4aSszaTFHVzNlY1I5ZSo5OEZTME81djNNbgp6
V21tJHk4KWtsWU83ST5QXjJSZVMkMzVHNiQ+Qm9kO15IRWhiKH5JYnBicD9vZmghckxqM1lsPjBv
JnEjYyQ/OCMKeipEaGJhNDJ2TlVZRC1IdztQSnszP1pKaXAjcEkwXmFyWmVzOW5oNlpINTZXTGtZ
eDd1eyE5NlZGNClrWj1tKSVeCnpDcXc+I19XYHV5O3wlbjBYaiZHa29nWTZRSURFS2thND1vdD0+
d3JuTkglejE8SkMzNUp3X1UwXz90a3tMS2s5Ngp6cz9VdT5PbnteWTdSeElyQFZLTSNsSyM2Z1Mh
QV9uO1FHKXFwLT0wayFpUDQ7NX1PbFJ1Jj5ZTntpVntOS3Zfbk4KelM5KmlUTVc+VWxUKi0haFM2
K1QtV282X3BxIVRie2tvQnpsTSVwKWs+Rn5YQnJBckZKNDgqPG5HZSt7bGZhNCUmCno7QHgyJntg
a1VKSTt6fEh7JF5HTnVCZkFgKypUdjw/V05eeVl+Vig0KD5LazdLO3ZPMntQJH1rRjF4V0ZoUDJ5
RQp6QFd1Y1ZpfHMpdmpPdGJjTEVmeTR6ZCQoPVNySDkpZj9vI14hYzRuM0lmMD0+V1ByOFgqP0d2
b1U/KGFFMk88UzkKekRva3otajd1NGs8RlNadVUocURxSy05MU1mSVJedjhwKSpfaDBQRE0yZFBr
RT81fCZ8TFoqOVEhamgldDRPSWArCno4VTZ8JjxsLV9ZNjI0IyZoSn1EQkZaeVpmQXVzclpnP0pD
Sl9KX2VANktES0hHSD1aQ0sqU3tab1NiTFZ6dTN6OAp6Q2c7bTJCO35oez09I0hsJkNiPldqfDc0
U081Mn1CT1ZfQkFlQH5AUSFtblNTMVFfOF5HbWVGS2VFYip5dj0qI08KejlVMz81azQ1bDNLLSst
LUd9QF5LPys0d2BmVVYhfUl0K0ZaS0hATTxEaHk4di1rbzVVVi0wZXJzKmpVPnw5YG9zCnp7S3pw
RztVejV2RSY2K2ExKDV2RShfaigrPFh1WUg3KUQqSUl4aytQdjQ5QH1ZKGMqVEQ8MDQxMjEyMnwh
OUtmSAp6KykoZzg0UGNVZ1RGUzBHe05+SnVgVGskelNAc2Bhcmx6ST4kQUx6eUwrM0JOKlAtN04r
THY3aF9McjhQVUs9PWkKem50JUtpY2MrZns9MH1ufXdpcEIzZmBhNENlP3dMMkZ2JmQ1UXA+aUlG
LXdWOEZVckJfK2d6bSt6Xkd4KiV6Ui1uCnpjUEJQOFlyQE5jRWZGOTBRcy15YGVTSkdnWXZaS3pA
bWJkKC0+NmdgbjB9bUQ7aWJHVEs7ayhUb2RuPXdxdSRNNgp6Uk1LY2VwRlNudj90VWAySCQ4ZHNC
PnF+WkdpZWxeRCQ7VSR4NmpkcUxeIXt7OVleNlRPRUNLdF84aE43O0xjeT4KekN1TFB1dUFESmh5
TkVCSTA5NmhvOTtSfjtCJEwlPHN9WlNxRVNQaikhQXd0MVVpYkNBcn5JY0o+dWFjdyZvbGAyCnpp
XypZNkErdHo9Mn53UWcwfV9AamE9QUtrJSo5ak9Ac0l+cVgpMkhoZUVRUkI7UjRkLXI5LX0qWn1T
P0FVRFZZXgp6eHVMNnxYWWEpO0dfPFNLTEBiR2hDJFZHYzdPSVBxMy1KQ3hIJnwmayNQTHBSX3M1
U1BBKDRUdmxQdjQ0RmpgOGkKejVwZ0JNUCkpKCF1UU4wRXEmfGJPMi1WKSpaQ2wxaihSUFdKM01T
MHFTVFVLcDUxcW9tdW9VS1VYJnRyKk1gOCtLCnpBWjs7eT8ocEhtRm1BeUVMcVEzYlBAXn43WUpZ
UHo8QGhVXmV1Q35VWUgqO3gtfnRtST04QDk7PGVjcDZKcSQ4ZQp6aGNYNj9fWlgzMSNYT0Z4NGhI
S0phREQjbGUhN1pgOSVjKzclUXl9UiUzbEhKJFY5bD5FKmd1ZEMjZkBEIXI7bWEKemdESGRYZntf
WGVSOEdmTCk3OD02TWRxa0lyRnRQTEVxWVAldVBYVVBWUCoweU9AfFFOVWA5amMxPjFyT0AzRGEx
CnptUTk2UkNwVXBqNjNPNWxjcUJDTE5ETkFfa2l2MEpxezxAJTd5YkU3Jn08SEB5cmUqTDJoSSlu
JEtzRDgoNnZpRgp6dEJWdURYfVZ4fnd2d2YtPy0xfiEwQlUwdTx0R1ZaNERkPEIjPXoxQT0oU1ck
PG02PzdSU05iNGNOUkpZdjw3Z1gKekRjUEY7I1RzOygtSiQmQVFEJngyWiNRX2olb3UyNCY/O2BS
bztRSEpqR3B1NFJtVXt8R08+NG9YZyRlND0pNHJ9CnpDKTI7fUJAZ3ZKVS1EYzlyWGpobzluN358
eTRxcGp2R0N4V2BPfj5qXmx0eWIzR3hQPjAjO3xmPnM/bDc9T1Niegp6QE9SaiZGPmJrI3lDPGti
UW5QUUdGSzFKPUd4KllfUEdkZEM4V2ktcyFKNjx6JFBnOW0wRz18NGhjT3U0dW1PcCgKemIrTDNk
diEoOXh1eD4keSNFdVF3cFRNXmZFP0BwVilnc3gpVU5eTlNiaGNsRmMoQWVqX0dmOUNuSSQ+NWxM
YHZ6CnpZQEQrbEMzTjJ7WVlQNVV8TFNSRGxTM3t7SWNkOHJlSGxPTE9maT1SI1JndEViaCoqVW94
M2lKaUFrJThvKDE/Wgp6LTdyUjRjdCtiVSpFJGRNSWlOcHAxP28ke2dFan0wNTVVJDNeZ2VEYEJ6
Tnk1aT0jfCtRd3N4KCsrWXRAcV9zfDwKej89WERqUGU5RnBpO2VmI0VyQF9WWDNRUEY0ZW0kJUNE
JTdzNHwzIWxKMnkwVyhLTUx0cylEWTxee0lEXjVLVWtKCnpKaSVvVGs3cFB9UHooOTxlNl9IeyZn
RFdAbEV5MCFmXjE2UTh8cHx0MzwmYVRZYjVRfihwZGNHKDMkYCtsQlpLWgp6YEBubz85bmAqQnc1
TytNYmk2Yj48ZmNsUiVhVGhIJVFZbjFea09nIVB9SEpfIVk5KUU4ODg8NStxUWdKUjtDTmQKelV+
S0cpMmRYamZNMG80QiNFeSlmRGs7dHxjcCtleiFgUmN1QyNHRz4mZWNzenZDej40bW1WRntUfj42
PHgxQ0AhCnpkSExRUm9ifmNnY0s5UkMjVnljbDtnQiZZb1c/fldVaXZWJj5YcD8xWFdgKW4zMS1x
dj93N1c3TClLfj03QWsoawp6Kyp5Y2dtPCljaUl7ZW5QMGxjSSFNYWI9P2V6SzEhejlSbj1FVXpa
a0FaJkVPJURZfD8xaEBnMWBSc1UzRGkyJT0Kej8peXU0YW9hb1M0JGN8MDtMM3lzJlpUSnRPITN2
dFcrVCljSHRGXm42fkVpOCgySCY1OSRwKVpqKlRoJCVRIW5yCnptazYlcHFWUn16OCZyTG1BO1dy
VDYrcW4laTZrd1RYUFNuZW5OZzwoUGota1o1MmtVejZCWTN7JDBBJl4qWm5HPgp6MHwwe1l4bEpa
PENKa1BtcDVEakMxREI/ezJQKUFma2lYRG8hMHFwMlMqO2E+OGYxe1I+aEdWdTk/UlJ0ZFI/QkEK
enFvT3AxKzQ2dGJqdU1pRUlrIztLZGBkMF9tTzgkJmVLQVg2czJrbDJec3M3Q2RKYFNGN2trJG9s
M2xubUg5OSY5CnoxUChlT0JzMkpZQWFnalpHcEExanNhaG9FQTIycX51dXZVRTdYIThyNGhfWjhT
cmdCMTB+TFY5cEw4Km1IaWFZUQp6c1FrOS1eOHVsJnlQZm8hKGNQX1JMT2htZzBuYzZWZmRqJXx4
fCFxdlI7YW84ZHVSXn1RZCUlT3REI1R+MWxQfD4Kem5+SEFMez1DSSswRz9PPypvRGRGMnVXVTlu
STFHQGA2ZSlpNXZIamdUPmI+fVVCMXcjTXB+YE8/JmR2U2ZqaX1ECnpLb2ZySkVmcERNPFA8RThU
WT07fCpqeztrRy0ldWNzQXJLPTx2QWoqSVBobEZzb2o9O0xTai0wejc+RWxQJGpgSQp6PHVKSmdK
K09JOHV4JXpgUytwYHg1JipUdWw0STRjYWBoJThiQCFXWT90TiFWLURkaH1ldHNWMmgrdmt3S0Rg
WFIKejkrKXpHaXMlVWlzNiVgbkB5PTx4Uy0wK35gfnh6SzdzLUF5OXlvVVBJak80aGZQa3hXVW95
YTBWI1BJUE5gVWJNCno9P0Zqd3dHM1Z9IzlELXhLP3JWP0ArUlk+TjJ8LXE3SCV1XmVfT2ZLMzs2
fnxqaVFFWDZea1pMYTJ+KiYwRU9kWAp6VjtoaURFXzVRbipMUDtCeTh6ZjNIXj82PkRtUy1iNz9a
dDZUX0tYZEJ4REglRTUzUj44MC1PZ2hwd3EzQWtQQ1cKemZyRXEqSjdnZnhXSDJxUSh2Tn5gSHhD
allJdFByJl9pbTRaIThsQTU7Nzk/dTBXTntfI1QmMV4kamlHOXlkMztICnpzQ2hDdTFaYmswbjtX
cHI0RG1RYyElKDRNOXEzSmJlMCZvITBWYVJJbXw8UmQ0NHlaRXVDIXtoa0xjMnJISD4mRwp6SzZv
JGQ4VjBpZjhXKX13aH1WJlpTdCg0YHRvQ2puPikpMm8oK1RmWkw2fjwocEkxJDZTZlleMHdpZzs5
NTViNHoKejk2QW5gSTJlTl8wYDRldXp6MWpAaGFwJTIjMUcmUWN6Ynp5NUdZRkUzbEw1fkJjTmpO
ajFsTno9b2NKRzVkNWM0CnpwQkBweVkhTCl3ZipIKWwhMktueTwmeEFoeXI5RT9FUn5jRTFOJDN6
MktVJVMtQmhwdzlwTCNPcHdRNWY7bFBnPwp6OGNJR2tmK0lWOHhQbjQpMFFNSH1ARVJVfU9xbDct
eWF2cGtxSFQ1bHsxeiN4cnB6JT08RiZRNXNUUTc0TmhgT1kKellqVD93I2lgLT1yRkl+OzVOTnBP
IVB4Knw0SCspWSpWU2ZfYjg+UWtpR34/S0hiSFR+amxLUS17WHpLflNXe0gkCnp1WkR2bGZSOS0/
b3NwSlN1K3w5SiZOdSVIQm94ZjIhMD59ZGZzUHModCNnYGBsP15hXjZVLWpeXzV6cyFHVFdZUgp6
JG1zOGZyKVlBWUtablVHZ2hGIUQ7bVRzRElGWn43MUhQelhAK1U7JCE2Z3AzITJXcFh5Q2YyK1NS
VXBCIzZaeGYKejY9QV49NUBqQ1V2bXJRSChqVEAoOXBMdk5pKzYyeCU4NGByJU5rQE87MSZKRGBj
PGVuU2dTenMrPyR5NEtIdUY1CnpZV2czbUE+WEp9cnZxN1ZMVTNie0UxWmVlZ0Bwd1gjQU9RazZP
b25DWVNIWVdTfUhza2ZZTnQoKzR1eWk9KGBWPwp6UExKa310SEY1PV9jdkZpcEZlK29tOUA4ciFH
Sn1AJUc3fEoqeTsoTngyVXJmM34lc1RISEA9PjhKS3FhK2cmS3oKenZWa2hwTUptZXBCfEVDP3Nv
UTJZVDs7PGY1XkkzWGtkfX5OOytlO0I+VH4/Y2Bqb3hNSl97aW4hXmhzPE08aikzCnoxa0hmSXl+
RFZvdkJ4Z2lqKFUjVXtfUX5TYFVTTT4yckg1Sj9iOGA/OW5qT1dlJWhoKVhSb3NxRDkmO3RUaGgr
dQp6TTlZPXMtbkYkeWoqV0YkeVF0KWo4MEI0Y1FwRHJmQ0V1JWxUaGI0OSh4eGFwI31zY2VlYlI5
cUNYJTNkcHBkPSEKej4zbzV2bWV4OExpLUtrPVZoMjJgZmF3WF87WXUlNlRmT3lgP1AtOFFVellZ
d2VrcjR7eCR4RlRIPVBzd3IpMD9SCnpefGh0aXBeb0p2MmFYKEJmPTMkIUpofjl+LTdmYHVkI0Uj
TTtXWXg4NmxueXtlU3AmZGJibkpnJkF0PlNAfUU5awp6I0x2Q0MwWiVed25IUm9RNzkwPzsxPjFZ
ViV0WkhfZGBXZF5XN3pLeVBnQykyMEQqOFVlQmx7QEcze3FINHs4QWcKeiMqZmY1TVVvN2owNj40
ZmBZTys2M1RDNClYSFBLRylYezEzeF5EdWtxVUI4ZjRhVnVESkAlenpWYEZHR2V+MGtaCnp2PGoo
V1J8YT8pYDB0TEc9KT5heDh4WnVvZkN1ZFI3VD4rZyUlZFN3KH1kc0hqQjd5a2ZsKSVYent4fGRI
I1N2bwp6RVF4JmxnUkdic3huTjF4UiFxISR1aUZOKEE2NVNeVVhyeX1xPVhZZjBWfTAlPnkzP1RA
bTQxNSlvRWgkRWExUSgKeiNEJVEpLXJfNyhzP2NYOytXJmA9PntCRHR7dV5Fa04yUHhrSk1JU1Nf
fislSDgycG41fDFIYTRRYlBFT00tTjNnCno4Z2lHLV87ZEEpITU+e3VkVEk8T2pye2FhJml8QTF8
MUVSPXBOe3RMaENYPnRfe2dsTCZ+c2peajJENnM2V2kqdgp6ZFZAUzJ3MmdhdUhEMVdBYl4/TyVX
Y1FDXktXVH52KlRnfFRGfG57QnthZk48K2FBRiVAU200fFYofFlmNHw7YEMKYVBvQ2lTZGd5T1Eh
flpBfUo4Tm9yc2B3QUxUbUsxV3UwMn0tCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRo
LXN5bWJvbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3Rv
bS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg4YzcxNDcyNTdlZTU0MWQwYTdi
NzdiYzgzMzFkYTA3ZmI4NDg5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1z
aXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NDc2Ci0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg0NzYKLSAgICBSZW5k
ZXJCb2R5IHtib2R5fSBhdCAoOCwxNikgc2l6ZSA3ODR4NDUyCi0gICAgICBSZW5kZXJCbG9jayB7
cH0gYXQgKDAsMCkgc2l6ZSA3ODR4MzQKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzI5eDM0Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzI5OiAi
VGhlIHN2ZyBhcmVhIGNvbnRhaW5lZCBpbiB0aGUgZGl2IGVsZW1lbnQgKHJlZCBib3gpLCBzaG91
bGQgZmlsbCBvdXQgdGhlIHdob2xlIGFyZWEgKHR3byBncmVlbiByZWN0YW5nbGVzLCBmaXJzdDog
KDAsMCktIgotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE3KSB3aWR0aCA2NzA6ICIoNTAlLDUw
JSksIHNlY29uZDogKDUwJSw1MCUpLSgxMDAlLDEwMCUpKSwgZXNwZWNpYWxseSBhZnRlciByZXNp
emluZyB0aGUgY29udGVudCBib3ggdG8gYSBkaWZmZXJlbnQgc2l6ZSIKLSAgICAgIFJlbmRlckJs
b2NrIHtkaXZ9IGF0ICgwLDUwKSBzaXplIDQwMng0MDIgW2JvcmRlcjogKDFweCBzb2xpZCAjRkYw
MDAwKV0KLSAgICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOSw2Nykgc2l6ZSA0MDB4NDAw
Ci0gICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtzeW1ib2x9IGF0ICgw
LDApIHNpemUgMHgwCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDY3
KSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0wLjAwXSBbaGVpZ2h0PTAuMDBdCi0gICAgICAgICAgICAgIFJlbmRl
clNWR1JlY3Qge3JlY3R9IGF0ICg5LDY3KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVp
Z2h0PTEwMC4wMF0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDksNjcp
IHNpemUgNDAweDQwMAotICAgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2
Z30gYXQgKDksNjcpIHNpemUgNDAweDQwMAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMjA5LDI2Nykgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW3g9MTAwLjAwXSBbeT0xMDAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9
MTAwLjAwXQotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw2Nykgc2l6
ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0g
W3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS91c2UtcHJv
cGVydHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZGMxNGI2MDU3ZDI3NzNhNGFlOTg3MjcwODEwYjQ4ZmYxNmE0N2E4Ni4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyODU4CnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29UbX1uTQp6PENJaGIxNS0y
ZTZoa0EhcXxgKSVCPWUteTxXd2BXTUFIO0Ehe2h8PnxHJEJuKnBqXjZUXlJtQDtEV3UmQ28/Y2AK
enRAM25uNDVecyZfUyEqQzFfZ2x3MkJyViFvPiUyK1FXNUBnKTdGQHFxMlhNbUVDYSZfPjFJfDIw
cGtiOzJFJFJ0CnpYZHNOSGd3YjN1bmhRcEEhRHVjUiU+fD5tVV5FeGRCXlBZdVc9dnNVWWpXeyZF
M2g1UTtPWGs7dmQkQD8yPl56XgpCelYhZUEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtc2ltLWRlcHJlY2F0ZWQvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ct
dHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW0tZGVwcmVjYXRlZC9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10
cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMTAxYjcxOTgzOGMyZmRjNjIxNDRhMTM1ZWZhNWY0MjI2YjFhYzczLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW0tZGVwcmVjYXRlZC9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRv
dy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg0ODIKLSAgUmVu
ZGVyQmxvY2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAweDQ4MgotICAgIFJlbmRlckJvZHkge2Jv
ZHl9IGF0ICg4LDE2KSBzaXplIDc4NHg0NTgKLSAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCww
KSBzaXplIDc4NHg0MAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3
NDZ4MzkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3NDY6ICJUaGUgc3ZnIGFy
ZWEgY29udGFpbmVkIGluIHRoZSBkaXYgZWxlbWVudCAocmVkIGJveCksIHNob3VsZCBmaWxsIG91
dCB0aGUgd2hvbGUgYXJlYSAodHdvIGdyZWVuIHJlY3RhbmdsZXMsIGZpcnN0OiAoMCwwKS0iCi0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDY4NjogIig1MCUsNTAlKSwgc2Vjb25k
OiAoNTAlLDUwJSktKDEwMCUsMTAwJSkpLCBlc3BlY2lhbGx5IGFmdGVyIHJlc2l6aW5nIHRoZSBj
b250ZW50IGJveCB0byBhIGRpZmZlcmVudCBzaXplIgotICAgICAgUmVuZGVyQmxvY2sge2Rpdn0g
YXQgKDAsNTYpIHNpemUgNDAyeDQwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQotICAg
ICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg5LDczKSBzaXplIDQwMHg0MDAKLSAgICAgICAg
ICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAw
eDAKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNzMpIHNpemUgMHgw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0g
W3dpZHRoPTAuMDBdIFtoZWlnaHQ9MC4wMF0KLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7
cmVjdH0gYXQgKDksNzMpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAw
XQotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoOSw3Mykgc2l6ZSA0MDB4
NDAwCi0gICAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoOSw3
Mykgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgy
MDksMjczKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19
XSBbeD0xMDAuMDBdIFt5PTEwMC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0g
ICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDIwMHgyMDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBb
d2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
c2ltdWxhdG9yL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13
aXRoLXN5bWJvbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxh
dG9yL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5
bWJvbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMDFiNzE5
ODM4YzJmZGM2MjE0NGExMzVlZmE1ZjQyMjZiMWFjNzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRv
ci9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1i
b2wtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1s
YXllciBhdCAoMCwwKSBzaXplIDgwMHg0ODIKLSAgUmVuZGVyQmxvY2sge2h0bWx9IGF0ICgwLDAp
IHNpemUgODAweDQ4MgotICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICg4LDE2KSBzaXplIDc4NHg0
NTgKLSAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwwKSBzaXplIDc4NHg0MAotICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NDZ4MzkKLSAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA3NDY6ICJUaGUgc3ZnIGFyZWEgY29udGFpbmVkIGluIHRoZSBkaXYg
ZWxlbWVudCAocmVkIGJveCksIHNob3VsZCBmaWxsIG91dCB0aGUgd2hvbGUgYXJlYSAodHdvIGdy
ZWVuIHJlY3RhbmdsZXMsIGZpcnN0OiAoMCwwKS0iCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MjApIHdpZHRoIDY4NjogIig1MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSktKDEwMCUsMTAwJSkp
LCBlc3BlY2lhbGx5IGFmdGVyIHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0byBhIGRpZmZlcmVu
dCBzaXplIgotICAgICAgUmVuZGVyQmxvY2sge2Rpdn0gYXQgKDAsNTYpIHNpemUgNDAyeDQwMiBb
Ym9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQotICAgICAgICBSZW5kZXJTVkdSb290IHtzdmd9
IGF0ICg5LDczKSBzaXplIDQwMHg0MDAKLSAgICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXIge3N5bWJvbH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICAgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDksNzMpIHNpemUgMHgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTAuMDBdIFtoZWlnaHQ9MC4w
MF0KLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNzMpIHNpemUgMTAw
eDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAu
MDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7dXNlfSBhdCAoOSw3Mykgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgICBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoOSw3Mykgc2l6ZSA0MDB4NDAwCi0gICAgICAg
ICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyMDksMjczKSBzaXplIDIwMHgyMDAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0xMDAuMDBdIFt5PTEwMC4wMF0g
W3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgICAgIFJlbmRlclNWR1Jl
Y3Qge3JlY3R9IGF0ICg5LDczKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEw
MC4wMF0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW91bnRhaW5saW9uL3N2Zy9jdXN0b20v
cmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW91bnRhaW5saW9uL3N2Zy9jdXN0b20vcmVs
YXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYTc4M2NlMmI2MWFmNmZjMTRlYjM3OGE0
NzM4MDc2NDkzYjBkNWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vdW50YWlubGlvbi9zdmcvY3VzdG9tL3Jl
bGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHg0NzgKLSAgUmVuZGVyQmxvY2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAweDQ3OAot
ICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICg4LDE2KSBzaXplIDc4NHg0NTQKLSAgICAgIFJlbmRl
ckJsb2NrIHtwfSBhdCAoMCwwKSBzaXplIDc4NHgzNgotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA3Mjl4MzYKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA3Mjk6ICJUaGUgc3ZnIGFyZWEgY29udGFpbmVkIGluIHRoZSBkaXYgZWxlbWVudCAocmVkIGJv
eCksIHNob3VsZCBmaWxsIG91dCB0aGUgd2hvbGUgYXJlYSAodHdvIGdyZWVuIHJlY3RhbmdsZXMs
IGZpcnN0OiAoMCwwKS0iCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDY3MDog
Iig1MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSktKDEwMCUsMTAwJSkpLCBlc3BlY2lhbGx5IGFm
dGVyIHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0byBhIGRpZmZlcmVudCBzaXplIgotICAgICAg
UmVuZGVyQmxvY2sge2Rpdn0gYXQgKDAsNTIpIHNpemUgNDAyeDQwMiBbYm9yZGVyOiAoMXB4IHNv
bGlkICNGRjAwMDApXQotICAgICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg5LDY5KSBzaXpl
IDQwMHg0MDAKLSAgICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgw
LDApIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge3N5bWJv
bH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0g
YXQgKDksNjkpIHNpemUgMHgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0g
W3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTAuMDBdIFtoZWlnaHQ9MC4wMF0KLSAgICAgICAgICAg
ICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNjkpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAu
MDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBh
dCAoOSw2OSkgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lciB7c3ZnfSBhdCAoOSw2OSkgc2l6ZSA0MDB4NDAwCi0gICAgICAgICAgICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICgyMDksMjY5KSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbeD0xMDAuMDBdIFt5PTEwMC4wMF0gW3dpZHRoPTEwMC4wMF0g
W2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICg5
LDY5KSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBb
eD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1j
b250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1i
b2wtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGU2MDJkODA3
ZDI4N2JjZDdmYzAxNWQzNWJjNzFjMmQ2OTA5NjlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgps
aXRlcmFsIDI0OTY5CnpjbWVJYmBDRjNkYCM7Pj9HKV5eYlRDVUJzT2o5bW48KndMbldvQmsraWJe
QXlDTCQ+IUR1T0xEKTA3TDlyUkd7JAp6eGd4bSQwcz9KOVlIRnJ9dlgtUEkyOz40TkNfRlR1JndH
MFIxSjd9TXBZUEw4OyhjKTVfaiNTJGItdTNHYj1fUCkKemFvbEo1X3ZZV3ZuPlRPeWs7NGEwJllR
UHo8R2d0YiZWMEFUYyU/QTslMD1VIVV5fX09TmRtYDJmZ3h9TmJsentTCnpQUEArU2M1I2ZfOEZs
WFcteUA/TyZ6Kk81S0lhbmtKSkBPV2BRSVhVPjkyZzhGYmQ2d3BZKylgdWRkNS1ibCR1QAp6Xk50
K1lkbiNxVlRvOWRXK1pPVSE4UzxrTHdlclFMbWZTejA5YXNPZl97YUlNSmxNLWdnUj89aFd6cHFw
Jnd3OWoKelgyUHFWdC1XLVJKSEY1PTNQbj12SFcqRSt5V3ZfOU97dit3MypXTTloZi1SNEZTLTxe
QWRgZkgtfkc2OCYhdV91Cno3YzRTPF8tKmZkdEYzbillRH17a3w5aUR+KGRMWntGOH1XcmpNcHct
U2dgdSRnfSgyOXsjUjx4byZgVElgTEVqKQp6WX40OGotWFl3XnxHTFpPamdrTCgje2FpKFZaRDMp
ajNoJVpwJkdQISEkYS1ySDdQUW5DezUjJUczbng4JVFsU0wKejchcmN4aWd8ankoeDkoSFRQTEQh
KkVoI149VDtpdDRKcXtzcjl2K2s+N2dAeXo3c09UWV99byhYJlBSNDdDbkBxCnp0O25HMGozUD1e
QDUrZ317bHhPYDVwPiU0Yz1PJF40fHUmNHBYPzhCZ0luQDNvJEowbCoxYV9DTHhOUVc9WkB+aAp6
XklVcE5vJGd4M150Ql84WTBVKkp4dWx8SnZlbTktUjxJdmkoeUBncks0UzdGci1TRDk9P0RwdHN2
byh7MXJYX1YKekB0azt8UFEjeGw9OUoxRlEkIXZaPEl9WjwhSjY1WGhSLVdTYjRJO3BNO0VBbiQo
WjtCPjglRVBDdT5HcjcmQSQkCnp2P1pkTTVeOS0jdzJZMS1BeUZpJU5Ka1M8YjtjbyZRP1lYY1NR
PCkjIzdKbT9ZNFRzISMzVzNoTUgpMkhYMEZFdQp6dCs3ezUqc2x6d01oQCMzMkF4dFVfN2FLfTNq
eXlKSShOQH54aEhiQCRWJmJEbUJSRW5mUGVEazlUOD14WX51LSUKenBKYT9VTk07TFlgY0ZgXnVC
dUYxTWc1fGxfWGN9ViM7QG8odnk1PndxfV89eEQoTEVLWCNHcFlrQnJ0Y1VeST4xCnp4PDtoO09z
O3BUVz85K2lXa31gSmFwbXJhdzVQMCo9a35rNXhJak4zblNKUiFgPzdic3ZlYWczdWclbmUxWHk8
ZQp6K3lAYGJNO2BAN2dVcnc8MHMrSDtZPTwoc1hmbitEXkE1KHVqKjNfMV8xeCs5YHxoeVRRS3c9
MVpaRU5ISFAlTV4Keno9b29gPk9GbG1GeihHWl8/X3xReCFLKW1JbUI/P15pQjlQTEtJaW9fUHg+
Z2FRTkY/PXJGSTA9N3Z8bkFjWjNACno+dn1wSj01KlBqPkZuT25rIytjI1ItVm9EPzUte0FDMkEk
MU9CYlAzTUllPmFJbStoTCpeYmUrT3kjOU5LTDYjPwp6QDxIS0N8TENpcnpjLT0zUzZCJUBTUkZT
anEzYjZjMz1fUkAjMnp5Z3VYb2REUFIxTjNTYWNlP1lNY1BsNW1xKzEKemhNQlpYK3tKcnRkRFBs
VG1hRmc/YkFwLShSVztsSnEpTn1jTDBtR0lvN0lYX2RtZmwwbmF8V0l3UktvfDE0NEskCnpKLSU2
NCh6cn16YmdQWExGdE4heTVreyYzQHVYSzFGMW1QQW1ROEZYYVJZWXRLYiVNKVZZUVhtdzNgUDsh
bn1scgp6SWd2cEQyOEA4YVh6Nkt+Wm4pKCVEYFM+YjtZQDxIZWRlVGhhYEA8aFl2X1R8VlZvPU4y
fHEhPk5eTSEyQS1LOGkKel9jKzxaMm0hMyNFOGU/JUJLQFFANWRRMmo5ZCMxbl85OWdZcFViZXMt
YiowNkVjSkBEdS0+d3lOUzg2MWp+UHx1CnowIURMPiVSYT12QWZjcmQ3XiZiRiUrTjJUWT9oJGVu
PFNUdSh4fnYrQXFWfFh6bDtQUVpkcUlFJkRmcH1sPHlhIQp6ZThpZ29MekAmcjwoeUVkRmMhYm0m
KzVFXkgoY3VwREVeKkdJUHQ1QXZRRVAwMl8pUD5rRl9nbCVkaCM/X2p0c2gKem1iRWBsTG0pTjU4
TEQ4PWZjI3t0ISZwa1VMbDs0a0FZJWspdmwwZTlsPjF3ViRzK2U/bj9HWTJTWTAhZ21vXzhwCnpF
fEZhd3pGdkNEO0x4JEhaUzs3c3Zle0QrV2FIaUR1NTVrbFI3JGBmT3V4PD9wcXl9NFZ4Y3V6STA7
an5heTtjJQp6ZVc1SV5WZ3pQVCEkOHs8TjhBfUZVZiotRENZOU58ZktPQGVaNVFmQjtoZnl6PiVA
XnV6RyN4Q2tmVHxYYXp8I0UKekpETV5zI0lEWkF1RCtIKGFeSCsyb2pfdkV1WDwxSkBgaHtMJTRY
WHRvSGBoQDlTcns1bXZXUkRwTjQ+TG57VFYmCnpAU0pvbUtJbURhaSQtJVRXbnhnZzIqJlZmaVd5
I3RkQjQ9Mmo/eWBwJj5QLWdxMSNQMGtjYD5uP0lITHtSJnZ7TQp6KUclc0h7JjNoIWVVQ0ElTX43
NTFXcm1zUCsjK0V0PGFiUlRzYng0UlNodmdnWV42SiRSSHl5KShoVCMjT2h9V1UKej0jdFUkdik8
WnI/PSgjenIpNU8zQU1rUGlAbDNebk1+fHd5TT5JV3VYXmZTXkU5eD1PQ1pWITR7QytpZmdJYTxY
CnpOPW5wOVQmc2VjKVB1YHIlb0goRkhCbGdTUjBXYXZ4c3FsREIpUzgqQ29heWhWUlApIWwwVTlB
Yz5KO0RxSiszfQp6NnJldzB3RjdfTzhjfT12P3g0PkBFfW1MfFB1REJKM3BKeis5bSMqTTtYO31F
IVk+XylTM3lCcj1ZQllEdnY8XykKek1aPVd2PVVSLT4/fFBNdyU+IUF3TitYPXswamprUDZsOUxK
c3d9KVJZdD0mV14hVUlZPStCaTVmVUZUOVRrQ0JGCnpNMXlvKFBBVGBLP3UmdFIyZH0xRW1JM1Fl
SGteKnpKPFp4VGBYRGpePyomdkR1OXI8OzQ7LVV1YHwkdlEzVS1TTgp6N2hJa3o/dyU8UVA/PWZG
ZGZ8PyQ3c29SbHgoM2ExVGpMfSRhVThoYHQmbV84N2sqSG9aQWQlTFEtUXQ3YnpAXnsKej9lODd2
U0JsWUJGZGNxPDc9MUR6JW9HeFMlKUEkVXMoSnZVRlRZUCtmPGl5RmgwUCR+S0pkTnA8NEMjO0o1
RSVTCnokTlJeIytsK01wPGs5S1M4UE0tUz5ZbVEoUFdpbmorfHh6VzFXR2A0dklScnt2NSYjemV+
RTYhI1dRbV5QZSpDJgp6Z35sQXFGS3ZmaUdnYyQxKEJudkY8eyR3Q0hXPH5DOTlRMXkkS01fUTU+
Z2Q8eWgxfE1yOHV2UThkd2pGaHhMVDsKelR8fXlgUUVeO25lckdSJVFGaXIwdkJyXkJEbShyPWJn
Vj9KLUZhMHlydmUjTjYqR3htM2VHcihUO3grN0o8Zk1zCno0OzwoQ1dxUWdPPDhfMU5AIXhWUnU+
QXlUdkM2TSgjV3JobWFWTjRoV0hKR3ZJQ0tKIVRwbysrISZuZDcrdSg1IQp6UngjRE5LZmc2e0B7
bj8kJWdUTnRLPXN4VVU2dnw7MUZLIXk3NER5PnZIOztGbXZIMkF3fXUmTlk3SGNuR1h5dmEKenl2
PWhXTChxdVBuZG1hS0k+YEBVPTI2YTlmdVhhTC1pRkN1KkpeMEUxJENVd2Y5bXYkbGQhdiFQQCpn
TGsyKTJeCnpWVHtaZ14jKnlqYHBCK3Y+eEMwQjIzQFVfeUFQKngyPEp3fmFDN3FFT1NCbiY7WiZr
OSs3SSFveSMrfXw1T0J9VQp6JXtfTERhbVhRITJ5cEE7XndWRmVZcCtqRkh+USFEPT8teEU5YWpi
eT0jOW0+KXpJVHwhYkFoS1dXeH1CcmFYO0UKeiRCXlVBTUR4azhtJEVWWXBGeSomcG1mVW1DQm1U
Uy00fm4mODQzajY7eyQhdjU2MU9HPnpxQ3lJOEJSelIoJHAmCnpwQCtSKzVPXmNAPEhPY0h5ZmJm
LSF3aSU/RjU1VmwtX2pSRGJBQExmV3FpN1pgREJ0d3dCUDNVQ2NOX2R6ayZnYgp6WEA/Q2xKTUFg
N1VOYE1nPzl6KE0qRHRTPzNnfndRaSRYVTVmd30zS19ebzhxdElBMSQ1Pzx9QU9BWilvWSVrZj0K
elZjbDJfP1hQaWAzX2NwSGY5WCEqYUB9fGhfQT4qSlh5V29iJEtVS3I3P1RRQlJCb2J+S3BNV1V4
QktweFVgemJaCnp1P2YzYHhLVyp5eDhSV2tfJX5xPl5jSTI4WisxN3BrbytPa2V4TFF2clZmUFlh
RCVpYmxIIWFsZlA3JUxab31mQgp6NG99IVI8elc2YyEhU3Jje09mcmMlZTJgcSVQdmJRTilMUyRC
PmE+TWp7LUByZDE8MGJpa0BjNWhsNERSWlUrd0IKek5waVZZUl4hNzhtdEd3dj1ZdzRBY1I4NDV7
JVA2YE1UdSlUN0wza2N3cGdqYyFHdT1NTHs1Z3pYQCFUPDNGcyk7CnpfczlkNy04UGk7MjRWI1lG
VWx5aTsybikpdmN1bEt6Pm0pITFXZ0B1OzN0aSQwTmc7M2k/Uylae3hfez0+WjZwUQp6T0d7cSFj
IXVibkttQnBnYkdEZ3JAekxUYWFMYj44WjZgQ2tsezJNRUh4PCZjci1sRWIrRF9KOXRBS0p8ZiRD
M04Kek14UG9ae1Q4IWhMek9AOV4kNExEczI9KjlecUhySmMpQjxZaG94KXFTZDI1YTl9RCNnV31N
ZDRkJlBRViNyYXFjCnpuKmk8I0ZTX3haZCVgPVp3fDNAJUVVcjYkb153OUJIOHtQcyU0JG9Qb1Ft
YGNWWitqQ3IzO0RMST1VVGB2VnBeMwp6b3tiTUxWaU1AJlRCcDV9e0RgcnYjQylzQERhSUVpZ19B
T0NNI2BrYGgpJSFBSXwoUjI9YkJFfjdLaVlLXmEqMisKenYtP20hSTR5KzRSSDhaTlRXa2R2Vjt9
SWZfbGJSVVU0I0smQn0yMU01Zy1vcy04Z3hrSDRwP1V5eFA/fFBFSk1jCnpTaDluM1gyKGJ1UkNk
T0NHU0hGQUZOOURxd0l0bkdNd3pVR1FrPnRlU3lfNSVfaGx6SDxiMnEzO2wyaE8pZW12aAp6WjB5
UkA8OGB9Q2lkRjEkSiZeRWk9RVdVWVNkIWxLTjUyKSZre1hqWTFCQ316RF5EVTwpZkJmXjkrJTsr
KkxyfSEKenpYJHg3dHlQRHlrZ0c7bDlKJClrZE5AO21yODBTSDsxYSRMTj1XVHszX3E8JWlILT9S
SHY3Wj1RfnZ8cGVDTzVJCnojelRoKnI/RzEyU3lIdyhDfTw3O0RJa35+O1VVVyVVT1o3YXNXYipe
KzxFWXg8b1ZXZSpWN21rWHMlKGJORShWUgp6YmxvfVhEY0IzVT82Z0VGVF5yM258OXomVnVNe3k/
YjhJZjQ0QjxrPjUmUD13dUd4UD1JVT9NajQ+NyFTa3c1OSQKej9hJUxrK2oydipxVjYzNWYrNl5e
WW9EJVpZWmViQz9vLU40MyR3Rkw8TjdOV2NiN2hZM14/PC08eF97TGZBLXhHCnpFYzIrQEpFRV8r
MjVwfFhWYW5HZmJVTiRjMzRBdD14SH53IUB5RzU1OS0tcCUyZH0/UXRZTWdvT0IkeSlPckNKcgp6
UXomRCQ+PlBQSExjODVibG56ZFVBOy1CcT53YjdAKkdQOE15JCgqQDQ4PHxQYF84Ozl5V0hZeDVL
dFoocFUpLW0Kemt4RSVzQ1hJVSYwezZZJUROR3F+Mlc1VmdkVDFYc0U1Y05NS3hfeG5rZnVuYGxF
dGlLNXY3I3M5TDJUbDJAMDxQCnpFaiFRWShOPDImTGkwfll2RHc7VEpfNm5jXk5qRERGRDl0S2xE
SGxLZHJAaS1NaXBiaChMeTRsKFRia0dSeUNHVAp6a3QrfH5aWTwzYFlPZmpMZFg8Z0xJR1d7Vzx0
OyskO1QoeXMmTTd0bmE9OGFhQVV1a0Z2cjB4KHN5SSN2VDZkeEoKeldTOWFjWFJHS19iQlFiNSV+
PCYoMD5sUXY4IVAyc2JzKDhlYCphMnoyVWdmNUlGKXZ7T296ZldnTigkayk7SFB+Cnpoa202NFd8
MXR4b1BES1lVWDFLIz90Tj82WH5LUFBsRzdeWlhgT3RaLUo7T0hiOHc0OzF8Y1NTaWtuV3FJe2x1
NQp6YHZ8XzU+aW1ySXcyYkdUVlJDZ1YtUCNBdVc4QWxISjA/Tn5tcD9PeWVqPyt3KSVkZ3pVNz42
Q0VQUDViQHdzbzsKeiZDIUQpS2ZeQlhDYm4tZDZBUDFOU0wqcVBmSkpYRFFlLSZFcD9mbHA3SzFN
Vj5oTlgyKGhSJTxncmp8XlljeyNvCnpCYyFRdUdPQXU1MDNId0VePUBXfFF6OUVQVzZhYnpgTj9C
QT58aTVFJDx3QHlaKml1PjVeYkZ8TCNkWCN0WGNJTwp6XzVMSHJmJDkhaSVCUWZxZzU8WE0wbEtx
JnFAQ3Y4Y0ticU9CRnNVNHY7QWJjT2kmSm9fcSU0ZTk0TzNKNkd0OUkKektLJGNKZzMhdktJdGEw
M1djNXFBe0hKXnB2Qj9QfT99VW9lV2hAXzZTZVliJnU2KTZiTTVqOTkxKVZxb2d6WCZKCnpTYnhH
PjgwfnBWVl9JUE1IdVAtcnJzfkJ8UVR7MHhNUik2UUlqUl4jLStpOHFMMjtmcWRPUDN8b3gyMks4
I29rZQp6NF8wJFhsM2V3WFp+MyRpQipHJWcoQDQmb3E1R31Mb2F1QzRIM1o2bGpyOT18IVczd1Jy
SDlPfHN6RSklXiN4Y2wKel89UCp2QmMxSWF0eF5SOFMwST12bmtSfE87LXxMbzg1TG8hLSUmO2gh
YjNReFAkfnI8MSkpWXs2aG45OUQwZTklCnowK1l4MjFKPU57Qz9LY1QoT0ZCTUlWWEc0azU9UHQ0
bFFfPlR7Qldxa0MrNChMcChKbik2O2MjJEpXRmlUeXRwdAp6UEdmKCtGN1dNQyhWdnVRalhJXnxF
cEd9ZSVRPGdUNXB4MzNSZXk2LUNBPlpNdnVIQ0xCRGcrYVFNfD83P3g9ZjQKelN0QDhuUS1DbGY/
cnJ8T3ErMjJPLSFXeCZycSFeSkJzPjxJcDJmKz5Fez1tMDx2YXE8Z3l0JX5ZWipfRUJDNUNxCnpV
UEYlTmc1PmQrSXN5PDNyeGNRQ1REKXdvUWh3bnxyR2M4Rjl7JnEmYT85NnxQfWh4PyhnOCRlekdI
JUBmeihDUAp6QFh2JnElRF9LMDUpNjtpSlkjS2FKRVkrY2gkREZyUjxQTnZ0dXVoNWdPWF91Wisr
JmJSVXIoem97b2hrMlN9ckwKemhsWihvdlc2ZG1YJkl2Nkx2cC1gNi1nJWNWYXNRNlZzJEMleUtk
U2ZYcC1DOUFAQyVIZWRwWm1IOG9xR0hBQUM+CnotKnx9d2ApPTEmbylsOTdeMXtCQWJmak1oc0VD
K2ooPTh5Q0RTO2VhU1ckSzBJNkdPOWhCbz8/PnZxNHZ5aHphUgp6YUNyd2lHeEctPlU3aDFHaShU
enVtIyFOKXNaI3VQez5aZWpgfCM7OThkLWhZcFhKPn08U0BlaGNXeDhyOWVHVkAKemlRPEVKQVFe
bVcmTnhqTntUUDxkUExAeDs8KDBwb05+Q1g5X2hvfHZodSttNi0qVz8tKDc4ZFVQQVF1IVRFaT9C
Cno2KnFeaVFFWH1LbT8lfV9MOV5ESEhNTE1QcDw8NmMzMl5ARDBWfStkK3VGKnh3P1c5Q2UxOWw+
JVZJeUl0QHRFeQp6VkxzWCZ2MTlPKVR4SClOQDlxQXZuMEl0dStLJEZkclZ8amxaNXp8NGpfRHtF
amdgSVZlRX5tNDV2eT5sRX5ndnwKekpXX0xpSzN+d01jeHBAOXNsMVl+PTxAXnQ0I0htNygmZTU9
YHVKPUZEMlJkRTlQaFJ2WE9iXlghMFRvMVVhX2JmCnpteFpjTmZ+USh9bjlpWktqez93Qz45aGtY
am04ZHpvXyh6SilkVG1+dkpgQmBlQ2M/bHZIN21hTTJNQGtWWX0jcwp6LWwwdlpVMXIlRDtaTloo
Y18xVFYqSC1HSy1HNU9GRz52WG55Y2cxVSZjY3c4dUJFQllMPjhuKDN9fTEzS1A5NEMKel5PKW0l
bjN+V083dEFgPjZ2cnVlWDxxX1VzdnpBN3pwZnkpJDI8QEZWUU48elN8STNJe1NISGkkd3VDPi1P
fVFsCnpRYis2aXlUI0t3d2hGKmAoKjl8LWJAb2gqQ00/R2JTdGVeRSExcVhDR1ZOZ1p7LWpPXnZQ
YHItVl5hWGxJYXgycwp6R0U4UWBGSkFZTnc+S3ZVSTRHZDhaWihlMGpGbjdzSXFuOEI7bXtNUE90
b00zV1l+RX41MTFvKFYkI3VOUFc9JXkKejU3QT9TVkI2I2FZYTR7bkQ7UlU2YnN+LUowVCYjSTZg
QkxfJGpNazRRLWZBMyVea0hBPjxKQSNQN0xhRHhGKE5TCnpjNmgkdkEpcjhJbiEteU5sY312bEYx
TXpmUGtMfGJ8Q3gmMUNZK3Moe3p5X31za3RmQ3N3M3NDe01VOy1VPzhNVgp6SWh1YH1yK3g3R2Mw
Uzw2c2Q+ZX5YKyZ2NDEjWW8lP0tCWmJVcTBLejkkdiZoXzs1bU54MkNfb21QRmxkI2RCT04Kekpk
Xkhub3RRbVlMSnloY05KQE80UTcpPHE0ZyZnVkhZYWlYZ3RgP0YkNVRITnZzOy0zWFZkQnVuVk9Q
dnlFM1drCno1KjlmKjJWam9QP196TkJYK2JGRiQxe1dkendoWXJKVXVhRSpwM2ArdkNycyhHe0ch
Z3RSWFBSNWJ2eiNCOGEkfAp6al9FdG9eMkFHfjRVUGJeKUdKO0tfbm1XaTtfam8weDdkbk9nQmd6
bFMqa2YjakhqQ2F4RktKY3RvWSM4I1lsI2cKenNufU0xc2BQKiZ0eEZmWSU5PUN2b1dpSHVzRlg2
TXRod2puZz4qdU9HOXB7X2VYemw0IzBOQiQyQ1FkeXlKb3ZSCnpOeVlzY2pvaWlvaihlSHp5NFE1
Vj5iaF47T1FKWVdndUVKTW82S304R0QpakFufGBkKHQ7eigmJH1WI0Vvc2BtPQp6UXIzMXlsfm5z
ayFxfSs7d2pDayk5I1JxYmBkT0Q3KCl7ODJ7KXsocExke0lNI2pkK2ZWTHJVTj5rUmI8JlRVNSoK
elRiVVFWWmJrbWsjU3BfZDs+YW9Wb2VhKlMkT2w7U1Y3OFdmRHh8ejYyWllKK15MRnIzMjZEOEl2
e3x3P0VxQ3s5Cnp6QT1qU2kxTTVKbVVmRDBZdDl0ZWhyMytzT3lMKFU+ezFDMXpmWXFiczlPeD03
PjM8SDZiQHtOIW1faiM7flhFVgp6eGw0IVlmYlFIfGhUfF9QekElZ2A+OC0hIygwdi1Aejxgd3Yy
TXppZlhuSlRzczdJKTtEcXhDdiU7bHN7VG9mbCsKenR9PmhxY2ZlSXU+KCo7ZnM9RExHSWY5OUZ4
eXpjNEh3K1VrOWxTdX5APW1lTkl6ST1FanUjNHl5KXVSVm9iU2RXCno8X3Q0NHlqaVhvYHFNZWUy
PSpNKGxIK2s9aiskKTlmZlEjeUxLUkRmKWhYaSs1M295K3QzRXlDbSVMaUFgU2xmQwp6K3g/Qi1r
JmFSS3ZMNkxoQWd8IyQ9QVpwK3tVUWFjO0B8SWZPKyRqY1ItS0FLWnF2QEQmcCZ4MG5RbE1UZmZL
aVQKemE7IzJXKHlZM2NxckEyT1JhQElgV0FiTjA+NXt9RksxZCs5IVgpemc5O2pXak4lZldjZjlg
YHFZd1dqdFBiaTFHCnpJM188STt9WnlmSmMxeyRZT25xP01HailAYyg+cjtQQSZ1ViVmUj90VVhr
WXhKakpPaHN+ZVE4c0p+UGw/cEdQWQp6KGM1b0picn5vdWEzQE5iRm5wIUdnbkpKbmp8dTRBe0JI
NDlFTndFRk52MnlhWSZ1Z1ZwSVBVaTNPMT1DPj0qaHkKei0xNihhSzBVXmprUXU+QlZtKG1HYXdG
e3gyPUMrdj9ONlA5NFBCWk9eKGo/ZWUkRXxRMmojSn43OUZuPVVKMTEwCnpWYUpBQG5mOyVOeW1V
O3pga247dmM8PWI4ODV2bmlhWGRZPyZWJU9MeFVTcG9qSjwwQSslQ1FjPWdiS1E5dFpDQwp6Tm5G
ekkkKCk4VWRMKXRgeFJSNEx3Y3pTQkN2fExhTE8pb1goZjhycWJoUkt2OW5ke2dQa3NQVGRWbnQj
WndmWHgKejZeR1p1X2poZ0Nld1V7SVg7UnY9cGwqRV5GezlIMFQ8bn18aypOd3RwUDd5QkM5QCpT
KGFnbUpFSCg9WlF3Xmx8CnpnfXAwJiVVWjtCJFp6a1lQNyorUXQkVDtWSlB1YCFZc3YxeHRkV08z
KkUpTVRVMVlBRWs+UUZve2B0WFhZYTgrZgp6O3BodiZCb3U2SUEmSXslKHUwTS05MzZaLXhUTFhh
cjNGQDtfU1YmSTEoU2E9KXkqWHNtVkdWNG4+MVhBSypWJH4Kem5tMzN2VlVqb2lyVm5GcCVfLSV1
NWxaZVUmJFRZdTlnJll5WVZfcUduZFN8Sno3fXV2VU5OO2FZamRyJDV4eTsqCnpua0Nhfj5pV3dl
MzViey1eJT12SCVYKzVpNjhxTlVJJE0mSzthWTglamkpUUxyKS0+QDR8eVdyNnklISFCQl9ITAp6
cCYwJmRwb2g2YktWeFVqZXdUeSFvV0krNT13KCtTOUNORWNrPVl1UktjYEhIP3hAN2d6fjFjV2hi
eSgtQlJNcFIKejAkMFVNcnglME5MaztmSGZpJCk7Rj97NHokMjtsK2l8amwxWDNNb25SeEFQcEJE
Q3V3TW19OXM+ODltKCRDK0FtCnp7dTFLQzxsU2coJEt+QVJBUmQrfTwoXjt9eFVoNCs2PXl4VURa
e1o+aXdEXzFfM1U7UGJxdFQrbE5kPU5kQipibwp6SEY0b2o/SiRLT3lQKUFgenJTZ0pUaGBoLVFE
N1ArPiQtNUNeUEVPKElxVUtyXjtzT1dLWUNGdytsYGQ3VlBVLU8KekF0czskLWsoRntDZE5ZeT9R
IXFVemBRYGV4bTxTbU1XbigyTVp3OChrVHQyNk4wOVR+SDdXNlUyakhXbztZTTRlCnpyUzJgM0tt
ZGZYVVBpY35SM0lCb3JKUmhOQm9+Qm85eElpQjhsMEhaRXZPaDl1SURzc1dGOSZ2cUZ0Q2g2czJt
MAp6KzNhM0kqO3JoKC0jUiotYU9QOEZ6b195fGo/JEJ8MmJWRUNRUDcpKTR4NjxQc1JoQzJfdHBi
KjIjPEd+RlhTLSEKelhmS1dgd05qWm0+YDVKYj5WKCteIVNHYF9QVUZFcEcqeXpqaUR1VjtrYE5B
YlpqUzlKRGRvdXxJQio/S21TfUFzCnojTGNVeEF7NSpKKE9TMytvaUN5RzMyfD1rISRpMWxmKnVw
bj9PVlN+NFA2elVZUFpxajM3JCZLSjhOcUl5Y3gpdAp6WD9FYyNXXkI5MVR8dmUrNyRHeUtURHoh
VihEYzckaFZ0NX5TWTs1NjwoVSE+NFpkPStDQTtWI1I/TXoxWj9QcWcKejJ1ZVk5N0l9ezd5ME8p
Q0tGZm11WDU+SUVBWl9GNlNYJDZmfE1JOzBeTCFyVEtyTXgyPXR3T3B6MnRmMWpwRkEhCnpRMl5h
b3FyPihtWjw/cXBXRjlMV3hOUjxyelZscGxTK05nVUxBTDE9NmMoMnFlJkdONFFGeFF+VyFUKSU0
T1JBNAp6YHtNI1BFOURLKD1kckYlbS1EbHAqLTArNz52TjFXMWw1SDtwNngpeyhCckJRMzxsSFhD
MEZ4Kjc8cU4wRD1kJnUKemlFbEFnJWw/UnMlKkFpNzIwOGI2ZUJeWFpaVkIzUTRyUmwjVWFhWGx2
MjFlc1JZIV9gY3NmUHBeRUJmN1kqPDFzCnpGTm8kUjNWLUJZUHM7SzJCd3t2eGRpLWBQVilOJmRX
LSsmZkp9IzYyJkdibztfVm9kP3dxWmVRJmxBTzM3O1YyfQp6Z3khKTN6Wlp+LTdnRUgwe15XP25U
TElrcGpzQDNJb2M3dD00UCFMSVUrTFhBQmxqVEhMTy1lYW1fS1ViKjZGZSoKejdvWl52NjgrR2Im
KlA3VWJDMTNfOHBLeENnfUV5cFlxY0Z4dERFaSpzT0VGQ2AoV2VpLVV3QUdSZXdFNlRsMGtrCnp6
MDVORUIoX0I+PW94fVY8U0NPX1lzUmJtP2hVbjc1ZGljfDZYOWMye3Z9VzdHd0pAWE95KURnX3A/
Z3VzNmgjKgp6e30meTQ+RGlpOSZCejVpRzRTPnZzUD9CSzYrND0lalQ1MHNmVS1mfTZPQk9JeG5Q
YytJfis3YSVUNXZEen1qdGAKekw+fFBEJGpCZSE1SjtqdTxKKStwOWw0NUpoPlk0I0w+TUFhYnJA
OXB8OWtfN0MqQGMlZWdaPWJ6Rl9HKThCajd0CnoqNSMweXtiYXxxM3ZhXkg9RUFKLVI9TDBAbENH
S0UtWEtzTjc+Y0xRJkdIaVVKTG85SWtAKGhGOHgrbW90THorRgp6LVFAK2koTWFsXkFZY09EbTR8
dWNOdCVfTSZPbnNkSyRvRCVXMTwyQHZ9O2EtbE1VOCZBZGAxWW81fnJ2UTRqVFUKemk5bShnWHQ+
aSY+PTJyQHxOOTg8S1pPMWdxQHpWZkJwdVlQSFpua1M2ezNzMUYhSmFONCpuU3chb1VPYCt1Tl52
CnpxO0x0cVdoe15QakB5TlNWWjFsOVM1X20heWckMD5TNCRze0FiTkNwdSRqREdrLWw8OzcwMVMw
dylBU34kRWxpfgp6eW8hdUReQ3BiX3htb2szRjJRe3thKDhlKHJuMXR3MWpMWkVOT1VTJWhiWEM2
eGs3b1I1Nj91cUxGWjBIcGEpbUoKejY+NjVNSVNHemJ8MVEtX0JhZXFIKTR2NUxeZjB1VFNNZHlK
ZDQ+dl41TyE+ZWBZSXBEdSVNJHUhYDlgdW8/MyV1Cnp6KkB3NCRIUSVKK3sxSz0oWm5HRlhxN3cw
RkdlenwrJSpONio2dSZrQSU5bXVuTSN3U3txNHYoU2Y2R1hGcHswVAp6WV4qTz5AbE11MXt1QT9L
eCFQeWcrWWd3cnpRJVAtYFNUY2JpQEJWYSZRVSZ2VlBjT04tVyNkUyhXbStxP1lSUz8Kel9zI0l4
SFNOKyNtSCVZN0sqZ0ctRHxLfGA2ZmNIWno9T3xwRFFDTlMmJWhLWj98PiNfYHR5NDtYN1RrNW1H
NnF1CnpCJiQ7UHE9cSs0MGpPbFV7N0ZTYHNFQWIrRVVPJjQ/O1hwdkE8TVcpX1ZLI0FxSHRKfCgl
Mz1weENIUFYtfWwyKAp6Y3tnRF4hUFpLYldELV8jc3AmX14yZj52VitgK0BTRlUtPVBuLSR5Vmds
fE9RTTFea2BKWnV7Wl5pfkQ+dVImKU4KekpVSXlMKT83PkZZSlkhZkdrd3tuU0AqKFdfQzs/KDNJ
MCF2UyhqPHptUUBfdjNFJnlFJSohSUJ7e2J1RV90OGlgCnpUam0hVXspbFM0KnZrJDUwajw8dmxv
eCpJO3lxPEEhaGkwQT9XaEZVeHBFai1pVjN2cylJdlFNXmdNYXsqc2xpcwp6cFlZNmZ0K1lfWXs7
all2QyRxRm5ASnFSVTJQPzhOXktgfm9MLVF4bXdEezFMVFlqSkNtUzV3QiN4PG8jdjJOSnwKenFv
Z1c9Q19sWHx6ail+M3BRdUIyYndfWE4xbWhoP1h5T345QXNPR3NGX2V1VHV2biV6ZD9XUEkrVlUt
OVhzQDlyCnp2MyspeEZDTGs1JV5ZcyRQVzkjQ1RORVVPP1Y3MjdvVlVfeHRDRDlrPEN6VUs1biZN
R2k2P0RBVU1TamgrfT9MWAp6MWRDLWA3UGVqI3pkeTJOcWJnZHBXMkRIQ0lnSUh6IVB7dzFsJXs3
JjY1RkVEalVVM29WKl8yZkB7SVBUVzN7c3IKenF8c0Ixa3E+b1hmN0Y2Xm1pPmchcCZoPH1tJWw/
OGsjNn1UcEZAX3QtY04kbmdhZjtzQCs+QFhffFd9P0MpXnU2CnpERi0zKldsWl97K2xNcFVsanJ6
ayM/X3xOPml3UF5MVzcoeCZaeDs9OERKd3hObjJjfXtWdkRgQyZpeiNIIz1iRwp6M0FEWCkhT1lj
Oz5HS1JCITdaTG17RTdXWXZ9aEwqZ0g2bkJKTStxeyQjMTcxQj5yc3B1Q2BObiNjfFRjKnFoMDkK
engwPEYqJnpaRWdUTEQ0QVVESzZrKWBZNSpfV09ZKk97TjhZbTRic1lwSkM5RjNTP21ENndRK09o
Tm5RPzY1UGxICnpzQGY8dlh+RV53d2ImYih0REB5RGBsbHh5ZHhQR3JoMXMjV3A8eUtkQk9UTjBQ
XzJPcDBZNW1EZDBUeFo4cUFtNAp6blRIbUR4YVF0K0A3cXxsUDNDSzlxYXlSNFZwVUBKaTVWdWpA
UEp5Mj4/VllwIX1CQVFtTWgpMUR0bTQycVVGeGEKejQpVUE+NFducXJOaXV0SWkoZHQ4KmM2bTYz
MVJoMjVPbkZaKC1FeHZ4VThLd2MrNCpCPn16Y0MkWSkofiN0Nk4mCnpsPmx0eDw7ZSZ2NUVuMHRi
JilXZ1pDTShCODVqO3hfR08pJE9wdVkyMmkhJXVXN2lPPUQrbFJ0YUNHPntHPTB2Owp6R0sqIXpa
JX0yNWdFMCorJGpBeDg0T209N290MkAzZn5EWWl1QkRwa2lNMSlNUE15O0QmKGtzZTFCYDx+dXpR
NCEKemtsWHElZG4zJE49SyE4R1VAWWlMKExeNHBjeStGUUhDb2BZMWBLKVRAX2hDU0JSfD9iZlIk
KmhzZSR9VUdXIyVBCnp2V3ZSY2QjPXxYNm50JCNkTWZoQztzfj9KK2N5YGArOFJCd0hZR15va0dD
QyQlMVNRNWtAcE1OcnFLPmNxdFdiVwp6YFJWYUxJZit1TU5CWXlzRkI/RHJ2Pis/cl5YQVJ2diU8
THp6JV83S1RYSit1I0B1KmcwQTREeD5RPDtuLVU9eEMKeiU5RTB+cE1uPiNMRmVqUHhQOVNvZyRk
P0I3NzFpPnQkb3t0dTtWRXJSayNSMnEwVXFYKF8kP3I5PHAlRiY4TiQzCnpjalFIbHBIQWNrZiZR
VD5SakUraGMjYmt8VTc1SmNGQXBqUmhfenIpPmdoWWBPM35gVS1idFZWO25JeFY+SipXZQp6Kk1h
dFppcHV8bHpAcjJjcVhOOWNtcWhkS0U4eHw5ZUMpX3NVKkAkSEtaPWJpUVp2QmB7alJZc1BDK2Aw
MSVkKz8KenZod0NSQUUhWD4/TmA+S2QoNjsxQ1Q7dGJ1VD1yOU9kcHJmTEk7K3N6MGpTV1Q2cVJ5
RW88Mmw9T3Y7eGZhI3llCnpAaX0rcUlueW5BMSRLPHtIRn15WD0lbW50LWltWSNrTDAjWS16JUhC
MlNYT1pobjxqcD48RVdAYilBQ3lRdDtXJQp6enxRNGNSR21Ac1VRM1NTVEBMamNaSCo5OVF2UW4z
cCFAQyFkfCtiYiNkVyp4b2p5Yl9zbnslODRvaTdDSUxaRFMKekgkJHUhaysoT2RJKlJGQ180P1Fy
PWpiTXBrIXVNcTlfaUIoRnxubn1rKXhBUVhha28rUzVKKzkoQUZWQ0A/OXVACnpgR0QoKWxERGUh
c1NFTSRZKTxGRyZaWGZtLUMyajdjaG4jUWNobXFCeGw2ISshT1h7OVJETUAka2dtXjY2e3M0cwp6
bnlWQTVfSCl7X2ptYiZTUHYlX0t5ZDghUGBkRyh0anltIXdySnBWaEVsViFOSz9iKnc/NT02Z0xw
ckxGY3YrKHEKej0kJSNNaTwxQVVwMEdfZU0tZHorblczQ0ZEcT1yOVhMS2UkI28wZnBQSyVNOUtQ
S3JJMGV9Z1JSOH5gN2x7WWlsCnpLRTVjXit5PFRIcklYZlU+WUJZPUQmKk09KzxGTHgzaypLaEVw
NHppbHZ8MCVgSk5RKHFMQTZvIyQ3ZlM+TUY7TQp6Rik4KVBFaHNjM1YjOURzeF57NzArUntmUkA3
STRVS0xTI24xfGMqRWtPb29sb2QzLTVXaXZxVTl8R0NwX2g8VUIKemF+M1ZqXlJgfGdaWXxoS0JI
QXpUcXRuPDRla3FHRDxZcihjI0kwRF5FRURGNXpWcWFIQFY+VlAyN3wxKUw/aUJOCnohV25OYGkl
VHE9PHVVZk01N0xxbUtVdFg2XnlWMXBadDYyeWElVHs9Q2ZGcDt7eHlNaTxOP2xQan5UPUN3Y25I
UQp6WEdJNk5sekZHe19BT2Y9R2cpZTxfNVpNKFF8WTs5QGVDdEg+VjZPTHBifSRPKihmaDVIZnsl
VDBROGVHNCp7PXwKekpsMHc5VEFUbW1ZT1A5NGhzOVM/KyskUnRwZkctZXt+Xl9sR1Q4S0F1eDhZ
cDQzeDFHWkBBSUAjd1Rub3dnYWQxCnozMlFuVigtVUJ1d2ZGPn1tMjtSR2RXYDY1ZG5nWW1lcTw3
RikoOzB9N1RaNzRrYV9TNiRITFFTNndnLSQ5LUpxbwp6SGIkViVmNlZiPD9aPnUzd0I/QmBxS21a
IVlEOzZiYzxCRTR5VH1LUUNvXz1xPHhCUXYqNHk3e14jektiQ1U3Rn0KektXZ05kKkZmemVMc0xr
Zjspe2JzcmlZOzVgUDh0aXJuN2I8cH1VPCVmTFpJeElkUiNVcnFnISFaO1RWUXZIWEBuCnpjTlRm
Iz0pPjQocG94cWctP2dEX0tOTU9BZDJARnYzMCEjKWVjZFBYaDlsPShANlRqMWp0cigxJGZuaU03
USZ+bwp6Qj5eVEF3OF8jVW44eT0oWHFPfkp5KC1VQ0lDIWNve2BoWDJCeG9nezg0REM0NnwtcXt2
SE8hbkBvfW8/Z20+QWMKekJhQE1JcTd3XkdEdXFOYHV1a2NPTThNNjx6LTR1SW90PER8VF5BSHB6
ZE9lWWk+bUpqZ25MVnwrVWolVV8zQD1+CnpINXN5ZSh9KEBhRlotemNtJWFYYlJKJEVwVGFBajRG
dVMmcHlzaWFDbkhxLVE0ZWlSOyl9MWpRJiMzYXMjJXRAdQp6NiNZNjxifno0T2dTSmJTWF96VFRq
PX1waT5EYCoqRSY/TFFTalFuRXd0SU1uRz9WI3VmPGokSyFzVGxAMWJSSXUKejBvWistT34jQjhh
TnxnT3JhZiopQSlZTn0+fTIhVW98SnkoPmNXdmhFQCFxVXZ+czNlRlMwUG1DZWpVNC0takxCCnpR
QEUkLVF2U2xvLTQlLS1XK3NeUm81cTA/IXJtdFowT1E1RmB0TDZFQGIpbmxCUEY5bHtnPm8zX1Bo
UTUyK3M9TAp6Z1FVWk9ZZTRle3R6R35vYFdKOzwlbUpKND8hY3Via3IrX148OU5ybjttekVXc298
I3o/LXohLWA+elF6KCRzbEEKellpNzRhJnYzUH0rMGRre1J9VH1wbCYzKXZUbTVSaW9kNGNZdiRN
I1I4OXVGNlVVNjNOcXgtS1VAKCpAYUQ/T2d6CnpPYiFFZSRvVXNPXnApXiN5JmRrMGpKN3FVeytK
Q2ZTJl49MVlAT0xrRnB9bD1AJV9KYXFfTElhPDhaU34pQUBEXwp6ZEB7MEFFTGxfTnhxentjWihG
NWJIYkA7VzRiT14mbmM9Zl5wWjF6JXl+K0dBOTdNTUFGMyFoaTw1NXRFWEV1anEKelU4NHlxO2dL
bEQ1VDNKK2VTQGdPSz9oMUx6UmMzYUVCfnFHSiRiYjgwWUo3ITUjI0koK2BTR3xsM3tERmktfn1U
CnptPXRqeFpfZmNEZGtiUStHK303YmRJdlZzKWYjUFZrclAlcTxsTHhOVEw4cj1ae313VUI2eWpF
MWIjflRAVDVzeQp6JkpHT0Vvc1BLPktmdHZud1R3KSg2b01jYkU4T3pga2k3bDUmaSEwKVZoYFdR
Q2EreyE3Rj5YKm5AcylfdDI/TiYKekg7RW5QSkdtNFRASFJVSVJeeTteQSE7a2Q1ZFhQNVVffFUq
LXVnSFRzM3JLbThiTEVJZVJpY1A5NWRVa0N6SWorCnp5YS16KEl5VkVWU2NpJTNieWB6V1ljeDc9
Mz9jWXItbEhPSGVuPjNOQislO04qKnVDdUxkUD96eUFLeXIxX01oUgp6Mm87a35OTXlTNWszUm9h
Sl5fZD5qYjBgbXB5WmZBSHZNWVJqYiVZdCRIenJ2LSZ6KU5jM0s8NiZ6WkNMUW04dH0KejwwTGIx
SzZfb2h2e3dlNHsxang3TiZmSVF6MkNoMEJPVkh5RWxkNl5eNDw1b20yfXlxbm0tUl9WYlklK2Ul
ITJXCno+KEpJRjsofTx+MzZfMyZBOTNxNlFTblQqa1Blb3VAWHJtYEEobm1+ajR0IT8rWm4hfER0
bF5LRUdgJVpvODN9MAp6SkZQbHhxKnNFeF4yfX5eYz59RDJpcWEmJSRBJGwwUkZHQ2c3VHRNd3p7
VGBFJjVPYn17fHpjQXNUSER0eHY5cEQKelNaO28yP2Z4JE1PbnVxKyhlcyRRa0oxKlEqczklJXQj
Mk1CQnlidz1SQUIhaTU8aVhCKXx+bUZRWiU2fHdhOSNDCnp6Zigxc1hrailxNDQyVTlUa1gkbCtR
XmpUMmNPRShlckp0UVA4QDE5UUppdERePTY7RSYwUnBKb140SUZuT313OAp6Rz9FYEIyQDZaPWk4
YSkjKG9IaEF6TmR9dlIpWVckPTdHa0wzUn4kbGxCYmYleyVPTlkjN0RCKWRUZEhFVV8xK34KelJq
PiNGZSZpfnhRenBpI3dTU2s7O314R3FfUE9sNWFtJG5xRV9VIXY8R1BNMWdhZGBqeXYqV0tQJH10
U2RGcTNpCnpuNTx6KFFWeDh+JWUxbGNWRTlgcWIlME1QXn5xeS0kRU9sI0dzcT95dElLV1ZxY3FU
dndKMHRgSnh4SiNeTnpkfAp6cmduRmQjT1dPQEhCPmZvZl4kRWlCN0B2NTxuK15eUXdJXllJWSpE
KTdeY0hNPXY7eDQ0ZEBtI1UpZkd8V1IxKVIKejBjNWg5PjEjem1WfWd7SSRRdGFrT0hfSVlOaE9v
ZUwwdmBWXmlEJGRicUtmRFcza0ElKC0maW8/STQhemZPKDJrCnomNDYmQllxZm5WSk9hb2dmR2V+
fXp4REZidXVVVlJFPnhNc1VlJj4jcnV0YHsmWmpqR1JMZFR4Q1J5KEtMQ1UrJAp6VCtPXlNQbzha
Xlhra0A9LW5ZVTY8TkE8NEdePyZhWHxqbkdYPWVFPHtjPDYoZWl+I1crSnteOGtreEx2PUltOGUK
eiprKDRYbUkyJVFfUiV9TmNtZTQmUjxTKUVEaUdNZEVeMDJpWmA+eGlSaUhgQDRJXmU+UG0tbH5O
UkIzQDYpfl9FCnpyaXdgSnBvS04oOSNGeHtZc2N8TmEyKUVjI1E0T1RTKFR0TkFzXlpZNGJmfDU/
YSs2cUp+XzkhVkRKfGReZ15QOAp6SnRieGVDTWF1X2tlZ3FWKkg+bnc8Pk95TGtMN0d5MTxXZmt7
R0ZMJldual89YVVDRlFoRCFDPTVpelI1ITJ6IWQKemZUZnl1MT1LMCtNM2A4MVpHQ1FzZSFXREgj
PCMlQU1TXkMpcDtOVX1LKXA3bG9lWF53KHQxUnZhYjs+ITtfOX1xCnpOSkE+UHhZUjBhJCg9X0BF
TnVYQnE/dzZQRE1pe3R1T15ESXB+NXIjZSlYKFI1ZXVCeiR7TXNVS3w8KFchNGE3ewp6eiMmejtN
NDV3P2ImPTV5VVMoMTYyOz9uYTA1eSo8SWolRjN4Ml5CQTFHSXJeZjY5XzFkY0JqT0E0V0AtSjhO
ZyYKejRVcEM4bm5BcFVkMXFyYjBtQUZXYlRWaj1naWNGT0V7RCh6bEArNDhXWmUyZD88VEo8KXBY
TDhZPWlZPGtZV3drCno7JFVnMWN7fnM9aW5mK2QxR2Utb3pjSm8qdXsrJHtBUDF3Z2l8d349NnMl
Slc0VzZUcj8ldkF6ZiZQWHVtJXAlKQp6YmhEXnteI1luJnJ2TTwjPmkreSlYUXpDUE5LaWFQYmgw
bHdKaW85e0RqJXs+MW92PnBgPlFmTEQ8dT1maTw2S0cKenNoM1YmbGIlSEwodDttJjZuNVpfbDwj
I21KPjlgIWdJd3hRVkhLfEdmY2hNey03OUhmazUoS2AlZ2pYcUtAS0dRCno3LVBgZm89TDM5bEFg
QGV4WTR0M1VRU3F8KjAyJjg1T0wpQkdGdXIqUGY1JGRIfntoIWRnIVZkYTtweXZ0NU52Twp6dkh0
KUpIUFUkJEkxZSozNl5kK1VGI3p1RypuaVR8JSFCZiZrQUU4ZSFQal95IXdHUEZzXz50NT90clVR
YD9ITSsKekV0fHdNTGBKe3oyNHNoUGxeRTUpJnkjJWlmYmBIbGN6e0crKG14IzNMTVJ2fHNNYWcl
cTdzTSUpaX1lblVBKktPCno4PDFhR15GfG44WlMjdm8rWE9xbz0tantNP2MzWGA5OVYxIXMqTmBR
UXpqQHxCcUtieTFkQCZufEQ+MjZ1dHFvegp6JTxgeGV7ckRNajhTYXlEcFBvQzFkP3F4JWhjMWJQ
dl9LZHdlPGgpN1ZOOGZANXtoUHdOI0w5WW9ZO0RaSm5+dEsKemxUQjRsSzJ9ZXk4ams8RCR2TmhD
KUNDSlUjTVkoRXA8N2hufE45KnBmSXxSQmh2OTdgWClYNHNia0dsYyhpY2FVCno3cHVlPGYhLXBH
PUFJOFZVSzA9SGJUTlp+OzZgYEFfMC17MG1rZHZxOEdETkFCZ14pZmpuXllTcSkhJSFYN15wYAp6
NXF3enZyfEFJSGoleysmYlB4PCM8JkI5K0BaXjltaGg5PDwhK15PKlNWWTlGXz1ecl5zb18mUFBE
MSNle09iWDAKekNhMUhgdlhaKkd5b2wxQD57cDElO3sjVD0wdTBpKDNtUkhlaFdtKUJwezdMT0E2
YmkwQ1Z5Y0hubF8pT0E7enVECnp2VGRvO0V+OTxLYzQ7R3ZIWWMqV2h4elE7LVFIZEFwK01pK2wp
MUhnRTF4S3xsZVRtbXNkP0BXVkRLT0g1e3RpYwp6UGZpIUhlc2g7Sj97VF5ucUBQJmZ6aD10YSZB
bnNfWVFUd3leM2I8WUhpOHw7UVRaMX1aJHB2Y09wZ1B0MlhpXmkKejMpemw/Uz9qfXlePmsoQT4w
YHVDSEtJZjUmUCRseGxVWlEqPW9QSUBHUERuVGhhdHI0WlJUN2VzSm94bygqUncpCnpVPWB8KUJn
eFlUVkpSezEyN09ydHUjcyVRVm0tRWNiTyZXKnh0K1ZTJVVaKCg+dmxXeUxaNiFMMERyaWNXfjV7
RAp6LX5vOzxCZX40Yldnc3YpXiYjZyppSyRib3p4WE0zU35WfiFfWW0mPSl0PVJDd3s8KUNSZFJ4
bUV1JVNXJnUjRVAKeihgTk5hJm42OXNWRVc5e04xeXJaMWtgWiQ8X3FgMnZlR3A1eDVyUnNXRFlS
UGlNNStDYiM8fjYxPz93aWZGcm9vCno5V2s3UztAZU4qNjhWZX40WkA9ZD4yRiVGalZpXnxWUUha
YyVYMntBayQ3I21RdDJ3MXJuakRzYTxPTGw1ZHRxcQp6PnBOO0BEeEEtSWItN3IzKU4rXl9SREZ8
dXF5diVpZHlnbWEqZGhvTC1hRTBSQlBMaTx4MXZLP2dQUDtCSWcrfDQKejhtMHtAZjluWTN4JSVV
c2EmRitgS1pXJntHSlJiaHEpOHJ+WW1gYVhgdlJsdmMpXyhVPWVOVU9mZjJ1QW1gPSNsCnpvQ3V6
VU0rY2g5YzNFTWUxREJpekhROS11RHQjPWM1UXU3VGJ0IWRzTVNxXiZQS1Ioe3skKXJzTTFgR1dK
MlE8LQp6JWVeTXUyNHVYb20zJSRjaWY3WjxidzF0dnVfUUVEayE9WGJgNyphdWRta0ExbGxXKU0p
ZlVfalAyS3hRZkIkO00KentGVUdQNHBQN0ZgRSRUZiYmSWVfb08zUVlwb1pQY25yX05Mel5IWCtt
JHopeUZMe3xMYkUhX2N0bDBGT2ZHbG1pCnplN0RFdkY3dUpNK1RvKGI+K2wlcmRncVdWUF9LdTJ2
fGRiJlh7djxQN310MVBBNXJwfllETUpIPTxmXlBUZkIkJQp6bE1YeWdpP2NnUXtZMEVzUT4lQm5h
SlNfWWlgI3FmSEB4VzxASUtrVHdec1M5YW03Mks/K0s/X1RrQ0ckPUY2XlgKekJVfTZpaGozYiN2
JWFOOz1AOVVmbXNNQHtqTjNRME8tZ0ZWWj5CdUVQY0BVJWQhR2hBJm9yPFQweiVNdEtBNTZVCnor
SyR7Z2ghKDg4JDxmb2g5d1VEeylHKUJHSlRxdiNfYWt1UHE+WTN1bD1lb1ZfKj4keUtvPndBUHJ1
MUk3aWsjYAp6SSMxTSQ3aTNNd0dnZig5aTlTWSpWSkE1JkgoJj87Q3pocXRtRWdMOG56X188SFIw
IV5sVHVleFNwRkJwPVZONlAKemNgVWdPcihYfCQ5bi16ZG4xdGhKaWkqcmBscnc9UXg0RDlYKmph
VkA8ZXNfVXhVMjtKaSZfYjxWKUpIRmYpOVRCCnoqQ2lmTHJzYkEpSW5xZmNoUDQqYmRNdll8OSVq
T19afGApOzdJcFF5NzI8RHt4NXN0R2hjJXJUUllqJHtibm10fgp6ZyZuI0dzV0o4LVU4dVNpPkEr
MHA8c218dkd2YCEle1gyZERuUEE2Z2YzdX5gX0x8UmRGbCZ7cDk4ZzAycWFKUDEKemspM2FQdnFa
O0Y8LXM2eWBBb1lrWXtUJjJiUWhfaSRmMlJPV3FqZGFfVDN4ezFmKjtJb2E0eU5hV2BGTDE7P0ZF
CnpiWTd9S05hOXZSTUEtUH4zV0ZRa1k1X0daK05UTnFHWlY0TER7VXkmTnQ0bnIraVo5YU9YQGlr
V2QmNDBJaFE/ZQp6aTFlcH15dnhwYnZEVnx8ZkA0KVN2SHRaJUsodGBKOVJPOEZ1QW80fUpHamMq
ej1VMHY0Y2tsRUt4a1Y5ZyZvfWEKelY5eFhPSUk3QlAlWmwpQj9lTmR3eTZ0czlpI3xHVGcyKVg5
YWN1Z0x2JjEqcjNwOUNsaThpNntjVDB9amphPkcrCnplblBeRDgzSytuKz4qdE15aWYxQWYyUGl4
U1BDZ2xRczZMZEY4WiN7Ozh5OGwjNmZWUG8xUFReM2ZmdWpSPzlqcwp6c2x3aE1AbnRvWjRZSihy
NX5rcmQpJTI4IT1PaUVBSipVSzw4TFdicGNfXiYxKy1iT0ZeQHx9XyNyKHkhYkFgPzMKeml6TExg
U00yezxKXiYkWmVYdDs5Xld4PnR4PHIzbWpGJU08Ump0cjVrak01NiojYnYoMnE1VHVaYi0ldlJF
Vjx2CnojfCFtVEtCYkB1Z3g5IzVIZz0jWDdmPFdpa1BZaERKYjE0RVUjZ2QtbE1TYFE5MkZRUz5B
ckJHTnNtZThQcDRVIwp6NW1kJndNVGg9eUl7QTckeTBEWXxYSCp9Sk1WcWQqXk9NQGB0YGxoY25P
a2kwYkUrXn5qJnZJdEtTQmxPY0x2UiEKeiljY3JZNmE1Qy1EbHU2SE9pJWNTN0o5KF43P2cySlU5
aTg0NURvRChUeyNEX2JkY09vJms8b2RWbFFoKWt4ZnglCnpvO2M9ZHBUa2AqJT0hI1o1eENuN2tE
NDQ5VjR6dHVIVTdMcllqZDY0aX0tWUc8ZSo4SEZBdj5lYWowWGFsSVl8LQp6TnJyYE1xJEdyfW92
fllfRDQ5JSVmUSs5Plo8QHc0YmQrKG5YTTx8bHJTe2t8RWdYWEo0JGh+WTNBS1UkTjw2eDgKeiFr
blg0amlXP25Ke3xSTT18RklfKG8jJS1TUVQxcXBBNTZ+SSp2TE4mSitqZjhYV1M5IzE1KUtIMCRg
VlF+YVNICnoke154TzUhemJHYklARmBrTWJmaTRPJiV3d3xqRClFX19uT29AUmA9Pk84RiQxcGwm
OFk8fiE4JCF0fWNgby1LRAp6KyFKYmVRVkBjO2FDOzI7OTNVa2AqZGAmTFA/dlU0eHM2Z3BPPTQr
WWI0PGZuezFJZlpMLV5YI0pFdSkzaXRUbVkKemI7IUNGI3BmaFBebE9gd1VjcWQhWE5KclhTKjRJ
TEthJXcrcFZZUSVaWXRQYm9qQDFNcW0raFUxN0h2MFEwcCZgCnp5IWh3SDdEe1gobnR0ZlBaO2Uo
U3FEP0BSNSNHbHhiblA8fGl9fVE3e21Ud18jJEF5XnBRPjA3JiMhS0o4enV9WAp6M1EzTXFeO3s5
XmREU20qR0d8YG85bkoxbjJoQzxvZ0kxPXBWdyNrTkVXcWokTHZZZEo3Oyk3QkhKdWU2U2FGUmoK
enhxeX03OUxYRzttNGVjQ0RKZkZMc2IpcHJ3UTFNPylFKEhNIS09JUczVVpCd3QzPmhJYGBrU3Jf
aDJNS3hCUXltCnp1RG09dFRjJSlZeD9iNDl2TWo0c0hyK0w5bUdnfFlgZXkjfCM9YmtvXlBUPD9f
cCEmT3h9cjA/WmlAZ1MwcmtHVwp6ajRoZWZlSyRaKnpWcEojUSRsNUBTSEZ2dj17Vml3Qj1Dbklt
eEhCMm5eWj5IYkkqZCtLUEclVjQwYEY9PyNwdUgKejNLfWtEQHY1JlVPRH1Hb3p3R3NgRyQzJTx6
c0Y3YVhaOT5lNnQ2aHBgOUVoKnp3b2J7bUwxLWMpNXFmO3tnK35XCnomb3JKa3dMbzRQYFlMQzYj
Mz1WaiRQVzU/elNQQ148fFRnZiFuT1dpPHFqTD1IbVFpaikmSl95VHpfZk5OMmI7Tgp6bCZeOT10
OFpTaXRSZk5heyhIUmpTQHo9MTgoa0ZoVEteJTB8SXk2I3dvJmRkNFR0LTNMaVReZzhFP0NCSn4/
Nk8KenckaVYxd35XVlJlV1h6Nm1WWWdBNW97Y0N3I1QwRnVXfnQ/S2l9fXBvLS1KZjIza2BsPWJ0
ZT4zJUx3U1E7LXwrCnpzczl8WiZIM2VgPE5XSSU/LX01cDFyXzkwKnhVI1MoQWdqOFZwTXQtfDc9
KEh0ZGpHO1R5d1h7Xm1sb2B7WDR2awp6ZChJWUtUNkU1d2FPR2IkengobSNyTjk1UnVKT1lZcWtX
JFE/RCtkJXdkYylXX1ZAYTR4QTxSK2VZM15hVkVKWj8KenxEJFlpMik1K3J5bT56QGAwXzNRVzBD
dmpvJlRlfV5aIyM7djx3eUE3SFRfVHdEVF55VzI7an00NTslYmtLNzwxCnpkTiRwQnMxNU1Idile
VUlzP1JJX0tLeU8yYDhMO2w+cH1rME19RihhelZebzdaMUskJnw0aSF0Wih4Pnwkan5GLQp6cn5Q
KUJncVp9fGpEO09QQEducTJge1dYRyYtdklMbmczIzxYVX5sZ2FPdWk8b3hsN0c8JGVwP3Z0Vlor
Rnl5TzsKelJAaVR4QDBLenoySm1rbWFgflBTYW8qIyRmODdYdEB1Q3BgSzN9K0pAKyk/SXYtYWt0
SCs/fi1VIXxeXjlOeDNTCnpkUzJtST14V3F4KFlZdFloT2FRckdSJW0wS2hKeGN7dVIwSUdVflhD
YVFFUTk8OVBxeGAxcT8hRk83VCF0XzhtdQp6LUB7YWV2OzhXeSlYYSE/Sj9ISCVgI1JXVE1qZWtx
cXJPNlEqSmROIWVMdyZIJS02eDV8TmloZDZNWnckZSoqR2IKejZuI3N5Wj8pKEBDRz1hbHt4K2sx
b0FtI0tYdWtERC0mKTZTdD5iXiVgKUEqfT47RjNkTlh0O1ErSSNaTlkza3RoCnp8SUdWZWtRWnR9
eytnUjRJenBMKHt8NylfTXFoPyRwVWlQK3t9N25oUikxYnF5QnxTZnt1Yyp7R2xEQ2t7XihhfAp6
ZDIhcTJGS147P0UzMD11bEBHRH5QdnAkSSV2K1lTXmtjSTY9Kz1LeD10V2x9UntLQit5WlJNUkB7
YiNscCRCVHEKelNKM0JMWTwkQVNAVmUoOzthbUpLTXoqcXFjS2ZUQzxybEdMZChQUmYoMiVzb05U
R0hgdzAjdkBWSDklPCVaTDItCnotI1EpTTZDYUh+X2ZfbmdRT3ZUZyE+UW4zdnBrYTxuTlUoPUBY
b0pkRk85VjAzZUs/a3Y5RCt+KkAjd29nRkVoaAp6NzVpV215Q3pGcXskSnp1RnBnSX5jSzUlO0Uq
aXlOQkZJYT1qPD5uUUlOb24mYGV2cVkoZXkzcHpTWDkwQ0gmaD0Kal9rVkZpYU1gZGxeJCg7P2Bf
VlVUIy1CLTtjalZ5bDE5a2goVWlwNmopODJSKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQt
d2l0aC1zeW1ib2wtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9j
dXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjNDhhNzVmNGY1YTIwODJk
N2E1YWRmNjc2MTU5NTNhMzRiZjZkOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcmVsYXRp
dmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUg
ODAweDQ3OAotICBSZW5kZXJCbG9jayB7aHRtbH0gYXQgKDAsMCkgc2l6ZSA4MDB4NDc4Ci0gICAg
UmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsMTYpIHNpemUgNzg0eDQ1NAotICAgICAgUmVuZGVyQmxv
Y2sge3B9IGF0ICgwLDApIHNpemUgNzg0eDM2Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDc0NHgzNgotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc0
NDogIlRoZSBzdmcgYXJlYSBjb250YWluZWQgaW4gdGhlIGRpdiBlbGVtZW50IChyZWQgYm94KSwg
c2hvdWxkIGZpbGwgb3V0IHRoZSB3aG9sZSBhcmVhICh0d28gZ3JlZW4gcmVjdGFuZ2xlcywgZmly
c3Q6ICgwLDApLSIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNjg2OiAiKDUw
JSw1MCUpLCBzZWNvbmQ6ICg1MCUsNTAlKS0oMTAwJSwxMDAlKSksIGVzcGVjaWFsbHkgYWZ0ZXIg
cmVzaXppbmcgdGhlIGNvbnRlbnQgYm94IHRvIGEgZGlmZmVyZW50IHNpemUiCi0gICAgICBSZW5k
ZXJCbG9jayB7ZGl2fSBhdCAoMCw1Mikgc2l6ZSA0MDJ4NDAyIFtib3JkZXI6ICgxcHggc29saWQg
I0ZGMDAwMCldCi0gICAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDksNjkpIHNpemUgMjAw
eDIwMAotICAgICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkg
c2l6ZSAweDAKLSAgICAgICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7c3ltYm9sfSBh
dCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAo
OSw2OSkgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0w
LjAwXSBbeT0wLjAwXSBbd2lkdGg9MC4wMF0gW2hlaWdodD0wLjAwXQotICAgICAgICAgICAgICBS
ZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoOSw2OSkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0g
W2hlaWdodD0xMDAuMDBdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg5
LDY5KSBzaXplIDIwMHgyMDAKLSAgICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
IHtzdmd9IGF0ICg5LDY5KSBzaXplIDIwMHgyMDAKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDEwOSwxNjkpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDA4MDAwXX1dIFt4PTEwMC4wMF0gW3k9MTAwLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVp
Z2h0PTEwMC4wMF0KLSAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDksNjkp
IHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAu
MDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jh
c2gtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNl
LXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRlY2RhNzY3N2VjNzU5ZGIxZTE0OGQ0OWM4ZTZhZTkwZWY4ODQw
YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgOTc0Mgp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVPTWoKeiN3bj09
MkJ2MV9EVFlSZE52VmtqTiM7cVokKkU+JGlLWiFMaFJGJSR8OT4rdXM0bm55YVNXK29lMHpOKEZN
fFJQCnppKCRoNXh5KHImdExMIUJaTXQtNFVpb1EzMSYwTyhNa1c+eDBSO3lJMGdIb2VvRGVvZHUh
ZlFHa3N3RzRzXiRhPgp6aS0laW8yVFRKe2w8XlYhc1FoVTdqSFZCODl2YU9icXZnWUJgOFpsWEty
N1ZJYGY7PjxGeG95RVo2QSlkNEBjWEYKenF3UGFyQTlKKlFKbFp9VVo2QS1lazRNfGItfnFTTXs9
c1BmVjY9WlErQ0xjV0FCXkA3TSo5YiZ7ZSNpfChkaGkqCno9PXwjRntQTzdoSSgha3I9PXlAdV4l
Yk0qUGUjfEBLI0lnK0gtNm02e1c2P20mSEw/fHp8fiQxNDQkcmpGNioyVQpGbmc5VXVYfUFDWQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1hbmltYXRlLXdpZHRo
LWFuZC1oZWlnaHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvdXNl
LWFuaW1hdGUtd2lkdGgtYW5kLWhlaWdodC1leHBlY3RlZC50eHQKaW5kZXggMmFhNDI1NGQxMmQw
NjFjYTA2MDJiNmQ4ZGVkNGM1MzFjOGFiYzNjNC4uMDRjNjM1NzZhZDQxMTdhMGVjYTY3ZjI5NDg3
Mjk4MDkwYmVlNjRmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvdXNl
LWFuaW1hdGUtd2lkdGgtYW5kLWhlaWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvdXNlLWFuaW1hdGUtd2lkdGgtYW5kLWhlaWdodC1leHBlY3RlZC50eHQK
QEAgLTksNDAgKzksNDAgQEAgUEFTUyB1c2UuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTAwCiBQ
QVNTIHVzZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAxMDAKIFBBU1MgdXNlLmdldEF0dHJpYnV0
ZSgnd2lkdGgnKSBpcyAnMTAwJwogUEFTUyB1c2UuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSBpcyAn
MTAwJwotUEFTUyBzaGFkb3dSb290LmZpcnN0Q2hpbGQud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAx
MDAKLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEw
MAorUEFTUyB1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEw
MAorUEFTUyB1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAx
MDAKIFBBU1MgdXNlLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTA1CiBQQVNTIHVzZS53aWR0aC5i
YXNlVmFsLnZhbHVlIGlzIDEwMAogUEFTUyB1c2UuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTA1
CiBQQVNTIHVzZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAxMDAKIEZBSUwgdXNlLmdldEF0dHJp
YnV0ZSgnd2lkdGgnKSBzaG91bGQgYmUgMTA1LiBXYXMgMTAwLgogRkFJTCB1c2UuZ2V0QXR0cmli
dXRlKCdoZWlnaHQnKSBzaG91bGQgYmUgMTA1LiBXYXMgMTAwLgotUEFTUyBzaGFkb3dSb290LmZp
cnN0Q2hpbGQud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMDUKLVBBU1Mgc2hhZG93Um9vdC5maXJz
dENoaWxkLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEwNQorUEFTUyB1c2VFbGVtZW50VGFyZ2V0
Q2xvbmUoKS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEwNQorUEFTUyB1c2VFbGVtZW50VGFyZ2V0
Q2xvbmUoKS5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMDUKIFBBU1MgdXNlLndpZHRoLmFuaW1W
YWwudmFsdWUgaXMgMTE1CiBQQVNTIHVzZS53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAogUEFT
UyB1c2UuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTE1CiBQQVNTIHVzZS5oZWlnaHQuYmFzZVZh
bC52YWx1ZSBpcyAxMDAKIEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSBzaG91bGQgYmUg
MTE1LiBXYXMgMTAwLgogRkFJTCB1c2UuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSBzaG91bGQgYmUg
MTE1LiBXYXMgMTAwLgotUEFTUyBzaGFkb3dSb290LmZpcnN0Q2hpbGQud2lkdGguYW5pbVZhbC52
YWx1ZSBpcyAxMTUKLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLmhlaWdodC5hbmltVmFsLnZh
bHVlIGlzIDExNQorUEFTUyB1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS53aWR0aC5hbmltVmFsLnZh
bHVlIGlzIDExNQorUEFTUyB1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS5oZWlnaHQuYW5pbVZhbC52
YWx1ZSBpcyAxMTUKIFBBU1MgdXNlLndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMTI1CiBQQVNTIHVz
ZS53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIDEwMAogUEFTUyB1c2UuaGVpZ2h0LmFuaW1WYWwudmFs
dWUgaXMgMTI1CiBQQVNTIHVzZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSBpcyAxMDAKIEZBSUwgdXNl
LmdldEF0dHJpYnV0ZSgnd2lkdGgnKSBzaG91bGQgYmUgMTI1LiBXYXMgMTAwLgogRkFJTCB1c2Uu
Z2V0QXR0cmlidXRlKCdoZWlnaHQnKSBzaG91bGQgYmUgMTI1LiBXYXMgMTAwLgotUEFTUyBzaGFk
b3dSb290LmZpcnN0Q2hpbGQud2lkdGguYW5pbVZhbC52YWx1ZSBpcyAxMjUKLVBBU1Mgc2hhZG93
Um9vdC5maXJzdENoaWxkLmhlaWdodC5hbmltVmFsLnZhbHVlIGlzIDEyNQorUEFTUyB1c2VFbGVt
ZW50VGFyZ2V0Q2xvbmUoKS53aWR0aC5hbmltVmFsLnZhbHVlIGlzIDEyNQorUEFTUyB1c2VFbGVt
ZW50VGFyZ2V0Q2xvbmUoKS5oZWlnaHQuYW5pbVZhbC52YWx1ZSBpcyAxMjUKIFBBU1MgdXNlLndp
ZHRoLmFuaW1WYWwudmFsdWUgaXMgMTM1CiBQQVNTIHVzZS53aWR0aC5iYXNlVmFsLnZhbHVlIGlz
IDEwMAogUEFTUyB1c2UuaGVpZ2h0LmFuaW1WYWwudmFsdWUgaXMgMTM1CiBQQVNTIHVzZS5oZWln
aHQuYmFzZVZhbC52YWx1ZSBpcyAxMDAKIEZBSUwgdXNlLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSBz
aG91bGQgYmUgMTM1LiBXYXMgMTAwLgogRkFJTCB1c2UuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSBz
aG91bGQgYmUgMTM1LiBXYXMgMTAwLgotUEFTUyBzaGFkb3dSb290LmZpcnN0Q2hpbGQud2lkdGgu
YW5pbVZhbC52YWx1ZSBpcyAxMzUKLVBBU1Mgc2hhZG93Um9vdC5maXJzdENoaWxkLmhlaWdodC5h
bmltVmFsLnZhbHVlIGlzIDEzNQorUEFTUyB1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS53aWR0aC5h
bmltVmFsLnZhbHVlIGlzIDEzNQorUEFTUyB1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS5oZWlnaHQu
YW5pbVZhbC52YWx1ZSBpcyAxMzUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvdXNl
LWFuaW1hdGUtd2lkdGgtYW5kLWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvdXNlLWFuaW1hdGUtd2lkdGgtYW5kLWhlaWdodC5odG1sCmluZGV4IGNkYzBhZDI0M2M4ODNi
ODBiMDU1NmI2MWMzNmY3ZDljOTE5MDczMGYuLjM5MjZkNDU1MmQ4OTRjY2EwYjhmZTg2OGFiMjll
OTI1MTMzNDIwNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3VzZS1h
bmltYXRlLXdpZHRoLWFuZC1oZWlnaHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy91c2UtYW5pbWF0ZS13aWR0aC1hbmQtaGVpZ2h0Lmh0bWwKQEAgLTU4LDcgKzU4LDExIEBA
IGFuaW1hdGUyLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIxMDAiKTsKIGFuaW1hdGUyLnNldEF0dHJp
YnV0ZSgidG8iLCAiMjAwIik7CiB1c2UuYXBwZW5kQ2hpbGQoYW5pbWF0ZTIpOwogCi12YXIgc2hh
ZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KHVzZSk7CitmdW5jdGlvbiB1c2VFbGVtZW50
VGFyZ2V0Q2xvbmUoKQoreworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7CisgICAgcmV0
dXJuIGludGVybmFscy5zaGFkb3dSb290KHVzZSkuZmlyc3RDaGlsZDsKK30KIAogZnVuY3Rpb24g
c2FtcGxlMSgpCiB7CkBAIC02OSw4ICs3Myw4IEBAIGZ1bmN0aW9uIHNhbXBsZTEoKQogICAgIHNo
b3VsZEJlKCJ1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7CiAgICAgc2hvdWxkQmUo
InVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykiLCAiJzEwMCciKTsKICAgICBzaG91bGRCZSgidXNl
LmdldEF0dHJpYnV0ZSgnaGVpZ2h0JykiLCAiJzEwMCciKTsKLSAgICBzaG91bGRCZSgic2hhZG93
Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTAwIik7Ci0gICAgc2hvdWxk
QmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsK
KyAgICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1
ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0
LmFuaW1WYWwudmFsdWUiLCAiMTAwIik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTIoKQpAQCAtODEs
OCArODUsOCBAQCBmdW5jdGlvbiBzYW1wbGUyKCkKICAgICBzaG91bGRCZSgidXNlLmhlaWdodC5i
YXNlVmFsLnZhbHVlIiwgIjEwMCIpOwogICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCd3
aWR0aCcpIiwgIicxMDUnIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1dGUoJ2hlaWdo
dCcpIiwgIicxMDUnIik7Ci0gICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC53aWR0
aC5hbmltVmFsLnZhbHVlIiwgIjEwNSIpOwotICAgIHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0
Q2hpbGQuaGVpZ2h0LmFuaW1WYWwudmFsdWUiLCAiMTA1Iik7CisgICAgc2hvdWxkQmUoInVzZUVs
ZW1lbnRUYXJnZXRDbG9uZSgpLndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTA1Iik7CisgICAgc2hv
dWxkQmUoInVzZUVsZW1lbnRUYXJnZXRDbG9uZSgpLmhlaWdodC5hbmltVmFsLnZhbHVlIiwgIjEw
NSIpOwogfQogCiBmdW5jdGlvbiBzYW1wbGUzKCkKQEAgLTkzLDggKzk3LDggQEAgZnVuY3Rpb24g
c2FtcGxlMygpCiAgICAgc2hvdWxkQmUoInVzZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSIsICIxMDAi
KTsKICAgICBzaG91bGRCZSgidXNlLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSIsICInMTE1JyIpOwog
ICAgIHNob3VsZEJlKCJ1c2UuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSIsICInMTE1JyIpOwotICAg
IHNob3VsZEJlKCJzaGFkb3dSb290LmZpcnN0Q2hpbGQud2lkdGguYW5pbVZhbC52YWx1ZSIsICIx
MTUiKTsKLSAgICBzaG91bGRCZSgic2hhZG93Um9vdC5maXJzdENoaWxkLmhlaWdodC5hbmltVmFs
LnZhbHVlIiwgIjExNSIpOworICAgIHNob3VsZEJlKCJ1c2VFbGVtZW50VGFyZ2V0Q2xvbmUoKS53
aWR0aC5hbmltVmFsLnZhbHVlIiwgIjExNSIpOworICAgIHNob3VsZEJlKCJ1c2VFbGVtZW50VGFy
Z2V0Q2xvbmUoKS5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMTUiKTsKIH0KIAogZnVuY3Rpb24g
c2FtcGxlNCgpIHsKQEAgLTEwNCw4ICsxMDgsOCBAQCBmdW5jdGlvbiBzYW1wbGU0KCkgewogICAg
IHNob3VsZEJlKCJ1c2UuaGVpZ2h0LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7CiAgICAgc2hvdWxk
QmUoInVzZS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykiLCAiJzEyNSciKTsKICAgICBzaG91bGRCZSgi
dXNlLmdldEF0dHJpYnV0ZSgnaGVpZ2h0JykiLCAiJzEyNSciKTsKLSAgICBzaG91bGRCZSgic2hh
ZG93Um9vdC5maXJzdENoaWxkLndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTI1Iik7Ci0gICAgc2hv
dWxkQmUoInNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMjUi
KTsKKyAgICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52
YWx1ZSIsICIxMjUiKTsKKyAgICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVp
Z2h0LmFuaW1WYWwudmFsdWUiLCAiMTI1Iik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTUoKQpAQCAt
MTE2LDggKzEyMCw4IEBAIGZ1bmN0aW9uIHNhbXBsZTUoKQogICAgIHNob3VsZEJlKCJ1c2UuaGVp
Z2h0LmJhc2VWYWwudmFsdWUiLCAiMTAwIik7CiAgICAgc2hvdWxkQmUoInVzZS5nZXRBdHRyaWJ1
dGUoJ3dpZHRoJykiLCAiJzEzNSciKTsKICAgICBzaG91bGRCZSgidXNlLmdldEF0dHJpYnV0ZSgn
aGVpZ2h0JykiLCAiJzEzNSciKTsKLSAgICBzaG91bGRCZSgic2hhZG93Um9vdC5maXJzdENoaWxk
LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTM1Iik7Ci0gICAgc2hvdWxkQmUoInNoYWRvd1Jvb3Qu
Zmlyc3RDaGlsZC5oZWlnaHQuYW5pbVZhbC52YWx1ZSIsICIxMzUiKTsKKyAgICBzaG91bGRCZSgi
dXNlRWxlbWVudFRhcmdldENsb25lKCkud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMzUiKTsKKyAg
ICBzaG91bGRCZSgidXNlRWxlbWVudFRhcmdldENsb25lKCkuaGVpZ2h0LmFuaW1WYWwudmFsdWUi
LCAiMTM1Iik7CiB9CiAKIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRo
LXN5bWJvbC1leHBlY3RlZC54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUt
c2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC1leHBlY3RlZC54aHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MWI4NzUzNGNjYjQzZTMzYzEyNWNkY2U2YTA0NzFkYjNkZTNiYmFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ct
dHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLWV4cGVjdGVkLnhodG1sCkBAIC0wLDAgKzEsMTEgQEAK
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorICAg
IDxwPlRoZSBzdmcgYXJlYSBjb250YWluZWQgaW4gdGhlIGRpdiBlbGVtZW50IChyZWQgYm94KSwg
c2hvdWxkIGZpbGwgb3V0IHRoZSB3aG9sZSBhcmVhICh0d28gZ3JlZW4gcmVjdGFuZ2xlcywgZmly
c3Q6ICgwLDApLSg1MCUsNTAlKSwgc2Vjb25kOiAoNTAlLDUwJSktKDEwMCUsMTAwJSkpLCBlc3Bl
Y2lhbGx5IGFmdGVyIHJlc2l6aW5nIHRoZSBjb250ZW50IGJveCB0byBhIGRpZmZlcmVudCBzaXpl
PC9wPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgYm9yZGVy
OiAxcHggc29saWQgcmVkOyI+CisgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+CisgICAgICAgICAgICA8cmVjdCB3
aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgICAgICAgICAgIDxyZWN0
IHg9IjIwMCIgeT0iMjAwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iZ3JlZW4iLz4K
KyAgICAgICAgPC9zdmc+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRl
bnQtd2l0aC1zeW1ib2wueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNp
emVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wueGh0bWwKaW5kZXggNjA0ZTdlYjgx
OGIwNzNjZjBiNjg0ZDk4YTFhODc5OTZjZmIzNzZiOC4uZDQyMmQ2MTE3YWI1NmNlZTA2OGFkYTg1
MWYyNTk4ZDhmMGIxYzVkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxh
dGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sCisrKyBiL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13
aXRoLXN5bWJvbC54aHRtbApAQCAtMSw4ICsxLDcgQEAKIDxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvcmVw
YWludC9yZXNvdXJjZXMvcmVwYWludC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blJlcGFpbnRUZXN0KCkiPgorPGJvZHk+CiAgICAgPHA+VGhlIHN2ZyBhcmVhIGNvbnRh
aW5lZCBpbiB0aGUgZGl2IGVsZW1lbnQgKHJlZCBib3gpLCBzaG91bGQgZmlsbCBvdXQgdGhlIHdo
b2xlIGFyZWEgKHR3byBncmVlbiByZWN0YW5nbGVzLCBmaXJzdDogKDAsMCktKDUwJSw1MCUpLCBz
ZWNvbmQ6ICg1MCUsNTAlKS0oMTAwJSwxMDAlKSksIGVzcGVjaWFsbHkgYWZ0ZXIgcmVzaXppbmcg
dGhlIGNvbnRlbnQgYm94IHRvIGEgZGlmZmVyZW50IHNpemU8L3A+CiAgICAgPGRpdiBpZD0iY29u
dGVudEJveCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MDBweDsgYm9yZGVyOiAxcHgg
c29saWQgcmVkOyI+CiAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSI+CkBAIC0xNiw5ICsxNSw3IEBACiAgICAgICAgIDwvc3ZnPgogICAg
IDwvZGl2PgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5z
ZXRQcm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiKTsKLSAgICAgICAgfQorICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIs
ICI0MDBweCIpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3luY2hyb25pemF0aW9uLWNyYXNo
LWV4cGVjdGVkLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNo
cm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI2NWM3YjYwZjU4MzE4
ZDI1YzcxOWViMWUxNjEzOGRhYjJlMjM2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC5z
dmcKQEAgLTAsMCArMSwzIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI+Cis8L3N2Zz4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtcHJv
cGVydHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZTZlOTFjODFiNTA0MDZmNDUxYTc5N2Mz
N2NlNTZlMDY0NTIxMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3luY2hyb25pemF0aW9u
LWNyYXNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA1OiBFcnJvcjogUHJvYmxlbSBwYXJzaW5nIHBvaW50cz0iMCIKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA3OiBFcnJvcjogUHJvYmxlbSBwYXJzaW5nIHBvaW50cz0iMCIK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2
Z30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDAp
IHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgw
Ci0gICAgICAgIFJlbmRlclNWR1BhdGgge3BvbHlsaW5lfSBhdCAoMCwwKSBzaXplIDB4MCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtwb2ludHM9IiJdCi0gICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgIFJlbmRlclNWR1BhdGgg
e3BvbHlsaW5lfSBhdCAoMCwwKSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtwb2ludHM9IiJdCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCww
KSBzaXplIDB4MAo=
</data>
<flag name="review"
          id="271262"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>