<?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>86031</bug_id>
          
          <creation_ts>2012-05-09 16:15:02 -0700</creation_ts>
          <short_desc>[HTMLTemplateElement] Implement DOM element and parser changes</short_desc>
          <delta_ts>2013-02-11 07:24:11 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103966</dependson>
          <blocked>103547</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rafael Weinstein">rafaelw</reporter>
          <assigned_to name="Rafael Weinstein">rafaelw</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>arv</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>ericbidelman</cc>
    
    <cc>eric</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>mamacdon</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619976</commentid>
    <comment_count>0</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-09 16:15:02 -0700</bug_when>
    <thetext>http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619988</commentid>
    <comment_count>1</comment_count>
      <attachid>141044</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-09 16:21:56 -0700</bug_when>
    <thetext>Created attachment 141044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619996</commentid>
    <comment_count>2</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-09 16:26:46 -0700</bug_when>
    <thetext>Ok, here&apos;s my implementation of HTMLTemplateElement which is based on the implied context element parsing from DocumentFragment.innerHTML.

Note that this bug is depends on 84646, and includes its changes (if there&apos;s a better way to do this, let me know).

This is conceptually similar to work that Dimitri did in https://bugs.webkit.org/show_bug.cgi?id=78734 -- and it includes the parser tests that Dimitri authored for that patch.

The deltas from Dimitri&apos;s initial work are:

1) The HTMLTemplateElement is actually implemented, including its read-only content attribute whichs contains inert DOM
2) the template element serializes it&apos;s inert content (e.g. as with innerHTML)
3) The parsing changes are relative to the implied context parsing approach, rather than defining a new insertion mode.

I&apos;m looking for feedback about the general direction of this implementation. All guidance welcome &amp; appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620133</commentid>
    <comment_count>3</comment_count>
      <attachid>141044</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-05-09 18:10:56 -0700</bug_when>
    <thetext>Comment on attachment 141044
Patch

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

&gt; Source/WebCore/xml/parser/MarkupTokenBase.h:477
&gt; +    const size_t characterDataSize() const

Remove the first &quot;const&quot; here, clang warns about it and it has no effect on a return-by-value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620147</commentid>
    <comment_count>4</comment_count>
      <attachid>141044</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-09 18:36:35 -0700</bug_when>
    <thetext>Comment on attachment 141044
Patch

Attachment 141044 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12646835</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620161</commentid>
    <comment_count>5</comment_count>
      <attachid>141044</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-09 18:59:05 -0700</bug_when>
    <thetext>Comment on attachment 141044
Patch

Attachment 141044 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12648733</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620162</commentid>
    <comment_count>6</comment_count>
      <attachid>141044</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-09 18:59:39 -0700</bug_when>
    <thetext>Comment on attachment 141044
Patch

Attachment 141044 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12648734</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620214</commentid>
    <comment_count>7</comment_count>
      <attachid>141044</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-09 20:59:02 -0700</bug_when>
    <thetext>Comment on attachment 141044
Patch

Attachment 141044 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12665141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620306</commentid>
    <comment_count>8</comment_count>
      <attachid>141044</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 00:11:20 -0700</bug_when>
    <thetext>Comment on attachment 141044
Patch

It looks pulling up innerHTML to DocumentFragment can be done in a separate patch.
It&apos;s more trivial and will be easier to land, making the size of essential change smaller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620360</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-10 01:07:45 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 141044 [details])
&gt; It looks pulling up innerHTML to DocumentFragment can be done in a separate patch.
&gt; It&apos;s more trivial and will be easier to land, making the size of essential change smaller.

Yes, it will be done in https://bugs.webkit.org/show_bug.cgi?id=84646, which is a blocker of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620629</commentid>
    <comment_count>10</comment_count>
      <attachid>141182</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-10 09:28:36 -0700</bug_when>
    <thetext>Created attachment 141182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620666</commentid>
    <comment_count>11</comment_count>
      <attachid>141189</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-10 10:07:22 -0700</bug_when>
    <thetext>Created attachment 141189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620667</commentid>
    <comment_count>12</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-10 10:08:30 -0700</bug_when>
    <thetext>Patch now contains diffs relative to https://bugs.webkit.org/show_bug.cgi?id=84646 (thanks, Arv)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620800</commentid>
    <comment_count>13</comment_count>
      <attachid>141189</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-10 11:43:43 -0700</bug_when>
    <thetext>Comment on attachment 141189
Patch

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

Great stuff! A few things:
* looks like there&apos;s a patch-in-the-middle missing -- the one that adds HTML_TEMPLATES define to WebKit build system
* template token is not being protected by defines, which means that even though you have the flag, the parser will start behaving in a new way immediately.
* similarly, the HTMLTemplateElement is always being compiled. The WebKit practice is to guard the file with defines.

&gt; Source/WebCore/html/HTMLTagNames.in:125
&gt; +template interfaceName=HTMLTemplateElement, conditional=TEMPLATE_TAG

TEMPLATE_TAG -&gt; HTML_TEMPLATES?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626792</commentid>
    <comment_count>14</comment_count>
      <attachid>142518</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-17 11:52:38 -0700</bug_when>
    <thetext>Created attachment 142518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626804</commentid>
    <comment_count>15</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-17 11:56:36 -0700</bug_when>
    <thetext>Comments addressed. Also, this patch now depends on the new Document.parse() patch (still https://bugs.webkit.org/show_bug.cgi?id=84646).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626839</commentid>
    <comment_count>16</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-17 12:18:38 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Comments addressed. Also, this patch now depends on the new Document.parse() patch (still https://bugs.webkit.org/show_bug.cgi?id=84646).

Huzzah!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627397</commentid>
    <comment_count>17</comment_count>
      <attachid>142518</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-17 23:42:53 -0700</bug_when>
    <thetext>Comment on attachment 142518
Patch

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

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:493
&gt; +    // Template Fragment case.

Nit: useless comment. Just describes what the next two lines of code clearly do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632121</commentid>
    <comment_count>18</comment_count>
      <attachid>142518</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-05-23 15:37:15 -0700</bug_when>
    <thetext>Comment on attachment 142518
Patch

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

&gt; Source/WebCore/editing/MarkupAccumulator.cpp:122
&gt; +            effectiveNode = static_cast&lt;Node*&gt;(static_cast&lt;HTMLTemplateElement*&gt;(effectiveNode)-&gt;content().get());

Nit: no need for the static_cast&lt;Node*&gt;().

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:3
&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.

Nit: probably can drop this copyright line

&gt; Source/WebCore/html/HTMLTemplateElement.h:3
&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.

Ditto, no need for this copyright methinks

&gt; Source/WebCore/html/HTMLTemplateElement.h:37
&gt; +#include &quot;HTMLCollection.h&quot;

Unnecessary include, I think.

&gt; Source/WebCore/html/HTMLTemplateElement.h:45
&gt; +    PassRefPtr&lt;DocumentFragment&gt; content();

This should return a DocumentFragment* instead of a PassRefPtr. Most uses don&apos;t take a reference (they call .get()). That&apos;ll simplify the callsites and avoid unnecessary churn (the former is more important to me than the latter).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632244</commentid>
    <comment_count>19</comment_count>
      <attachid>142518</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-23 17:28:48 -0700</bug_when>
    <thetext>Comment on attachment 142518
Patch

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

&gt; Source/WebCore/editing/MarkupAccumulator.cpp:119
&gt; +        Node* effectiveNode = targetNode;

I&apos;m not sure effectiveName is a descriptive name. I&apos;d prefer declaring current node here instead as in:
Node* current = targetNode-&gt;hasTagName(templateTag) ? toHTMLTemplateElement(targetNode)-&gt;content().get() : targetNode-&gt;firstChild();

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:54
&gt; +inline HTMLTemplateElement::HTMLTemplateElement(const QualifiedName&amp; tagName, Document* document)
&gt; +    : HTMLElement(tagName, document)
&gt; +{
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;HTMLTemplateElement&gt; HTMLTemplateElement::create(const QualifiedName&amp; tagName, Document* document)
&gt; +{
&gt; +    return adoptRef(new HTMLTemplateElement(tagName, document));
&gt; +}

These two functions can be inline.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1073
&gt; +    m_fragmentContext.push(static_cast&lt;HTMLTemplateElement*&gt;(m_tree.currentElement())-&gt;content().get());

Can we add a safe (with an assertion) toHTMLTemplateElement?

&gt; LayoutTests/resources/dump-as-markup.js:226
&gt; +      return node.namespaceURI = &apos;http://www.w3.org/1999/xhtml&apos; &amp;&amp; node.tagName == &apos;TEMPLATE&apos;;

Nit: indentation should be 4 spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744427</commentid>
    <comment_count>20</comment_count>
      <attachid>169219</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-10-17 11:07:53 -0700</bug_when>
    <thetext>Created attachment 169219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744431</commentid>
    <comment_count>21</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-10-17 11:14:53 -0700</bug_when>
    <thetext>Note: This latest patch is a complete implementation of the current template element spec: 

http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html

The purpose of the current patch is informational for now. I imagine landing the HTMLTemplateElement in a series of smaller patches:

1) Feature flag
2) Template Element (simple implementation -- just implement the content attribute)
3) Parser changes (directs parsed markup to the content attribute) + html5lib parser tests
4) Full Template Element API implementation (innerHTML changes, templateContentsOwnerDocument) + tests
5) &quot;Real&quot; implementation of preload scanner properly ignoring template content resources + tests

Also note that this patch no longer depends on Document.parse() (https://bugs.webkit.org/show_bug.cgi?id=84646). The &quot;implied context&quot; parsing which was agreed on in WebApps is effectively implemented here, but exposing actual direct API for Document.parse() did not gain consensus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744440</commentid>
    <comment_count>22</comment_count>
      <attachid>169219</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-17 11:21:09 -0700</bug_when>
    <thetext>Comment on attachment 169219
Patch

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

This looks seriously cool.

&gt; Source/WebCore/css/html.css:1260
&gt; +  display: none

;

&gt; Source/WebCore/dom/Document.h:1524
&gt; +    RefPtr&lt;Document&gt; m_templateContentsOwnerDocument;

Interesting. So we share this document among all templates? Is this a provision in spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744454</commentid>
    <comment_count>23</comment_count>
      <attachid>169219</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-10-17 11:30:39 -0700</bug_when>
    <thetext>Comment on attachment 169219
Patch

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

&gt;&gt; Source/WebCore/dom/Document.h:1524
&gt;&gt; +    RefPtr&lt;Document&gt; m_templateContentsOwnerDocument;
&gt; 
&gt; Interesting. So we share this document among all templates? Is this a provision in spec?

Yes. http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#dfn-template-contents-owner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745524</commentid>
    <comment_count>24</comment_count>
      <attachid>169219</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-10-18 13:45:40 -0700</bug_when>
    <thetext>Comment on attachment 169219
Patch

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

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:53
&gt; +    if (RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(html, this, AllowScriptingContent, ec))

Note to self: Move this to be a check in HTMLElement for hasLocalName(templateTag). The one pointer check will be faster than making setInnerHTML be virtual</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765899</commentid>
    <comment_count>25</comment_count>
      <attachid>173943</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-13 12:02:03 -0800</bug_when>
    <thetext>Created attachment 173943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766259</commentid>
    <comment_count>26</comment_count>
      <attachid>174042</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-13 18:02:56 -0800</bug_when>
    <thetext>Created attachment 174042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766277</commentid>
    <comment_count>27</comment_count>
      <attachid>174042</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-13 18:15:12 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

Attachment 174042 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14832143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766297</commentid>
    <comment_count>28</comment_count>
      <attachid>174042</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 18:41:34 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

Attachment 174042 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14832150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766304</commentid>
    <comment_count>29</comment_count>
      <attachid>174042</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-13 18:56:46 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

Attachment 174042 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14688537</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766473</commentid>
    <comment_count>30</comment_count>
      <attachid>174042</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 23:13:45 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

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

Looks like you&apos;ve got some compile trouble.

&gt; Source/WebCore/css/html.css:1265
&gt; +  display: none

four-space indent

&gt; Source/WebCore/dom/Document.cpp:6006
&gt; +        m_templateContentsOwnerDocument = implementation()-&gt;createHTMLDocument(&quot;&quot;);

&quot;&quot; ?

Do we really need to go through the implementation?  Why can&apos;t we just create an HTML document via HTMLDocument::create ?

&gt; Source/WebCore/html/HTMLElement.h:58
&gt; -    void setInnerHTML(const String&amp;, ExceptionCode&amp;);
&gt; +    virtual void setInnerHTML(const String&amp;, ExceptionCode&amp;);

Can you run http://trac.webkit.org/browser/trunk/PerformanceTests/Parser/tiny-innerHTML.html to make sure this isn&apos;t slowing us down?

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:46
&gt; +inline HTMLTemplateElement::HTMLTemplateElement(const QualifiedName&amp; tagName, Document* document)

The inline keyword is meaningless here.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:72
&gt; +    if (m_content)
&gt; +        return m_content.get();
&gt; +
&gt; +    m_content = DocumentFragment::create(ownerDocument()-&gt;templateContentsOwnerDocument());
&gt; +    return m_content.get();

Apparently Darin Adler prefers the

if (!m_content)
    m_content = ....
return m_content.get()

pattern for some reason.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:89
&gt; +        ownerDocument()-&gt;templateContentsOwnerDocument()-&gt;adoptNode(content, nofail);

There&apos;s a macro that does the &quot;nofail&quot; thing magically for you.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:101
&gt; +#ifndef NDEBUG
&gt; +const HTMLTemplateElement* toHTMLTemplateElement(const Node* node)
&gt; +{
&gt; +    ASSERT(!node || (node-&gt;isHTMLElement() &amp;&amp; node-&gt;hasTagName(templateTag)));
&gt; +    return static_cast&lt;const HTMLTemplateElement*&gt;(node);
&gt; +}
&gt; +#endif

?

&gt; Source/WebCore/html/HTMLTemplateElement.h:50
&gt; +    virtual void setInnerHTML(const String&amp;, ExceptionCode&amp;);

Please add the OVERRIDE keyword.

&gt; Source/WebCore/html/HTMLTemplateElement.h:71
&gt; +#ifdef NDEBUG
&gt; +inline const HTMLTemplateElement* toHTMLTemplateElement(const Node* node)
&gt; +{
&gt; +    // FIXME: Add debug asserts.
&gt; +    return static_cast&lt;const HTMLTemplateElement*&gt;(node);
&gt; +}
&gt; +#endif // NDEBUG

It seems like a bad idea to have a Debug-only overload that differs only in const-ness from the Release version....

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:408
&gt; +inline Document* HTMLConstructionSite::ownerDocumentForCurrentNode()

The inline keyword has no effect here.

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:423
&gt; +

This blank line seems spurious.

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:489
&gt; +    HTMLElementStack::ElementRecord* lastTemplateElement = m_openElements.topmost(templateTag.localName());

lastTemplateElement -&gt; topmostTemplateElement ?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:686
&gt;          if (!m_tree.openElements()-&gt;secondElementIsHTMLBodyElement() || m_tree.openElements()-&gt;hasOnlyOneElement()) {

There&apos;s no call to hasTemplateInHTMLScope here?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1320
&gt; +            processStartTagForInHead(token);

This pattern seems inefficient.  We already know that the token is templateTag.  Shouldn&apos;t we call a function that knows that too?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1634
&gt; +#if !ENABLE(TEMPLATE_TAG)
&gt;              ASSERT(isParsingFragment());
&gt; +#endif

I would just remove these ASSERTs.  They&apos;re not worth conditionalizing.

&gt; Source/WebKit/chromium/features.gypi:113
&gt; +      &apos;ENABLE_TEMPLATE_TAG=1&apos;,

I guess there&apos;s no way to have a runtime flag for the template tag.  What&apos;s our plan for controlling when we ship this feature?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766474</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 23:15:24 -0800</bug_when>
    <thetext>The patch generally looks good.  I&apos;d like Eric Seidel to review the patch as well (perhaps for the next iteration).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766478</commentid>
    <comment_count>32</comment_count>
      <attachid>174042</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 23:16:27 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Initial implementation. This patch includes the parser changes, new IDL and element implementation for &lt;template&gt;.

Can you add a link to the spec here?  My understanding is that the spec is being updated after the TPAC discussion, but perhaps we can link to the in-progress spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766897</commentid>
    <comment_count>33</comment_count>
      <attachid>174042</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-11-14 07:55:13 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6006
&gt;&gt; +        m_templateContentsOwnerDocument = implementation()-&gt;createHTMLDocument(&quot;&quot;);
&gt; 
&gt; &quot;&quot; ?
&gt; 
&gt; Do we really need to go through the implementation?  Why can&apos;t we just create an HTML document via HTMLDocument::create ?

Same thought as Adam: when I did my quick-and-dirty XHTML version, I replaced this with the simple call to create (to match what I did for the newly-created XHTML doc).

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:46
&gt;&gt; +inline HTMLTemplateElement::HTMLTemplateElement(const QualifiedName&amp; tagName, Document* document)
&gt; 
&gt; The inline keyword is meaningless here.

I don&apos;t believe that&apos;s quite true, since it gives this method &quot;inline&quot; linkage. And that&apos;s fine, because it&apos;s only called from this compilation unit. But I can&apos;t say how much effect it&apos;s having.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:89
&gt;&gt; +        ownerDocument()-&gt;templateContentsOwnerDocument()-&gt;adoptNode(content, nofail);
&gt; 
&gt; There&apos;s a macro that does the &quot;nofail&quot; thing magically for you.

It&apos;s called ASSERT_NO_EXCEPTION (and it just gets passed wherever you&apos;d pass an ExceptionCode)

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:101
&gt;&gt; +#endif
&gt; 
&gt; ?

This is in-keeping with other HTML element helpers. The reason it&apos;s not in the .h file is to avoid #including HTMLNames (needed for HTMLNames::templateTag).  See, e.g., HTMLOptionElement and HTMLTableCellElement for other examples.

&gt; Source/WebCore/html/HTMLTemplateElement.h:68
&gt; +    // FIXME: Add debug asserts.

This FIXME is wrong, should be replaced with a comment saying that the debug version is in the implementation file.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.h:71
&gt;&gt; +#endif // NDEBUG
&gt; 
&gt; It seems like a bad idea to have a Debug-only overload that differs only in const-ness from the Release version....

Probably deserves a comment. As noted above, this is common practice under WebCore/html. This is the non-debug implementation of the same thing it&apos;s implemented for debug in the .cpp file (see above). Note the function declaration a few lines above. We only do this for the const version and do a const_cast in the non-const version to avoid duplicating the checks.  If there&apos;s some nicer way to do this I&apos;m all ears (or maybe we don&apos;t care about including HTMLNames.h anymore?).

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:408
&gt;&gt; +inline Document* HTMLConstructionSite::ownerDocumentForCurrentNode()
&gt; 
&gt; The inline keyword has no effect here.

Again, not the case (unless I&apos;m misunderstanding C++), and I think it&apos;s quite possibly valuable here (though maybe it should only be added if it speeds up the benchmark).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766943</commentid>
    <comment_count>34</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-14 08:48:12 -0800</bug_when>
    <thetext>&gt; I don&apos;t believe that&apos;s quite true, since it gives this method &quot;inline&quot; linkage. And that&apos;s fine, because it&apos;s only called from this compilation unit. But I can&apos;t say how much effect it&apos;s having.

I didn&apos;t know you could give out-of-line methods internal linkage.  There&apos;s so much to learn about C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767157</commentid>
    <comment_count>35</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-14 12:13:25 -0800</bug_when>
    <thetext>I mentioned to Raf that this patch as a subtle GC bug.  We might collect the wrappers for DOM nodes inside the template even through they are reachable via the template element.  The solution we discussed was to add a hidden reference from the HTMLTemplateElement wrapper to the wrapper for its document fragment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768745</commentid>
    <comment_count>36</comment_count>
      <attachid>174571</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-15 17:37:27 -0800</bug_when>
    <thetext>Created attachment 174571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768750</commentid>
    <comment_count>37</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-15 17:38:47 -0800</bug_when>
    <thetext>All comments addressed except for the GC issue (template contents wrappers won&apos;t be kept alive).

abarth, do you want me to address that in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768751</commentid>
    <comment_count>38</comment_count>
      <attachid>174042</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-15 17:39:03 -0800</bug_when>
    <thetext>Comment on attachment 174042
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Initial implementation. This patch includes the parser changes, new IDL and element implementation for &lt;template&gt;.
&gt; 
&gt; Can you add a link to the spec here?  My understanding is that the spec is being updated after the TPAC discussion, but perhaps we can link to the in-progress spec?

done.

&gt;&gt; Source/WebCore/css/html.css:1265
&gt;&gt; +  display: none
&gt; 
&gt; four-space indent

done

&gt;&gt;&gt; Source/WebCore/dom/Document.cpp:6006
&gt;&gt;&gt; +        m_templateContentsOwnerDocument = implementation()-&gt;createHTMLDocument(&quot;&quot;);
&gt;&gt; 
&gt;&gt; &quot;&quot; ?
&gt;&gt; 
&gt;&gt; Do we really need to go through the implementation?  Why can&apos;t we just create an HTML document via HTMLDocument::create ?
&gt; 
&gt; Same thought as Adam: when I did my quick-and-dirty XHTML version, I replaced this with the simple call to create (to match what I did for the newly-created XHTML doc).

done. Additionally, we determined that the templateContentsOwnerDocument needs to match the ownerDocument&apos;s isHTMLDocument(). I&apos;ve added that to the spec, to this patch and added a test (ownerDocumentXHTML).

&gt;&gt; Source/WebCore/html/HTMLElement.h:58
&gt;&gt; +    virtual void setInnerHTML(const String&amp;, ExceptionCode&amp;);
&gt; 
&gt; Can you run http://trac.webkit.org/browser/trunk/PerformanceTests/Parser/tiny-innerHTML.html to make sure this isn&apos;t slowing us down?

I&apos;ve moved this to HTMLElement to avoid the virtual vtable lookup and verified that it doesn&apos;t regress perf noticably in the test you mention.

&gt;&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:46
&gt;&gt;&gt; +inline HTMLTemplateElement::HTMLTemplateElement(const QualifiedName&amp; tagName, Document* document)
&gt;&gt; 
&gt;&gt; The inline keyword is meaningless here.
&gt; 
&gt; I don&apos;t believe that&apos;s quite true, since it gives this method &quot;inline&quot; linkage. And that&apos;s fine, because it&apos;s only called from this compilation unit. But I can&apos;t say how much effect it&apos;s having.

leaving.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:72
&gt;&gt; +    return m_content.get();
&gt; 
&gt; Apparently Darin Adler prefers the
&gt; 
&gt; if (!m_content)
&gt;     m_content = ....
&gt; return m_content.get()
&gt; 
&gt; pattern for some reason.

done.

&gt;&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:89
&gt;&gt;&gt; +        ownerDocument()-&gt;templateContentsOwnerDocument()-&gt;adoptNode(content, nofail);
&gt;&gt; 
&gt;&gt; There&apos;s a macro that does the &quot;nofail&quot; thing magically for you.
&gt; 
&gt; It&apos;s called ASSERT_NO_EXCEPTION (and it just gets passed wherever you&apos;d pass an ExceptionCode)

done

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.h:50
&gt;&gt; +    virtual void setInnerHTML(const String&amp;, ExceptionCode&amp;);
&gt; 
&gt; Please add the OVERRIDE keyword.

removed

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.h:68
&gt;&gt; +    // FIXME: Add debug asserts.
&gt; 
&gt; This FIXME is wrong, should be replaced with a comment saying that the debug version is in the implementation file.

done

&gt;&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:408
&gt;&gt;&gt; +inline Document* HTMLConstructionSite::ownerDocumentForCurrentNode()
&gt;&gt; 
&gt;&gt; The inline keyword has no effect here.
&gt; 
&gt; Again, not the case (unless I&apos;m misunderstanding C++), and I think it&apos;s quite possibly valuable here (though maybe it should only be added if it speeds up the benchmark).

leaving.

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:423
&gt;&gt; +
&gt; 
&gt; This blank line seems spurious.

removed

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:489
&gt;&gt; +    HTMLElementStack::ElementRecord* lastTemplateElement = m_openElements.topmost(templateTag.localName());
&gt; 
&gt; lastTemplateElement -&gt; topmostTemplateElement ?

the fast that there&apos;s confusion here between our impl and the spec, WRT the stack growing up or down, i feel like &quot;last&quot; is actually clearer. I&apos;ll change if you feel strongly.

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:686
&gt;&gt;          if (!m_tree.openElements()-&gt;secondElementIsHTMLBodyElement() || m_tree.openElements()-&gt;hasOnlyOneElement()) {
&gt; 
&gt; There&apos;s no call to hasTemplateInHTMLScope here?

No. the change here (like all cases that are now isParsingFragmentOrTemplateContents) is that while this case could previously only occurred while parsing innerHTML (fragment case), it can now occur while parsing template contents. However, this code here doesn&apos;t know *which* of these has occurred -- only that one of them has.

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1320
&gt;&gt; +            processStartTagForInHead(token);
&gt; 
&gt; This pattern seems inefficient.  We already know that the token is templateTag.  Shouldn&apos;t we call a function that knows that too?

Done. I&apos;ve factored this out into processTemplateStartTag to avoid the extra dispatching, and it&apos;s used whenever a template start tag is encountered.

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1634
&gt;&gt; +#endif
&gt; 
&gt; I would just remove these ASSERTs.  They&apos;re not worth conditionalizing.

done.

&gt;&gt; Source/WebKit/chromium/features.gypi:113
&gt;&gt; +      &apos;ENABLE_TEMPLATE_TAG=1&apos;,
&gt; 
&gt; I guess there&apos;s no way to have a runtime flag for the template tag.  What&apos;s our plan for controlling when we ship this feature?

As discussed, there&apos;s not really a good way to run-time enable this, so we&apos;ll have to give release engineering a heads up that this is on the train, but may get yanked off before ship if the spec isn&apos;t settled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768773</commentid>
    <comment_count>39</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-15 17:52:53 -0800</bug_when>
    <thetext>I think it&apos;s fine to work on the GC issue in a separate patch, but I would like eseidel to take a look at this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768810</commentid>
    <comment_count>40</comment_count>
      <attachid>174571</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-15 18:31:48 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

Attachment 174571 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14846659</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768813</commentid>
    <comment_count>41</comment_count>
      <attachid>174571</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-15 18:32:26 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

Attachment 174571 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14862002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768816</commentid>
    <comment_count>42</comment_count>
      <attachid>174571</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-15 18:43:45 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

Attachment 174571 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14860081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768853</commentid>
    <comment_count>43</comment_count>
      <attachid>174571</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-15 19:42:05 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

Attachment 174571 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14857467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768913</commentid>
    <comment_count>44</comment_count>
      <attachid>174571</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-15 21:35:03 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

Attachment 174571 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14843879</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769555</commentid>
    <comment_count>45</comment_count>
      <attachid>174571</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-16 12:13:14 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

Attachment 174571 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14861295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770838</commentid>
    <comment_count>46</comment_count>
      <attachid>174571</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-19 10:17:23 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

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

Will look in much greater detail in a bit.

&gt; Source/WebCore/dom/Document.cpp:6006
&gt; +Document* Document::templateContentsOwnerDocument()

Document doesn&apos;t seem to know if it&apos;s owned by a template elmenet or not, does it?  This function, if called, will allocate a new Document regardless of whether there is a template related to this document?  Should this logic be on &lt;template&gt; instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771051</commentid>
    <comment_count>47</comment_count>
      <attachid>174571</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-19 14:51:30 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

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

Do we need a &lt;!DOCTYPE&gt; test?  The parser will generate DocType nodes.

Test case from our discussions:
&lt;template&gt;
&lt;tr&gt;&lt;/tr&gt;
&lt;template&gt;&lt;/template&gt;
&lt;option&gt;
&lt;/template&gt;

I assume a rogue &lt;/template&gt; does nothing.

We need another iteration, to fix the cycle things.  But otherwise this is r+ from me.

&gt; Source/WebCore/dom/Document.cpp:6008
&gt; +    if (!m_frame)

You might want to add a comment about what this case is for.

&gt; Source/WebCore/dom/Document.cpp:6013
&gt; +            m_templateContentsOwnerDocument = HTMLDocument::create(0, KURL());

&quot;about:blank&quot; is probably better.  emptyURL() may return what you want.

&gt; Source/WebCore/dom/Document.h:1531
&gt; +    RefPtr&lt;Document&gt; m_templateContentsOwnerDocument;

So what happens if we move a &lt;template&gt; element between documents.  Now all its content subtree point back to this original document.  Which may die?  We need to make sure that ownerDocument() stays alive?  Adam suggests that XHR (GuardRef?) must already handle this case, so it may be I&apos;m simply misunderstanding.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:60
&gt; +DocumentFragment* HTMLTemplateElement::content()

It appears that if you ever append a &lt;template&gt; to it&apos;s .content DocumentFragment, the template ref&apos;s the fragment and the fragment ref&apos;s the template = thus a cycle/leak.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:72
&gt; +    if (!content || content-&gt;isShadowRoot()) {

Do we have a test case for this shadowRoot case?

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:77
&gt; +    if (m_content &amp;&amp; m_content.get() == content.get())

m_content check isn&apos;t necessary, since you know &quot;content&quot; is already non-null.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:81
&gt; +    if (content-&gt;ownerDocument() != ownerDocument()-&gt;templateContentsOwnerDocument())
&gt; +        ownerDocument()-&gt;templateContentsOwnerDocument()-&gt;adoptNode(content, ASSERT_NO_EXCEPTION);

We need to do something like this when we move the &lt;template&gt; element between documents, or?

This also needs a cycle check, as you could assign content to the containing DocumentFragment of the template element and get another cycle.

You may want to explore ways to share code with the ShadowDom implementation.  They override iteration functions and likely cover some of this cycle detection.

&gt; Source/WebCore/html/HTMLTemplateElement.h:46
&gt; +    DocumentFragment* content();

This may end up const with a mutable m_content.  Depending on how others expect to access this.  (I&apos;m not a fan of that pattern, but it is common in WebKit.)

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:87
&gt;          task.parent-&gt;parserInsertBefore(task.child.get(), task.nextChild.get());

Do we need to ASSERT in this function that the element&apos;s document matches the parent&apos;s document?

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:409
&gt; +    if (currentNode()-&gt;isElementNode() &amp;&amp; currentElement()-&gt;hasTagName(templateTag))

You can just call currentNode()-&gt;hasTagName() directly.

&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:486
&gt; +    HTMLElementStack::ElementRecord* lastTemplateElement = m_openElements.topmost(templateTag.localName());

Probably deserves a &quot;why&quot; comment.  // Avoid reparenting outside of the &lt;template&gt; element.

Hixie may also re-write the spec to handle this case in a more generic way.

&gt; Source/WebCore/html/parser/HTMLElementStack.cpp:550
&gt; +    return inScopeCommon&lt;isHTMLNode&gt;(m_top.get(), templateTag.localName());

Should this just use isRootNode directly?  Adam mentions you may need to move isRootNode inside the anonymous namespace for it to compile (and remove the static keyword).

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:-1546
&gt; -            ASSERT(isParsingFragment());

Could this be isParsingFragmentOrTemplateContents instead?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1664
&gt; +            return setInsertionMode(InHeadMode);

This line appears to be an error.  I&apos;m surprised we don&apos;t have a test case for this (we may need to add one).

This is the case where we&apos;re calling head.innerHTML = &quot;&quot;?  Correct?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2178
&gt; +            bool ignoreFramesetForFragmentParsing  = m_tree.currentNode() == m_tree.openElements()-&gt;rootNode();

Do we have a better accessor for this?  m_tree.currentIsRoot(), etc?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2269
&gt; +        if (token-&gt;name() == templateTag) {

Could you link to your spec bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778055</commentid>
    <comment_count>48</comment_count>
      <attachid>176518</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 10:47:10 -0800</bug_when>
    <thetext>Created attachment 176518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778080</commentid>
    <comment_count>49</comment_count>
      <attachid>176518</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 11:01:22 -0800</bug_when>
    <thetext>Comment on attachment 176518
Patch

Attachment 176518 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15003937</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778083</commentid>
    <comment_count>50</comment_count>
      <attachid>176518</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 11:04:46 -0800</bug_when>
    <thetext>Comment on attachment 176518
Patch

Attachment 176518 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15018519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778085</commentid>
    <comment_count>51</comment_count>
      <attachid>176518</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-28 11:07:50 -0800</bug_when>
    <thetext>Comment on attachment 176518
Patch

Attachment 176518 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15026506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778105</commentid>
    <comment_count>52</comment_count>
      <attachid>176531</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 11:29:22 -0800</bug_when>
    <thetext>Created attachment 176531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778106</commentid>
    <comment_count>53</comment_count>
      <attachid>174571</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 11:30:16 -0800</bug_when>
    <thetext>Comment on attachment 174571
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6006
&gt;&gt; +Document* Document::templateContentsOwnerDocument()
&gt; 
&gt; Document doesn&apos;t seem to know if it&apos;s owned by a template elmenet or not, does it?  This function, if called, will allocate a new Document regardless of whether there is a template related to this document?  Should this logic be on &lt;template&gt; instead?

As discussed offline: this is reflected in the spec. All templates contained within a document, share the same templateContentsOwnerDocument. It needs to be here.

&gt;&gt; Source/WebCore/dom/Document.cpp:6008
&gt;&gt; +    if (!m_frame)
&gt; 
&gt; You might want to add a comment about what this case is for.

add exact spec language.

&gt;&gt; Source/WebCore/dom/Document.cpp:6013
&gt;&gt; +            m_templateContentsOwnerDocument = HTMLDocument::create(0, KURL());
&gt; 
&gt; &quot;about:blank&quot; is probably better.  emptyURL() may return what you want.

done (used blankURL()). note that this is implied by the spec: (DOM) &apos;Unless explicitly given when a document is created its encoding is the utf-8 encoding, its content type is &quot;application/xml&quot;, and its URL is &quot;about:blank&quot;.&apos;

&gt;&gt; Source/WebCore/dom/Document.h:1531
&gt;&gt; +    RefPtr&lt;Document&gt; m_templateContentsOwnerDocument;
&gt; 
&gt; So what happens if we move a &lt;template&gt; element between documents.  Now all its content subtree point back to this original document.  Which may die?  We need to make sure that ownerDocument() stays alive?  Adam suggests that XHR (GuardRef?) must already handle this case, so it may be I&apos;m simply misunderstanding.

Yes. I believe the solution is to enforce that all templates reachable from a given document should have templateContentsOwnerDocuments which matches that of the containing document.

I&apos;d like to do this is a follow-on patch.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:60
&gt;&gt; +DocumentFragment* HTMLTemplateElement::content()
&gt; 
&gt; It appears that if you ever append a &lt;template&gt; to it&apos;s .content DocumentFragment, the template ref&apos;s the fragment and the fragment ref&apos;s the template = thus a cycle/leak.

Yes. ShadowRoot has a similar problem. I&apos;d like to wait for ShadowRoot to land a patch and then piggyback on that solution. Again, I&apos;d like to approach this in a separate patch.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:72
&gt;&gt; +    if (!content || content-&gt;isShadowRoot()) {
&gt; 
&gt; Do we have a test case for this shadowRoot case?

Yes. It&apos;s in ownerDocument.html

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:77
&gt;&gt; +    if (m_content &amp;&amp; m_content.get() == content.get())
&gt; 
&gt; m_content check isn&apos;t necessary, since you know &quot;content&quot; is already non-null.

done

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:81
&gt;&gt; +        ownerDocument()-&gt;templateContentsOwnerDocument()-&gt;adoptNode(content, ASSERT_NO_EXCEPTION);
&gt; 
&gt; We need to do something like this when we move the &lt;template&gt; element between documents, or?
&gt; 
&gt; This also needs a cycle check, as you could assign content to the containing DocumentFragment of the template element and get another cycle.
&gt; 
&gt; You may want to explore ways to share code with the ShadowDom implementation.  They override iteration functions and likely cover some of this cycle detection.

a) Yes. This is the same issue as above (moving templates between documents).
b) Yes. This is the same issue as above (disallowing cycles)
c) Yup. That&apos;s my hope.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.h:46
&gt;&gt; +    DocumentFragment* content();
&gt; 
&gt; This may end up const with a mutable m_content.  Depending on how others expect to access this.  (I&apos;m not a fan of that pattern, but it is common in WebKit.)

done.

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:87
&gt;&gt;          task.parent-&gt;parserInsertBefore(task.child.get(), task.nextChild.get());
&gt; 
&gt; Do we need to ASSERT in this function that the element&apos;s document matches the parent&apos;s document?

added ASSERT()s inside ContainerNode::parserInsertionBefore/AppendChild

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:409
&gt;&gt; +    if (currentNode()-&gt;isElementNode() &amp;&amp; currentElement()-&gt;hasTagName(templateTag))
&gt; 
&gt; You can just call currentNode()-&gt;hasTagName() directly.

done.

&gt;&gt; Source/WebCore/html/parser/HTMLConstructionSite.cpp:486
&gt;&gt; +    HTMLElementStack::ElementRecord* lastTemplateElement = m_openElements.topmost(templateTag.localName());
&gt; 
&gt; Probably deserves a &quot;why&quot; comment.  // Avoid reparenting outside of the &lt;template&gt; element.
&gt; 
&gt; Hixie may also re-write the spec to handle this case in a more generic way.

again, copied spec language

&gt;&gt; Source/WebCore/html/parser/HTMLElementStack.cpp:550
&gt;&gt; +    return inScopeCommon&lt;isHTMLNode&gt;(m_top.get(), templateTag.localName());
&gt; 
&gt; Should this just use isRootNode directly?  Adam mentions you may need to move isRootNode inside the anonymous namespace for it to compile (and remove the static keyword).

done

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:-1546
&gt;&gt; -            ASSERT(isParsingFragment());
&gt; 
&gt; Could this be isParsingFragmentOrTemplateContents instead?

No. This is the case of &lt;select&gt;&lt;template&gt;&lt;/template&gt;...

When the template pops, resetInsertionMode will be called, and there is no longer a &lt;template&gt; on the stack to detect the parsing template contents case.

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1664
&gt;&gt; +            return setInsertionMode(InHeadMode);
&gt; 
&gt; This line appears to be an error.  I&apos;m surprised we don&apos;t have a test case for this (we may need to add one).
&gt; 
&gt; This is the case where we&apos;re calling head.innerHTML = &quot;&quot;?  Correct?

There are tests on both side. I just hadn&apos;t run the non-template enabled tests. conditional reversed.

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2178
&gt;&gt; +            bool ignoreFramesetForFragmentParsing  = m_tree.currentNode() == m_tree.openElements()-&gt;rootNode();
&gt; 
&gt; Do we have a better accessor for this?  m_tree.currentIsRoot(), etc?

added HTMLConstructionSite::currentIsRootNode() (and several usages).

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2269
&gt;&gt; +        if (token-&gt;name() == templateTag) {
&gt; 
&gt; Could you link to your spec bug?

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778112</commentid>
    <comment_count>54</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 11:33:42 -0800</bug_when>
    <thetext>Ok, this is ready for review now. Note that a few issues which arose in this review will be addressed in follow-on patches:

The only one which isn&apos;t a spec bug and linked to within this patch with a FIXME is:

-Keep alive wrappers for content nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778113</commentid>
    <comment_count>55</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 11:34:17 -0800</bug_when>
    <thetext>(p.s. will obvious fix all builds before landing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778120</commentid>
    <comment_count>56</comment_count>
      <attachid>176531</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 11:38:55 -0800</bug_when>
    <thetext>Comment on attachment 176531
Patch

Attachment 176531 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15003951</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778124</commentid>
    <comment_count>57</comment_count>
      <attachid>176531</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 11:41:55 -0800</bug_when>
    <thetext>Comment on attachment 176531
Patch

Attachment 176531 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15031341</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778155</commentid>
    <comment_count>58</comment_count>
      <attachid>176531</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-28 12:05:00 -0800</bug_when>
    <thetext>Comment on attachment 176531
Patch

Attachment 176531 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15031345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778195</commentid>
    <comment_count>59</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 12:30:25 -0800</bug_when>
    <thetext>*** Bug 78734 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778232</commentid>
    <comment_count>60</comment_count>
      <attachid>176531</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 12:53:37 -0800</bug_when>
    <thetext>Comment on attachment 176531
Patch

Attachment 176531 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15018563</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778239</commentid>
    <comment_count>61</comment_count>
      <attachid>176531</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 12:58:29 -0800</bug_when>
    <thetext>Comment on attachment 176531
Patch

Attachment 176531 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15027525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778532</commentid>
    <comment_count>62</comment_count>
      <attachid>176611</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 17:29:57 -0800</bug_when>
    <thetext>Created attachment 176611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778535</commentid>
    <comment_count>63</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-28 17:30:31 -0800</bug_when>
    <thetext>Hopefully this patch fixes all builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778599</commentid>
    <comment_count>64</comment_count>
      <attachid>176611</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 18:47:43 -0800</bug_when>
    <thetext>Comment on attachment 176611
Patch

Attachment 176611 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15031461

New failing tests:
fast/dom/HTMLTemplateElement/ownerDocument.html
fast/dom/HTMLTemplateElement/innerHTML.html
fast/dom/HTMLTemplateElement/cloneNode.html
html5lib/run-template.html
fast/dom/HTMLTemplateElement/inertContents.html
fast/dom/HTMLTemplateElement/ownerDocumentXHTML.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778619</commentid>
    <comment_count>65</comment_count>
      <attachid>176611</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 19:52:48 -0800</bug_when>
    <thetext>Comment on attachment 176611
Patch

Attachment 176611 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15027650

New failing tests:
fast/dom/HTMLTemplateElement/ownerDocument.html
fast/dom/HTMLTemplateElement/cloneNode.html
fast/dom/HTMLTemplateElement/innerHTML.html
html5lib/run-template.html
fast/dom/HTMLTemplateElement/inertContents.html
fast/dom/HTMLTemplateElement/ownerDocumentXHTML.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779320</commentid>
    <comment_count>66</comment_count>
      <attachid>176788</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-29 12:28:58 -0800</bug_when>
    <thetext>Created attachment 176788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779329</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 12:33:14 -0800</bug_when>
    <thetext>Attachment 176788 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
LayoutTests/platform/gtk/TestExpectations:81:  Test lacks BUG modifier.  [test/expectations] [5]
LayoutTests/platform/gtk/TestExpectations:82:  Test lacks BUG modifier.  [test/expectations] [5]
Total errors found: 2 in 49 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779344</commentid>
    <comment_count>68</comment_count>
      <attachid>176791</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-29 12:44:30 -0800</bug_when>
    <thetext>Created attachment 176791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779412</commentid>
    <comment_count>69</comment_count>
      <attachid>176811</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-29 13:51:52 -0800</bug_when>
    <thetext>Created attachment 176811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779680</commentid>
    <comment_count>70</comment_count>
      <attachid>176870</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-29 17:55:45 -0800</bug_when>
    <thetext>Created attachment 176870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780211</commentid>
    <comment_count>71</comment_count>
      <attachid>176990</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-11-30 10:32:53 -0800</bug_when>
    <thetext>Created attachment 176990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780255</commentid>
    <comment_count>72</comment_count>
      <attachid>176990</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-30 11:21:00 -0800</bug_when>
    <thetext>Comment on attachment 176990
Patch

Attachment 176990 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15057441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780386</commentid>
    <comment_count>73</comment_count>
      <attachid>176990</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-30 13:47:52 -0800</bug_when>
    <thetext>Comment on attachment 176990
Patch

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

Looks like you&apos;ve got a compile problem on EFL.

&gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:9680
&gt; +            &lt;File

Looks like you have spaces here rather than tabs.  This is one of the rare files in WebKit that uses tabs.

&gt; Source/WebCore/css/html.css:1267
&gt; +template {
&gt; +    display: none
&gt; +}

Does this need to be conditional on ENABLE(TEMPLATE_ELEMENT) ?

&gt; Source/WebCore/html/HTMLTagNames.in:127
&gt; +template interfaceName=HTMLTemplateElement, conditional=TEMPLATE_ELEMENT

You shouldn&apos;t need the interfaceName attribute.  The default here is going to be HTMLTemplateElement.  textarea needs it because the first A is capitalized.

&gt; Source/WebCore/html/HTMLTemplateElement.cpp:68
&gt; +

You&apos;ve got an extra blank line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780743</commentid>
    <comment_count>74</comment_count>
      <attachid>177109</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-01 08:57:00 -0800</bug_when>
    <thetext>Created attachment 177109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780744</commentid>
    <comment_count>75</comment_count>
      <attachid>176990</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-01 08:58:14 -0800</bug_when>
    <thetext>Comment on attachment 176990
Patch

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

&gt;&gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:9680
&gt;&gt; +            &lt;File
&gt; 
&gt; Looks like you have spaces here rather than tabs.  This is one of the rare files in WebKit that uses tabs.

woops. fixed.

&gt;&gt; Source/WebCore/css/html.css:1267
&gt;&gt; +}
&gt; 
&gt; Does this need to be conditional on ENABLE(TEMPLATE_ELEMENT) ?

Yes. Good catch. Done.

&gt;&gt; Source/WebCore/html/HTMLTagNames.in:127
&gt;&gt; +template interfaceName=HTMLTemplateElement, conditional=TEMPLATE_ELEMENT
&gt; 
&gt; You shouldn&apos;t need the interfaceName attribute.  The default here is going to be HTMLTemplateElement.  textarea needs it because the first A is capitalized.

done.

&gt;&gt; Source/WebCore/html/HTMLTemplateElement.cpp:68
&gt;&gt; +
&gt; 
&gt; You&apos;ve got an extra blank line here.

removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780745</commentid>
    <comment_count>76</comment_count>
      <attachid>177109</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-01 09:38:29 -0800</bug_when>
    <thetext>Comment on attachment 177109
Patch

Attachment 177109 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15061863</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781867</commentid>
    <comment_count>77</comment_count>
      <attachid>177109</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-03 14:04:51 -0800</bug_when>
    <thetext>Comment on attachment 177109
Patch

Looks like you still have an EFL build issue to resolve, but this seems ready to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781884</commentid>
    <comment_count>78</comment_count>
      <attachid>177330</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-03 14:27:18 -0800</bug_when>
    <thetext>Created attachment 177330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782070</commentid>
    <comment_count>79</comment_count>
      <attachid>177381</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-03 17:33:14 -0800</bug_when>
    <thetext>Created attachment 177381
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782115</commentid>
    <comment_count>80</comment_count>
      <attachid>177330</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:30:31 -0800</bug_when>
    <thetext>Comment on attachment 177330
Patch

Rejecting attachment 177330 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ripts/update-webkit line 152.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2
Updating OpenSource
From http://git.chromium.org/external/Webkit
   c932ddb..08cc24c  HEAD       -&gt; origin/HEAD
error: Ref refs/remotes/origin/master is at 08cc24ce3a9ec5a16849aab51e2af879acbc10d7 but expected c932ddba2bb69e3e4446533e5ce469603719b3e9
 ! c932ddb..08cc24c  master     -&gt; origin/master  (unable to update local ref)
Died at Tools/Scripts/update-webkit line 152.

Full output: http://queues.webkit.org/results/15100803</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782128</commentid>
    <comment_count>81</comment_count>
      <attachid>177330</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 19:10:45 -0800</bug_when>
    <thetext>Comment on attachment 177330
Patch

Clearing flags on attachment: 177330

Committed r136467: &lt;http://trac.webkit.org/changeset/136467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782129</commentid>
    <comment_count>82</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 19:10:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782176</commentid>
    <comment_count>83</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 20:37:43 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 103966</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141044</attachid>
            <date>2012-05-09 16:21:56 -0700</date>
            <delta_ts>2012-05-10 09:28:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20120509162156.patch</filename>
            <type>text/plain</type>
            <size>62547</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3ZWI4N2E2NzE3NTJh
ZTgyNzc0ZTU4N2EyOWJkYjQ0NzMwMmMwNy4uYWM3ODVlNjY5NDdjZjcwNjM2Mzk4NzMzZTk5NmFi
MGJiODdhNmY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNSBAQAorMjAxMi0wNS0wOSAgUmFm
YWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudDo6aW5uZXJIVE1MKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudDo6c2V0SW5uZXJIVE1M
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5oOgorICAgICAgICAoRG9jdW1lbnRG
cmFnbWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsOgorICAgICAgICAq
IGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UXVhbGlmaWVkTmFtZTo6aW5pdCk6CisgICAgICAgICogZG9tL1F1YWxpZmllZE5hbWUu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbFFOYW1lKToKKyAg
ICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoK
KyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmlkbDoKKyAg
ICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKToKKyAgICAg
ICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFnbWVu
dEZyb21Tb3VyY2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICogaHRt
bC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SW5u
ZXJIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRPdXRlckhUTUwpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1w
bGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChI
VE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
aWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwuCisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpzaG91bGRGb3N0ZXJQYXJlbnQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAgICAgICAqIGh0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoSFRNTERvY3VtZW50UGFyc2VyKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxOYW1lczo6aXNTY29wZU1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TmFtZXM6OmlzVGFibGVTY29wZU1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6
OmlzVGFibGVCb2R5U2NvcGVNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE5hbWVzOjpp
c1RhYmxlUm93U2NvcGVNYXJrZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUb2tlbi5o
OgorICAgICAgICAoV2ViQ29yZTo6QXRvbWljSFRNTFRva2VuOjpjcmVhdGUpOgorICAgICAgICAo
QXRvbWljSFRNTFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkF0b21pY0hUTUxUb2tlbjo6QXRv
bWljSFRNTFRva2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpFeHRlcm5hbENoYXJhY3RlclRv
a2VuQnVmZmVyOjpFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6RnJhZ21lbnRQYXJzaW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRy
ZWVGcm9tVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpv
cGVuVGVtcGxhdGVGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6Y2xvc2VUZW1wbGF0ZUZyYWdtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRJbXBsaWVkQ29udGV4dFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VHJlZUJ1aWxkZXI6OmltcGxpZWRDb250ZXh0VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
cmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNlbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpjYW5Db250aW51ZSk6CisgICAgICAgIChGcmFnbWVudFBhcnNpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5n
Q29udGV4dDo6ZnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpG
cmFnbWVudFBhcnNpbmdDb250ZXh0Ojpjb250ZXh0VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6c2V0Q29udGV4dFRhZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6
OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNp
bmdDb250ZXh0Ojpwb3ApOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAg
KiB4bWwvcGFyc2VyL01hcmt1cFRva2VuQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXRvbWlj
TWFya3VwVG9rZW5CYXNlOjpBdG9taWNNYXJrdXBUb2tlbkJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXRvbWljTWFya3VwVG9rZW5CYXNlOjpjaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKEF0b21p
Y01hcmt1cFRva2VuQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNNYXJrdXBUb2tlbkJh
c2U6OmNoYXJhY3RlckRhdGFTaXplKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFj
dGVyKToKKwogMjAxMi0wNS0wOSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXaGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2UgZHVyaW5nIGEgbmF2aWdhdGlv
biwgcHJpbWUgdGhlIGluaXRpYWwgZG9jdW1lbnQgd2l0aCB0aGUgY29ycmVjdCByZWZlcnJlciBw
b2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY4NGNmMjU2MDJlODIwMTk3MmVi
ZmYyYmVjZDU2NjUwZTdiZTViMy4uYzFkODQ5ZDY0MDliMTliM2QyMWQxMjA0ZWU3Yzc5YzA5OWY1
Y2E1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0w
NS0wOSAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0wNS0wOSAgTWFy
ayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBS
ZW1vdmUgUGxhdGZvcm1TdXBwb3J0Ojpsb2FkUGxhdGZvcm1JbWFnZVJlc291cmNlLCBjYWxsIGxv
YWRSZXNvdXJjZSBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDIzNTcwMzFlMGQzMDVkNWIz
NGQzNWM1MzcwODljYTE4ZGUxNjQ2ODguLjM2ZTY0MGY3ZjFmZjdiZTY1YWFlOGEwMjhmYjhiOWY1
YzYzZmJjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNjMsNiArMTA2Myw3IEBACiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFVM
aXN0RWxlbWVudC5pZGwnLApAQCAtNTU5Myw2ICs1NTk0LDggQEAKICAgICAgICAgICAgICdodG1s
L0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAnLAor
ICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVt
ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggZjdj
ZmFkZmNjNzlmMzFkNTE2NjNlYWFjMDQyYjM0NWRhNzM0YzE5YS4uOWJjYzMzYzcwMWJiNzBiNDg4
NTdlMzk1MjVlYTQ3ZDBiM2I1MzFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAibWFy
a3VwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTAsNCArOTEsMjEgQEAgYm9vbCBE
b2N1bWVudEZyYWdtZW50OjpwYXJzZVhNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIEYKICNlbmRpZgogfQogCitTdHJpbmcgRG9jdW1lbnRGcmFnbWVudDo6
aW5uZXJIVE1MKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlTWFya3VwKHRoaXMsIENoaWxk
cmVuT25seSk7Cit9CisKK3ZvaWQgRG9jdW1lbnRGcmFnbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFkb2N1bWVudCgp
LT5pc0hUTUxEb2N1bWVudCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgZG9jdW1lbnQoKSwgMCAvKiBj
b250ZXh0RWxlbWVudCAqLywgZWMpOworICAgIGlmIChmcmFnbWVudCkKKyAgICAgICAgcmVwbGFj
ZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAppbmRleCAxZWE0ZGNiMzI2NWZm
MmE4NjY4YjQwZGY0ZmFmNzNkZjVlMGU0ZDU0Li45MjY4MjFlMDE0OWNkNDIwYmY2NDQwNjM0N2U2
NGIwNjQyYmI2ZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFn
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKQEAgLTM4
LDYgKzM4LDkgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgU3RyaW5n
IGlubmVySFRNTCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5lckhUTUwoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnRGcmFn
bWVudChEb2N1bWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVDb250YWluZXIpOwogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5pZGwKaW5kZXggODgyYjYyZGIzOWViN2YyZTA1MDQ3ODIwNDkyYjdlOTM2MWE4
ZWRlZC4uZjVmNTkxMzk3MmRiN2VkMDA0MTg4MmE2NjhlYTYzMzFhY2M3M2ZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmlkbApAQCAtMjUsNiArMjUsOCBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZUxp
c3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNw
cAppbmRleCBlMDg1NTA3MGE3Y2IzMjUzNGNjYmY4YWI4ZDA1MjY2N2RhMzE5ZjE1Li5mYWIxYzJi
NmIyNzIzNzhmNmI5YjA3YzgwYTY0N2UzMGM0ODU2MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxp
ZmllZE5hbWUuY3BwCkBAIC0xMDQsNiArMTA0LDcgQEAgU3RyaW5nIFF1YWxpZmllZE5hbWU6OnRv
U3RyaW5nKCkgY29uc3QKIAogLy8gR2xvYmFsIGluaXQgcm91dGluZXMKIERFRklORV9HTE9CQUwo
UXVhbGlmaWVkTmFtZSwgYW55TmFtZSwgbnVsbEF0b20sIHN0YXJBdG9tLCBzdGFyQXRvbSkKK0RF
RklORV9HTE9CQUwoUXVhbGlmaWVkTmFtZSwgbnVsbE5hbWUsIG51bGxBdG9tLCBudWxsQXRvbSwg
bnVsbEF0b20pCiAKIHZvaWQgUXVhbGlmaWVkTmFtZTo6aW5pdCgpCiB7CkBAIC0xMTMsNiArMTE0
LDcgQEAgdm9pZCBRdWFsaWZpZWROYW1lOjppbml0KCkKICAgICAgICAgCiAgICAgICAgIEF0b21p
Y1N0cmluZzo6aW5pdCgpOwogICAgICAgICBuZXcgKCh2b2lkKikmYW55TmFtZSkgUXVhbGlmaWVk
TmFtZShudWxsQXRvbSwgc3RhckF0b20sIHN0YXJBdG9tKTsKKyAgICAgICAgbmV3ICgodm9pZCop
Jm51bGxOYW1lKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBudWxsQXRvbSwgbnVsbEF0b20pOwog
ICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZp
ZWROYW1lLmgKaW5kZXggNjM2YjJhNTE1MGM5ZTk4N2MwMjdlNzU2OTc5MmQ5YmFjMzRhODllOS4u
OWVmYjg4MTI3MzY5NzZlMWM1NDM4OWEwMzdlMjFjMDhhOWZkNzdkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UXVhbGlmaWVkTmFtZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgcHJpdmF0ZToKICNpZm5kZWYgV0VC
Q09SRV9RVUFMSUZJRUROQU1FX0hJREVfR0xPQkFMUwogZXh0ZXJuIGNvbnN0IFF1YWxpZmllZE5h
bWUgYW55TmFtZTsKIGlubGluZSBjb25zdCBRdWFsaWZpZWROYW1lJiBhbnlRTmFtZSgpIHsgcmV0
dXJuIGFueU5hbWU7IH0KK2V4dGVybiBjb25zdCBRdWFsaWZpZWROYW1lIG51bGxOYW1lOworaW5s
aW5lIGNvbnN0IFF1YWxpZmllZE5hbWUmIG51bGxRTmFtZSgpIHsgcmV0dXJuIG51bGxOYW1lOyB9
CiAjZW5kaWYKIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIHEpIHsgcmV0dXJuIGEgPT0gcS5sb2NhbE5hbWUoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGFhMDM0YmEzMDBlMjc1NjE3ZTViN2Y5NWFj
Yjc1N2E3MzY2OTU2ZDUuLmExYmU0MmVhZWZjODNjNjM2MGQzNWFhMTY0NWFmODExM2E2Njg1NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTEzNywxOCArMTM3LDYgQEAgUGFzc1Jl
ZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCkKICAgICByZXR1cm4gMDsKIH0K
IAotU3RyaW5nIFNoYWRvd1Jvb3Q6OmlubmVySFRNTCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNy
ZWF0ZU1hcmt1cCh0aGlzLCBDaGlsZHJlbk9ubHkpOwotfQotCi12b2lkIFNoYWRvd1Jvb3Q6OnNl
dElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9t
U291cmNlKG1hcmt1cCwgaG9zdCgpLCBlYyk7Ci0gICAgaWYgKGZyYWdtZW50KQotICAgICAgICBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7
Ci19Ci0KIERPTVNlbGVjdGlvbiogU2hhZG93Um9vdDo6c2VsZWN0aW9uKCkKIHsKICAgICBpZiAo
ZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5kb21XaW5kb3coKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCmluZGV4IGMwMDI0YzcxNjczMjMwOTk3MGYxYmU4MTcwNzUxNjg1ZmYwNDE5ZTAuLmNiOGEy
MGMyM2Q1YmNmNjViZDkxMWE3YjM5ZGFjYjY4NWQ5YjJkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaApAQCAtNzMsOSArNzMsNiBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0
IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQogICAgIEVsZW1lbnRTaGFkb3cqIG93bmVyKCkgY29u
c3Q7CiAKLSAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJbm5lckhU
TUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgRWxlbWVudCogYWN0aXZl
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgRE9NU2VsZWN0aW9uKiBzZWxlY3Rpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA1NTA1N2I2ODA2ZDUzYjNjMmQ1MWM5NzNmZjQ1YTBj
ZjllZjhhYmE3Li44NDllNzU2MjQwNjVhMzAzODFlODcxMDkwZDQxY2RjOTg0YTQyNjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNyw5ICszNyw2IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVNlbGVjdGlvbiBzZWxlY3Rpb247CiAgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIGFwcGx5QXV0aG9yU3R5bGVzOwogCi0gICAgICAgIGF0dHJp
YnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAotICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIEVsZW1lbnQgZ2V0
RWxlbWVudEJ5SWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVs
ZW1lbnRJZCk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNzTmFtZSk7CiAgICAgICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHAKaW5kZXggODAwNTBmZmFlOWE2MTkxZDU1NWExZWNkNTkzZDViZmJl
ZTEzNjEwYS4uMzljZTBjMDljZDZjYzljYWFjZWFiYzA1OGIzYWM0ZGZiODQ5YWY5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5j
bHVkZSAiWE1MTlNOYW1lcy5oIgpAQCAtMTAzLDcgKzEwNCwxMSBAQCB2b2lkIE1hcmt1cEFjY3Vt
dWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdldE5vZGUsIE5v
ZGUqIG5vZAogICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAmbmFtZXNwYWNlSGFz
aCk7CiAKICAgICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgp
ICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewotICAgICAgICBmb3Ig
KE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJl
bnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQorICAgICAgICBOb2RlKiBlZmZlY3RpdmVOb2Rl
ID0gdGFyZ2V0Tm9kZTsKKyAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUtPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpKQorICAgICAgICAgICAgZWZmZWN0aXZlTm9kZSA9IHN0YXRpY19jYXN0PE5vZGUq
PihzdGF0aWNfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4oZWZmZWN0aXZlTm9kZSktPmNvbnRl
bnQoKS5nZXQoKSk7CisKKyAgICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0gZWZmZWN0aXZlTm9k
ZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmco
KSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwgbm9k
ZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcAppbmRleCBkMmM4MzNjNjQwOGZiMDE0ZmYwODIyNDVkMDc2OTBlYzYx
ZDdlZDE3Li4wNDNjYzQxNzc5MjEwMmQzZTQ3NzdjYmQxNmI2NWRjNWM1Zjc1NDQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC05OTIsOSArOTkyLDggQEAgU3RyaW5nIHVybFRvTWFy
a3VwKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4gbWFy
a3VwLnRvU3RyaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
RnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgbWFya3VwLCBFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRG9jdW1lbnQq
IGRvY3VtZW50LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7CiAg
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKaW5kZXggOTE4YWU5YjEzZTkxY2E3OGI4YjdhZmE0ZGNm
N2Q3NmVkNjg2MzkwZC4uNTRlZDhjMDFjZWNlNzY2MTlhNzZhNDM1NzI3NTZiMDZlZmQ2ZDdiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bU1hcmt1cChEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxs
b3dlZCk7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZy
b21NYXJrdXBXaXRoQ29udGV4dChEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCB1bnNp
Z25lZCBmcmFnbWVudFN0YXJ0LCB1bnNpZ25lZCBmcmFnbWVudEVuZCwgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXMoRG9jdW1lbnQqLCBjb25zdCBW
ZWN0b3I8Tm9kZSo+Jik7Ci0gICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVG
cmFnbWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiwgRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVNv
dXJjZShjb25zdCBTdHJpbmcmLCBEb2N1bWVudCosIEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7
CiAKICAgICBib29sIGlzUGxhaW5UZXh0TWFya3VwKE5vZGUgKm5vZGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGQzNjdmOWJiYWFhODk4OWMwNmJmNzAwZDYxNzhhNWYw
ZTZlYzU4ODAuLjg3YmRjMjQ0ZjBlMDVmOWFiYmI5ZmExOWIyMzU3NmFiY2QzYjNiNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0zNDQsNyArMzQ0LDcgQEAgU3RyaW5nIEhU
TUxFbGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5l
ckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2Uo
aHRtbCwgdGhpcywgZWMpOworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9
IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShodG1sLCBkb2N1bWVudCgpLCB0aGlzLCBlYyk7CiAg
ICAgaWYgKGZyYWdtZW50KQogICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodGhp
cywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBI
VE1MRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgUmVmUHRyPE5vZGU+IHByZXYgPSBwcmV2aW91c1NpYmxpbmcoKTsKICAgICBS
ZWZQdHI8Tm9kZT4gbmV4dCA9IG5leHRTaWJsaW5nKCk7CiAKLSAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgcGFyZW50
LmdldCgpLCBlYyk7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKGh0bWwsIGRvY3VtZW50KCksIHBhcmVudC5nZXQoKSwgZWMp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmgKaW5kZXggOTVhOGU3NDc5MWFiMTA3OGU5YzgzZGQwM2ViYzcwMmQ2NTc0YjIzMS4u
MDhiOWMyNmI2NWRmZmZmZDIwODY1ZDE0MjAyYjI0ZDRmZjI0MDhmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaApAQCAtNTIsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBzaG9y
dCB0YWJJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGFiSW5kZXgoaW50KTsKIAotICAgIFN0
cmluZyBpbm5lckhUTUwoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBpbm5lckhUTUwoKSBj
b25zdDsKICAgICBTdHJpbmcgb3V0ZXJIVE1MKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJbm5lckhU
TUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0T3V0
ZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldElubmVy
VGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRPdXRlclRl
eHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAppbmRleCBjZDg5YjQ2ODdjNmQyZjA3ZDJmMWI3YTEy
MThhZWUzOTI0YWJmZmRhLi5jODQ2MjZiNDFjNDY3N2UyODk4M2U0YzliZTY5YzQ1MThjMTQ4MGFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcApAQCAt
MTAzLDYgKzEwMyw3IEBACiAjaW5jbHVkZSAiSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IGE4Y2ZmNzNlY2FkYjA4NzQ4ODRkYjk5M2JjYjUy
NjgyNWFmYjYzNzcuLjlhNzA2YWNhNjU5ODI0YjE4MjJhNjU4N2QxNjAwMzUyODc5NTBhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMjIsNiArMTIyLDcgQEAgc3VwIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxlCiB0Ym9keSBpbnRlcmZhY2VOYW1lPUhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50CiB0ZCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50
Cit0ZW1wbGF0ZSBpbnRlcmZhY2VOYW1lPUhUTUxUZW1wbGF0ZUVsZW1lbnQsIGNvbmRpdGlvbmFs
PVRFTVBMQVRFX1RBRwogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFFbGVtZW50
LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290IGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgyYjVkM2E5MTQ4NDY2OWI0YjE2ZTQxOWZmMGRkOTdmZjNhNGJjYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQu
aCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50
OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorewor
fQorCitQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGVtcGxhdGVFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gSFRNTFRlbXBs
YXRlRWxlbWVudDo6Y29udGVudCgpCit7CisgICAgaWYgKG1fY29udGVudCkKKyAgICAgICAgcmV0
dXJuIG1fY29udGVudDsKKworICAgIG1fZG9jdW1lbnQgPSBvd25lckRvY3VtZW50KCktPmltcGxl
bWVudGF0aW9uKCktPmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7CisgICAgbV9jb250ZW50ID0gRG9j
dW1lbnRGcmFnbWVudDo6Y3JlYXRlKG1fZG9jdW1lbnQuZ2V0KCkpOworICAgIHJldHVybiBtX2Nv
bnRlbnQ7Cit9CisKK3ZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgY29udGVudCgpLT5zZXRJ
bm5lckhUTUwoaHRtbCwgZWMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NTEyYWVhYmQy
NjZlYTlhMzljNGM2MzM0N2Y0YmM4MjRjNzgxODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKwor
I2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MVGVtcGxhdGVFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxh
dGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjb250ZW50KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0
ZToKKyAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworCisgICAgUmVmUHRyPEhUTUxEb2N1bWVudD4gbV9kb2N1bWVudDsKKyAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gSFRNTFRlbXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjMyZjY3YWI4MWI5OWEzNGU3
MTZmNGJmMjczZjM5YmU1ZjNiNzBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1s
IHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1TSEFET1dfRE9NLAorICAg
ICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NLAorICAgIF0gSFRNTFRlbXBsYXRlRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50
RnJhZ21lbnQgY29udGVudDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDNjYTg3NWExYjIwN2IyNjNh
ZWEyODZmMTQwNTkxZDQxMjcwYmI2NWEuLjM0NWFmNTA2Y2ZhMjNmZDZiYTYwNTNjODQ0ZTQ5ZmQw
M2E4MjAzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKQEAgLTQ4OCw2ICs0ODksMTIgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6Z2VuZXJhdGVJbXBsaWVkRW5kVGFncygpCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6
OmZpbmRGb3N0ZXJTaXRlKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIHsKKyAgICAv
LyBUZW1wbGF0ZSBGcmFnbWVudCBjYXNlLgorICAgIGlmIChjdXJyZW50Tm9kZSgpLT5pc0VsZW1l
bnROb2RlKCkgJiYgY3VycmVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpIHsK
KyAgICAgICAgdGFzay5wYXJlbnQgPSBzdGF0aWNfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4o
Y3VycmVudEVsZW1lbnQoKSktPmNvbnRlbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNv
cmQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAgICBp
ZiAobGFzdFRhYmxlRWxlbWVudFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFibGVF
bGVtZW50ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpAQCAtNTA1LDkgKzUx
Miw4IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEhUTUxDb25z
dHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogYm9vbCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2hv
dWxkRm9zdGVyUGFyZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZWRpcmVjdEF0dGFjaFRv
Rm9zdGVyUGFyZW50Ci0gICAgICAgICYmIGN1cnJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKQot
ICAgICAgICAmJiBjYXVzZXNGb3N0ZXJQYXJlbnRpbmcoY3VycmVudEVsZW1lbnQoKS0+dGFnUU5h
bWUoKSk7CisgICAgcmV0dXJuICFpc0VtcHR5KCkgJiYgY3VycmVudE5vZGUoKS0+aXNFbGVtZW50
Tm9kZSgpCisgICAgICAgICAgICYmIChjdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKHRlbXBs
YXRlVGFnKSB8fCAobV9yZWRpcmVjdEF0dGFjaFRvRm9zdGVyUGFyZW50ICYmIGNhdXNlc0Zvc3Rl
clBhcmVudGluZyhjdXJyZW50RWxlbWVudCgpLT50YWdRTmFtZSgpKSkpOwogfQogCiB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpmb3N0ZXJQYXJlbnQoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
aW5kZXggN2EwNmI0MjM5NjkxM2Q5ZDk2ZDRlNTcxZDViMjMzYTkyMzcwNDI5NS4uZjg2ZjczOTBl
ZWNlZTQ3MjUzZTgzYzNmODgxNTdjYmNkNWI2Y2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yNzUsNiArMjc1LDIzIEBA
IHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKFN5bmNocm9ub3VzTW9kZSBt
b2RlKQogICAgICAgICAgICAgbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKG1fdG9rZW4pOwogICAg
ICAgICB9CiAKKyAgICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyLT5jYW5Db250aW51ZShtX3Rva2Vu
KSkgeworICAgICAgICAgICAgLy8gVHJlZSBjb25zdHJ1Y3Rpb24gc2hvdWxkIG9ubHkgYmUgYmxv
Y2tlZCBieSB3YWl0aW5nIG9uIHRoZSBuZXh0CisgICAgICAgICAgICAvLyBzdGFydCB0YWcuCisg
ICAgICAgICAgICBBU1NFUlQobV90b2tlbi50eXBlKCkgIT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0
VGFnCisgICAgICAgICAgICAgICAgICAgJiYgbV90b2tlbi50eXBlKCkgIT0gSFRNTFRva2VuVHlw
ZXM6OkVuZE9mRmlsZSk7CisgICAgICAgICAgICBtX3F1ZXVlZEF0b21pY1Rva2Vucy5hcHBlbmQo
QXRvbWljSFRNTFRva2VuOjpjcmVhdGUobV90b2tlbikpOworICAgICAgICAgICAgbV90b2tlbi5j
bGVhcigpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
IW1fcXVldWVkQXRvbWljVG9rZW5zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgVmVjdG9yPE93
blB0cjxBdG9taWNIVE1MVG9rZW4+ID4gcXVldWVkVG9rZW5zOworICAgICAgICAgICAgcXVldWVk
VG9rZW5zLnN3YXAobV9xdWV1ZWRBdG9taWNUb2tlbnMpOworICAgICAgICAgICAgZm9yIChWZWN0
b3I8T3duUHRyPEF0b21pY0hUTUxUb2tlbj4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBxdWV1ZWRU
b2tlbnMuYmVnaW4oKTsgaXQgIT0gcXVldWVkVG9rZW5zLmVuZCgpOyArK2l0KQorICAgICAgICAg
ICAgICAgIG1fdHJlZUJ1aWxkZXItPmNvbnN0cnVjdFRyZWVGcm9tQXRvbWljVG9rZW4oKihpdC0+
Z2V0KCkpKTsKKyAgICAgICAgfQorCiAgICAgICAgIG1fdHJlZUJ1aWxkZXItPmNvbnN0cnVjdFRy
ZWVGcm9tVG9rZW4obV90b2tlbik7CiAgICAgICAgIEFTU0VSVChtX3Rva2VuLmlzVW5pbml0aWFs
aXplZCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5oCmluZGV4IGVlZTg4MmM3MjRlM2UzYjBkNmRkNzRmYmQ2YTg2ZDVjYjcyMmJh
YzQuLjM2Y2NiYTUwNTBkNWY0MGViY2NlNDdjZGNlNmEwM2U5MWQyZDJiZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC03MSw3ICs3
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3VtZVBhcnNpbmdBZnRlcllpZWxkKCk7CiAKICAg
ICBzdGF0aWMgdm9pZCBwYXJzZURvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1l
bnRGcmFnbWVudCosIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwotICAgIAorCiAgICAgc3RhdGlj
IGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoRG9jdW1lbnQqKTsKICAgICBzdGF0aWMgdW5z
aWduZWQgbWF4aW11bURPTVRyZWVEZXB0aChEb2N1bWVudCopOwogCkBAIC0xNDUsNiArMTQ1LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBXZSBob2xkIG1fdG9rZW4gaGVyZSBiZWNhdXNlIGl0IG1pZ2h0
IGJlIHBhcnRpYWxseSBjb21wbGV0ZS4KICAgICBIVE1MVG9rZW4gbV90b2tlbjsKIAorICAgIFZl
Y3RvcjxPd25QdHI8QXRvbWljSFRNTFRva2VuPiA+IG1fcXVldWVkQXRvbWljVG9rZW5zOwogICAg
IE93blB0cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsKICAgICBPd25QdHI8SFRNTFNjcmlw
dFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CiAgICAgT3duUHRyPEhUTUxUcmVlQnVpbGRlcj4gbV90
cmVlQnVpbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxF
bGVtZW50U3RhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5jcHAKaW5kZXggY2Q1ZDA4YTU1M2VkYzg0NzM1NjFhMTYxZWUxYTk3NGEyN2Y2MDNjMy4u
ZTE1ZDlmMzI0YTAxY2QzNGY0ZDRkZjM2Mjg4ZjZmYzkzZTVjNzcwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKQEAgLTc0LDYgKzc0LDcg
QEAgaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQogICAgICAg
ICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQogICAgICAg
ICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQogICAgICAgICB8fCBub2Rl
LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFn
TmFtZSh0ZW1wbGF0ZVRhZykKICAgICAgICAgfHwgaXNSb290Tm9kZShub2RlKTsKIH0KIApAQCAt
ODcsNiArODgsNyBAQCBpbmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVNYXJrZXIoQ29udGFpbmVy
Tm9kZSogbm9kZSkKIGlubGluZSBib29sIGlzVGFibGVTY29wZU1hcmtlcihDb250YWluZXJOb2Rl
KiBub2RlKQogewogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKHRhYmxlVGFnKQorICAgICAg
ICB8fCBub2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQogICAgICAgICB8fCBpc1Jvb3ROb2Rl
KG5vZGUpOwogfQogCkBAIC05NSwxMiArOTcsMTQgQEAgaW5saW5lIGJvb2wgaXNUYWJsZUJvZHlT
Y29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5oYXNUYWdO
YW1lKHRib2R5VGFnKQogICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRmb290VGFnKQogICAg
ICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRoZWFkVGFnKQorICAgICAgICB8fCBub2RlLT5oYXNU
YWdOYW1lKHRlbXBsYXRlVGFnKQogICAgICAgICB8fCBpc1Jvb3ROb2RlKG5vZGUpOwogfQogCiBp
bmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoQ29udGFpbmVyTm9kZSogbm9kZSkKIHsK
ICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZSh0clRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFz
VGFnTmFtZSh0ZW1wbGF0ZVRhZykKICAgICAgICAgfHwgaXNSb290Tm9kZShub2RlKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW4uaAppbmRleCA0YWNmZWM5Zjg3NWY3Njk5
NWJjMGFlYWZlNjdiN2JjYTI2MDBiZWEzLi5kOTg5OWI5NjVjNjIzNWVhMTZmZTcxZDc1M2VkZjU4
ZDNkNTI4NjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9r
ZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW4uaApAQCAtODQs
NyArODQsMTIgQEAgcHVibGljOgogY2xhc3MgQXRvbWljSFRNTFRva2VuIDogcHVibGljIEF0b21p
Y01hcmt1cFRva2VuQmFzZTxIVE1MVG9rZW4+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShB
dG9taWNIVE1MVG9rZW4pOwogcHVibGljOgotICAgIEF0b21pY0hUTUxUb2tlbihIVE1MVG9rZW4m
IHRva2VuKSA6IEF0b21pY01hcmt1cFRva2VuQmFzZTxIVE1MVG9rZW4+KCZ0b2tlbikgeyB9Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8QXRvbWljSFRNTFRva2VuPiBjcmVhdGUoSFRNTFRva2VuJiB0
b2tlbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQXRvbWljSFRNTFRva2Vu
KHRva2VuLCBJbnRlcm5hbGl6ZUNoYXJhY3RlcnMpKTsKKyAgICB9CisKKyAgICBBdG9taWNIVE1M
VG9rZW4oSFRNTFRva2VuJiB0b2tlbiwgQ2hhcmFjdGVyU3RvcmFnZU1vZGUgY2hhcmFjdGVyU3Rv
cmFnZSA9IFJlZmVyZW5jZUV4dGVybmFsQ2hhcmFjdGVycykgOiBBdG9taWNNYXJrdXBUb2tlbkJh
c2U8SFRNTFRva2VuPigmdG9rZW4sIGNoYXJhY3RlclN0b3JhZ2UpIHsgfQogCiAgICAgQXRvbWlj
SFRNTFRva2VuKEhUTUxUb2tlblR5cGVzOjpUeXBlIHR5cGUsIEF0b21pY1N0cmluZyBuYW1lLCBj
b25zdCBWZWN0b3I8QXR0cmlidXRlPiYgYXR0cmlidXRlcyA9IFZlY3RvcjxBdHRyaWJ1dGU+KCkp
CiAgICAgICAgIDogQXRvbWljTWFya3VwVG9rZW5CYXNlPEhUTUxUb2tlbj4odHlwZSwgbmFtZSwg
YXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuY3BwCmluZGV4IDVkNTM0MmJiMDA0ZTZjZjQ0OWM5ODZlMjQ0OGQ1NDQ2NjdmODZmYTYuLjA5
MTM2NTQxMzhjYjhiN2Y2ZWYzNzc4NjM2MTcxM2MyNDIyMjE3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDAsNiArNDAsNyBAQAog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNp
bmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgi
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtMjQ4LDggKzI0OSw4IEBAIGNsYXNz
IEhUTUxUcmVlQnVpbGRlcjo6RXh0ZXJuYWxDaGFyYWN0ZXJUb2tlbkJ1ZmZlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoRXh0ZXJuYWxDaGFyYWN0ZXJUb2tlbkJ1ZmZlcik7CiBwdWJsaWM6
CiAgICAgZXhwbGljaXQgRXh0ZXJuYWxDaGFyYWN0ZXJUb2tlbkJ1ZmZlcihBdG9taWNIVE1MVG9r
ZW4mIHRva2VuKQotICAgICAgICA6IG1fY3VycmVudCh0b2tlbi5jaGFyYWN0ZXJzKCkuZGF0YSgp
KQotICAgICAgICAsIG1fZW5kKG1fY3VycmVudCArIHRva2VuLmNoYXJhY3RlcnMoKS5zaXplKCkp
CisgICAgICAgIDogbV9jdXJyZW50KHRva2VuLmNoYXJhY3RlckRhdGEoKSkKKyAgICAgICAgLCBt
X2VuZChtX2N1cnJlbnQgKyB0b2tlbi5jaGFyYWN0ZXJEYXRhU2l6ZSgpKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFpc0VtcHR5KCkpOwogICAgIH0KQEAgLTM2OCw3ICszNjksNyBAQCBIVE1MVHJl
ZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciwgSFRN
TERvY3VtZW50KiBkb2N1bQogLy8gbWluaW1pemUgY29kZSBkdXBsaWNhdGlvbiBiZXR3ZWVuIHRo
ZXNlIGNvbnN0cnVjdG9ycy4KIEhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxE
b2N1bWVudFBhcnNlciogcGFyc2VyLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQ
ZXJtaXNzaW9uLCBib29sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzLCB1bnNpZ25lZCBtYXhpbXVt
RE9NVHJlZURlcHRoKQogICAgIDogbV9mcmFtZXNldE9rKHRydWUpCi0gICAgLCBtX2ZyYWdtZW50
Q29udGV4dChmcmFnbWVudCwgY29udGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pCisg
ICAgLCBtX2ZyYWdtZW50Q29udGV4dChmcmFnbWVudCwgY29udGV4dEVsZW1lbnQgPyBjb250ZXh0
RWxlbWVudC0+dGFnUU5hbWUoKSA6IG51bGxRTmFtZSgpLCBzY3JpcHRpbmdQZXJtaXNzaW9uKQog
ICAgICwgbV9kb2N1bWVudChmcmFnbWVudC0+ZG9jdW1lbnQoKSkKICAgICAsIG1fdHJlZShmcmFn
bWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbiwgbWF4aW11bURPTVRyZWVEZXB0aCkKICAgICAsIG1f
cmVwb3J0RXJyb3JzKGZhbHNlKSAvLyBGSVhNRTogV2h5IG5vdCByZXBvcnQgZXJyb3JzIGluIGZy
YWdtZW50cz8KQEAgLTM4MSwxNyArMzgyLDE0IEBAIEhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVC
dWlsZGVyKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyLCBEb2N1bWVudEZyYWdtZW50KiBmCiAg
ICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb246OmJlbG93
UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVI
VE1MNVBhcnNlclF1aXJrcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBhc3NlcnRpb24gd2lsbCBi
ZWNvbWUgaW52YWxpZCBpZiA8aHR0cDovL3dlYmtpdC5vcmcvYi82MDMxNj4gaXMgZml4ZWQuCi0g
ICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICBpZiAoY29udGV4dEVsZW1lbnQpIHsKLSAg
ICAgICAgLy8gU3RlcHMgNC4yLTQuNiBvZiB0aGUgSFRNTDUgRnJhZ21lbnQgQ2FzZSBwYXJzaW5n
IGFsZ29yaXRobToKLSAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLWVuZC5odG1sI2ZyYWdtZW50LWNhc2UKLSAg
ICAgICAgLy8gRm9yIGVmZmljaWVuY3ksIHdlIHNraXAgc3RlcCA0LjIgKCJMZXQgcm9vdCBiZSBh
IG5ldyBodG1sIGVsZW1lbnQgd2l0aCBubyBhdHRyaWJ1dGVzIikKLSAgICAgICAgLy8gYW5kIGlu
c3RlYWQgdXNlIHRoZSBEb2N1bWVudEZyYWdtZW50IGFzIGEgcm9vdCBub2RlLgotICAgICAgICBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPnB1c2hSb290Tm9kZShmcmFnbWVudCk7Ci0gICAgICAgIHJl
c2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAvLyBTdGVwcyA0LjItNC42IG9m
IHRoZSBIVE1MNSBGcmFnbWVudCBDYXNlIHBhcnNpbmcgYWxnb3JpdGhtOgorICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Ro
ZS1lbmQuaHRtbCNmcmFnbWVudC1jYXNlCisgICAgLy8gRm9yIGVmZmljaWVuY3ksIHdlIHNraXAg
c3RlcCA0LjIgKCJMZXQgcm9vdCBiZSBhIG5ldyBodG1sIGVsZW1lbnQgd2l0aCBubyBhdHRyaWJ1
dGVzIikKKyAgICAvLyBhbmQgaW5zdGVhZCB1c2UgdGhlIERvY3VtZW50RnJhZ21lbnQgYXMgYSBy
b290IG5vZGUuCisgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wdXNoUm9vdE5vZGUoZnJhZ21l
bnQpOworICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICBpZiAoY29u
dGV4dEVsZW1lbnQpCiAgICAgICAgIG1fdHJlZS5zZXRGb3JtKGNsb3Nlc3RGb3JtQW5jZXN0b3Io
Y29udGV4dEVsZW1lbnQpKTsKLSAgICB9CiB9CiAKIEhUTUxUcmVlQnVpbGRlcjo6fkhUTUxUcmVl
QnVpbGRlcigpCkBAIC00MTAsMTQgKzQwOCwxNCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGV0
YWNoKCkKIAogSFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNpbmdDb250ZXh0OjpGcmFnbWVu
dFBhcnNpbmdDb250ZXh0KCkKICAgICA6IG1fZnJhZ21lbnQoMCkKLSAgICAsIG1fY29udGV4dEVs
ZW1lbnQoMCkKKyAgICAsIG1fY29udGV4dFRhZyhudWxsUU5hbWUoKSkKICAgICAsIG1fc2NyaXB0
aW5nUGVybWlzc2lvbihGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpCiB7CiB9CiAKLUhUTUxUcmVl
QnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dChE
b2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorSFRNTFRyZWVCdWls
ZGVyOjpGcmFnbWVudFBhcnNpbmdDb250ZXh0OjpGcmFnbWVudFBhcnNpbmdDb250ZXh0KERvY3Vt
ZW50RnJhZ21lbnQqIGZyYWdtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZXh0VGFnLCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKICAgICA6IG1f
ZnJhZ21lbnQoZnJhZ21lbnQpCi0gICAgLCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50
KQorICAgICwgbV9jb250ZXh0VGFnKGNvbnRleHRUYWcpCiAgICAgLCBtX3NjcmlwdGluZ1Blcm1p
c3Npb24oc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKICAgICBBU1NFUlQoIWZyYWdtZW50LT5oYXND
aGlsZE5vZGVzKCkpOwpAQCAtNDQ3LDcgKzQ0NSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpj
b25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3VG9rZW4pCiAgICAgLy8gc3luY2hy
b25vdXNseSByZS1lbnRlcnMgdGhlIHBhcnNlci4gV2UgZG9uJ3QgY2xlYXIgdGhlIHRva2VuIGlt
bWVkYXRlbHkKICAgICAvLyBmb3IgQ2hhcmFjdGVyIHRva2VucyBiZWNhdXNlIHRoZSBBdG9taWNI
VE1MVG9rZW4gYXZvaWRzIGNvcHlpbmcgdGhlCiAgICAgLy8gY2hhcmFjdGVycyBieSBrZWVwaW5n
IGEgcG9pbnRlciB0byB0aGUgdW5kZXJseWluZyBidWZmZXIgaW4gdGhlCi0gICAgLy8gSFRNTFRv
a2VuLiBGb3J0dWFudGVseSwgQ2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUt
ZW50ZXIKKyAgICAvLyBIVE1MVG9rZW4uIEZvcnR1bmF0ZWx5LCBDaGFyYWN0ZXIgdG9rZW5zIGNh
bid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgogICAgIC8vIHRoZSBwYXJzZXIuCiAgICAgLy8KICAg
ICAvLyBGSVhNRTogU3RvcCBjbGVhcmluZyB0aGUgcmF3VG9rZW4gb25jZSB3ZSBzdGFydCBydW5u
aW5nIHRoZSBwYXJzZXIgb2ZmCkBAIC0xMDI3LDEwICsxMDI1LDI3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAg
aWYgKHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBvcGVuVGVtcGxhdGVG
cmFnbWVudCh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV90cmVlLnJlY29u
c3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CiAgICAgbV90cmVlLmluc2VydEhU
TUxFbGVtZW50KHRva2VuKTsKIH0KIAordm9pZCBIVE1MVHJlZUJ1aWxkZXI6Om9wZW5UZW1wbGF0
ZUZyYWdtZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CisgICAgbV90cmVlLmFjdGl2ZUZv
cm1hdHRpbmdFbGVtZW50cygpLT5hcHBlbmRNYXJrZXIoKTsKKyAgICBtX3RyZWUuaW5zZXJ0SFRN
TEVsZW1lbnQodG9rZW4pOworICAgIG1fZnJhZ21lbnRDb250ZXh0LnB1c2goc3RhdGljX2Nhc3Q8
SFRNTFRlbXBsYXRlRWxlbWVudCo+KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKS0+Y29udGVudCgp
LmdldCgpKTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNsb3NlVGVtcGxhdGVGcmFnbWVu
dCgpCit7CisgICAgbV9mcmFnbWVudENvbnRleHQucG9wKCk7CisgICAgcmVzZXRJbnNlcnRpb25N
b2RlQXBwcm9wcmlhdGVseSgpOworfQorCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Nv
bGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpCiB7CiAgICAgaWYgKG1fdHJlZS5jdXJyZW50
Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgewpAQCAtMTA3OSw2
ICsxMDk0LDEwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRh
YmxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tl
bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykgeworICAgICAgICBvcGVuVGVtcGxhdGVGcmFnbWVudCh0b2tlbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CiAgICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1l
KCkpKSB7CiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxUYWJsZVNjb3Bl
TWFya2VyKCk7CiAgICAgICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CkBAIC0x
NDE4LDYgKzE0MzcsMTAgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90cmVlLmluc2VydEhUTUxFbGVt
ZW50KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBpZiAo
dG9rZW4ubmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBvcGVuVGVtcGxhdGVG
cmFnbWVudCh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAg
aWYgKHRva2VuLm5hbWUoKSA9PSBzZWxlY3RUYWcpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3Io
dG9rZW4pOwogICAgICAgICAgICAgQXRvbWljSFRNTFRva2VuIGVuZFNlbGVjdChIVE1MVG9rZW5U
eXBlczo6RW5kVGFnLCBzZWxlY3RUYWcubG9jYWxOYW1lKCkpOwpAQCAtMTYzMCw0NyArMTY1Myw5
MiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y2FsbFRoZUFkb3B0aW9uQWdlbmN5KEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgfQogfQogCisvLyBGSVhNRTogUmVmZXJlbmNlIHRvIERPTTQg
c3BlYyBkZXNjcmliaW5nIHRoZSBmb2xsb3dpbmc6IFRoZSBpbXBsaWVkIGNvbnRleHQgZWxlbWVu
dCBvZgorLy8gRG9jdW1lbnRGcmFnbWVudC5pbm5lckhUTUwgaXMgYmFzZWQgb24gdGhlIGlkZW50
aXR5IG9mIHRoZSB0YWdOYW1lIG9mIHRoZSBmaXJzdCBzdGFydFRhZyB0b2tlbiBlbmNvdW50ZXJl
ZC4KKy8vIEZJWE1FOiBFbGVtZW50LmlubmVySFRNTCBkb2Vzbid0IHdvcmsgZm9yIFhNTCBlbGVt
ZW50cy4gV2hlbiBpdCBpcyBmaXhlZCwgdGhpcyBuZWVkcyB0byBpZGVuaXRpZnkKKy8vIHRhZ05h
bWVzIHBhcnRpY3VsYXIgdG8gZWl0aGVyIG5hbWVzcGFjZSBhbmQgcGljayBhbiBhcHByb3ByaWF0
ZSBpbXBsaWVkIGNvbnRleHQgZWxlbWVudC4KK3N0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBn
ZXRJbXBsaWVkQ29udGV4dFRhZyhjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCit7CisgICAg
aWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0YWdOYW1lKQorICAgICAgICB8fCB0YWdOYW1lID09
IGNhcHRpb25UYWcKKyAgICAgICAgfHwgdGFnTmFtZSA9PSBjb2xncm91cFRhZykgeworICAgICAg
ICByZXR1cm4gdGFibGVUYWc7CisgICAgfQorICAgIGlmICh0YWdOYW1lID09IHRyVGFnKQorICAg
ICAgICByZXR1cm4gdGJvZHlUYWc7CisgICAgaWYgKHRhZ05hbWUgPT0gY29sVGFnKQorICAgICAg
ICByZXR1cm4gY29sZ3JvdXBUYWc7CisgICAgaWYgKGlzVGFibGVDZWxsQ29udGV4dFRhZyh0YWdO
YW1lKSkKKyAgICAgICAgcmV0dXJuIHRyVGFnOworICAgIGlmICh0YWdOYW1lID09IGhlYWRUYWcg
fHwgdGFnTmFtZSA9PSBib2R5VGFnKQorICAgICAgICByZXR1cm4gaHRtbFRhZzsKKyAgICBpZiAo
dGFnTmFtZSA9PSBycFRhZyB8fCB0YWdOYW1lID09IHJ0VGFnKQorICAgICAgICByZXR1cm4gcnVi
eVRhZzsKKworICAgIHJldHVybiBib2R5VGFnOworfQorCitib29sIEhUTUxUcmVlQnVpbGRlcjo6
aW1wbGllZENvbnRleHRUYWcoSFRNTFRva2VuJiB0b2tlbikKK3sKKyAgICBBU1NFUlQobV9mcmFn
bWVudENvbnRleHQuZnJhZ21lbnQoKSAmJiBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0VGFnKCkg
PT0gbnVsbFFOYW1lKCkpOworICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6
OkVuZE9mRmlsZSkgeworICAgICAgICBtX2ZyYWdtZW50Q29udGV4dC5zZXRDb250ZXh0VGFnKGJv
ZHlUYWcpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAodG9rZW4udHlw
ZSgpICE9IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgbV9mcmFnbWVudENvbnRleHQuc2V0Q29udGV4dFRhZyhnZXRJbXBsaWVkQ29udGV4dFRh
ZyhBdG9taWNTdHJpbmcodG9rZW4ubmFtZSgpLmRhdGEoKSwgdG9rZW4ubmFtZSgpLnNpemUoKSkp
KTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3By
aWF0ZWx5KCkKIHsKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcmVzZXQtdGhlLWluc2VydGlvbi1t
b2RlLWFwcHJvcHJpYXRlbHkKICAgICBib29sIGxhc3QgPSBmYWxzZTsKKyAgICBRdWFsaWZpZWRO
YW1lIHRhZ05hbWUgPSBudWxsUU5hbWUoKTsKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50
UmVjb3JkKiBub2RlUmVjb3JkID0gbV90cmVlLm9wZW5FbGVtZW50cygpLT50b3BSZWNvcmQoKTsK
ICAgICB3aGlsZSAoMSkgewogICAgICAgICBDb250YWluZXJOb2RlKiBub2RlID0gbm9kZVJlY29y
ZC0+bm9kZSgpOwogICAgICAgICBpZiAobm9kZSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJv
b3ROb2RlKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAg
ICAgICAgICAgIHRhZ05hbWUgPSBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0VGFnKCk7CiAgICAg
ICAgICAgICBsYXN0ID0gdHJ1ZTsKLSAgICAgICAgICAgIG5vZGUgPSBtX2ZyYWdtZW50Q29udGV4
dC5jb250ZXh0RWxlbWVudCgpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdO
YW1lKHNlbGVjdFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgp
KTsKKyAgICAgICAgfSBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAg
ICAgICAgICAgIHRhZ05hbWUgPSBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0VGFnKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRhZ05hbWUgPSBub2RlUmVjb3JkLT5lbGVtZW50KCktPnRh
Z1FOYW1lKCk7CisKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyhzZWxlY3RUYWcpKSB7CiAg
ICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNlbGVjdE1vZGUpOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2RlLT5oYXNUYWdO
YW1lKHRoVGFnKSkKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyh0ZFRhZykgfHwgdGFnTmFt
ZS5tYXRjaGVzKHRoVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
Q2VsbE1vZGUpOwotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0clRhZykpCisgICAgICAg
IGlmICh0YWdOYW1lLm1hdGNoZXModHJUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2Vy
dGlvbk1vZGUoSW5Sb3dNb2RlKTsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGJvZHlU
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGhlYWRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGZv
b3RUYWcpKQorICAgICAgICBpZiAodGFnTmFtZS5tYXRjaGVzKHRib2R5VGFnKSB8fCB0YWdOYW1l
Lm1hdGNoZXModGhlYWRUYWcpIHx8IHRhZ05hbWUubWF0Y2hlcyh0Zm9vdFRhZykpCiAgICAgICAg
ICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlQm9keU1vZGUpOwotICAgICAgICBp
ZiAobm9kZS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0
Y2hlcyhjYXB0aW9uVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
Q2FwdGlvbk1vZGUpOwotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShjb2xncm91cFRhZykp
IHsKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyhjb2xncm91cFRhZykpIHsKICAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKICAgICAgICAgfQotICAgICAgICBpZiAo
bm9kZS0+aGFzVGFnTmFtZSh0YWJsZVRhZykpCisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXMo
dGFibGVUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZU1v
ZGUpOwotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShoZWFkVGFnKSkgeworICAgICAgICBp
ZiAodGFnTmFtZS5tYXRjaGVzKGhlYWRUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJv
ZHlNb2RlKTsKICAgICAgICAgfQotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShib2R5VGFn
KSkKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyhib2R5VGFnKSkKICAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwotICAgICAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShmcmFtZXNldFRhZykpIHsKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyhmcmFt
ZXNldFRhZykpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAg
ICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAg
ICAgfQotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSkgeworICAgICAgICBp
ZiAodGFnTmFtZS5tYXRjaGVzKGh0bWxUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShCZWZv
cmVIZWFkTW9kZSk7CiAgICAgICAgIH0KQEAgLTE3NzksNiArMTg0Nyw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGFibGVUYWcKICAgICAgICAgfHwgdG9r
ZW4ubmFtZSgpID09IHRyVGFnCisgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRh
ZwogICAgICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4ubmFtZSgpKSkgewogICAg
ICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLm5hbWUo
KSkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4ubmFt
ZSgpKSB8fCBpc1BhcnNpbmdGcmFnbWVudCgpKTsKQEAgLTE5MDQsNyArMTk3Myw4IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYXBwbGV0VGFnCiAgICAgICAg
IHx8IHRva2VuLm5hbWUoKSA9PSBtYXJxdWVlVGFnCi0gICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBvYmplY3RUYWcpIHsKKyAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG9iamVjdFRhZworICAg
ICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKICAgICAgICAgaWYgKCFtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4ubmFtZSgpKSkgewogICAgICAgICAgICAg
cGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTE0LDYgKzE5ODQs
OCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keShBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAg
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4ubmFtZSgpKTsKICAg
ICAgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1hcmtl
cigpOworICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IHRlbXBsYXRlVGFnKQorICAgICAgICAg
ICAgY2xvc2VUZW1wbGF0ZUZyYWdtZW50KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
aWYgKHRva2VuLm5hbWUoKSA9PSBiclRhZykgewpAQCAtMjIwMiw2ICsyMjc0LDExIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQorICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAg
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKHRva2VuLm5hbWUoKSk7
CisgICAgICAgICAgICBjbG9zZVRlbXBsYXRlRnJhZ21lbnQoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQogICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IG9wdGlvblRhZykgewog
ICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKG9wdGlvblRh
ZykpIHsKICAgICAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwpAQCAt
Mjc4NSw3ICsyODYyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9y
ZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV90cmVlLmluc2Vy
dENvbW1lbnQodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBIVE1MVG9rZW5UeXBl
czo6Q2hhcmFjdGVyOiB7Ci0gICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gU3RyaW5nKHRva2Vu
LmNoYXJhY3RlcnMoKS5kYXRhKCksIHRva2VuLmNoYXJhY3RlcnMoKS5zaXplKCkpOworICAgICAg
ICBTdHJpbmcgY2hhcmFjdGVycyA9IFN0cmluZyh0b2tlbi5jaGFyYWN0ZXJEYXRhKCksIHRva2Vu
LmNoYXJhY3RlckRhdGFTaXplKCkpOwogICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hh
cmFjdGVycyk7CiAgICAgICAgIGlmIChtX2ZyYW1lc2V0T2sgJiYgIWlzQWxsV2hpdGVzcGFjZU9y
UmVwbGFjZW1lbnRDaGFyYWN0ZXJzKGNoYXJhY3RlcnMpKQogICAgICAgICAgICAgbV9mcmFtZXNl
dE9rID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oCmluZGV4IDY0YTkzYjM0ZmZiZjFmMDRhYTBiNzM0MjIzN2M3OWQ5YWRkNWJiMjMuLjhhNTA1
YzAzN2YyMGE0OTYxNDg5NTllM2E3Y2NmODgyMzUxMjkwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIERv
Y3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxUb2tlbjsKIGNsYXNzIEhU
TUxEb2N1bWVudDsKK2NsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgSFRN
TERvY3VtZW50UGFyc2VyOwogCkBAIC04NSw2ICs4Niw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0U2hvdWxkU2tpcExlYWRpbmdOZXdsaW5lKGJvb2wgc2hvdWxkU2tpcCkgeyBtX3Nob3VsZFNr
aXBMZWFkaW5nTmV3bGluZSA9IHNob3VsZFNraXA7IH0KIAorICAgIGJvb2wgaW1wbGllZENvbnRl
eHRUYWcoSFRNTFRva2VuJik7CisgICAgYm9vbCBjYW5Db250aW51ZShIVE1MVG9rZW4mIHRva2Vu
KSB7IHJldHVybiAhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKSB8fCBtX2ZyYWdtZW50Q29u
dGV4dC5jb250ZXh0VGFnKCkgIT0gbnVsbFFOYW1lKCkgfHwgaW1wbGllZENvbnRleHRUYWcodG9r
ZW4pOyB9CisKICAgICBzdGF0aWMgYm9vbCBzY3JpcHRFbmFibGVkKEZyYW1lKik7CiAgICAgc3Rh
dGljIGJvb2wgcGx1Z2luc0VuYWJsZWQoRnJhbWUqKTsKIApAQCAtMTkxLDIwICsxOTUsNDkgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwog
CisgICAgdm9pZCBvcGVuVGVtcGxhdGVGcmFnbWVudChBdG9taWNIVE1MVG9rZW4mKTsKKyAgICB2
b2lkIGNsb3NlVGVtcGxhdGVGcmFnbWVudCgpOworCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5n
Q29udGV4dCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZyYWdtZW50UGFyc2luZ0Nv
bnRleHQpOwogICAgIHB1YmxpYzoKICAgICAgICAgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCgpOwot
ICAgICAgICBGcmFnbWVudFBhcnNpbmdDb250ZXh0KERvY3VtZW50RnJhZ21lbnQqLCBFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICAgICAg
RnJhZ21lbnRQYXJzaW5nQ29udGV4dChEb2N1bWVudEZyYWdtZW50KiwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgY29udGV4dFRhZywgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICAgICAg
fkZyYWdtZW50UGFyc2luZ0NvbnRleHQoKTsKIAotICAgICAgICBEb2N1bWVudEZyYWdtZW50KiBm
cmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnQ7IH0KLSAgICAgICAgRWxlbWVudCog
Y29udGV4dEVsZW1lbnQoKSBjb25zdCB7IEFTU0VSVChtX2ZyYWdtZW50KTsgcmV0dXJuIG1fY29u
dGV4dEVsZW1lbnQ7IH0KKyAgICAgICAgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQoKSBjb25z
dCB7IHJldHVybiBtX3RlbXBsYXRlRnJhZ21lbnRzLmlzRW1wdHkoKSA/IG1fZnJhZ21lbnQgOiBt
X3RlbXBsYXRlRnJhZ21lbnRzLmxhc3QoKTsgfQorICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1l
JiBjb250ZXh0VGFnKCkgY29uc3QgeyByZXR1cm4gbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRh
Z3MuaXNFbXB0eSgpID8gbV9jb250ZXh0VGFnIDogbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRh
Z3MubGFzdCgpOyB9CisKKyAgICAgICAgdm9pZCBzZXRDb250ZXh0VGFnKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGNvbnRleHRUYWcpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX3RlbXBsYXRl
RnJhZ21lbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2NvbnRleHRUYWcgPSBjb250
ZXh0VGFnOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fdGVtcGxhdGVGcmFn
bWVudENvbnRleHRUYWdzW21fdGVtcGxhdGVGcmFnbWVudENvbnRleHRUYWdzLnNpemUoKSAtIDFd
ID0gY29udGV4dFRhZzsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcHVzaChEb2N1bWVudEZy
YWdtZW50KiBmcmFnbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG1fdGVtcGxh
dGVGcmFnbWVudHMuc2l6ZSgpID09IG1fdGVtcGxhdGVGcmFnbWVudENvbnRleHRUYWdzLnNpemUo
KSk7CisgICAgICAgICAgICBtX3RlbXBsYXRlRnJhZ21lbnRzLmFwcGVuZChmcmFnbWVudCk7Cisg
ICAgICAgICAgICBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFncy5hcHBlbmQobnVsbFFOYW1l
KCkpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBwb3AoKQorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQobV90ZW1wbGF0ZUZyYWdtZW50cy5zaXplKCkgPT0gbV90ZW1wbGF0ZUZyYWdt
ZW50Q29udGV4dFRhZ3Muc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fdGVtcGxhdGVGcmFnbWVudHMu
cmVtb3ZlTGFzdCgpOworICAgICAgICAgICAgbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRhZ3Mu
cmVtb3ZlTGFzdCgpOworICAgICAgICB9CisKICAgICAgICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24oKSBjb25zdCB7IEFTU0VSVChtX2ZyYWdtZW50KTsg
cmV0dXJuIG1fc2NyaXB0aW5nUGVybWlzc2lvbjsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
RG9jdW1lbnRGcmFnbWVudCogbV9mcmFnbWVudDsKLSAgICAgICAgRWxlbWVudCogbV9jb250ZXh0
RWxlbWVudDsKKyAgICAgICAgUXVhbGlmaWVkTmFtZSBtX2NvbnRleHRUYWc7CisKKyAgICAgICAg
VmVjdG9yPERvY3VtZW50RnJhZ21lbnQqPiBtX3RlbXBsYXRlRnJhZ21lbnRzOworICAgICAgICBW
ZWN0b3I8UXVhbGlmaWVkTmFtZT4gbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRhZ3M7CiAKICAg
ICAgICAgLy8gRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIGNhdXNlcyB0aGUgUGFyc2VyIHRv
IHJlbW92ZSBjaGlsZHJlbgogICAgICAgICAvLyBmcm9tIDxzY3JpcHQ+IHRhZ3MgKHNvIGphdmFz
Y3JpcHQgZG9lc24ndCBzaG93IHVwIGluIHBhc3RlcykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKaW5kZXggOWE1MTJkMDc2NjVhMWE4MWM0NTkxN2I5ZjgwNWE2MGJkMTg5YmRjMC4uODZmMTZl
MTA1MDQ1N2NkODY1MzFjYjhkMzMzMzM4NjVlZmUwOTg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbApAQCAtNDU1LDYgKzQ1NSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRy
aWJ1dGUgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZUVsZW1lbnQ7CiAgICAg
ICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVSb3dFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxlUm93
RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9VEVNUExBVEVfVEFHXSBIVE1MVGVtcGxhdGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRl
bXBsYXRlRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVGV4dEFyZWFFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFRpdGxl
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBI
VE1MVUxpc3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTFVMaXN0RWxlbWVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5CYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuQmFzZS5oCmluZGV4IGM5NjJhNmFiYTMzYTRiNWU1
MTRjMWVhM2RlMDEwYzk4ZDFiZGViZjIuLjI1MGRhMTZmYTAyYjEyMzQ2NGQ2ZDc0NTA5OTgzNDlk
MjE5ZTliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9r
ZW5CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbkJhc2Uu
aApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBNYXJrdXBUb2tlbkJhc2VfaAogCiAjaW5jbHVk
ZSAiRWxlbWVudEF0dHJpYnV0ZURhdGEuaCIKKyNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0zNzIsMTIgKzM3
MywxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgQXR0cmlidXRlKiBtX2N1cnJlbnRBdHRyaWJ1dGU7CiB9
OwogCitlbnVtIENoYXJhY3RlclN0b3JhZ2VNb2RlIHsgSW50ZXJuYWxpemVDaGFyYWN0ZXJzLCBS
ZWZlcmVuY2VFeHRlcm5hbENoYXJhY3RlcnMgfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVG9rZW4+
CiBjbGFzcyBBdG9taWNNYXJrdXBUb2tlbkJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEF0b21pY01hcmt1cFRva2VuQmFzZSk7CiBwdWJsaWM6Ci0gICAgQXRvbWljTWFya3VwVG9rZW5C
YXNlKFRva2VuKiB0b2tlbikKKyAgICBBdG9taWNNYXJrdXBUb2tlbkJhc2UoVG9rZW4qIHRva2Vu
LCBDaGFyYWN0ZXJTdG9yYWdlTW9kZSBjaGFyYWN0ZXJTdG9yYWdlID0gUmVmZXJlbmNlRXh0ZXJu
YWxDaGFyYWN0ZXJzKQogICAgICAgICA6IG1fdHlwZSh0b2tlbi0+dHlwZSgpKQorICAgICAgICAs
IG1fZXh0ZXJuYWxDaGFyYWN0ZXJzKDApCiAgICAgewogICAgICAgICBBU1NFUlQodG9rZW4pOwog
CkBAIC00MDIsNyArNDA2LDE1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fZGF0YSA9IFN0cmlu
Zyh0b2tlbi0+Y29tbWVudCgpLmRhdGEoKSwgdG9rZW4tPmNvbW1lbnQoKS5zaXplKCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVG9rZW46OlR5cGU6OkNoYXJhY3RlcjoKLSAg
ICAgICAgICAgIG1fZXh0ZXJuYWxDaGFyYWN0ZXJzID0gJnRva2VuLT5jaGFyYWN0ZXJzKCk7Cisg
ICAgICAgICAgICBpZiAoY2hhcmFjdGVyU3RvcmFnZSA9PSBSZWZlcmVuY2VFeHRlcm5hbENoYXJh
Y3RlcnMpIHsKKyAgICAgICAgICAgICAgICBtX2V4dGVybmFsQ2hhcmFjdGVycyA9ICZ0b2tlbi0+
Y2hhcmFjdGVycygpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBtX2ludGVybmFsQ2hhcmFjdGVyc1NpemUgPSB0b2tlbi0+Y2hhcmFjdGVycygp
LnNpemUoKTsKKyAgICAgICAgICAgIG1faW50ZXJuYWxDaGFyYWN0ZXJzID0gYWRvcHRBcnJheVB0
cihuZXcgVUNoYXJbbV9pbnRlcm5hbENoYXJhY3RlcnNTaXplXSk7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9pbnRlcm5hbENoYXJhY3RlcnNTaXplOyBpKyspCisgICAg
ICAgICAgICAgICAgbV9pbnRlcm5hbENoYXJhY3RlcnNbaV0gPSB0b2tlbi0+Y2hhcmFjdGVycygp
LmRhdGEoKVtpXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgYnJlYWs7CkBAIC00NTYsMTAgKzQ2OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX2F0dHJpYnV0ZXM7CiAgICAgfQogCi0gICAgY29uc3QgdHlwZW5hbWUgVG9rZW46OkRhdGFW
ZWN0b3ImIGNoYXJhY3RlcnMoKSBjb25zdAorICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJEYXRh
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVG9rZW46OlR5cGU6OkNo
YXJhY3Rlcik7CisgICAgICAgIHJldHVybiBtX2V4dGVybmFsQ2hhcmFjdGVycyA/IG1fZXh0ZXJu
YWxDaGFyYWN0ZXJzLT5kYXRhKCkgOiBtX2ludGVybmFsQ2hhcmFjdGVycy5nZXQoKTsKKyAgICB9
CisKKyAgICBjb25zdCBzaXplX3QgY2hhcmFjdGVyRGF0YVNpemUoKSBjb25zdAogICAgIHsKICAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBUb2tlbjo6VHlwZTo6Q2hhcmFjdGVyKTsKLSAgICAgICAg
cmV0dXJuICptX2V4dGVybmFsQ2hhcmFjdGVyczsKKyAgICAgICAgcmV0dXJuIG1fZXh0ZXJuYWxD
aGFyYWN0ZXJzID8gbV9leHRlcm5hbENoYXJhY3RlcnMtPnNpemUoKSA6IG1faW50ZXJuYWxDaGFy
YWN0ZXJzU2l6ZTsKICAgICB9CiAKICAgICBjb25zdCBTdHJpbmcmIGNvbW1lbnQoKSBjb25zdApA
QCAtNTAwLDEzICs1MTgsMTkgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gImNoYXJhY3RlcnMiIGZv
ciBDaGFyYWN0ZXIKICAgICAvLwotICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gY29weSB0aGUgdGhl
IGNoYXJhY3RlcnMgb3V0IG9mIHRoZSBUb2tlbiwgc28gd2UKLSAgICAvLyBrZWVwIGEgcG9pbnRl
ciB0byBpdHMgYnVmZmVyIGluc3RlYWQuIFRoaXMgYnVmZmVyIGlzIG93bmVkIGJ5IHRoZQotICAg
IC8vIFRva2VuIGFuZCBjYXVzZXMgYSBsaWZldGltZSBkZXBlbmRlbmNlIGJldHdlZW4gdGhlc2Ug
b2JqZWN0cy4KKyAgICAvLyBJbiBzdGVhZHktc3RhdGUgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBj
b3B5IHRoZSB0aGUgY2hhcmFjdGVycyBvdXQgb2YgdGhlCisgICAgLy8gVG9rZW4sIHNvIHdlIGtl
ZXAgYSBwb2ludGVyIHRvIGl0cyBidWZmZXIgaW5zdGVhZC4gVGhpcyBidWZmZXIgaXMgb3duZWQK
KyAgICAvLyBieSB0aGUgVG9rZW4gYW5kIGNhdXNlcyBhIGxpZmV0aW1lIGRlcGVuZGVuY2UgYmV0
d2VlbiB0aGVzZSBvYmplY3RzLiBUaGlzCisgICAgLy8gaXMgdGhlIGJlaGF2aW9yIHdoZW4gY29u
c3RydWN0ZWQgd2l0aCBSZWZlcmVuY2VFeHRlcm5hbENoYXJhY3RlcnMuCiAgICAgLy8KLSAgICAv
LyBGSVhNRTogQWRkIGEgbWVjaGFuaXNtIGZvciAiaW50ZXJuYWxpemluZyIgdGhlIGNoYXJhY3Rl
cnMgd2hlbiB0aGUKLSAgICAvLyAgICAgICAgSFRNTFRva2VuIGlzIGRlc3RydWN0ZWQuCisgICAg
Ly8gSW4gdGhlICJpbXBsaWVkIGNvbnRleHQiIGZyYWdtZW50IGNhc2UsIHdlIG5lZWQgdG8gbGV0
IHRoZSB0b2tlbml6ZXIKKyAgICAvLyBzY2FuIGFoZWFkIGFuZCBxdWV1ZSB0b2tlbnMgZm9yIGxh
dGVyIGRlbGl2ZXJ5LiBJbiB0aGlzIGNhc2UsIHdlIG1ha2UgYW4KKyAgICAvLyBpbnRlcm5hbCBj
b3B5IG9mIHRoZSBjaGFyYWN0ZXJzIHNvIHRoYXQgaXQgaXMgc2FmZSB0byBsZXQgdGhlIHVuZGVy
bHlpbmcKKyAgICAvLyBUb2tlbiBiZSBmcmVlZC4gVGhpcyBpcyB0aGUgYmVoYXZpb3Igd2hlbiBj
b25zdHJ1Y3RlZCB3aXRoCisgICAgLy8gSW50ZXJuYWxpemVDaGFyYWN0ZXJzCiAgICAgY29uc3Qg
dHlwZW5hbWUgVG9rZW46OkRhdGFWZWN0b3IqIG1fZXh0ZXJuYWxDaGFyYWN0ZXJzOworICAgIE93
bkFycmF5UHRyPFVDaGFyPiBtX2ludGVybmFsQ2hhcmFjdGVyczsKKyAgICBzaXplX3QgbV9pbnRl
cm5hbENoYXJhY3RlcnNTaXplOwogCiAgICAgLy8gRm9yIERPQ1RZUEUKICAgICBPd25QdHI8dHlw
ZW5hbWUgVG9rZW46OkRvY3R5cGVEYXRhPiBtX2RvY3R5cGVEYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBkYjIxM2NkNjJlZTkzZDU0N2Fm
MTNjNTlkM2YxMDJmNWNkY2M2Nzk3Li41MWUxNDhkY2NjMTk3NTI3NmNkODZjZGZjOWY4YTRlNjE0
NWNhMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNw
cApAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgWE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWco
Y29uc3QgQXRvbWljWE1MVG9rZW4mIHRva2VuKQogCiB2b2lkIFhNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzQ2hhcmFjdGVyKGNvbnN0IEF0b21pY1hNTFRva2VuJiB0b2tlbikKIHsKLSAgICBhcHBlbmRU
b1RleHQodG9rZW4uY2hhcmFjdGVycygpLmRhdGEoKSwgdG9rZW4uY2hhcmFjdGVycygpLnNpemUo
KSk7CisgICAgYXBwZW5kVG9UZXh0KHRva2VuLmNoYXJhY3RlckRhdGEoKSwgdG9rZW4uY2hhcmFj
dGVyRGF0YVNpemUoKSk7CiB9CiAKIHZvaWQgWE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDREFUQShj
b25zdCBBdG9taWNYTUxUb2tlbiYgdG9rZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkKaW5kZXggZWIyOWVjZTMyYTA1Nzg4OGQxYzVmMGU3MzI0ZDE2YzNlZmVlZGIxYy4uNTUxMmM1
Y2I2MGU1MjdiMmQ5OWFiZjYxMDFkNWQxMmVlNjg1MjE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQpAQCAtOTcsNiArOTcsNyBAQAogICAgICAgJ0VOQUJMRV9TVFlMRV9TQ09Q
RUQ9MScsCiAgICAgICAnRU5BQkxFX1NWRz08KGVuYWJsZV9zdmcpJywKICAgICAgICdFTkFCTEVf
U1ZHX0ZPTlRTPTwoZW5hYmxlX3N2ZyknLAorICAgICAgJ0VOQUJMRV9URU1QTEFURV9UQUc9MScs
CiAgICAgICAnRU5BQkxFX1RPVUNIX0VWRU5UUz08KGVuYWJsZV90b3VjaF9ldmVudHMpJywKICAg
ICAgICdFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HPTwoZW5hYmxlX3RvdWNoX2ljb25fbG9hZGlu
ZyknLAogICAgICAgJ0VOQUJMRV9WOF9TQ1JJUFRfREVCVUdfU0VSVkVSPTEnLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2
NWY1YzYxYjU3MDE5NzViMTRlMjUzN2VlOWQ1YWQyOWZiMzZlMDIuLjc1Y2Y4OTZlZjllOTU4M2Iw
ZTkwYjY0ZDFjN2UzYmRiYTNmNGViMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0w
OSAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIElt
cGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRk
ZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHJlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0LmlzVGVt
cGxhdGVFbGVtZW50KToKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5f
Z2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTA1LTA5ICBKb2NoZW4gRWlzaW5nZXIgIDxq
b2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZSBk
dXJpbmcgYSBuYXZpZ2F0aW9uLCBwcmltZSB0aGUgaW5pdGlhbCBkb2N1bWVudCB3aXRoIHRoZSBj
b3JyZWN0IHJlZmVycmVyIHBvbGljeQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIv
cmVzb3VyY2VzL3RlbXBsYXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90
ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk3N2QzMGE2MGE4MGQzZDlhNThiZDU3NDZmM2I0MjEy
N2Y0ZThkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNl
cy90ZW1wbGF0ZS5kYXQKQEAgLTAsMCArMSwzMzIgQEAKKyNkYXRhCis8ZGl2Pjx0ZW1wbGF0ZT48
ZGl2PjxzcGFuPjwvdGVtcGxhdGU+PGI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEK
KzxkaXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGRpdj48L3RlbXBsYXRl
PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48
L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8dGFibGU+
PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KKworI2RhdGEKKzx0YWJsZT48ZGl2Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvZGl2PgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPHRhYmxl
Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjxkaXY+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8dGFibGU+ICAgPHRlbXBsYXRlPjwvdGVt
cGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIiAgICIKK3wgICAgICAgPHRlbXBs
YXRlPgorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisj
ZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRh
YmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8dGFi
bGU+PHRoZWFkPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGhlYWQ+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8dGFibGU+PHRmb290
Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGZvb3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Zm9v
dD4KK3wgICAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48L3Rl
bXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0
YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0PgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNl
bGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNl
bGVjdD48b3B0aW9uPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4K
K3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8c2VsZWN0
Pjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KKworI2RhdGEKKzxz
ZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8
b3B0aW9uPgorfCAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9v
cHRpb24+PHRlbXBsYXRlPjxvcHRpb24+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0YWJsZT48
dGhlYWQ+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8dGFi
bGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwvdGhlYWQ+PC90YWJsZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJs
ZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJs
ZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8
ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICA8dHI+CisK
KyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+
PHRyPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAg
ICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2Rh
dGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RyPjwv
dGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgPHRkPgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+
PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgIDx0
ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+
Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGVtcGxhdGU+
PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgPHRkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0OWIzZTkxN2Fj
NGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVu
LXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQ+
Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQnLAorXQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
ZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAu
anMKaW5kZXggYzg4ZTIwYzY5ZTI4YTU4MjhmNjdlMmJlOGJkZjE1NGJkMmVjYWZhMC4uMDgxN2Fh
NGJjODk1NmMzMGMwYmFkMDgxZjBkYmM5MmQzMDQzZGQ4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNl
cy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIxLDEzICsyMjEsMTkgQEAgTWFya3VwLl9nZXQgPSBm
dW5jdGlvbihub2RlLCBkZXB0aCkKICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFk
b3ctcm9vdCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKICAgICB9Ci0KLSAg
ICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsg
aSsrKSB7CisgICAgCisgICAgZnVuY3Rpb24gaXNUZW1wbGF0ZUVsZW1lbnQobm9kZSkgeworICAg
ICAgcmV0dXJuIG5vZGUubmFtZXNwYWNlVVJJID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnICYmIG5vZGUudGFnTmFtZSA9PSAnVEVNUExBVEUnOworICAgIH0KKyAgICAKKyAgICAvLyA8
dGVtcGxhdGU+IGVsZW1lbnQgc2VyaWFsaXplcyBpdHMgY29udGVudCBEb2N1bWVudEZyYWdtZW50
LCBub3QgaXRzIGNoaWxkcmVuLgorICAgIHZhciBjaGlsZE5vZGVzID0gaXNUZW1wbGF0ZUVsZW1l
bnQobm9kZSkgPyBub2RlLmNvbnRlbnQuY2hpbGROb2RlcyA6IG5vZGUuY2hpbGROb2RlczsKKyAg
ICBmb3IgKHZhciBpID0gMCwgbGVuID0gY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykg
ewogICAgICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9k
ZSwgaSk7CiAgICAgICAgIGlmIChzZWxlY3Rpb24pCiAgICAgICAgICAgICBzdHIgKz0gTWFya3Vw
Ll9pbmRlbnQoZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKIAotICAgICAgICBzdHIgKz0gTWFya3Vw
Ll9nZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAgICBzdHIgKz0gTWFy
a3VwLl9nZXQoY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKICAgICB9CiAKICAgICBzdHIgKz0g
TWFya3VwLl9nZXRTaGFkb3dIb3N0SWZQb3NzaWJsZShub2RlLCBkZXB0aCk7CkBAIC0yODQsNyAr
MjkwLDcgQEAgTWFya3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKIAogTWFya3VwLl9nZXRTZWxl
Y3Rpb25Gcm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUub3duZXJE
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gbm9kZS5vd25l
ckRvY3VtZW50LmRlZmF1bHRWaWV3ID8gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lmdl
dFNlbGVjdGlvbigpIDogbnVsbDsKIH0KIAogTWFya3VwLl9TRUxFQ1RJT05fRk9DVVMgPSAnPCNz
ZWxlY3Rpb24tZm9jdXM+JzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141182</attachid>
            <date>2012-05-10 09:28:36 -0700</date>
            <delta_ts>2012-05-10 10:07:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20120510092835.patch</filename>
            <type>text/plain</type>
            <size>62503</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3ZWI4N2E2NzE3NTJh
ZTgyNzc0ZTU4N2EyOWJkYjQ0NzMwMmMwNy4uOTRiZjY3ZGYxM2I1ZDIyNmNmMTIxZjU4MGQzZWNi
MjU0ZWU1ZDYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNSBAQAorMjAxMi0wNS0xMCAgUmFm
YWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudDo6aW5uZXJIVE1MKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudDo6c2V0SW5uZXJIVE1M
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5oOgorICAgICAgICAoRG9jdW1lbnRG
cmFnbWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsOgorICAgICAgICAq
IGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UXVhbGlmaWVkTmFtZTo6aW5pdCk6CisgICAgICAgICogZG9tL1F1YWxpZmllZE5hbWUu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbFFOYW1lKToKKyAg
ICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoK
KyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmlkbDoKKyAg
ICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKToKKyAgICAg
ICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFnbWVu
dEZyb21Tb3VyY2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICogaHRt
bC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0SW5u
ZXJIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRPdXRlckhUTUwpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1w
bGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChI
VE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
aWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwuCisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpzaG91bGRGb3N0ZXJQYXJlbnQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAgICAgICAqIGh0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoSFRNTERvY3VtZW50UGFyc2VyKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxOYW1lczo6aXNTY29wZU1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TmFtZXM6OmlzVGFibGVTY29wZU1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6
OmlzVGFibGVCb2R5U2NvcGVNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE5hbWVzOjpp
c1RhYmxlUm93U2NvcGVNYXJrZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUb2tlbi5o
OgorICAgICAgICAoV2ViQ29yZTo6QXRvbWljSFRNTFRva2VuOjpjcmVhdGUpOgorICAgICAgICAo
QXRvbWljSFRNTFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkF0b21pY0hUTUxUb2tlbjo6QXRv
bWljSFRNTFRva2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpFeHRlcm5hbENoYXJhY3RlclRv
a2VuQnVmZmVyOjpFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6RnJhZ21lbnRQYXJzaW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRy
ZWVGcm9tVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpv
cGVuVGVtcGxhdGVGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6Y2xvc2VUZW1wbGF0ZUZyYWdtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRJbXBsaWVkQ29udGV4dFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VHJlZUJ1aWxkZXI6OmltcGxpZWRDb250ZXh0VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
cmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNlbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpjYW5Db250aW51ZSk6CisgICAgICAgIChGcmFnbWVudFBhcnNpbmdDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5n
Q29udGV4dDo6ZnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpG
cmFnbWVudFBhcnNpbmdDb250ZXh0Ojpjb250ZXh0VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6c2V0Q29udGV4dFRhZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6
OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNp
bmdDb250ZXh0Ojpwb3ApOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAg
KiB4bWwvcGFyc2VyL01hcmt1cFRva2VuQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXRvbWlj
TWFya3VwVG9rZW5CYXNlOjpBdG9taWNNYXJrdXBUb2tlbkJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXRvbWljTWFya3VwVG9rZW5CYXNlOjpjaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKEF0b21p
Y01hcmt1cFRva2VuQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNNYXJrdXBUb2tlbkJh
c2U6OmNoYXJhY3RlckRhdGFTaXplKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFj
dGVyKToKKwogMjAxMi0wNS0wOSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXaGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2UgZHVyaW5nIGEgbmF2aWdhdGlv
biwgcHJpbWUgdGhlIGluaXRpYWwgZG9jdW1lbnQgd2l0aCB0aGUgY29ycmVjdCByZWZlcnJlciBw
b2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY4NGNmMjU2MDJlODIwMTk3MmVi
ZmYyYmVjZDU2NjUwZTdiZTViMy4uY2Y1NWE2NzNjZTkzMDBmYTYzYWJhMGFjZTk1Y2FkOTRlNmNj
NWQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0w
NS0xMCAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0wNS0wOSAgTWFy
ayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBS
ZW1vdmUgUGxhdGZvcm1TdXBwb3J0Ojpsb2FkUGxhdGZvcm1JbWFnZVJlc291cmNlLCBjYWxsIGxv
YWRSZXNvdXJjZSBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDIzNTcwMzFlMGQzMDVkNWIz
NGQzNWM1MzcwODljYTE4ZGUxNjQ2ODguLjM2ZTY0MGY3ZjFmZjdiZTY1YWFlOGEwMjhmYjhiOWY1
YzYzZmJjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNjMsNiArMTA2Myw3IEBACiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFVM
aXN0RWxlbWVudC5pZGwnLApAQCAtNTU5Myw2ICs1NTk0LDggQEAKICAgICAgICAgICAgICdodG1s
L0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAnLAor
ICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVt
ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggZjdj
ZmFkZmNjNzlmMzFkNTE2NjNlYWFjMDQyYjM0NWRhNzM0YzE5YS4uOWJjYzMzYzcwMWJiNzBiNDg4
NTdlMzk1MjVlYTQ3ZDBiM2I1MzFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAibWFy
a3VwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTAsNCArOTEsMjEgQEAgYm9vbCBE
b2N1bWVudEZyYWdtZW50OjpwYXJzZVhNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIEYKICNlbmRpZgogfQogCitTdHJpbmcgRG9jdW1lbnRGcmFnbWVudDo6
aW5uZXJIVE1MKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlTWFya3VwKHRoaXMsIENoaWxk
cmVuT25seSk7Cit9CisKK3ZvaWQgRG9jdW1lbnRGcmFnbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFkb2N1bWVudCgp
LT5pc0hUTUxEb2N1bWVudCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgZG9jdW1lbnQoKSwgMCAvKiBj
b250ZXh0RWxlbWVudCAqLywgZWMpOworICAgIGlmIChmcmFnbWVudCkKKyAgICAgICAgcmVwbGFj
ZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAppbmRleCAxZWE0ZGNiMzI2NWZm
MmE4NjY4YjQwZGY0ZmFmNzNkZjVlMGU0ZDU0Li45MjY4MjFlMDE0OWNkNDIwYmY2NDQwNjM0N2U2
NGIwNjQyYmI2ZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFn
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKQEAgLTM4
LDYgKzM4LDkgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgU3RyaW5n
IGlubmVySFRNTCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5lckhUTUwoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnRGcmFn
bWVudChEb2N1bWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVDb250YWluZXIpOwogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5pZGwKaW5kZXggODgyYjYyZGIzOWViN2YyZTA1MDQ3ODIwNDkyYjdlOTM2MWE4
ZWRlZC4uZjVmNTkxMzk3MmRiN2VkMDA0MTg4MmE2NjhlYTYzMzFhY2M3M2ZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmlkbApAQCAtMjUsNiArMjUsOCBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZUxp
c3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNw
cAppbmRleCBlMDg1NTA3MGE3Y2IzMjUzNGNjYmY4YWI4ZDA1MjY2N2RhMzE5ZjE1Li5mYWIxYzJi
NmIyNzIzNzhmNmI5YjA3YzgwYTY0N2UzMGM0ODU2MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxp
ZmllZE5hbWUuY3BwCkBAIC0xMDQsNiArMTA0LDcgQEAgU3RyaW5nIFF1YWxpZmllZE5hbWU6OnRv
U3RyaW5nKCkgY29uc3QKIAogLy8gR2xvYmFsIGluaXQgcm91dGluZXMKIERFRklORV9HTE9CQUwo
UXVhbGlmaWVkTmFtZSwgYW55TmFtZSwgbnVsbEF0b20sIHN0YXJBdG9tLCBzdGFyQXRvbSkKK0RF
RklORV9HTE9CQUwoUXVhbGlmaWVkTmFtZSwgbnVsbE5hbWUsIG51bGxBdG9tLCBudWxsQXRvbSwg
bnVsbEF0b20pCiAKIHZvaWQgUXVhbGlmaWVkTmFtZTo6aW5pdCgpCiB7CkBAIC0xMTMsNiArMTE0
LDcgQEAgdm9pZCBRdWFsaWZpZWROYW1lOjppbml0KCkKICAgICAgICAgCiAgICAgICAgIEF0b21p
Y1N0cmluZzo6aW5pdCgpOwogICAgICAgICBuZXcgKCh2b2lkKikmYW55TmFtZSkgUXVhbGlmaWVk
TmFtZShudWxsQXRvbSwgc3RhckF0b20sIHN0YXJBdG9tKTsKKyAgICAgICAgbmV3ICgodm9pZCop
Jm51bGxOYW1lKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBudWxsQXRvbSwgbnVsbEF0b20pOwog
ICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZp
ZWROYW1lLmgKaW5kZXggNjM2YjJhNTE1MGM5ZTk4N2MwMjdlNzU2OTc5MmQ5YmFjMzRhODllOS4u
OWVmYjg4MTI3MzY5NzZlMWM1NDM4OWEwMzdlMjFjMDhhOWZkNzdkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UXVhbGlmaWVkTmFtZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgcHJpdmF0ZToKICNpZm5kZWYgV0VC
Q09SRV9RVUFMSUZJRUROQU1FX0hJREVfR0xPQkFMUwogZXh0ZXJuIGNvbnN0IFF1YWxpZmllZE5h
bWUgYW55TmFtZTsKIGlubGluZSBjb25zdCBRdWFsaWZpZWROYW1lJiBhbnlRTmFtZSgpIHsgcmV0
dXJuIGFueU5hbWU7IH0KK2V4dGVybiBjb25zdCBRdWFsaWZpZWROYW1lIG51bGxOYW1lOworaW5s
aW5lIGNvbnN0IFF1YWxpZmllZE5hbWUmIG51bGxRTmFtZSgpIHsgcmV0dXJuIG51bGxOYW1lOyB9
CiAjZW5kaWYKIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdG9taWNTdHJpbmcmIGEs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIHEpIHsgcmV0dXJuIGEgPT0gcS5sb2NhbE5hbWUoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGFhMDM0YmEzMDBlMjc1NjE3ZTViN2Y5NWFj
Yjc1N2E3MzY2OTU2ZDUuLmExYmU0MmVhZWZjODNjNjM2MGQzNWFhMTY0NWFmODExM2E2Njg1NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTEzNywxOCArMTM3LDYgQEAgUGFzc1Jl
ZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCkKICAgICByZXR1cm4gMDsKIH0K
IAotU3RyaW5nIFNoYWRvd1Jvb3Q6OmlubmVySFRNTCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNy
ZWF0ZU1hcmt1cCh0aGlzLCBDaGlsZHJlbk9ubHkpOwotfQotCi12b2lkIFNoYWRvd1Jvb3Q6OnNl
dElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9t
U291cmNlKG1hcmt1cCwgaG9zdCgpLCBlYyk7Ci0gICAgaWYgKGZyYWdtZW50KQotICAgICAgICBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7
Ci19Ci0KIERPTVNlbGVjdGlvbiogU2hhZG93Um9vdDo6c2VsZWN0aW9uKCkKIHsKICAgICBpZiAo
ZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5kb21XaW5kb3coKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCmluZGV4IGMwMDI0YzcxNjczMjMwOTk3MGYxYmU4MTcwNzUxNjg1ZmYwNDE5ZTAuLmNiOGEy
MGMyM2Q1YmNmNjViZDkxMWE3YjM5ZGFjYjY4NWQ5YjJkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaApAQCAtNzMsOSArNzMsNiBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0
IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQogICAgIEVsZW1lbnRTaGFkb3cqIG93bmVyKCkgY29u
c3Q7CiAKLSAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJbm5lckhU
TUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgRWxlbWVudCogYWN0aXZl
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgRE9NU2VsZWN0aW9uKiBzZWxlY3Rpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA1NTA1N2I2ODA2ZDUzYjNjMmQ1MWM5NzNmZjQ1YTBj
ZjllZjhhYmE3Li44NDllNzU2MjQwNjVhMzAzODFlODcxMDkwZDQxY2RjOTg0YTQyNjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNyw5ICszNyw2IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVNlbGVjdGlvbiBzZWxlY3Rpb247CiAgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIGFwcGx5QXV0aG9yU3R5bGVzOwogCi0gICAgICAgIGF0dHJp
YnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAotICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIEVsZW1lbnQgZ2V0
RWxlbWVudEJ5SWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVs
ZW1lbnRJZCk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNzTmFtZSk7CiAgICAgICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHAKaW5kZXggODAwNTBmZmFlOWE2MTkxZDU1NWExZWNkNTkzZDViZmJl
ZTEzNjEwYS4uMzljZTBjMDljZDZjYzljYWFjZWFiYzA1OGIzYWM0ZGZiODQ5YWY5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5j
bHVkZSAiWE1MTlNOYW1lcy5oIgpAQCAtMTAzLDcgKzEwNCwxMSBAQCB2b2lkIE1hcmt1cEFjY3Vt
dWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdldE5vZGUsIE5v
ZGUqIG5vZAogICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAmbmFtZXNwYWNlSGFz
aCk7CiAKICAgICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgp
ICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewotICAgICAgICBmb3Ig
KE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJl
bnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQorICAgICAgICBOb2RlKiBlZmZlY3RpdmVOb2Rl
ID0gdGFyZ2V0Tm9kZTsKKyAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUtPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpKQorICAgICAgICAgICAgZWZmZWN0aXZlTm9kZSA9IHN0YXRpY19jYXN0PE5vZGUq
PihzdGF0aWNfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4oZWZmZWN0aXZlTm9kZSktPmNvbnRl
bnQoKS5nZXQoKSk7CisKKyAgICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0gZWZmZWN0aXZlTm9k
ZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmco
KSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwgbm9k
ZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcAppbmRleCBkMmM4MzNjNjQwOGZiMDE0ZmYwODIyNDVkMDc2OTBlYzYx
ZDdlZDE3Li4wNDNjYzQxNzc5MjEwMmQzZTQ3NzdjYmQxNmI2NWRjNWM1Zjc1NDQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC05OTIsOSArOTkyLDggQEAgU3RyaW5nIHVybFRvTWFy
a3VwKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4gbWFy
a3VwLnRvU3RyaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
RnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgbWFya3VwLCBFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRG9jdW1lbnQq
IGRvY3VtZW50LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7CiAg
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKaW5kZXggOTE4YWU5YjEzZTkxY2E3OGI4YjdhZmE0ZGNm
N2Q3NmVkNjg2MzkwZC4uNTRlZDhjMDFjZWNlNzY2MTlhNzZhNDM1NzI3NTZiMDZlZmQ2ZDdiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bU1hcmt1cChEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxs
b3dlZCk7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZy
b21NYXJrdXBXaXRoQ29udGV4dChEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCB1bnNp
Z25lZCBmcmFnbWVudFN0YXJ0LCB1bnNpZ25lZCBmcmFnbWVudEVuZCwgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXMoRG9jdW1lbnQqLCBjb25zdCBW
ZWN0b3I8Tm9kZSo+Jik7Ci0gICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVG
cmFnbWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiwgRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVNv
dXJjZShjb25zdCBTdHJpbmcmLCBEb2N1bWVudCosIEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7
CiAKICAgICBib29sIGlzUGxhaW5UZXh0TWFya3VwKE5vZGUgKm5vZGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGQzNjdmOWJiYWFhODk4OWMwNmJmNzAwZDYxNzhhNWYw
ZTZlYzU4ODAuLjg3YmRjMjQ0ZjBlMDVmOWFiYmI5ZmExOWIyMzU3NmFiY2QzYjNiNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0zNDQsNyArMzQ0LDcgQEAgU3RyaW5nIEhU
TUxFbGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5l
ckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2Uo
aHRtbCwgdGhpcywgZWMpOworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9
IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShodG1sLCBkb2N1bWVudCgpLCB0aGlzLCBlYyk7CiAg
ICAgaWYgKGZyYWdtZW50KQogICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodGhp
cywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CiB9CkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBI
VE1MRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgUmVmUHRyPE5vZGU+IHByZXYgPSBwcmV2aW91c1NpYmxpbmcoKTsKICAgICBS
ZWZQdHI8Tm9kZT4gbmV4dCA9IG5leHRTaWJsaW5nKCk7CiAKLSAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgcGFyZW50
LmdldCgpLCBlYyk7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKGh0bWwsIGRvY3VtZW50KCksIHBhcmVudC5nZXQoKSwgZWMp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmgKaW5kZXggOTVhOGU3NDc5MWFiMTA3OGU5YzgzZGQwM2ViYzcwMmQ2NTc0YjIzMS4u
MDhiOWMyNmI2NWRmZmZmZDIwODY1ZDE0MjAyYjI0ZDRmZjI0MDhmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuaApAQCAtNTIsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBzaG9y
dCB0YWJJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGFiSW5kZXgoaW50KTsKIAotICAgIFN0
cmluZyBpbm5lckhUTUwoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBpbm5lckhUTUwoKSBj
b25zdDsKICAgICBTdHJpbmcgb3V0ZXJIVE1MKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJbm5lckhU
TUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0T3V0
ZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldElubmVy
VGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRPdXRlclRl
eHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAppbmRleCBjZDg5YjQ2ODdjNmQyZjA3ZDJmMWI3YTEy
MThhZWUzOTI0YWJmZmRhLi5jODQ2MjZiNDFjNDY3N2UyODk4M2U0YzliZTY5YzQ1MThjMTQ4MGFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcApAQCAt
MTAzLDYgKzEwMyw3IEBACiAjaW5jbHVkZSAiSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IGE4Y2ZmNzNlY2FkYjA4NzQ4ODRkYjk5M2JjYjUy
NjgyNWFmYjYzNzcuLjlhNzA2YWNhNjU5ODI0YjE4MjJhNjU4N2QxNjAwMzUyODc5NTBhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMjIsNiArMTIyLDcgQEAgc3VwIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxlCiB0Ym9keSBpbnRlcmZhY2VOYW1lPUhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50CiB0ZCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50
Cit0ZW1wbGF0ZSBpbnRlcmZhY2VOYW1lPUhUTUxUZW1wbGF0ZUVsZW1lbnQsIGNvbmRpdGlvbmFs
PVRFTVBMQVRFX1RBRwogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFFbGVtZW50
LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290IGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZmZDcwNTFhZjZiZmZjNmRlN2QyNTExNTI4NzIzNTI3NzZlMzZmYjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQu
aCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50
OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorewor
fQorCitQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGVtcGxhdGVFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gSFRNTFRlbXBs
YXRlRWxlbWVudDo6Y29udGVudCgpCit7CisgICAgaWYgKG1fY29udGVudCkKKyAgICAgICAgcmV0
dXJuIG1fY29udGVudDsKKworICAgIG1fZG9jdW1lbnQgPSBvd25lckRvY3VtZW50KCktPmltcGxl
bWVudGF0aW9uKCktPmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7CisgICAgbV9jb250ZW50ID0gRG9j
dW1lbnRGcmFnbWVudDo6Y3JlYXRlKG1fZG9jdW1lbnQuZ2V0KCkpOworICAgIHJldHVybiBtX2Nv
bnRlbnQ7Cit9CisKK3ZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgY29udGVudCgpLT5zZXRJ
bm5lckhUTUwoaHRtbCwgZWMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlZWRkYTY4ODQ1
YWIwZDM5MjBiOTFiMjNmYTM4NmMyNzdmMTdhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKwor
I2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MVGVtcGxhdGVFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxh
dGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjb250ZW50KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0
ZToKKyAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworCisgICAgUmVmUHRyPEhUTUxEb2N1bWVudD4gbV9kb2N1bWVudDsKKyAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gSFRNTFRlbXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRlNTgxNjhjYmFlNDBlYmFk
M2EwNjc1ODEwZjQ1MzYzZGEyOWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1s
IHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1URU1QTEFURV9UQUcKKyAg
ICBdIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50IGNvbnRlbnQ7CisgICAgfTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRl
eCAzY2E4NzVhMWIyMDdiMjYzYWVhMjg2ZjE0MDU5MWQ0MTI3MGJiNjVhLi4zNDVhZjUwNmNmYTIz
ZmQ2YmE2MDUzYzg0NGU0OWZkMDNhODIwMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIK
ICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC00ODgsNiArNDg5LDEyIEBAIHZvaWQg
SFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogCiB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRh
c2smIHRhc2spCiB7CisgICAgLy8gVGVtcGxhdGUgRnJhZ21lbnQgY2FzZS4KKyAgICBpZiAoY3Vy
cmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpICYmIGN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpKSB7CisgICAgICAgIHRhc2sucGFyZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TFRlbXBsYXRlRWxlbWVudCo+KGN1cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBs
YXN0VGFibGVFbGVtZW50UmVjb3JkID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0YWJsZVRhZy5s
b2NhbE5hbWUoKSk7CiAgICAgaWYgKGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQpIHsKICAgICAgICAg
RWxlbWVudCogbGFzdFRhYmxlRWxlbWVudCA9IGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQtPmVsZW1l
bnQoKTsKQEAgLTUwNSw5ICs1MTIsOCBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5k
Rm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiAKIGJvb2wgSFRNTENv
bnN0cnVjdGlvblNpdGU6OnNob3VsZEZvc3RlclBhcmVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBhcmVudAotICAgICAgICAmJiBjdXJyZW50Tm9kZSgp
LT5pc0VsZW1lbnROb2RlKCkKLSAgICAgICAgJiYgY2F1c2VzRm9zdGVyUGFyZW50aW5nKGN1cnJl
bnRFbGVtZW50KCktPnRhZ1FOYW1lKCkpOworICAgIHJldHVybiAhaXNFbXB0eSgpICYmIGN1cnJl
bnROb2RlKCktPmlzRWxlbWVudE5vZGUoKQorICAgICAgICAgICAmJiAoY3VycmVudEVsZW1lbnQo
KS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykgfHwgKG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBh
cmVudCAmJiBjYXVzZXNGb3N0ZXJQYXJlbnRpbmcoY3VycmVudEVsZW1lbnQoKS0+dGFnUU5hbWUo
KSkpKTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Zm9zdGVyUGFyZW50KFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDdhMDZiNDIzOTY5MTNkOWQ5NmQ0ZTU3MWQ1YjIzM2E5
MjM3MDQyOTUuLmY4NmY3MzkwZWVjZWU0NzI1M2U4M2MzZjg4MTU3Y2JjZDViNmNiYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtMjc1LDYgKzI3NSwyMyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXpl
cihTeW5jaHJvbm91c01vZGUgbW9kZSkKICAgICAgICAgICAgIG1feHNzQXVkaXRvci5maWx0ZXJU
b2tlbihtX3Rva2VuKTsKICAgICAgICAgfQogCisgICAgICAgIGlmICghbV90cmVlQnVpbGRlci0+
Y2FuQ29udGludWUobV90b2tlbikpIHsKKyAgICAgICAgICAgIC8vIFRyZWUgY29uc3RydWN0aW9u
IHNob3VsZCBvbmx5IGJlIGJsb2NrZWQgYnkgd2FpdGluZyBvbiB0aGUgbmV4dAorICAgICAgICAg
ICAgLy8gc3RhcnQgdGFnLgorICAgICAgICAgICAgQVNTRVJUKG1fdG9rZW4udHlwZSgpICE9IEhU
TUxUb2tlblR5cGVzOjpTdGFydFRhZworICAgICAgICAgICAgICAgICAgICYmIG1fdG9rZW4udHlw
ZSgpICE9IEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGUpOworICAgICAgICAgICAgbV9xdWV1ZWRB
dG9taWNUb2tlbnMuYXBwZW5kKEF0b21pY0hUTUxUb2tlbjo6Y3JlYXRlKG1fdG9rZW4pKTsKKyAg
ICAgICAgICAgIG1fdG9rZW4uY2xlYXIoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFtX3F1ZXVlZEF0b21pY1Rva2Vucy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIFZlY3RvcjxPd25QdHI8QXRvbWljSFRNTFRva2VuPiA+IHF1ZXVlZFRva2VuczsK
KyAgICAgICAgICAgIHF1ZXVlZFRva2Vucy5zd2FwKG1fcXVldWVkQXRvbWljVG9rZW5zKTsKKyAg
ICAgICAgICAgIGZvciAoVmVjdG9yPE93blB0cjxBdG9taWNIVE1MVG9rZW4+ID46OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gcXVldWVkVG9rZW5zLmJlZ2luKCk7IGl0ICE9IHF1ZXVlZFRva2Vucy5lbmQo
KTsgKytpdCkKKyAgICAgICAgICAgICAgICBtX3RyZWVCdWlsZGVyLT5jb25zdHJ1Y3RUcmVlRnJv
bUF0b21pY1Rva2VuKCooaXQtPmdldCgpKSk7CisgICAgICAgIH0KKwogICAgICAgICBtX3RyZWVC
dWlsZGVyLT5jb25zdHJ1Y3RUcmVlRnJvbVRva2VuKG1fdG9rZW4pOwogICAgICAgICBBU1NFUlQo
bV90b2tlbi5pc1VuaW5pdGlhbGl6ZWQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBlZWU4ODJjNzI0ZTNlM2IwZDZk
ZDc0ZmJkNmE4NmQ1Y2I3MjJiYWM0Li4zNmNjYmE1MDUwZDVmNDBlYmNjZTQ3Y2RjZTZhMDNlOTFk
MmQyYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXN1bWVQYXJzaW5n
QWZ0ZXJZaWVsZCgpOwogCiAgICAgc3RhdGljIHZvaWQgcGFyc2VEb2N1bWVudEZyYWdtZW50KGNv
bnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsK
LSAgICAKKwogICAgIHN0YXRpYyBib29sIHVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKERvY3VtZW50
Kik7CiAgICAgc3RhdGljIHVuc2lnbmVkIG1heGltdW1ET01UcmVlRGVwdGgoRG9jdW1lbnQqKTsK
IApAQCAtMTQ1LDYgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2UgaG9sZCBtX3Rva2VuIGhl
cmUgYmVjYXVzZSBpdCBtaWdodCBiZSBwYXJ0aWFsbHkgY29tcGxldGUuCiAgICAgSFRNTFRva2Vu
IG1fdG9rZW47CiAKKyAgICBWZWN0b3I8T3duUHRyPEF0b21pY0hUTUxUb2tlbj4gPiBtX3F1ZXVl
ZEF0b21pY1Rva2VuczsKICAgICBPd25QdHI8SFRNTFRva2VuaXplcj4gbV90b2tlbml6ZXI7CiAg
ICAgT3duUHRyPEhUTUxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogICAgIE93blB0cjxI
VE1MVHJlZUJ1aWxkZXI+IG1fdHJlZUJ1aWxkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IGNkNWQwOGE1NTNlZGM4NDczNTYxYTE2
MWVlMWE5NzRhMjdmNjAzYzMuLmUxNWQ5ZjMyNGEwMWNkMzRmNGQ0ZGYzNjI4OGY2ZmM5M2U1Yzc3
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3Rh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2su
Y3BwCkBAIC03NCw2ICs3NCw3IEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoQ29udGFpbmVy
Tm9kZSogbm9kZSkKICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWln
bk9iamVjdFRhZykKICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1Rh
ZykKICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpCisgICAg
ICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCiAgICAgICAgIHx8IGlzUm9vdE5v
ZGUobm9kZSk7CiB9CiAKQEAgLTg3LDYgKzg4LDcgQEAgaW5saW5lIGJvb2wgaXNMaXN0SXRlbVNj
b3BlTWFya2VyKENvbnRhaW5lck5vZGUqIG5vZGUpCiBpbmxpbmUgYm9vbCBpc1RhYmxlU2NvcGVN
YXJrZXIoQ29udGFpbmVyTm9kZSogbm9kZSkKIHsKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFt
ZSh0YWJsZVRhZykKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKICAg
ICAgICAgfHwgaXNSb290Tm9kZShub2RlKTsKIH0KIApAQCAtOTUsMTIgKzk3LDE0IEBAIGlubGlu
ZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJrZXIoQ29udGFpbmVyTm9kZSogbm9kZSkKICAgICBy
ZXR1cm4gbm9kZS0+aGFzVGFnTmFtZSh0Ym9keVRhZykKICAgICAgICAgfHwgbm9kZS0+aGFzVGFn
TmFtZSh0Zm9vdFRhZykKICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aGVhZFRhZykKKyAg
ICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKICAgICAgICAgfHwgaXNSb290
Tm9kZShub2RlKTsKIH0KIAogaW5saW5lIGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKENvbnRh
aW5lck5vZGUqIG5vZGUpCiB7CiAgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUodHJUYWcpCisg
ICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCiAgICAgICAgIHx8IGlzUm9v
dE5vZGUobm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKaW5k
ZXggNGFjZmVjOWY4NzVmNzY5OTViYzBhZWFmZTY3YjdiY2EyNjAwYmVhMy4uZDk4OTliOTY1YzYy
MzVlYTE2ZmU3MWQ3NTNlZGY1OGQzZDUyODYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuLmgKQEAgLTg0LDcgKzg0LDEyIEBAIHB1YmxpYzoKIGNsYXNzIEF0b21pY0hUTUxU
b2tlbiA6IHB1YmxpYyBBdG9taWNNYXJrdXBUb2tlbkJhc2U8SFRNTFRva2VuPiB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQXRvbWljSFRNTFRva2VuKTsKIHB1YmxpYzoKLSAgICBBdG9taWNI
VE1MVG9rZW4oSFRNTFRva2VuJiB0b2tlbikgOiBBdG9taWNNYXJrdXBUb2tlbkJhc2U8SFRNTFRv
a2VuPigmdG9rZW4pIHsgfQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEF0b21pY0hUTUxUb2tlbj4g
Y3JlYXRlKEhUTUxUb2tlbiYgdG9rZW4pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEF0b21pY0hUTUxUb2tlbih0b2tlbiwgSW50ZXJuYWxpemVDaGFyYWN0ZXJzKSk7CisgICAg
fQorCisgICAgQXRvbWljSFRNTFRva2VuKEhUTUxUb2tlbiYgdG9rZW4sIENoYXJhY3RlclN0b3Jh
Z2VNb2RlIGNoYXJhY3RlclN0b3JhZ2UgPSBSZWZlcmVuY2VFeHRlcm5hbENoYXJhY3RlcnMpIDog
QXRvbWljTWFya3VwVG9rZW5CYXNlPEhUTUxUb2tlbj4oJnRva2VuLCBjaGFyYWN0ZXJTdG9yYWdl
KSB7IH0KIAogICAgIEF0b21pY0hUTUxUb2tlbihIVE1MVG9rZW5UeXBlczo6VHlwZSB0eXBlLCBB
dG9taWNTdHJpbmcgbmFtZSwgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMgPSBW
ZWN0b3I8QXR0cmlidXRlPigpKQogICAgICAgICA6IEF0b21pY01hcmt1cFRva2VuQmFzZTxIVE1M
VG9rZW4+KHR5cGUsIG5hbWUsIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCA1ZDUzNDJiYjAwNGU2Y2Y0NDljOTg2ZTI0
NDhkNTQ0NjY3Zjg2ZmE2Li4wOTEzNjU0MTM4Y2I4YjdmNmVmMzc3ODYzNjE3MTNjMjQyMjIxNzk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1M
UGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVk
ZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTI0
OCw4ICsyNDksOCBAQCBjbGFzcyBIVE1MVHJlZUJ1aWxkZXI6OkV4dGVybmFsQ2hhcmFjdGVyVG9r
ZW5CdWZmZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV4dGVybmFsQ2hhcmFjdGVyVG9r
ZW5CdWZmZXIpOwogcHVibGljOgogICAgIGV4cGxpY2l0IEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5C
dWZmZXIoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKLSAgICAgICAgOiBtX2N1cnJlbnQodG9rZW4u
Y2hhcmFjdGVycygpLmRhdGEoKSkKLSAgICAgICAgLCBtX2VuZChtX2N1cnJlbnQgKyB0b2tlbi5j
aGFyYWN0ZXJzKCkuc2l6ZSgpKQorICAgICAgICA6IG1fY3VycmVudCh0b2tlbi5jaGFyYWN0ZXJE
YXRhKCkpCisgICAgICAgICwgbV9lbmQobV9jdXJyZW50ICsgdG9rZW4uY2hhcmFjdGVyRGF0YVNp
emUoKSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNFbXB0eSgpKTsKICAgICB9CkBAIC0zNjgs
NyArMzY5LDcgQEAgSFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTERvY3VtZW50
UGFyc2VyKiBwYXJzZXIsIEhUTUxEb2N1bWVudCogZG9jdW0KIC8vIG1pbmltaXplIGNvZGUgZHVw
bGljYXRpb24gYmV0d2VlbiB0aGVzZSBjb25zdHJ1Y3RvcnMuCiBIVE1MVHJlZUJ1aWxkZXI6OkhU
TUxUcmVlQnVpbGRlcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciwgRG9jdW1lbnRGcmFnbWVu
dCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbiwgYm9vbCB1c2VQcmVIVE1MNVBhcnNlclF1aXJr
cywgdW5zaWduZWQgbWF4aW11bURPTVRyZWVEZXB0aCkKICAgICA6IG1fZnJhbWVzZXRPayh0cnVl
KQotICAgICwgbV9mcmFnbWVudENvbnRleHQoZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50LCBzY3Jp
cHRpbmdQZXJtaXNzaW9uKQorICAgICwgbV9mcmFnbWVudENvbnRleHQoZnJhZ21lbnQsIGNvbnRl
eHRFbGVtZW50ID8gY29udGV4dEVsZW1lbnQtPnRhZ1FOYW1lKCkgOiBudWxsUU5hbWUoKSwgc2Ny
aXB0aW5nUGVybWlzc2lvbikKICAgICAsIG1fZG9jdW1lbnQoZnJhZ21lbnQtPmRvY3VtZW50KCkp
CiAgICAgLCBtX3RyZWUoZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24sIG1heGltdW1ET01U
cmVlRGVwdGgpCiAgICAgLCBtX3JlcG9ydEVycm9ycyhmYWxzZSkgLy8gRklYTUU6IFdoeSBub3Qg
cmVwb3J0IGVycm9ycyBpbiBmcmFnbWVudHM/CkBAIC0zODEsMTcgKzM4MiwxNCBAQCBIVE1MVHJl
ZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciwgRG9j
dW1lbnRGcmFnbWVudCogZgogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb24o
VGV4dFBvc2l0aW9uOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fdXNlUHJlSFRNTDVQ
YXJzZXJRdWlya3ModXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiB7Ci0gICAgLy8gRklYTUU6IFRo
aXMgYXNzZXJ0aW9uIHdpbGwgYmVjb21lIGludmFsaWQgaWYgPGh0dHA6Ly93ZWJraXQub3JnL2Iv
NjAzMTY+IGlzIGZpeGVkLgotICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgaWYgKGNv
bnRleHRFbGVtZW50KSB7Ci0gICAgICAgIC8vIFN0ZXBzIDQuMi00LjYgb2YgdGhlIEhUTUw1IEZy
YWdtZW50IENhc2UgcGFyc2luZyBhbGdvcml0aG06Ci0gICAgICAgIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS1lbmQuaHRt
bCNmcmFnbWVudC1jYXNlCi0gICAgICAgIC8vIEZvciBlZmZpY2llbmN5LCB3ZSBza2lwIHN0ZXAg
NC4yICgiTGV0IHJvb3QgYmUgYSBuZXcgaHRtbCBlbGVtZW50IHdpdGggbm8gYXR0cmlidXRlcyIp
Ci0gICAgICAgIC8vIGFuZCBpbnN0ZWFkIHVzZSB0aGUgRG9jdW1lbnRGcmFnbWVudCBhcyBhIHJv
b3Qgbm9kZS4KLSAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wdXNoUm9vdE5vZGUoZnJh
Z21lbnQpOwotICAgICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAg
Ly8gU3RlcHMgNC4yLTQuNiBvZiB0aGUgSFRNTDUgRnJhZ21lbnQgQ2FzZSBwYXJzaW5nIGFsZ29y
aXRobToKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrL211bHRpcGFnZS90aGUtZW5kLmh0bWwjZnJhZ21lbnQtY2FzZQorICAgIC8vIEZvciBl
ZmZpY2llbmN5LCB3ZSBza2lwIHN0ZXAgNC4yICgiTGV0IHJvb3QgYmUgYSBuZXcgaHRtbCBlbGVt
ZW50IHdpdGggbm8gYXR0cmlidXRlcyIpCisgICAgLy8gYW5kIGluc3RlYWQgdXNlIHRoZSBEb2N1
bWVudEZyYWdtZW50IGFzIGEgcm9vdCBub2RlLgorICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cHVzaFJvb3ROb2RlKGZyYWdtZW50KTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0
ZWx5KCk7CisgICAgaWYgKGNvbnRleHRFbGVtZW50KQogICAgICAgICBtX3RyZWUuc2V0Rm9ybShj
bG9zZXN0Rm9ybUFuY2VzdG9yKGNvbnRleHRFbGVtZW50KSk7Ci0gICAgfQogfQogCiBIVE1MVHJl
ZUJ1aWxkZXI6On5IVE1MVHJlZUJ1aWxkZXIoKQpAQCAtNDEwLDE0ICs0MDgsMTQgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OmRldGFjaCgpCiAKIEhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJz
aW5nQ29udGV4dDo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dCgpCiAgICAgOiBtX2ZyYWdtZW50KDAp
Ci0gICAgLCBtX2NvbnRleHRFbGVtZW50KDApCisgICAgLCBtX2NvbnRleHRUYWcobnVsbFFOYW1l
KCkpCiAgICAgLCBtX3NjcmlwdGluZ1Blcm1pc3Npb24oRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2Vk
KQogewogfQogCi1IVE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6OkZyYWdt
ZW50UGFyc2luZ0NvbnRleHQoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlz
c2lvbikKK0hUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6RnJhZ21lbnRQ
YXJzaW5nQ29udGV4dChEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgY29udGV4dFRhZywgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Bl
cm1pc3Npb24pCiAgICAgOiBtX2ZyYWdtZW50KGZyYWdtZW50KQotICAgICwgbV9jb250ZXh0RWxl
bWVudChjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fY29udGV4dFRhZyhjb250ZXh0VGFnKQogICAg
ICwgbV9zY3JpcHRpbmdQZXJtaXNzaW9uKHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAgQVNT
RVJUKCFmcmFnbWVudC0+aGFzQ2hpbGROb2RlcygpKTsKQEAgLTQ0Nyw3ICs0NDUsNyBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rv
a2VuKQogICAgIC8vIHN5bmNocm9ub3VzbHkgcmUtZW50ZXJzIHRoZSBwYXJzZXIuIFdlIGRvbid0
IGNsZWFyIHRoZSB0b2tlbiBpbW1lZGF0ZWx5CiAgICAgLy8gZm9yIENoYXJhY3RlciB0b2tlbnMg
YmVjYXVzZSB0aGUgQXRvbWljSFRNTFRva2VuIGF2b2lkcyBjb3B5aW5nIHRoZQogICAgIC8vIGNo
YXJhY3RlcnMgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgYnVmZmVyIGlu
IHRoZQotICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVhbnRlbHksIENoYXJhY3RlciB0b2tlbnMgY2Fu
J3QgY2F1c2UgdXNlIHRvIHJlLWVudGVyCisgICAgLy8gSFRNTFRva2VuLiBGb3J0dW5hdGVseSwg
Q2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKICAgICAvLyB0aGUg
cGFyc2VyLgogICAgIC8vCiAgICAgLy8gRklYTUU6IFN0b3AgY2xlYXJpbmcgdGhlIHJhd1Rva2Vu
IG9uY2Ugd2Ugc3RhcnQgcnVubmluZyB0aGUgcGFyc2VyIG9mZgpAQCAtMTAyNywxMCArMTAyNSwy
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21p
Y0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAg
ICAgICAgb3BlblRlbXBsYXRlRnJhZ21lbnQodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAg
fQogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwog
ICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiB9CiAKK3ZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpvcGVuVGVtcGxhdGVGcmFnbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQorewor
ICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5kTWFya2VyKCk7Cisg
ICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKKyAgICBtX2ZyYWdtZW50Q29udGV4
dC5wdXNoKHN0YXRpY19jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihtX3RyZWUuY3VycmVudEVs
ZW1lbnQoKSktPmNvbnRlbnQoKS5nZXQoKSk7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpj
bG9zZVRlbXBsYXRlRnJhZ21lbnQoKQoreworICAgIG1fZnJhZ21lbnRDb250ZXh0LnBvcCgpOwor
ICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKK30KKwogYm9vbCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKQogewogICAg
IGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3RO
b2RlKCkpIHsKQEAgLTEwNzksNiArMTA5NCwxMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBw
cm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGlmICh0
b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgb3BlblRlbXBsYXRlRnJhZ21l
bnQodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmIChpc1RhYmxlQm9keUNv
bnRleHRUYWcodG9rZW4ubmFtZSgpKSkgewogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PnBvcFVudGlsVGFibGVTY29wZU1hcmtlcigpOwogICAgICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVs
ZW1lbnQodG9rZW4pOwpAQCAtMTQxOCw2ICsxNDM3LDEwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1f
dHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KKyAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAg
ICAgICAgb3BlblRlbXBsYXRlRnJhZ21lbnQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gc2VsZWN0VGFnKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBl
bmRTZWxlY3QoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgpKTsK
QEAgLTE2MzAsNDcgKzE2NTMsOTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNhbGxUaGVBZG9w
dGlvbkFnZW5jeShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIH0KIH0KIAorLy8gRklYTUU6
IFJlZmVyZW5jZSB0byBET000IHNwZWMgZGVzY3JpYmluZyB0aGUgZm9sbG93aW5nOiBUaGUgaW1w
bGllZCBjb250ZXh0IGVsZW1lbnQgb2YKKy8vIERvY3VtZW50RnJhZ21lbnQuaW5uZXJIVE1MIGlz
IGJhc2VkIG9uIHRoZSBpZGVudGl0eSBvZiB0aGUgdGFnTmFtZSBvZiB0aGUgZmlyc3Qgc3RhcnRU
YWcgdG9rZW4gZW5jb3VudGVyZWQuCisvLyBGSVhNRTogRWxlbWVudC5pbm5lckhUTUwgZG9lc24n
dCB3b3JrIGZvciBYTUwgZWxlbWVudHMuIFdoZW4gaXQgaXMgZml4ZWQsIHRoaXMgbmVlZHMgdG8g
aWRlbml0aWZ5CisvLyB0YWdOYW1lcyBwYXJ0aWN1bGFyIHRvIGVpdGhlciBuYW1lc3BhY2UgYW5k
IHBpY2sgYW4gYXBwcm9wcmlhdGUgaW1wbGllZCBjb250ZXh0IGVsZW1lbnQuCitzdGF0aWMgY29u
c3QgUXVhbGlmaWVkTmFtZSYgZ2V0SW1wbGllZENvbnRleHRUYWcoY29uc3QgQXRvbWljU3RyaW5n
JiB0YWdOYW1lKQoreworICAgIGlmIChpc1RhYmxlQm9keUNvbnRleHRUYWcodGFnTmFtZSkKKyAg
ICAgICAgfHwgdGFnTmFtZSA9PSBjYXB0aW9uVGFnCisgICAgICAgIHx8IHRhZ05hbWUgPT0gY29s
Z3JvdXBUYWcpIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlVGFnOworICAgIH0KKyAgICBpZiAodGFn
TmFtZSA9PSB0clRhZykKKyAgICAgICAgcmV0dXJuIHRib2R5VGFnOworICAgIGlmICh0YWdOYW1l
ID09IGNvbFRhZykKKyAgICAgICAgcmV0dXJuIGNvbGdyb3VwVGFnOworICAgIGlmIChpc1RhYmxl
Q2VsbENvbnRleHRUYWcodGFnTmFtZSkpCisgICAgICAgIHJldHVybiB0clRhZzsKKyAgICBpZiAo
dGFnTmFtZSA9PSBoZWFkVGFnIHx8IHRhZ05hbWUgPT0gYm9keVRhZykKKyAgICAgICAgcmV0dXJu
IGh0bWxUYWc7CisgICAgaWYgKHRhZ05hbWUgPT0gcnBUYWcgfHwgdGFnTmFtZSA9PSBydFRhZykK
KyAgICAgICAgcmV0dXJuIHJ1YnlUYWc7CisKKyAgICByZXR1cm4gYm9keVRhZzsKK30KKworYm9v
bCBIVE1MVHJlZUJ1aWxkZXI6OmltcGxpZWRDb250ZXh0VGFnKEhUTUxUb2tlbiYgdG9rZW4pCit7
CisgICAgQVNTRVJUKG1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCkgJiYgbV9mcmFnbWVudENv
bnRleHQuY29udGV4dFRhZygpID09IG51bGxRTmFtZSgpKTsKKyAgICBpZiAodG9rZW4udHlwZSgp
ID09IEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGUpIHsKKyAgICAgICAgbV9mcmFnbWVudENvbnRl
eHQuc2V0Q29udGV4dFRhZyhib2R5VGFnKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgaWYgKHRva2VuLnR5cGUoKSAhPSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fZnJhZ21lbnRDb250ZXh0LnNldENvbnRleHRUYWco
Z2V0SW1wbGllZENvbnRleHRUYWcoQXRvbWljU3RyaW5nKHRva2VuLm5hbWUoKS5kYXRhKCksIHRv
a2VuLm5hbWUoKS5zaXplKCkpKSk7CisgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVs
eSgpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJ
bnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiB7CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3Jl
c2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5CiAgICAgYm9vbCBsYXN0ID0gZmFs
c2U7CisgICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lID0gbnVsbFFOYW1lKCk7CiAgICAgSFRNTEVs
ZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbm9kZVJlY29yZCA9IG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+dG9wUmVjb3JkKCk7CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgQ29udGFpbmVyTm9k
ZSogbm9kZSA9IG5vZGVSZWNvcmQtPm5vZGUoKTsKICAgICAgICAgaWYgKG5vZGUgPT0gbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICB0YWdOYW1lID0gbV9mcmFnbWVudENvbnRleHQu
Y29udGV4dFRhZygpOwogICAgICAgICAgICAgbGFzdCA9IHRydWU7Ci0gICAgICAgICAgICBub2Rl
ID0gbV9mcmFnbWVudENvbnRleHQuY29udGV4dEVsZW1lbnQoKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAobm9kZS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aGFzVGFnTmFt
ZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICB0YWdOYW1lID0gbV9mcmFnbWVudENvbnRleHQu
Y29udGV4dFRhZygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0YWdOYW1lID0gbm9kZVJl
Y29yZC0+ZWxlbWVudCgpLT50YWdRTmFtZSgpOworCisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNo
ZXMoc2VsZWN0VGFnKSkgewogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5T
ZWxlY3RNb2RlKTsKICAgICAgICAgfQotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0ZFRh
ZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aFRhZykpCisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNo
ZXModGRUYWcpIHx8IHRhZ05hbWUubWF0Y2hlcyh0aFRhZykpCiAgICAgICAgICAgICByZXR1cm4g
c2V0SW5zZXJ0aW9uTW9kZShJbkNlbGxNb2RlKTsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUodHJUYWcpKQorICAgICAgICBpZiAodGFnTmFtZS5tYXRjaGVzKHRyVGFnKSkKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluUm93TW9kZSk7Ci0gICAgICAgIGlmIChub2Rl
LT5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8fCBu
b2RlLT5oYXNUYWdOYW1lKHRmb290VGFnKSkKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyh0
Ym9keVRhZykgfHwgdGFnTmFtZS5tYXRjaGVzKHRoZWFkVGFnKSB8fCB0YWdOYW1lLm1hdGNoZXMo
dGZvb3RUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJv
ZHlNb2RlKTsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykpCisgICAg
ICAgIGlmICh0YWdOYW1lLm1hdGNoZXMoY2FwdGlvblRhZykpCiAgICAgICAgICAgICByZXR1cm4g
c2V0SW5zZXJ0aW9uTW9kZShJbkNhcHRpb25Nb2RlKTsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1Rh
Z05hbWUoY29sZ3JvdXBUYWcpKSB7CisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXMoY29sZ3Jv
dXBUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAg
ICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGFibGVUYWcpKQorICAgICAgICBp
ZiAodGFnTmFtZS5tYXRjaGVzKHRhYmxlVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluVGFibGVNb2RlKTsKLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaGVh
ZFRhZykpIHsKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyhoZWFkVGFnKSkgewogICAgICAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoYm9keVRhZykpCisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXMoYm9keVRh
ZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKLSAg
ICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoZnJhbWVzZXRUYWcpKSB7CisgICAgICAgIGlmICh0
YWdOYW1lLm1hdGNoZXMoZnJhbWVzZXRUYWcpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZy
YW1lc2V0TW9kZSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaHRt
bFRhZykpIHsKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyhodG1sVGFnKSkgewogICAgICAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoQmVmb3JlSGVhZE1vZGUpOwogICAgICAgICB9CkBAIC0xNzc5LDYgKzE4
NDcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9t
aWNIVE1MVG9rZW4mIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09IHRhYmxl
VGFnCiAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0clRhZworICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gdGVtcGxhdGVUYWcKICAgICAgICAgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRv
a2VuLm5hbWUoKSkpIHsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFi
bGVTY29wZSh0b2tlbi5uYW1lKCkpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlD
b250ZXh0VGFnKHRva2VuLm5hbWUoKSkgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CkBAIC0xOTA0
LDcgKzE5NzMsOCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9k
eShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09
IGFwcGxldFRhZwogICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbWFycXVlZVRhZwotICAgICAg
ICB8fCB0b2tlbi5uYW1lKCkgPT0gb2JqZWN0VGFnKSB7CisgICAgICAgIHx8IHRva2VuLm5hbWUo
KSA9PSBvYmplY3RUYWcKKyAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHRlbXBsYXRlVGFnKSB7
CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKHRva2VuLm5hbWUo
KSkpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTkxNCw2ICsxOTg0LDggQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRU
YWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVk
KHRva2VuLm5hbWUoKSk7CiAgICAgICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMo
KS0+Y2xlYXJUb0xhc3RNYXJrZXIoKTsKKyAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykKKyAgICAgICAgICAgIGNsb3NlVGVtcGxhdGVGcmFnbWVudCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYnJUYWcpIHsKQEAgLTIyMDIs
NiArMjI3NCwxMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykgeworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBv
cHBlZCh0b2tlbi5uYW1lKCkpOworICAgICAgICAgICAgY2xvc2VUZW1wbGF0ZUZyYWdtZW50KCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgaWYgKHRva2VuLm5hbWUo
KSA9PSBvcHRpb25UYWcpIHsKICAgICAgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+
aGFzVGFnTmFtZShvcHRpb25UYWcpKSB7CiAgICAgICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5wb3AoKTsKQEAgLTI3ODUsNyArMjg2Miw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgIG1fdHJlZS5pbnNlcnRDb21tZW50KHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcjogewotICAgICAgICBTdHJpbmcgY2hhcmFj
dGVycyA9IFN0cmluZyh0b2tlbi5jaGFyYWN0ZXJzKCkuZGF0YSgpLCB0b2tlbi5jaGFyYWN0ZXJz
KCkuc2l6ZSgpKTsKKyAgICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBTdHJpbmcodG9rZW4uY2hh
cmFjdGVyRGF0YSgpLCB0b2tlbi5jaGFyYWN0ZXJEYXRhU2l6ZSgpKTsKICAgICAgICAgbV90cmVl
Lmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwogICAgICAgICBpZiAobV9mcmFtZXNldE9rICYm
ICFpc0FsbFdoaXRlc3BhY2VPclJlcGxhY2VtZW50Q2hhcmFjdGVycyhjaGFyYWN0ZXJzKSkKICAg
ICAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA2NGE5M2IzNGZmYmYxZjA0YWEwYjczNDIyMzdj
NzlkOWFkZDViYjIzLi44YTUwNWMwMzdmMjBhNDk2MTQ4OTU5ZTNhN2NjZjg4MjM1MTI5MGY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtNTAs
NiArNTAsNyBAQCBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBI
VE1MVG9rZW47CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CitjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xh
c3MgTm9kZTsKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKIApAQCAtODUsNiArODYsOSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFNob3VsZFNraXBMZWFkaW5nTmV3bGluZShib29sIHNob3Vs
ZFNraXApIHsgbV9zaG91bGRTa2lwTGVhZGluZ05ld2xpbmUgPSBzaG91bGRTa2lwOyB9CiAKKyAg
ICBib29sIGltcGxpZWRDb250ZXh0VGFnKEhUTUxUb2tlbiYpOworICAgIGJvb2wgY2FuQ29udGlu
dWUoSFRNTFRva2VuJiB0b2tlbikgeyByZXR1cm4gIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50
KCkgfHwgbV9mcmFnbWVudENvbnRleHQuY29udGV4dFRhZygpICE9IG51bGxRTmFtZSgpIHx8IGlt
cGxpZWRDb250ZXh0VGFnKHRva2VuKTsgfQorCiAgICAgc3RhdGljIGJvb2wgc2NyaXB0RW5hYmxl
ZChGcmFtZSopOwogICAgIHN0YXRpYyBib29sIHBsdWdpbnNFbmFibGVkKEZyYW1lKik7CiAKQEAg
LTE5MSwyMCArMTk1LDQ5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlc2V0SW5zZXJ0aW9uTW9k
ZUFwcHJvcHJpYXRlbHkoKTsKIAorICAgIHZvaWQgb3BlblRlbXBsYXRlRnJhZ21lbnQoQXRvbWlj
SFRNTFRva2VuJik7CisgICAgdm9pZCBjbG9zZVRlbXBsYXRlRnJhZ21lbnQoKTsKKwogICAgIGNs
YXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBwdWJsaWM6CiAgICAgICAgIEZyYWdtZW50
UGFyc2luZ0NvbnRleHQoKTsKLSAgICAgICAgRnJhZ21lbnRQYXJzaW5nQ29udGV4dChEb2N1bWVu
dEZyYWdtZW50KiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbik7CisgICAgICAgIEZyYWdtZW50UGFyc2luZ0NvbnRleHQoRG9jdW1lbnRGcmFnbWVu
dCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRleHRUYWcsIEZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbik7CiAgICAgICAgIH5GcmFnbWVudFBhcnNpbmdDb250ZXh0KCk7CiAKLSAgICAgICAg
RG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50OyB9
Ci0gICAgICAgIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyBBU1NFUlQobV9mcmFn
bWVudCk7IHJldHVybiBtX2NvbnRleHRFbGVtZW50OyB9CisgICAgICAgIERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gbV90ZW1wbGF0ZUZyYWdtZW50cy5pc0VtcHR5
KCkgPyBtX2ZyYWdtZW50IDogbV90ZW1wbGF0ZUZyYWdtZW50cy5sYXN0KCk7IH0KKyAgICAgICAg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGV4dFRhZygpIGNvbnN0IHsgcmV0dXJuIG1fdGVtcGxh
dGVGcmFnbWVudENvbnRleHRUYWdzLmlzRW1wdHkoKSA/IG1fY29udGV4dFRhZyA6IG1fdGVtcGxh
dGVGcmFnbWVudENvbnRleHRUYWdzLmxhc3QoKTsgfQorCisgICAgICAgIHZvaWQgc2V0Q29udGV4
dFRhZyhjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZXh0VGFnKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAobV90ZW1wbGF0ZUZyYWdtZW50cy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
bV9jb250ZXh0VGFnID0gY29udGV4dFRhZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFnc1ttX3RlbXBsYXRlRnJhZ21lbnRDb250
ZXh0VGFncy5zaXplKCkgLSAxXSA9IGNvbnRleHRUYWc7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIHB1c2goRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIEFTU0VSVChtX3RlbXBsYXRlRnJhZ21lbnRzLnNpemUoKSA9PSBtX3RlbXBsYXRlRnJhZ21l
bnRDb250ZXh0VGFncy5zaXplKCkpOworICAgICAgICAgICAgbV90ZW1wbGF0ZUZyYWdtZW50cy5h
cHBlbmQoZnJhZ21lbnQpOworICAgICAgICAgICAgbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRh
Z3MuYXBwZW5kKG51bGxRTmFtZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcG9wKCkK
KyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG1fdGVtcGxhdGVGcmFnbWVudHMuc2l6ZSgp
ID09IG1fdGVtcGxhdGVGcmFnbWVudENvbnRleHRUYWdzLnNpemUoKSk7CisgICAgICAgICAgICBt
X3RlbXBsYXRlRnJhZ21lbnRzLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgIG1fdGVtcGxhdGVG
cmFnbWVudENvbnRleHRUYWdzLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgfQorCiAgICAgICAgIEZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKCkgY29uc3QgeyBB
U1NFUlQobV9mcmFnbWVudCk7IHJldHVybiBtX3NjcmlwdGluZ1Blcm1pc3Npb247IH0KIAogICAg
IHByaXZhdGU6CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQqIG1fZnJhZ21lbnQ7Ci0gICAgICAg
IEVsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQ7CisgICAgICAgIFF1YWxpZmllZE5hbWUgbV9jb250
ZXh0VGFnOworCisgICAgICAgIFZlY3RvcjxEb2N1bWVudEZyYWdtZW50Kj4gbV90ZW1wbGF0ZUZy
YWdtZW50czsKKyAgICAgICAgVmVjdG9yPFF1YWxpZmllZE5hbWU+IG1fdGVtcGxhdGVGcmFnbWVu
dENvbnRleHRUYWdzOwogCiAgICAgICAgIC8vIEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCBj
YXVzZXMgdGhlIFBhcnNlciB0byByZW1vdmUgY2hpbGRyZW4KICAgICAgICAgLy8gZnJvbSA8c2Ny
aXB0PiB0YWdzIChzbyBqYXZhc2NyaXB0IGRvZXNuJ3Qgc2hvdyB1cCBpbiBwYXN0ZXMpLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1YTFhODFjNDU5MTdiOWY4MDVh
NjBiZDE4OWJkYzAuLjg2ZjE2ZTEwNTA0NTdjZDg2NTMxY2I4ZDMzMzMzODY1ZWZlMDk4OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ1NSw2ICs0NTUsNyBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
VGFibGVFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0
cnVjdG9yIEhUTUxUYWJsZVJvd0VsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OworICAgICAg
ICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVRFTVBMQVRFX1RBR10gSFRNTFRlbXBsYXRlRWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1M
VGV4dEFyZWFFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICAgICAg
YXR0cmlidXRlIEhUTUxUaXRsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGl0bGVFbGVtZW50Owog
ICAgICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxVTGlzdEVs
ZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2Vu
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbkJhc2UuaAppbmRl
eCBjOTYyYTZhYmEzM2E0YjVlNTE0YzFlYTNkZTAxMGM5OGQxYmRlYmYyLi4yYmRiZGVlYzA0OWU1
OTJmMjM4Mzk3NThkMDNjZDdmMTY2OTYxMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL01hcmt1cFRva2VuQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvTWFya3VwVG9rZW5CYXNlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgTWFya3VwVG9r
ZW5CYXNlX2gKIAogI2luY2x1ZGUgIkVsZW1lbnRBdHRyaWJ1dGVEYXRhLmgiCisjaW5jbHVkZSA8
d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWZuZGVmIE5E
RUJVRwpAQCAtMzcyLDEyICszNzMsMTUgQEAgcHJvdGVjdGVkOgogICAgIEF0dHJpYnV0ZSogbV9j
dXJyZW50QXR0cmlidXRlOwogfTsKIAorZW51bSBDaGFyYWN0ZXJTdG9yYWdlTW9kZSB7IEludGVy
bmFsaXplQ2hhcmFjdGVycywgUmVmZXJlbmNlRXh0ZXJuYWxDaGFyYWN0ZXJzIH07CisKIHRlbXBs
YXRlPHR5cGVuYW1lIFRva2VuPgogY2xhc3MgQXRvbWljTWFya3VwVG9rZW5CYXNlIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShBdG9taWNNYXJrdXBUb2tlbkJhc2UpOwogcHVibGljOgotICAg
IEF0b21pY01hcmt1cFRva2VuQmFzZShUb2tlbiogdG9rZW4pCisgICAgQXRvbWljTWFya3VwVG9r
ZW5CYXNlKFRva2VuKiB0b2tlbiwgQ2hhcmFjdGVyU3RvcmFnZU1vZGUgY2hhcmFjdGVyU3RvcmFn
ZSA9IFJlZmVyZW5jZUV4dGVybmFsQ2hhcmFjdGVycykKICAgICAgICAgOiBtX3R5cGUodG9rZW4t
PnR5cGUoKSkKKyAgICAgICAgLCBtX2V4dGVybmFsQ2hhcmFjdGVycygwKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKHRva2VuKTsKIApAQCAtNDAyLDcgKzQwNiwxNSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4tPmNvbW1lbnQoKS5kYXRhKCksIHRva2VuLT5jb21t
ZW50KCkuc2l6ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRva2VuOjpU
eXBlOjpDaGFyYWN0ZXI6Ci0gICAgICAgICAgICBtX2V4dGVybmFsQ2hhcmFjdGVycyA9ICZ0b2tl
bi0+Y2hhcmFjdGVycygpOworICAgICAgICAgICAgaWYgKGNoYXJhY3RlclN0b3JhZ2UgPT0gUmVm
ZXJlbmNlRXh0ZXJuYWxDaGFyYWN0ZXJzKSB7CisgICAgICAgICAgICAgICAgbV9leHRlcm5hbENo
YXJhY3RlcnMgPSAmdG9rZW4tPmNoYXJhY3RlcnMoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9pbnRlcm5hbENoYXJhY3RlcnNTaXplID0g
dG9rZW4tPmNoYXJhY3RlcnMoKS5zaXplKCk7CisgICAgICAgICAgICBtX2ludGVybmFsQ2hhcmFj
dGVycyA9IGFkb3B0QXJyYXlQdHIobmV3IFVDaGFyW21faW50ZXJuYWxDaGFyYWN0ZXJzU2l6ZV0p
OworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faW50ZXJuYWxDaGFyYWN0
ZXJzU2l6ZTsgaSsrKQorICAgICAgICAgICAgICAgIG1faW50ZXJuYWxDaGFyYWN0ZXJzW2ldID0g
dG9rZW4tPmNoYXJhY3RlcnMoKS5kYXRhKClbaV07CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDU2LDEwICs0NjgsMTYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gbV9hdHRyaWJ1dGVzOwogICAgIH0KIAotICAgIGNvbnN0IHR5
cGVuYW1lIFRva2VuOjpEYXRhVmVjdG9yJiBjaGFyYWN0ZXJzKCkgY29uc3QKKyAgICBjb25zdCBV
Q2hhciogY2hhcmFjdGVyRGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBl
ID09IFRva2VuOjpUeXBlOjpDaGFyYWN0ZXIpOworICAgICAgICByZXR1cm4gbV9leHRlcm5hbENo
YXJhY3RlcnMgPyBtX2V4dGVybmFsQ2hhcmFjdGVycy0+ZGF0YSgpIDogbV9pbnRlcm5hbENoYXJh
Y3RlcnMuZ2V0KCk7CisgICAgfQorCisgICAgc2l6ZV90IGNoYXJhY3RlckRhdGFTaXplKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVG9rZW46OlR5cGU6OkNoYXJhY3Rl
cik7Ci0gICAgICAgIHJldHVybiAqbV9leHRlcm5hbENoYXJhY3RlcnM7CisgICAgICAgIHJldHVy
biBtX2V4dGVybmFsQ2hhcmFjdGVycyA/IG1fZXh0ZXJuYWxDaGFyYWN0ZXJzLT5zaXplKCkgOiBt
X2ludGVybmFsQ2hhcmFjdGVyc1NpemU7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiBjb21t
ZW50KCkgY29uc3QKQEAgLTUwMCwxMyArNTE4LDE5IEBAIHByb3RlY3RlZDoKIAogICAgIC8vICJj
aGFyYWN0ZXJzIiBmb3IgQ2hhcmFjdGVyCiAgICAgLy8KLSAgICAvLyBXZSBkb24ndCB3YW50IHRv
IGNvcHkgdGhlIHRoZSBjaGFyYWN0ZXJzIG91dCBvZiB0aGUgVG9rZW4sIHNvIHdlCi0gICAgLy8g
a2VlcCBhIHBvaW50ZXIgdG8gaXRzIGJ1ZmZlciBpbnN0ZWFkLiBUaGlzIGJ1ZmZlciBpcyBvd25l
ZCBieSB0aGUKLSAgICAvLyBUb2tlbiBhbmQgY2F1c2VzIGEgbGlmZXRpbWUgZGVwZW5kZW5jZSBi
ZXR3ZWVuIHRoZXNlIG9iamVjdHMuCisgICAgLy8gSW4gc3RlYWR5LXN0YXRlIGNhc2UsIHdlIGRv
bid0IHdhbnQgdG8gY29weSB0aGUgdGhlIGNoYXJhY3RlcnMgb3V0IG9mIHRoZQorICAgIC8vIFRv
a2VuLCBzbyB3ZSBrZWVwIGEgcG9pbnRlciB0byBpdHMgYnVmZmVyIGluc3RlYWQuIFRoaXMgYnVm
ZmVyIGlzIG93bmVkCisgICAgLy8gYnkgdGhlIFRva2VuIGFuZCBjYXVzZXMgYSBsaWZldGltZSBk
ZXBlbmRlbmNlIGJldHdlZW4gdGhlc2Ugb2JqZWN0cy4gVGhpcworICAgIC8vIGlzIHRoZSBiZWhh
dmlvciB3aGVuIGNvbnN0cnVjdGVkIHdpdGggUmVmZXJlbmNlRXh0ZXJuYWxDaGFyYWN0ZXJzLgog
ICAgIC8vCi0gICAgLy8gRklYTUU6IEFkZCBhIG1lY2hhbmlzbSBmb3IgImludGVybmFsaXppbmci
IHRoZSBjaGFyYWN0ZXJzIHdoZW4gdGhlCi0gICAgLy8gICAgICAgIEhUTUxUb2tlbiBpcyBkZXN0
cnVjdGVkLgorICAgIC8vIEluIHRoZSAiaW1wbGllZCBjb250ZXh0IiBmcmFnbWVudCBjYXNlLCB3
ZSBuZWVkIHRvIGxldCB0aGUgdG9rZW5pemVyCisgICAgLy8gc2NhbiBhaGVhZCBhbmQgcXVldWUg
dG9rZW5zIGZvciBsYXRlciBkZWxpdmVyeS4gSW4gdGhpcyBjYXNlLCB3ZSBtYWtlIGFuCisgICAg
Ly8gaW50ZXJuYWwgY29weSBvZiB0aGUgY2hhcmFjdGVycyBzbyB0aGF0IGl0IGlzIHNhZmUgdG8g
bGV0IHRoZSB1bmRlcmx5aW5nCisgICAgLy8gVG9rZW4gYmUgZnJlZWQuIFRoaXMgaXMgdGhlIGJl
aGF2aW9yIHdoZW4gY29uc3RydWN0ZWQgd2l0aAorICAgIC8vIEludGVybmFsaXplQ2hhcmFjdGVy
cwogICAgIGNvbnN0IHR5cGVuYW1lIFRva2VuOjpEYXRhVmVjdG9yKiBtX2V4dGVybmFsQ2hhcmFj
dGVyczsKKyAgICBPd25BcnJheVB0cjxVQ2hhcj4gbV9pbnRlcm5hbENoYXJhY3RlcnM7CisgICAg
c2l6ZV90IG1faW50ZXJuYWxDaGFyYWN0ZXJzU2l6ZTsKIAogICAgIC8vIEZvciBET0NUWVBFCiAg
ICAgT3duUHRyPHR5cGVuYW1lIFRva2VuOjpEb2N0eXBlRGF0YT4gbV9kb2N0eXBlRGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MVHJlZUJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggZGIyMTNj
ZDYyZWU5M2Q1NDdhZjEzYzU5ZDNmMTAyZjVjZGNjNjc5Ny4uNTFlMTQ4ZGNjYzE5NzUyNzZjZDg2
Y2RmYzlmOGE0ZTYxNDVjYTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxU
cmVlQnVpbGRlci5jcHAKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIFhNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnKGNvbnN0IEF0b21pY1hNTFRva2VuJiB0b2tlbikKIAogdm9pZCBYTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3Rlcihjb25zdCBBdG9taWNYTUxUb2tlbiYgdG9rZW4pCiB7
Ci0gICAgYXBwZW5kVG9UZXh0KHRva2VuLmNoYXJhY3RlcnMoKS5kYXRhKCksIHRva2VuLmNoYXJh
Y3RlcnMoKS5zaXplKCkpOworICAgIGFwcGVuZFRvVGV4dCh0b2tlbi5jaGFyYWN0ZXJEYXRhKCks
IHRva2VuLmNoYXJhY3RlckRhdGFTaXplKCkpOwogfQogCiB2b2lkIFhNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzQ0RBVEEoY29uc3QgQXRvbWljWE1MVG9rZW4mIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9mZWF0dXJlcy5neXBpCmluZGV4IGViMjllY2UzMmEwNTc4ODhkMWM1ZjBlNzMyNGQxNmMzZWZl
ZWRiMWMuLjU1MTJjNWNiNjBlNTI3YjJkOTlhYmY2MTAxZDVkMTJlZTY4NTIxODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTk3LDYgKzk3LDcgQEAKICAgICAgICdFTkFC
TEVfU1RZTEVfU0NPUEVEPTEnLAogICAgICAgJ0VOQUJMRV9TVkc9PChlbmFibGVfc3ZnKScsCiAg
ICAgICAnRU5BQkxFX1NWR19GT05UUz08KGVuYWJsZV9zdmcpJywKKyAgICAgICdFTkFCTEVfVEVN
UExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVOVFM9PChlbmFibGVfdG91Y2hf
ZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORz08KGVuYWJsZV90b3Vj
aF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVfVjhfU0NSSVBUX0RFQlVHX1NFUlZFUj0x
JywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA4NjVmNWM2MWI1NzAxOTc1YjE0ZTI1MzdlZTlkNWFkMjlmYjM2ZTAyLi4xYWI4
YTVhNjUzNmE5YzBiZGQ1YWU1ODY1MGIxZjg0MmQyZTM4MTZkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMDUtMTAgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4K
KworICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZW1w
bGF0ZS5kYXQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiByZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanM6CisgICAgICAgIChNYXJr
dXAuX2dldC5pc1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChNYXJrdXAuX2dldCk6CisgICAg
ICAgIChNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlKToKKwogMjAxMi0wNS0wOSAgSm9jaGVu
IEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXaGVuIGNyZWF0aW5n
IGEgbmV3IHBhZ2UgZHVyaW5nIGEgbmF2aWdhdGlvbiwgcHJpbWUgdGhlIGluaXRpYWwgZG9jdW1l
bnQgd2l0aCB0aGUgY29ycmVjdCByZWZlcnJlciBwb2xpY3kKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5NzdkMzBhNjBhODBkM2Q5YTU4
YmQ1NzQ2ZjNiNDIxMjdmNGU4ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1s
NWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsMzMyIEBACisjZGF0YQorPGRp
dj48dGVtcGxhdGU+PGRpdj48c3Bhbj48L3RlbXBsYXRlPjxiPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAg
PGI+CisKKyNkYXRhCis8ZGl2Pjx0ZW1wbGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT5IZWxs
bzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICJIZWxsbyIKKworI2RhdGEKKzxk
aXY+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAg
ICAgICA8dGVtcGxhdGU+CisKKyNkYXRhCis8dGFibGU+PGRpdj48dGVtcGxhdGU+PC90ZW1wbGF0
ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgIDx0YWJsZT4KKwor
I2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4K
K3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRhYmxlPiAgIDx0
ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgICIgICAiCit8
ICAgICAgIDx0ZW1wbGF0ZT4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVt
cGxhdGU+PC90Ym9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0
ZW1wbGF0ZT4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
KworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgor
CisjZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RoZWFkPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQor
PHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNlbGVjdD48
dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1w
bGF0ZT4KKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PG9wdGlvbj48L3Nl
bGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgPG9wdGlvbj4K
KworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisj
ZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+
CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVj
dD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNlbGVj
dD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAg
ICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIDxvcHRpb24+CisKKyNk
YXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRoZWFkPgor
CisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFi
bGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICA8dGhlYWQ+CisK
KyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRyPgorCisj
ZGF0YQorPHRhYmxlPjx0cj48dGVtcGxhdGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJv
ZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
ICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGVt
cGxhdGU+PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
ICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90
ZD48L3RlbXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRkPgorCisjZGF0
YQorPHRlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
IDx0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjllZmUzMjRiMDEyOWU2MWM5MTI0ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKK3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVh
YzQ0NDliM2U5MTdhYzRkNDE5Y2I2NGZlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8c2NyaXB0PgordmFyIHRlc3RfZmlsZXMgPSBbCisgICdyZXNvdXJjZXMvdGVtcGxhdGUu
ZGF0JywKK10KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1h
cmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci5qcyI+PC9z
Y3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1
bXAtYXMtbWFya3VwLmpzCmluZGV4IGM4OGUyMGM2OWUyOGE1ODI4ZjY3ZTJiZThiZGYxNTRiZDJl
Y2FmYTAuLjA4MTdhYTRiYzg5NTZjMzBjMGJhZDA4MWYwZGJjOTJkMzA0M2RkODYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcworKysgYi9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKQEAgLTIyMSwxMyArMjIxLDE5IEBAIE1h
cmt1cC5fZ2V0ID0gZnVuY3Rpb24obm9kZSwgZGVwdGgpCiAgICAgICAgIGlmIChub2RlLm5vZGVO
YW1lID09ICIjc2hhZG93LXJvb3QiKQogICAgICAgICAgIHN0ciArPSAiPHNoYWRvdzpyb290PiI7
CiAgICAgfQotCi0gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5n
dGg7IGkgPCBsZW47IGkrKykgeworICAgIAorICAgIGZ1bmN0aW9uIGlzVGVtcGxhdGVFbGVtZW50
KG5vZGUpIHsKKyAgICAgIHJldHVybiBub2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RFTVBMQVRFJzsKKyAgICB9Cisg
ICAgCisgICAgLy8gPHRlbXBsYXRlPiBlbGVtZW50IHNlcmlhbGl6ZXMgaXRzIGNvbnRlbnQgRG9j
dW1lbnRGcmFnbWVudCwgbm90IGl0cyBjaGlsZHJlbi4KKyAgICB2YXIgY2hpbGROb2RlcyA9IGlz
VGVtcGxhdGVFbGVtZW50KG5vZGUpID8gbm9kZS5jb250ZW50LmNoaWxkTm9kZXMgOiBub2RlLmNo
aWxkTm9kZXM7CisgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNoaWxkTm9kZXMubGVuZ3RoOyBp
IDwgbGVuOyBpKyspIHsKICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0
aW9uTWFya2VyKG5vZGUsIGkpOwogICAgICAgICBpZiAoc2VsZWN0aW9uKQogICAgICAgICAgICAg
c3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247CiAKLSAgICAgICAg
c3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAg
ICAgc3RyICs9IE1hcmt1cC5fZ2V0KGNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CiAgICAgfQog
CiAgICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVwdGgp
OwpAQCAtMjg0LDcgKzI5MCw3IEBAIE1hcmt1cC5fTkFNRVNQQUNFX1VSSV9NQVAgPSB7CiAKIE1h
cmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUgPSBmdW5jdGlvbihub2RlKQogewotICAgIHJldHVy
biBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCk7CisgICAgcmV0
dXJuIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/IG5vZGUub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKSA6IG51bGw7CiB9CiAKIE1hcmt1cC5fU0VMRUNUSU9O
X0ZPQ1VTID0gJzwjc2VsZWN0aW9uLWZvY3VzPic7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141189</attachid>
            <date>2012-05-10 10:07:22 -0700</date>
            <delta_ts>2012-05-17 11:55:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20120510100721.patch</filename>
            <type>text/plain</type>
            <size>32005</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjM1NzAzMWUw
ZDMwNWQ1YjM0ZDM1YzUzNzA4OWNhMThkZTE2NDY4OC4uMzZlNjQwZjdmMWZmN2JlNjVhYWU4YTAy
OGZiOGI5ZjVjNjNmYmNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTA2Myw2ICsxMDYzLDcgQEAK
ICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRt
bC9IVE1MVUxpc3RFbGVtZW50LmlkbCcsCkBAIC01NTkzLDYgKzU1OTQsOCBAQAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
aXRsZUVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4
IDVjYzk2YjcyYjc0MmM5MWJkZWZkNGNhMTYwODNjMzNlNDBmNzY3ODMuLjkyNjgyMWUwMTQ5Y2Q0
MjBiZjY0NDA2MzQ3ZTY0YjA2NDJiYjZmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuaApAQCAtMzgsOCArMzgsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
U3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OwotICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBpbm5lckhUTUwoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50RnJhZ21lbnQoRG9jdW1lbnQq
LCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3JlYXRlQ29udGFpbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggODAwNTBmZmFlOWE2MTkxZDU1NWEx
ZWNkNTkzZDViZmJlZTEzNjEwYS4uMzljZTBjMDljZDZjYzljYWFjZWFiYzA1OGIzYWM0ZGZiODQ5
YWY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgpAQCAtMTAzLDcgKzEwNCwxMSBAQCB2b2lk
IE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRh
cmdldE5vZGUsIE5vZGUqIG5vZAogICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAm
bmFtZXNwYWNlSGFzaCk7CiAKICAgICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hU
TUxEb2N1bWVudCgpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewot
ICAgICAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1
cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQorICAgICAgICBOb2RlKiBl
ZmZlY3RpdmVOb2RlID0gdGFyZ2V0Tm9kZTsKKyAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUtPmhh
c1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgZWZmZWN0aXZlTm9kZSA9IHN0YXRp
Y19jYXN0PE5vZGUqPihzdGF0aWNfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4oZWZmZWN0aXZl
Tm9kZSktPmNvbnRlbnQoKS5nZXQoKSk7CisKKyAgICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0g
ZWZmZWN0aXZlTm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+
bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMo
Y3VycmVudCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCA5NWE4ZTc0NzkxYWIxMDc4ZTljODNk
ZDAzZWJjNzAyZDY1NzRiMjMxLi4wOGI5YzI2YjY1ZGZmZmZkMjA4NjVkMTQyMDJiMjRkNGZmMjQw
OGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC01Miw5ICs1Miw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUYWJJ
bmRleChpbnQpOwogCi0gICAgU3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OworICAgIHZpcnR1YWwg
U3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OwogICAgIFN0cmluZyBvdXRlckhUTUwoKSBjb25zdDsK
LSAgICB2b2lkIHNldElubmVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdmlydHVhbCB2b2lkIHNldElubmVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0SW5uZXJUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHNldE91dGVyVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCmluZGV4IGNkODli
NDY4N2M2ZDJmMDdkMmYxYjdhMTIxOGFlZTM5MjRhYmZmZGEuLmM4NDYyNmI0MWM0Njc3ZTI4OTgz
ZTRjOWJlNjljNDUxOGMxNDgwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnRzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnRzQWxsSW5PbmUuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbmNsdWRlICJIVE1MVGFibGVQ
YXJ0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5jcHAiCiAjaW5j
bHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0
ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGl0bGVF
bGVtZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVz
LmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggYThjZmY3M2Vj
YWRiMDg3NDg4NGRiOTkzYmNiNTI2ODI1YWZiNjM3Ny4uOWE3MDZhY2E2NTk4MjRiMTgyMmE2NTg3
ZDE2MDAzNTI4Nzk1MGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFn
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTEy
Miw2ICsxMjIsNyBAQCBzdXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdGFibGUKIHRib2R5
IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRkIGludGVyZmFjZU5hbWU9
SFRNTFRhYmxlQ2VsbEVsZW1lbnQKK3RlbXBsYXRlIGludGVyZmFjZU5hbWU9SFRNTFRlbXBsYXRl
RWxlbWVudCwgY29uZGl0aW9uYWw9VEVNUExBVEVfVEFHCiB0ZXh0YXJlYSBpbnRlcmZhY2VOYW1l
PUhUTUxUZXh0QXJlYUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogdGZvb3Qg
aW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGggaW50ZXJmYWNlTmFtZT1I
VE1MVGFibGVDZWxsRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZkNzA1MWFmNmJmZmM2ZGU3ZDI1MTE1Mjg3MjM1Mjc3NmUz
NmZiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SFRNTFRlbXBsYXRlRWxlbWVudC5oIgorCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIK
KyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW5saW5l
IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4g
SFRNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1w
bGF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKK30KKworUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkKK3sKKyAgICBpZiAobV9j
b250ZW50KQorICAgICAgICByZXR1cm4gbV9jb250ZW50OworCisgICAgbV9kb2N1bWVudCA9IG93
bmVyRG9jdW1lbnQoKS0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRlSFRNTERvY3VtZW50KCIiKTsK
KyAgICBtX2NvbnRlbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUobV9kb2N1bWVudC5nZXQo
KSk7CisgICAgcmV0dXJuIG1fY29udGVudDsKK30KKwordm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50
OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBjb250ZW50KCktPnNldElubmVySFRNTChodG1sLCBlYyk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWVlZGRhNjg4NDVhYjBkMzkyMGI5MWIyM2ZhMzg2YzI3N2YxN2FiMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgSFRNTFRlbXBsYXRlRWxlbWVudF9oCisjZGVmaW5lIEhUTUxU
ZW1wbGF0ZUVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRl
ICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxUZW1w
bGF0ZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNvbnRlbnQo
KTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0
aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKKyAgICBSZWZQdHI8SFRNTERvY3VtZW50PiBtX2Rv
Y3VtZW50OworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIVE1MVGVtcGxhdGVFbGVtZW50X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMyZGU1ODE2OGNiYWU0MGViYWQzYTA2NzU4MTBmNDUzNjNkYTI5YjcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCkBAIC0wLDAg
KzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlv
bmFsPVRFTVBMQVRFX1RBRworICAgIF0gSFRNTFRlbXBsYXRlRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudDsK
KyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCmluZGV4IDNjYTg3NWExYjIwN2IyNjNhZWEyODZmMTQwNTkxZDQxMjcw
YmI2NWEuLjM0NWFmNTA2Y2ZhMjNmZDZiYTYwNTNjODQ0ZTQ5ZmQwM2E4MjAzMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1M
UGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVk
ZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTQ4
OCw2ICs0ODksMTIgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Z2VuZXJhdGVJbXBsaWVk
RW5kVGFncygpCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEhU
TUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIHsKKyAgICAvLyBUZW1wbGF0ZSBGcmFnbWVu
dCBjYXNlLgorICAgIGlmIChjdXJyZW50Tm9kZSgpLT5pc0VsZW1lbnROb2RlKCkgJiYgY3VycmVu
dEVsZW1lbnQoKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpIHsKKyAgICAgICAgdGFzay5wYXJl
bnQgPSBzdGF0aWNfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4oY3VycmVudEVsZW1lbnQoKSkt
PmNvbnRlbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEhUTUxFbGVtZW50U3Rh
Y2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQgPSBtX29wZW5FbGVtZW50
cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAgICBpZiAobGFzdFRhYmxlRWxlbWVu
dFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFibGVFbGVtZW50ID0gbGFzdFRhYmxl
RWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpAQCAtNTA1LDkgKzUxMiw4IEBAIHZvaWQgSFRNTENv
bnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYg
dGFzaykKIAogYm9vbCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6c2hvdWxkRm9zdGVyUGFyZW50KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9yZWRpcmVjdEF0dGFjaFRvRm9zdGVyUGFyZW50Ci0gICAg
ICAgICYmIGN1cnJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKQotICAgICAgICAmJiBjYXVzZXNG
b3N0ZXJQYXJlbnRpbmcoY3VycmVudEVsZW1lbnQoKS0+dGFnUU5hbWUoKSk7CisgICAgcmV0dXJu
ICFpc0VtcHR5KCkgJiYgY3VycmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpCisgICAgICAgICAg
ICYmIChjdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSB8fCAobV9yZWRp
cmVjdEF0dGFjaFRvRm9zdGVyUGFyZW50ICYmIGNhdXNlc0Zvc3RlclBhcmVudGluZyhjdXJyZW50
RWxlbWVudCgpLT50YWdRTmFtZSgpKSkpOwogfQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
Ojpmb3N0ZXJQYXJlbnQoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRleCBjZDVkMDhhNTUzZWRjODQ3
MzU2MWExNjFlZTFhOTc0YTI3ZjYwM2MzLi5lMTVkOWYzMjRhMDFjZDM0ZjRkNGRmMzYyODhmNmZj
OTNlNWM3NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVu
dFN0YWNrLmNwcApAQCAtNzQsNiArNzQsNyBAQCBpbmxpbmUgYm9vbCBpc1Njb3BlTWFya2VyKENv
bnRhaW5lck5vZGUqIG5vZGUpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OmZvcmVpZ25PYmplY3RUYWcpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OmRlc2NUYWcpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFn
KQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQogICAgICAgICB8fCBp
c1Jvb3ROb2RlKG5vZGUpOwogfQogCkBAIC04Nyw2ICs4OCw3IEBAIGlubGluZSBib29sIGlzTGlz
dEl0ZW1TY29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQogaW5saW5lIGJvb2wgaXNUYWJs
ZVNjb3BlTWFya2VyKENvbnRhaW5lck5vZGUqIG5vZGUpCiB7CiAgICAgcmV0dXJuIG5vZGUtPmhh
c1RhZ05hbWUodGFibGVUYWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpCiAgICAgICAgIHx8IGlzUm9vdE5vZGUobm9kZSk7CiB9CiAKQEAgLTk1LDEyICs5NywxNCBA
QCBpbmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKENvbnRhaW5lck5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUodGJvZHlUYWcpCiAgICAgICAgIHx8IG5vZGUt
Pmhhc1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUodGhlYWRU
YWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCiAgICAgICAgIHx8
IGlzUm9vdE5vZGUobm9kZSk7CiB9CiAKIGlubGluZSBib29sIGlzVGFibGVSb3dTY29wZU1hcmtl
cihDb250YWluZXJOb2RlKiBub2RlKQogewogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKHRy
VGFnKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQogICAgICAgICB8
fCBpc1Jvb3ROb2RlKG5vZGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCA0M2Y3YWQ1ZjcyYjUxMTZhOWEwMzRjY2IyNGMyODlh
ZmYxN2I0MWNjLi4wOTEzNjU0MTM4Y2I4YjdmNmVmMzc3ODYzNjE3MTNjMjQyMjIxNzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2Vy
SWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
VGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRN
TFRva2VuaXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTEwMjQsMTAg
KzEwMjUsMjcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9k
eShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAodG9rZW4ubmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgIG9wZW5UZW1wbGF0ZUZyYWdtZW50KHRva2VuKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVu
dHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwogfQogCit2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6b3BlblRlbXBsYXRlRnJhZ21lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKK3sKKyAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtl
cigpOworICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CisgICAgbV9mcmFnbWVu
dENvbnRleHQucHVzaChzdGF0aWNfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4obV90cmVlLmN1
cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCkuZ2V0KCkpOworfQorCit2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6Y2xvc2VUZW1wbGF0ZUZyYWdtZW50KCkKK3sKKyAgICBtX2ZyYWdtZW50Q29udGV4dC5w
b3AoKTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Cit9CisKIGJvb2wg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkK
IHsKICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygp
LT5yb290Tm9kZSgpKSB7CkBAIC0xMDc2LDYgKzEwOTQsMTAgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICBpZiAodG9rZW4ubmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIG9wZW5UZW1wbGF0
ZUZyYWdtZW50KHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAoaXNUYWJs
ZUJvZHlDb250ZXh0VGFnKHRva2VuLm5hbWUoKSkpIHsKICAgICAgICAgbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5wb3BVbnRpbFRhYmxlU2NvcGVNYXJrZXIoKTsKICAgICAgICAgbV90cmVlLmluc2Vy
dEhUTUxFbGVtZW50KHRva2VuKTsKQEAgLTE0MTUsNiArMTQzNywxMCBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
ICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgICAgIG9wZW5UZW1wbGF0ZUZyYWdtZW50KHRva2VuKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQogICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IHNlbGVjdFRhZykg
ewogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBBdG9taWNIVE1M
VG9rZW4gZW5kU2VsZWN0KEhUTUxUb2tlblR5cGVzOjpFbmRUYWcsIHNlbGVjdFRhZy5sb2NhbE5h
bWUoKSk7CkBAIC0xNjcyLDE2ICsxNjk4LDIwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNl
dEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKIHsKICAgICAvLyBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwj
cmVzZXQtdGhlLWluc2VydGlvbi1tb2RlLWFwcHJvcHJpYXRlbHkKICAgICBib29sIGxhc3QgPSBm
YWxzZTsKKyAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUgPSBudWxsUU5hbWUoKTsKICAgICBIVE1M
RWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBub2RlUmVjb3JkID0gbV90cmVlLm9wZW5FbGVt
ZW50cygpLT50b3BSZWNvcmQoKTsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBDb250YWluZXJO
b2RlKiBub2RlID0gbm9kZVJlY29yZC0+bm9kZSgpOwotICAgICAgICBjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lID0gbm9kZSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkg
PyBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0VGFnKCkgOiBub2RlUmVjb3JkLT5lbGVtZW50KCkt
PnRhZ1FOYW1lKCk7CiAgICAgICAgIGlmIChub2RlID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cm9vdE5vZGUoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwor
ICAgICAgICAgICAgdGFnTmFtZSA9IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRUYWcoKTsKICAg
ICAgICAgICAgIGxhc3QgPSB0cnVlOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAobm9k
ZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICB0YWdOYW1lID0gbV9mcmFn
bWVudENvbnRleHQuY29udGV4dFRhZygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0YWdO
YW1lID0gbm9kZVJlY29yZC0+ZWxlbWVudCgpLT50YWdRTmFtZSgpOworCiAgICAgICAgIGlmICh0
YWdOYW1lLm1hdGNoZXMoc2VsZWN0VGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5TZWxl
Y3RNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAodGFnTmFtZS5tYXRjaGVzKHRkVGFnKSB8
fCB0YWdOYW1lLm1hdGNoZXModGhUYWcpKQpAQCAtMTgxNyw2ICsxODQ3LDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNlbGwoQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0YWJsZVRhZwogICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gdHJUYWcKKyAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHRlbXBsYXRl
VGFnCiAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1lKCkpKSB7CiAg
ICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9rZW4ubmFt
ZSgpKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5u
YW1lKCkpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOwpAQCAtMTk0Miw3ICsxOTczLDggQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2Vu
JiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBhcHBsZXRUYWcKICAgICAg
ICAgfHwgdG9rZW4ubmFtZSgpID09IG1hcnF1ZWVUYWcKLSAgICAgICAgfHwgdG9rZW4ubmFtZSgp
ID09IG9iamVjdFRhZykgeworICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gb2JqZWN0VGFnCisg
ICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewogICAgICAgICBpZiAoIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5TY29wZSh0b2tlbi5uYW1lKCkpKSB7CiAgICAgICAgICAg
ICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5NTIsNiArMTk4
NCw4IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21p
Y0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAg
ICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi5uYW1lKCkpOwog
ICAgICAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0TWFy
a2VyKCk7CisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpCisgICAgICAg
ICAgICBjbG9zZVRlbXBsYXRlRnJhZ21lbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAodG9rZW4ubmFtZSgpID09IGJyVGFnKSB7CkBAIC0yMjQwLDYgKzIyNzQsMTEgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4ubmFtZSgp
KTsKKyAgICAgICAgICAgIGNsb3NlVGVtcGxhdGVGcmFnbWVudCgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gb3B0aW9uVGFnKSB7
CiAgICAgICAgICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUob3B0aW9u
VGFnKSkgewogICAgICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGIyZmFi
OWFlZDVmYmRlNmI4YTY4NjFlM2M1YmM5Mjg2MjRhMWI0Y2EuLjhhNTA1YzAzN2YyMGE0OTYxNDg5
NTllM2E3Y2NmODgyMzUxMjkwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oCkBAIC0xOTUsNiArMTk1LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisgICAgdm9pZCBvcGVuVGVtcGxh
dGVGcmFnbWVudChBdG9taWNIVE1MVG9rZW4mKTsKKyAgICB2b2lkIGNsb3NlVGVtcGxhdGVGcmFn
bWVudCgpOworCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCB7CiAgICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEZyYWdtZW50UGFyc2luZ0NvbnRleHQpOwogICAgIHB1YmxpYzoK
QEAgLTIwMiwxNSArMjA1LDQwIEBAIHByaXZhdGU6CiAgICAgICAgIEZyYWdtZW50UGFyc2luZ0Nv
bnRleHQoRG9jdW1lbnRGcmFnbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRleHRUYWcs
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgICAgIH5GcmFnbWVudFBhcnNpbmdD
b250ZXh0KCk7CiAKLSAgICAgICAgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQoKSBjb25zdCB7
IHJldHVybiBtX2ZyYWdtZW50OyB9Ci0gICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRl
eHRUYWcoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRUYWc7IH0KLSAgICAgICAgdm9pZCBzZXRD
b250ZXh0VGFnKGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRleHRUYWcpIHsgbV9jb250ZXh0VGFn
ID0gY29udGV4dFRhZzsgfQorICAgICAgICBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGVtcGxhdGVGcmFnbWVudHMuaXNFbXB0eSgpID8gbV9mcmFnbWVudCA6
IG1fdGVtcGxhdGVGcmFnbWVudHMubGFzdCgpOyB9CisgICAgICAgIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGNvbnRleHRUYWcoKSBjb25zdCB7IHJldHVybiBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0
VGFncy5pc0VtcHR5KCkgPyBtX2NvbnRleHRUYWcgOiBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0
VGFncy5sYXN0KCk7IH0KKworICAgICAgICB2b2lkIHNldENvbnRleHRUYWcoY29uc3QgUXVhbGlm
aWVkTmFtZSYgY29udGV4dFRhZykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fdGVtcGxh
dGVGcmFnbWVudHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIG1fY29udGV4dFRhZyA9IGNv
bnRleHRUYWc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV90ZW1wbGF0ZUZy
YWdtZW50Q29udGV4dFRhZ3NbbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRhZ3Muc2l6ZSgpIC0g
MV0gPSBjb250ZXh0VGFnOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBwdXNoKERvY3VtZW50
RnJhZ21lbnQqIGZyYWdtZW50KQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV90ZW1w
bGF0ZUZyYWdtZW50cy5zaXplKCkgPT0gbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRhZ3Muc2l6
ZSgpKTsKKyAgICAgICAgICAgIG1fdGVtcGxhdGVGcmFnbWVudHMuYXBwZW5kKGZyYWdtZW50KTsK
KyAgICAgICAgICAgIG1fdGVtcGxhdGVGcmFnbWVudENvbnRleHRUYWdzLmFwcGVuZChudWxsUU5h
bWUoKSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHBvcCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIEFTU0VSVChtX3RlbXBsYXRlRnJhZ21lbnRzLnNpemUoKSA9PSBtX3RlbXBsYXRlRnJh
Z21lbnRDb250ZXh0VGFncy5zaXplKCkpOworICAgICAgICAgICAgbV90ZW1wbGF0ZUZyYWdtZW50
cy5yZW1vdmVMYXN0KCk7CisgICAgICAgICAgICBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFn
cy5yZW1vdmVMYXN0KCk7CisgICAgICAgIH0KKwogICAgICAgICBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbigpIGNvbnN0IHsgQVNTRVJUKG1fZnJhZ21lbnQp
OyByZXR1cm4gbV9zY3JpcHRpbmdQZXJtaXNzaW9uOyB9CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBEb2N1bWVudEZyYWdtZW50KiBtX2ZyYWdtZW50OwogICAgICAgICBRdWFsaWZpZWROYW1lIG1f
Y29udGV4dFRhZzsKIAorICAgICAgICBWZWN0b3I8RG9jdW1lbnRGcmFnbWVudCo+IG1fdGVtcGxh
dGVGcmFnbWVudHM7CisgICAgICAgIFZlY3RvcjxRdWFsaWZpZWROYW1lPiBtX3RlbXBsYXRlRnJh
Z21lbnRDb250ZXh0VGFnczsKKwogICAgICAgICAvLyBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93
ZWQgY2F1c2VzIHRoZSBQYXJzZXIgdG8gcmVtb3ZlIGNoaWxkcmVuCiAgICAgICAgIC8vIGZyb20g
PHNjcmlwdD4gdGFncyAoc28gamF2YXNjcmlwdCBkb2Vzbid0IHNob3cgdXAgaW4gcGFzdGVzKS4K
ICAgICAgICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1fc2NyaXB0aW5nUGVybWlzc2lv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA5YTUxMmQwNzY2NWExYTgxYzQ1OTE3
YjlmODA1YTYwYmQxODliZGMwLi44NmYxNmUxMDUwNDU3Y2Q4NjUzMWNiOGQzMzMzMzg2NWVmZTA5
ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00NTUsNiArNDU1LDcgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3RydWN0
b3IgSFRNTFRhYmxlRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVJvd0VsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MVGFibGVSb3dFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsK
KyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0
ZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGVtcGxhdGVFbGVtZW50OwogICAgICAgICBhdHRyaWJ1
dGUgSFRNTFRleHRBcmVhRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZXh0QXJlYUVsZW1lbnQ7CiAg
ICAgICAgIGF0dHJpYnV0ZSBIVE1MVGl0bGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRpdGxlRWxl
bWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
VUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGViMjll
Y2UzMmEwNTc4ODhkMWM1ZjBlNzMyNGQxNmMzZWZlZWRiMWMuLjU1MTJjNWNiNjBlNTI3YjJkOTlh
YmY2MTAxZDVkMTJlZTY4NTIxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkK
QEAgLTk3LDYgKzk3LDcgQEAKICAgICAgICdFTkFCTEVfU1RZTEVfU0NPUEVEPTEnLAogICAgICAg
J0VOQUJMRV9TVkc9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxFX1NWR19GT05UUz08KGVu
YWJsZV9zdmcpJywKKyAgICAgICdFTkFCTEVfVEVNUExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJM
RV9UT1VDSF9FVkVOVFM9PChlbmFibGVfdG91Y2hfZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RP
VUNIX0lDT05fTE9BRElORz08KGVuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcpJywKICAgICAgICdF
TkFCTEVfVjhfU0NSSVBUX0RFQlVHX1NFUlZFUj0xJywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
ZXNvdXJjZXMvdGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5NzdkMzBhNjBhODBkM2Q5YTU4YmQ1
NzQ2ZjNiNDIxMjdmNGU4ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsMzMyIEBACisjZGF0YQorPGRpdj48
dGVtcGxhdGU+PGRpdj48c3Bhbj48L3RlbXBsYXRlPjxiPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPGI+
CisKKyNkYXRhCis8ZGl2Pjx0ZW1wbGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT5IZWxsbzwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICJIZWxsbyIKKworI2RhdGEKKzxkaXY+
PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwv
dGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0
YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGVtcGxhdGU+CisKKyNkYXRhCis8dGFibGU+PGRpdj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48
L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgIDx0YWJsZT4KKworI2Rh
dGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRhYmxlPiAgIDx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgICIgICAiCit8ICAg
ICAgIDx0ZW1wbGF0ZT4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxh
dGU+PC90Ym9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1w
bGF0ZT4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KKwor
I2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisj
ZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RoZWFkPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRh
YmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAg
ICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNlbGVjdD48dGVt
cGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PG9wdGlvbj48L3NlbGVj
dD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgPG9wdGlvbj4KKwor
I2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0
YQorPHNlbGVjdD48dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+CisK
KyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4K
K3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNlbGVjdD48
b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAg
PG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIDxvcHRpb24+CisKKyNkYXRh
Cis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
PHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRoZWFkPgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICA8dGhlYWQ+CisKKyNk
YXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRyPgorCisjZGF0
YQorPHRhYmxlPjx0cj48dGVtcGxhdGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+
Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGVtcGxh
dGU+PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAg
IDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZD48
L3RlbXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQor
PHRlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIDx0
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllZmUzMjRiMDEyOWU2MWM5MTI0ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVhYzQ0
NDliM2U5MTdhYzRkNDE5Y2I2NGZlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8c2NyaXB0PgordmFyIHRlc3RfZmlsZXMgPSBbCisgICdyZXNvdXJjZXMvdGVtcGxhdGUuZGF0
JywKK10KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1
cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3Jp
cHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzCmluZGV4IGM4OGUyMGM2OWUyOGE1ODI4ZjY3ZTJiZThiZGYxNTRiZDJlY2Fm
YTAuLjA4MTdhYTRiYzg5NTZjMzBjMGJhZDA4MWYwZGJjOTJkMzA0M2RkODYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcworKysgYi9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKQEAgLTIyMSwxMyArMjIxLDE5IEBAIE1hcmt1
cC5fZ2V0ID0gZnVuY3Rpb24obm9kZSwgZGVwdGgpCiAgICAgICAgIGlmIChub2RlLm5vZGVOYW1l
ID09ICIjc2hhZG93LXJvb3QiKQogICAgICAgICAgIHN0ciArPSAiPHNoYWRvdzpyb290PiI7CiAg
ICAgfQotCi0gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7
IGkgPCBsZW47IGkrKykgeworICAgIAorICAgIGZ1bmN0aW9uIGlzVGVtcGxhdGVFbGVtZW50KG5v
ZGUpIHsKKyAgICAgIHJldHVybiBub2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RFTVBMQVRFJzsKKyAgICB9CisgICAg
CisgICAgLy8gPHRlbXBsYXRlPiBlbGVtZW50IHNlcmlhbGl6ZXMgaXRzIGNvbnRlbnQgRG9jdW1l
bnRGcmFnbWVudCwgbm90IGl0cyBjaGlsZHJlbi4KKyAgICB2YXIgY2hpbGROb2RlcyA9IGlzVGVt
cGxhdGVFbGVtZW50KG5vZGUpID8gbm9kZS5jb250ZW50LmNoaWxkTm9kZXMgOiBub2RlLmNoaWxk
Tm9kZXM7CisgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNoaWxkTm9kZXMubGVuZ3RoOyBpIDwg
bGVuOyBpKyspIHsKICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9u
TWFya2VyKG5vZGUsIGkpOwogICAgICAgICBpZiAoc2VsZWN0aW9uKQogICAgICAgICAgICAgc3Ry
ICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247CiAKLSAgICAgICAgc3Ry
ICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAgICAg
c3RyICs9IE1hcmt1cC5fZ2V0KGNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CiAgICAgfQogCiAg
ICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVwdGgpOwpA
QCAtMjg0LDcgKzI5MCw3IEBAIE1hcmt1cC5fTkFNRVNQQUNFX1VSSV9NQVAgPSB7CiAKIE1hcmt1
cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUgPSBmdW5jdGlvbihub2RlKQogewotICAgIHJldHVybiBu
b2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCk7CisgICAgcmV0dXJu
IG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/IG5vZGUub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRTZWxlY3Rpb24oKSA6IG51bGw7CiB9CiAKIE1hcmt1cC5fU0VMRUNUSU9OX0ZP
Q1VTID0gJzwjc2VsZWN0aW9uLWZvY3VzPic7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142518</attachid>
            <date>2012-05-17 11:52:38 -0700</date>
            <delta_ts>2012-10-17 11:07:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20120517115237.patch</filename>
            <type>text/plain</type>
            <size>33186</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjFmNGQ0ZmNm
MGY4OWYxYWI0NjkyNGU0N2E0OTM3ZTgyNTJmNDIyZi4uOWViZDI0MzcwYTI1M2IyMDM1ZDA2N2Q5
NzQ0ZDEwNjdmMzEyNGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTA2NSw2ICsxMDY1LDcgQEAK
ICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRt
bC9IVE1MVUxpc3RFbGVtZW50LmlkbCcsCkBAIC01NjA4LDYgKzU2MDksOCBAQAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
aXRsZUVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKaW5kZXggMzczNGI1ZTIwYzhhZDljNGM5ZDFmNzcwNjE3NDUxMGE1YWFiZjRjNS4u
YjYzY2NhY2FlZThkZWJlODVkMDVjNGRmN2MwMDRhMDU5YzZlY2I3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJL
VVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiWE1M
TlNOYW1lcy5oIgpAQCAtMTE1LDcgKzExNiwxMiBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpz
ZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdldE5vZGUsIE5vZGUqIG5vZAog
ICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAmbmFtZXNwYWNlSGFzaCk7CiAKICAg
ICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpICYmIGVsZW1l
bnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewotICAgICAgICBmb3IgKE5vZGUqIGN1
cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJy
ZW50LT5uZXh0U2libGluZygpKQorICAgICAgICBOb2RlKiBlZmZlY3RpdmVOb2RlID0gdGFyZ2V0
Tm9kZTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAoZWZmZWN0aXZlTm9k
ZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICBlZmZlY3RpdmVOb2RlID0g
c3RhdGljX2Nhc3Q8Tm9kZSo+KHN0YXRpY19jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihlZmZl
Y3RpdmVOb2RlKS0+Y29udGVudCgpLmdldCgpKTsKKyNlbmRpZgorICAgICAgICBmb3IgKE5vZGUq
IGN1cnJlbnQgPSBlZmZlY3RpdmVOb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQg
PSBjdXJyZW50LT5uZXh0U2libGluZygpKQogICAgICAgICAgICAgc2VyaWFsaXplTm9kZXNXaXRo
TmFtZXNwYWNlcyhjdXJyZW50LCBub2RlVG9Ta2lwLCBJbmNsdWRlTm9kZSwgJm5hbWVzcGFjZUhh
c2gsIHRhZ05hbWVzVG9Ta2lwKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggY2Q4OWI0Njg3YzZkMmYwN2QyZjFiN2ExMjE4YWVl
MzkyNGFiZmZkYS4uYzg0NjI2YjQxYzQ2NzdlMjg5ODNlNGM5YmU2OWM0NTE4YzE0ODBhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTEwMyw2
ICsxMDMsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWdOYW1lcy5pbgppbmRleCBhOGNmZjczZWNhZGIwODc0ODg0ZGI5OTNiY2I1MjY4MjVh
ZmI2Mzc3Li45YTcwNmFjYTY1OTgyNGIxODIyYTY1ODdkMTYwMDM1Mjg3OTUwYTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTIyLDYgKzEyMiw3IEBAIHN1cCBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAordGVt
cGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1MVGVtcGxhdGVFbGVtZW50LCBjb25kaXRpb25hbD1URU1Q
TEFURV9UQUcKIHRleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29u
c3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiB0Zm9vdCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50CiB0aCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWQy
Y2U0ZjE5YTY0ZDc3ZDE3MDQ5OTI1MjRkYjkyYjg1OWFhZGZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApAQCAtMCwwICsxLDc5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNs
dWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCisKKyNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitpbmxpbmUgSFRNTFRlbXBsYXRlRWxlbWVudDo6SFRNTFRlbXBs
YXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK3sKK30KKworUGFzc1Jl
ZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTFRlbXBsYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworfQorCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6
OmNvbnRlbnQoKQoreworICAgIGlmIChtX2NvbnRlbnQpCisgICAgICAgIHJldHVybiBtX2NvbnRl
bnQ7CisKKyAgICBtX2RvY3VtZW50ID0gb3duZXJEb2N1bWVudCgpLT5pbXBsZW1lbnRhdGlvbigp
LT5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOworICAgIG1fY29udGVudCA9IERvY3VtZW50RnJhZ21l
bnQ6OmNyZWF0ZShtX2RvY3VtZW50LmdldCgpKTsKKyAgICByZXR1cm4gbV9jb250ZW50OworfQor
Cit2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIGh0
bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworI2lmIEVOQUJMRShJTVBMSUVEX0NPTlRFWFRfUEFS
U0lORykKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFn
bWVudEZyb21Tb3VyY2UoaHRtbCwgZG9jdW1lbnQoKSwgMCAvKiBjb250ZXh0RWxlbWVudCAqLywg
ZWMpOworI2Vsc2UKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgZG9jdW1lbnQoKSwgaG9zdCgpLCBlYyk7CisjZW5k
aWYKKyAgICBpZiAoZnJhZ21lbnQpCisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dChjb250ZW50KCkuZ2V0KCksIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDRmMGM1MzFj
N2I4ODNhNDY1M2Q1OGI3ZDJjMDdiMWI0MDU4ZWFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFRlbXBsYXRlRWxlbWVudF9oCisK
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIK
KyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNvbnRlbnQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKKyAgICBSZWZQdHI8SFRNTERvY3Vt
ZW50PiBtX2RvY3VtZW50OworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExB
VEVfVEFHKQorCisjZW5kaWYgLy8gSFRNTFRlbXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRlNTgxNjhjYmFl
NDBlYmFkM2EwNjc1ODEwZjQ1MzYzZGEyOWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVs
ZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1URU1QTEFURV9U
QUcKKyAgICBdIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50IGNvbnRlbnQ7CisgICAgfTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cAppbmRleCAzY2E4NzVhMWIyMDdiMjYzYWVhMjg2ZjE0MDU5MWQ0MTI3MGJiNjVhLi4wMDhkNTg2
YjU5ZDM1ZDVmMTcyMDEyN2RhYmQ3ODA5NTdhNGJjZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5o
IgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6
ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC00ODgsNiArNDg5LDE0IEBA
IHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogCiB2
b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9u
U2l0ZVRhc2smIHRhc2spCiB7CisgI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgLy8gVGVt
cGxhdGUgRnJhZ21lbnQgY2FzZS4KKyAgICBpZiAoY3VycmVudE5vZGUoKS0+aXNFbGVtZW50Tm9k
ZSgpICYmIGN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSB7CisgICAg
ICAgIHRhc2sucGFyZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudCo+KGN1cnJl
bnRFbGVtZW50KCkpLT5jb250ZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
KwogICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRS
ZWNvcmQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAg
ICBpZiAobGFzdFRhYmxlRWxlbWVudFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFi
bGVFbGVtZW50ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpAQCAtNTA1LDkg
KzUxNCwxNCBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1M
Q29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiAKIGJvb2wgSFRNTENvbnN0cnVjdGlvblNpdGU6
OnNob3VsZEZvc3RlclBhcmVudCgpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykK
KyAgICByZXR1cm4gIWlzRW1wdHkoKSAmJiBjdXJyZW50Tm9kZSgpLT5pc0VsZW1lbnROb2RlKCkK
KyAgICAgICAgICAgJiYgKGN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcp
IHx8IChtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQYXJlbnQgJiYgY2F1c2VzRm9zdGVyUGFyZW50
aW5nKGN1cnJlbnRFbGVtZW50KCktPnRhZ1FOYW1lKCkpKSk7CisjZWxzZQogICAgIHJldHVybiBt
X3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQYXJlbnQKICAgICAgICAgJiYgY3VycmVudE5vZGUoKS0+
aXNFbGVtZW50Tm9kZSgpCiAgICAgICAgICYmIGNhdXNlc0Zvc3RlclBhcmVudGluZyhjdXJyZW50
RWxlbWVudCgpLT50YWdRTmFtZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpmb3N0ZXJQYXJlbnQoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRleCBjZDVkMDhhNTUz
ZWRjODQ3MzU2MWExNjFlZTFhOTc0YTI3ZjYwM2MzLi4xZTIyZjcwZDk0YmZkOGRkMjc5ZDRiMDBl
MTdlNjUyYmI5OTg3NGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRWxlbWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RWxlbWVudFN0YWNrLmNwcApAQCAtNzQsNiArNzQsOSBAQCBpbmxpbmUgYm9vbCBpc1Njb3BlTWFy
a2VyKENvbnRhaW5lck5vZGUqIG5vZGUpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmRlc2NUYWcpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRp
dGxlVGFnKQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IG5vZGUtPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShub2RlKTsK
IH0KIApAQCAtODcsNiArOTAsOSBAQCBpbmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVNYXJrZXIo
Q29udGFpbmVyTm9kZSogbm9kZSkKIGlubGluZSBib29sIGlzVGFibGVTY29wZU1hcmtlcihDb250
YWluZXJOb2RlKiBub2RlKQogewogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKHRhYmxlVGFn
KQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUo
dGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShub2RlKTsKIH0KIApA
QCAtOTUsMTIgKzEwMSwxOCBAQCBpbmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKENv
bnRhaW5lck5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUodGJvZHlUYWcp
CiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IG5vZGUt
Pmhhc1RhZ05hbWUodGhlYWRUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAg
fHwgbm9kZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jv
b3ROb2RlKG5vZGUpOwogfQogCiBpbmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoQ29u
dGFpbmVyTm9kZSogbm9kZSkKIHsKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZSh0clRhZykK
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRl
bXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUobm9kZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGIy
NjViMjMyMDc0NjM3NmJkODJkYTY2MjY5MTM4NTdiOTZkMGM0Y2MuLjAyZjhjMWNmOTgwNzNkN2I5
NTA5N2VkZmI1ZTYyYmViNGJjMjUzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2Ny
aXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgpAQCAtMTA1NCwxMCArMTA1NSwzMiBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykg
eworICAgICAgICBvcGVuVGVtcGxhdGVGcmFnbWVudCh0b2tlbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5n
RWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwogfQogCisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpvcGVuVGVtcGxh
dGVGcmFnbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQoreworICAgIG1fdHJlZS5hY3RpdmVG
b3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5kTWFya2VyKCk7CisgICAgbV90cmVlLmluc2VydEhU
TUxFbGVtZW50KHRva2VuKTsKKyAgICBtX2ZyYWdtZW50Q29udGV4dC5wdXNoKHN0YXRpY19jYXN0
PEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihtX3RyZWUuY3VycmVudEVsZW1lbnQoKSktPmNvbnRlbnQo
KS5nZXQoKSk7CisgICAgc2V0SW5zZXJ0aW9uTW9kZShJbXBsaWVkQ29udGV4dE1vZGUpOworfQor
Cit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y2xvc2VUZW1wbGF0ZUZyYWdtZW50KCkKK3sKKyAgICBt
X2ZyYWdtZW50Q29udGV4dC5wb3AoKTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0
ZWx5KCk7Cit9CisjZW5kaWYKKwogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91
cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKQogewogICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUo
KSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKQEAgLTExMDYsNiArMTEy
OSwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShB
dG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYg
KHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBvcGVuVGVtcGxhdGVGcmFn
bWVudCh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBpZiAoaXNU
YWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLm5hbWUoKSkpIHsKICAgICAgICAgbV90cmVlLm9wZW5F
bGVtZW50cygpLT5wb3BVbnRpbFRhYmxlU2NvcGVNYXJrZXIoKTsKICAgICAgICAgbV90cmVlLmlu
c2VydEhUTUxFbGVtZW50KHRva2VuKTsKQEAgLTE0NDUsNiArMTQ3NCwxMiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRv
a2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgb3BlblRlbXBsYXRlRnJh
Z21lbnQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBzZWxlY3RUYWcpIHsKICAgICAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgICAgICAgICAgQXRvbWljSFRNTFRva2VuIGVuZFNlbGVjdChIVE1M
VG9rZW5UeXBlczo6RW5kVGFnLCBzZWxlY3RUYWcubG9jYWxOYW1lKCkpOwpAQCAtMTQ4OSw3ICsx
NTI0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tl
bik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgICAgIG9wZW5UZW1wbGF0ZUZyYWdtZW50KHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIG1fZnJhZ21lbnRDb250ZXh0LnNldENvbnRleHRU
YWcoZ2V0SW1wbGllZENvbnRleHRUYWcodG9rZW4ubmFtZSgpKSk7CiAgICAgICAgIHJlc2V0SW5z
ZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2Vu
KTsKQEAgLTE2ODEsMTYgKzE3MjEsMjUgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5z
ZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogewogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNyZXNl
dC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseQogICAgIGJvb2wgbGFzdCA9IGZhbHNl
OworICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZSA9IG51bGxRTmFtZSgpOwogICAgIEhUTUxFbGVt
ZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIG5vZGVSZWNvcmQgPSBtX3RyZWUub3BlbkVsZW1lbnRz
KCktPnRvcFJlY29yZCgpOwogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIENvbnRhaW5lck5vZGUq
IG5vZGUgPSBub2RlUmVjb3JkLT5ub2RlKCk7Ci0gICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUgPSBub2RlID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSA/IG1f
ZnJhZ21lbnRDb250ZXh0LmNvbnRleHRUYWcoKSA6IG5vZGVSZWNvcmQtPmVsZW1lbnQoKS0+dGFn
UU5hbWUoKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAobm9kZSA9PSBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkgfHwgbm9kZS0+aGFzVGFnTmFtZSh0ZW1w
bGF0ZVRhZykpIHsKKyNlbHNlCiAgICAgICAgIGlmIChub2RlID09IG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cm9vdE5vZGUoKSkgeworI2VuZGlmCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5n
RnJhZ21lbnQoKSk7CisgICAgICAgICAgICB0YWdOYW1lID0gbV9mcmFnbWVudENvbnRleHQuY29u
dGV4dFRhZygpOwogICAgICAgICAgICAgbGFzdCA9IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICB0YWdOYW1lID0gbm9kZVJlY29yZC0+ZWxlbWVudCgpLT50YWdR
TmFtZSgpOworCiAgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXMoc2VsZWN0VGFnKSkgeworI2lm
ICFFTkFCTEUoVEVNUExBVEVfVEFHKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdt
ZW50KCkpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNl
bGVjdE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXModGRUYWcp
IHx8IHRhZ05hbWUubWF0Y2hlcyh0aFRhZykpCkBAIC0xODI5LDYgKzE4NzgsOSBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9taWNIVE1MVG9rZW4mIHRv
a2VuKQogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09IHRhYmxlVGFnCiAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSB0clRhZworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAg
IHx8IHRva2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZworI2VuZGlmCiAgICAgICAgIHx8IGlzVGFi
bGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1lKCkpKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9rZW4ubmFtZSgpKSkgewogICAgICAgICAgICAg
QVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1lKCkpIHx8IGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwpAQCAtMTk1NCw2ICsyMDA2LDkgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICB9CiAgICAg
aWYgKHRva2VuLm5hbWUoKSA9PSBhcHBsZXRUYWcKICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IG1hcnF1ZWVUYWcKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gdGVtcGxhdGVUYWcKKyNlbmRpZgogICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
b2JqZWN0VGFnKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3Bl
KHRva2VuLm5hbWUoKSkpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwpAQCAtMTk2
NCw2ICsyMDE5LDEwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5C
b2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi5u
YW1lKCkpOwogICAgICAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFy
VG9MYXN0TWFya2VyKCk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRv
a2VuLm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykKKyAgICAgICAgICAgIGNsb3NlVGVtcGxhdGVGcmFn
bWVudCgpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5h
bWUoKSA9PSBiclRhZykgewpAQCAtMjI1Miw2ICsyMzExLDEzIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBw
YXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gdGVtcGxhdGVU
YWcpIHsKKyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQo
dG9rZW4ubmFtZSgpKTsKKyAgICAgICAgICAgIGNsb3NlVGVtcGxhdGVGcmFnbWVudCgpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRva2VuLm5h
bWUoKSA9PSBvcHRpb25UYWcpIHsKICAgICAgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUo
KS0+aGFzVGFnTmFtZShvcHRpb25UYWcpKSB7CiAgICAgICAgICAgICAgICAgbV90cmVlLm9wZW5F
bGVtZW50cygpLT5wb3AoKTsKQEAgLTIyNzYsNiArMjM0MiwxMyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbXBsaWVkQ29udGV4
dE1vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLm5hbWUo
KSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5w
b3BVbnRpbFBvcHBlZCh0b2tlbi5uYW1lKCkpOworICAgICAgICAgICAgY2xvc2VUZW1wbGF0ZUZy
YWdtZW50KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogI2lmIEVO
QUJMRShJTVBMSUVEX0NPTlRFWFRfUEFSU0lORykKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApp
bmRleCBlZmY4NWUwNGRjMzZkYTJkYzBmOTE0NjEyMmIwMTgyNmE4YzMzYTAyLi5jMDQ4MWM3NWZk
YTIxYTg0Yjk3YWQ3YjE5ZmZhYWNhMjQyYTE2YzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtMTkzLDYgKzE5MywxMSBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CiAKKyNpZiBFTkFC
TEUoVEVNUExBVEVfVEFHKQorICAgIHZvaWQgb3BlblRlbXBsYXRlRnJhZ21lbnQoQXRvbWljSFRN
TFRva2VuJik7CisgICAgdm9pZCBjbG9zZVRlbXBsYXRlRnJhZ21lbnQoKTsKKyNlbmRpZgorCiAg
ICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEZyYWdtZW50UGFyc2luZ0NvbnRleHQpOwogICAgIHB1YmxpYzoKQEAgLTIwMCwxNSAr
MjA1LDQ2IEBAIHByaXZhdGU6CiAgICAgICAgIEZyYWdtZW50UGFyc2luZ0NvbnRleHQoRG9jdW1l
bnRGcmFnbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRleHRUYWcsIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbik7CiAgICAgICAgIH5GcmFnbWVudFBhcnNpbmdDb250ZXh0KCk7CiAK
KyNpZiAhRU5BQkxFKFRFTVBMQVRFX1RBRykKICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCogZnJh
Z21lbnQoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50OyB9CiAgICAgICAgIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGNvbnRleHRUYWcoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRUYWc7IH0KICAg
ICAgICAgdm9pZCBzZXRDb250ZXh0VGFnKGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRleHRUYWcp
IHsgbV9jb250ZXh0VGFnID0gY29udGV4dFRhZzsgfQotICAgICAgICBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbigpIGNvbnN0IHsgQVNTRVJUKG1fZnJhZ21l
bnQpOyByZXR1cm4gbV9zY3JpcHRpbmdQZXJtaXNzaW9uOyB9CisjZWxzZQorICAgICAgICBEb2N1
bWVudEZyYWdtZW50KiBmcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVtcGxhdGVGcmFnbWVu
dHMuaXNFbXB0eSgpID8gbV9mcmFnbWVudCA6IG1fdGVtcGxhdGVGcmFnbWVudHMubGFzdCgpOyB9
CisgICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRleHRUYWcoKSBjb25zdCB7IHJldHVy
biBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFncy5pc0VtcHR5KCkgPyBtX2NvbnRleHRUYWcg
OiBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFncy5sYXN0KCk7IH0KKworICAgICAgICB2b2lk
IHNldENvbnRleHRUYWcoY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGV4dFRhZykKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKG1fdGVtcGxhdGVGcmFnbWVudHMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIG1fY29udGV4dFRhZyA9IGNvbnRleHRUYWc7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbV90ZW1wbGF0ZUZyYWdtZW50Q29udGV4dFRhZ3NbbV90ZW1wbGF0ZUZy
YWdtZW50Q29udGV4dFRhZ3Muc2l6ZSgpIC0gMV0gPSBjb250ZXh0VGFnOworICAgICAgICB9CisK
KyAgICAgICAgdm9pZCBwdXNoKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50KQorICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQobV90ZW1wbGF0ZUZyYWdtZW50cy5zaXplKCkgPT0gbV90ZW1w
bGF0ZUZyYWdtZW50Q29udGV4dFRhZ3Muc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fdGVtcGxhdGVG
cmFnbWVudHMuYXBwZW5kKGZyYWdtZW50KTsKKyAgICAgICAgICAgIG1fdGVtcGxhdGVGcmFnbWVu
dENvbnRleHRUYWdzLmFwcGVuZChudWxsUU5hbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIHBvcCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3RlbXBsYXRlRnJhZ21l
bnRzLnNpemUoKSA9PSBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFncy5zaXplKCkpOworICAg
ICAgICAgICAgbV90ZW1wbGF0ZUZyYWdtZW50cy5yZW1vdmVMYXN0KCk7CisgICAgICAgICAgICBt
X3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFncy5yZW1vdmVMYXN0KCk7CisgICAgICAgIH0KKyNl
bmRpZgorICAgICAgICBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlz
c2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2NyaXB0aW5nUGVybWlzc2lvbjsgfQogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCogbV9mcmFnbWVudDsKICAgICAgICAgUXVh
bGlmaWVkTmFtZSBtX2NvbnRleHRUYWc7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAg
ICAgICBWZWN0b3I8RG9jdW1lbnRGcmFnbWVudCo+IG1fdGVtcGxhdGVGcmFnbWVudHM7CisgICAg
ICAgIFZlY3RvcjxRdWFsaWZpZWROYW1lPiBtX3RlbXBsYXRlRnJhZ21lbnRDb250ZXh0VGFnczsK
KyNlbmRpZgogICAgICAgICAvLyBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgY2F1c2VzIHRo
ZSBQYXJzZXIgdG8gcmVtb3ZlIGNoaWxkcmVuCiAgICAgICAgIC8vIGZyb20gPHNjcmlwdD4gdGFn
cyAoc28gamF2YXNjcmlwdCBkb2Vzbid0IHNob3cgdXAgaW4gcGFzdGVzKS4KICAgICAgICAgRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1fc2NyaXB0aW5nUGVybWlzc2lvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCA5YTUxMmQwNzY2NWExYTgxYzQ1OTE3YjlmODA1YTYwYmQx
ODliZGMwLi44NmYxNmUxMDUwNDU3Y2Q4NjUzMWNiOGQzMzMzMzg2NWVmZTA5ODk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00NTUsNiArNDU1LDcgQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxl
RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVJvd0VsZW1lbnRDb25zdHJ1Y3Rv
ciBIVE1MVGFibGVSb3dFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKKyAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVGVtcGxhdGVFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFRleHRB
cmVhRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZXh0QXJlYUVsZW1lbnQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBIVE1MVGl0bGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRpdGxlRWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDc1NzgwM2JhNDg1MzI1MTA0
OTI5YzZjOTZiZmNlMzhkZDBjOWE1NWUuLmFkNmUyZDRlOWNjMWVkN2VmMmIxMTUwYzQ1NWU0NGI3
YWMzNjkyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTEwMCw2ICsx
MDAsNyBAQAogICAgICAgJ0VOQUJMRV9TVkc9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxF
X1NWR19GT05UUz08KGVuYWJsZV9zdmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVO
VD0xJywKKyAgICAgICdFTkFCTEVfVEVNUExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VD
SF9FVkVOVFM9PChlbmFibGVfdG91Y2hfZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lD
T05fTE9BRElORz08KGVuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVf
VjhfU0NSSVBUX0RFQlVHX1NFUlZFUj0xJywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1
bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJj
ZXMvdGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2ZDI2YmE3YmJlODhiMjg2NDAwMjMzMWE3M2Uw
YTU4M2MyZmVlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNv
dXJjZXMvdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsMzU2IEBACisjZGF0YQorPGRpdj48dGVtcGxh
dGU+PGRpdj48c3Bhbj48L3RlbXBsYXRlPjxiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPGI+CisKKyNk
YXRhCis8ZGl2Pjx0ZW1wbGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT5IZWxsbzwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICJIZWxsbyIKKworI2RhdGEKKzxkaXY+PC90ZW1w
bGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxh
dGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRh
YmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVt
cGxhdGU+CisKKyNkYXRhCis8dGFibGU+PGRpdj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzx0
YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRhYmxlPiAgIDx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgICIgICAiCit8ICAgICAgIDx0
ZW1wbGF0ZT4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90
Ym9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
KworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KKworI2RhdGEK
Kzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQor
PHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RoZWFkPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHRhYmxlPjx0
Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8
dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KKwor
I2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PG9wdGlvbj48L3NlbGVjdD4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgPG9wdGlvbj4KKworI2RhdGEK
KzxzZWxlY3Q+PG9wdGlvbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxl
Y3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNl
bGVjdD48dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+CisKKyNkYXRh
Cis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAg
ICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorCisjZGF0YQorPHNlbGVjdD48b3B0aW9u
Pjwvb3B0aW9uPjx0ZW1wbGF0ZT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlv
bj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFi
bGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgPHRkPgor
CisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRoZWFkPgorCisjZGF0YQor
PHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8
dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgPHRy
PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPHRh
YmxlPjx0cj48dGVtcGxhdGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAg
ICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90
cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBs
YXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
ICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRlbXBs
YXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIDx0ZD4KKwor
I2RhdGEKKzx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
PHRyPgorfCAgICAgICA8dGQ+CisKKyNkYXRhCis8dGVtcGxhdGU+PHNjcmlwdD52YXIgaSA9IDE7
PC9zY3JpcHQ+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgPHNj
cmlwdD4KK3wgICAgICAgICAidmFyIGkgPSAxOyIKK3wgICAgICAgPHRkPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVmZTMy
NGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVt
cGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0OWIzZTkxN2FjNGQ0MTlj
YjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBs
YXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQ+Cit2YXIg
dGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQnLAorXQorPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1h
cy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKaW5k
ZXggYzg4ZTIwYzY5ZTI4YTU4MjhmNjdlMmJlOGJkZjE1NGJkMmVjYWZhMC4uMDgxN2FhNGJjODk1
NmMzMGMwYmFkMDgxZjBkYmM5MmQzMDQzZGQ4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1w
LWFzLW1hcmt1cC5qcwpAQCAtMjIxLDEzICsyMjEsMTkgQEAgTWFya3VwLl9nZXQgPSBmdW5jdGlv
bihub2RlLCBkZXB0aCkKICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ctcm9v
dCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKICAgICB9Ci0KLSAgICBmb3Ig
KHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7
CisgICAgCisgICAgZnVuY3Rpb24gaXNUZW1wbGF0ZUVsZW1lbnQobm9kZSkgeworICAgICAgcmV0
dXJuIG5vZGUubmFtZXNwYWNlVVJJID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnICYm
IG5vZGUudGFnTmFtZSA9PSAnVEVNUExBVEUnOworICAgIH0KKyAgICAKKyAgICAvLyA8dGVtcGxh
dGU+IGVsZW1lbnQgc2VyaWFsaXplcyBpdHMgY29udGVudCBEb2N1bWVudEZyYWdtZW50LCBub3Qg
aXRzIGNoaWxkcmVuLgorICAgIHZhciBjaGlsZE5vZGVzID0gaXNUZW1wbGF0ZUVsZW1lbnQobm9k
ZSkgPyBub2RlLmNvbnRlbnQuY2hpbGROb2RlcyA6IG5vZGUuY2hpbGROb2RlczsKKyAgICBmb3Ig
KHZhciBpID0gMCwgbGVuID0gY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAg
ICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7
CiAgICAgICAgIGlmIChzZWxlY3Rpb24pCiAgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRl
bnQoZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKIAotICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQo
bm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAgICBzdHIgKz0gTWFya3VwLl9n
ZXQoY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKICAgICB9CiAKICAgICBzdHIgKz0gTWFya3Vw
Ll9nZXRTaGFkb3dIb3N0SWZQb3NzaWJsZShub2RlLCBkZXB0aCk7CkBAIC0yODQsNyArMjkwLDcg
QEAgTWFya3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKIAogTWFya3VwLl9nZXRTZWxlY3Rpb25G
cm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gbm9kZS5vd25lckRvY3Vt
ZW50LmRlZmF1bHRWaWV3ID8gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVj
dGlvbigpIDogbnVsbDsKIH0KIAogTWFya3VwLl9TRUxFQ1RJT05fRk9DVVMgPSAnPCNzZWxlY3Rp
b24tZm9jdXM+JzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169219</attachid>
            <date>2012-10-17 11:07:53 -0700</date>
            <delta_ts>2012-11-13 12:01:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121017110640.patch</filename>
            <type>text/plain</type>
            <size>77604</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1NjEzYWMxNTJiMTdm
Mjc3ZjM0MjZmMTE0OWE0MzMwODIyZGNhYy4uMGQ3OTI0YjIxZWQxNjcwMTBhNzg2OTJhYTQ3ZDI1
NzVkNDNjYmVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTEwLTE3ICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMg
YXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25z
IGJlbG93IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvY2xvbmVOb2RlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbAorICAgICAgICAgICAgICAgaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgICh0ZW1wbGF0ZSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxp
emVOb2Rlc1dpdGhOYW1lc3BhY2VzKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVtcGxhdGVFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9IVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxUZW1wbGF0
ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MVGVtcGxhdGVFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpl
eGVjdXRlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5z
ZXJ0Q29tbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5z
ZXJ0VGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Om93
bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUpOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmg6CisgICAgICAgIChIVE1M
Q29uc3RydWN0aW9uU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFj
ay5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxFbGVtZW50U3RhY2suaDoKKyAgICAgICAgKEhUTUxFbGVtZW50U3RhY2spOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJlbG9hZFNjYW5uZXI6OkhUTUxQcmVsb2FkU2Nhbm5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTFByZWxvYWRTY2FubmVyLmg6CisgICAgICAgIChIVE1MUHJlbG9hZFNjYW5uZXIpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NUZW1wbGF0ZUVuZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluVGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
cmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNl
bGwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5k
VGFnRm9ySW5Sb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
VGFibGVFbmRUYWdGb3JJblRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NDaGFyYWN0ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKEhUTUxUcmVlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjppc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250
ZW50cyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEyLTEwLTE3ICBBbmRy
ZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBTaHJpbmsgRXZlbnRUYXJn
ZXREYXRhIGJ5IG1ha2luZyBmaXJpbmdFdmVudExpc3RlbmVycyB2ZWN0b3Igb3B0aW9uYWwuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDZiMDU3MTYzODk0NzYxZjAwMjllOWYyNjRkOGRi
ZTZiOGEwNTcxYTkuLmZkNzQ4ZDUxYTc0NGY5M2VhYjFmYzdjOTIxZjQ3NzZjODc2NmRmYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTcgIFJh
ZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1l
bnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJZ25vcmUgQ2hhbmdlTG9nIGVudHJ5LiBUaGlzIHBhdGNoIHZlcnNpb24g
aXMgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGdlbmVyYWwgYXBwcm9hY2ggd2hpY2ggd2lsbCBsYW5k
IGluIHNtYWxsZXIgcGllY2VzLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0x
MC0xNyAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBSZW1vdmUgbGVnYWN5IG1lbWJlcnMgZnJvbSBXZWJEcmFnZ2FibGVSZWdpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCAwYTQ3N2I4OTMwYjkyZTE2ZGE2ZjQ4NTQ4NDE1YjExMGI0YjQ2MzBhLi40YmE1
OGMwMDhiNWQ0NTRhMWM4YWRmZjM4MDkwNjIxM2FjMzZmN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xMTMwLDYgKzExMzAsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsJywKKyAgICAgICAgICAg
ICdodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
aXRsZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRs
JywKICAgICAgICAgICAgICdodG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsJywKQEAgLTQyMDUsNiAr
NDIwNiw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1s
L0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4
IGYwN2ZlZDY3YmU4OTYzNzkzY2YwMzY1ZGRhMDE3MjE3YWM4YmJjNzAuLjE2ZTA4OGY0MWJkNTQ3
NjYxNTlmOGJjZjZjYTQ2N2Y2ZmExOTU3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTEyNTYsNiAr
MTI1NiwxMCBAQCBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsKICAgICBtYXJnaW4t
cmlnaHQ6IDAuNGVtOwogfQogCit0ZW1wbGF0ZSB7CisgIGRpc3BsYXk6IG5vbmUKK30KKwogYmRp
LCBvdXRwdXQgewogICAgIHVuaWNvZGUtYmlkaTogLXdlYmtpdC1pc29sYXRlOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggYzQ1M2NkM2NjOTk2ZDEyZGRiODQzMjg5YjY1YWE0ZDFmZjRj
YjIwMy4uYjNhYzViMWY4NTdhZWIxOWI5ZjhmMjc3MmI0OGU2OGYyNmQzN2U5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC02MDI3LDQgKzYwMjcsMTcgQEAgTG9jYWxpemVyJiBEb2N1bWVu
dDo6Z2V0Q2FjaGVkTG9jYWxpemVyKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKQogICAgIHJl
dHVybiAqKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRF
X1RBRykKK0RvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQo
KQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIHRoaXM7CisKKyAgICBpZiAo
IW1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQpCisgICAgICAgIG1fdGVtcGxhdGVDb250
ZW50c093bmVyRG9jdW1lbnQgPSBpbXBsZW1lbnRhdGlvbigpLT5jcmVhdGVIVE1MRG9jdW1lbnQo
IiIpOworCisgICAgcmV0dXJuIG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQuZ2V0KCk7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCAzZWVhMGYwZGRhODE4ZDM2MWQwYWUxYmY4MGYxODg1ZjMwZWE1Mjc0Li44YmU5MzRiMDMw
MDE5MGJhNzM3ZWZkMDFlMGEyOWZiM2NjZDc4ZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
MTE1OSw2ICsxMTU5LDEwIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm4gYSBMb2NhbGl6ZXIgZm9y
IHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbCBvciBlbXB0eS4KICAg
ICBMb2NhbGl6ZXImIGdldENhY2hlZExvY2FsaXplcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
ZSA9IG51bGxBdG9tKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgRG9jdW1lbnQq
IHRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hU
TUwpOwogCkBAIC0xNTE1LDYgKzE1MTksMTAgQEAgcHJpdmF0ZToKIAogICAgIHR5cGVkZWYgSGFz
aE1hcDxBdG9taWNTdHJpbmcsIE93blB0cjxMb2NhbGl6ZXI+ID4gTG9jYWxlVG9Mb2NhbGl6ZXJN
YXA7CiAgICAgTG9jYWxlVG9Mb2NhbGl6ZXJNYXAgbV9sb2NhbGl6ZXJDYWNoZTsKKworI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgUmVmUHRyPERvY3VtZW50PiBtX3RlbXBsYXRlQ29udGVu
dHNPd25lckRvY3VtZW50OworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90
aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCBiMjdkNjVlZDFjN2YxOWM5ZWFiZGIyZjFiYmY1
YzZjMDBjMTAyZjM3Li43YWRiMjllZTQ0MmZhMTFmYWI5ZDA0YzkzNWM5NTQyZGMzMjYxNWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5o
IgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIK
ICNpbmNsdWRlICJYTGlua05hbWVzLmgiCkBAIC0xNDEsNyArMTQyLDEyIEBAIHZvaWQgTWFya3Vw
QWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9kZSogdGFyZ2V0Tm9k
ZSwgTm9kZSogbm9kCiAgICAgICAgIGFwcGVuZFN0YXJ0VGFnKHRhcmdldE5vZGUsICZuYW1lc3Bh
Y2VIYXNoKTsKIAogICAgIGlmICghKHRhcmdldE5vZGUtPmRvY3VtZW50KCktPmlzSFRNTERvY3Vt
ZW50KCkgJiYgZWxlbWVudENhbm5vdEhhdmVFbmRUYWcodGFyZ2V0Tm9kZSkpKSB7Ci0gICAgICAg
IGZvciAoTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsgY3VycmVudDsg
Y3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhhc1RhZ05hbWUodGVtcGxh
dGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUpLT5jb250ZW50KCktPmZp
cnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNlbHNlCisgICAgICAgIE5v
ZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZW5kaWYKKyAgICAgICAg
Zm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAg
ICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwgbm9kZVRvU2tpcCwg
SW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tpcCk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggM2FkNDA2MzRiYWI1MzAyMjg2MjkwMDQyMzVi
MzcwY2MxMTkyNDBjMy4uZDgxOWE5Y2Q4MTZlNGY0ZDk0ZDVlZDMwOGE3NDgzMTc4MGRmZDRiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAK
ICAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7CiAgICAgU3RyaW5nIG91dGVySFRNTCgpIGNv
bnN0OwotICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldE91dGVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRJbm5lclRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgc2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXgg
ODg0N2FlMTIwMjRjNzc4YjBhODk2YjI0ZjQ0MDZhMWQwODRjNDAxMi4uN2EyMjg0ZGQzYWQ1M2Ew
ZWVjNzI5MTIxNmIyMDY4YmQwOWYyNGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhUTUxU
YWJsZVBhcnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRl
bXBsYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxU
aXRsZUVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4NWEx
ZTYxYTVhOTU4MmIxM2U2MzQyODljZGM1M2EyMmM3NmIzZTAxLi5jNDM2ZjhkZjg4ODMzNGZkMzZi
MWZkNGMzZmE3ZDY1NjFkN2QzMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpA
QCAtMTI0LDYgKzEyNCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQog
dGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNl
TmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAordGVtcGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1MVGVt
cGxhdGVFbGVtZW50LCBjb25kaXRpb25hbD1URU1QTEFURV9UQUcKIHRleHRhcmVhIGludGVyZmFj
ZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiB0
Zm9vdCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0aCBpbnRlcmZhY2VO
YW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWM2ODRkOTE4MjQ3Y2NlYTYxNjIwOGRiYWY1ODdi
MjcyMWFjNDIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmNwcApAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50
LmgiCisKKyNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJtYXJrdXAu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
CitpbmxpbmUgSFRNTFRlbXBsYXRlRWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1MRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK3sKK30KKwordm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50
OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21l
bnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVj
KSkKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRlbnQoKSwgZnJhZ21l
bnQucmVsZWFzZSgpLCBlYyk7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVtcGxh
dGVFbGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBIVE1M
VGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRlbXBsYXRl
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZyYWdtZW50KiBIVE1M
VGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkKK3sKKyAgICBpZiAobV9jb250ZW50KQorICAgICAg
ICByZXR1cm4gbV9jb250ZW50LmdldCgpOworCisgICAgbV9jb250ZW50ID0gRG9jdW1lbnRGcmFn
bWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1l
bnQoKSk7CisgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsKK30KKwordm9pZCBIVE1MVGVtcGxh
dGVFbGVtZW50OjpzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcHJwQ29u
dGVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNvbnRlbnQgPSBwcnBDb250ZW50OworCisgICAgaWYgKCFjb250ZW50IHx8IGNvbnRlbnQtPmlz
U2hhZG93Um9vdCgpKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9jb250ZW50ICYmIG1fY29udGVudC5nZXQoKSA9
PSBjb250ZW50LmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNlcHRpb25Db2RlIG5v
ZmFpbCA9IDA7CisgICAgaWYgKGNvbnRlbnQtPm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3Vt
ZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9j
dW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRl
bnQsIG5vZmFpbCk7CisgICAgQVNTRVJUKCFub2ZhaWwpOworCisgICAgbV9jb250ZW50ID0gY29u
dGVudDsKK30KKworI2lmbmRlZiBOREVCVUcKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRv
SFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9k
ZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQq
Pihub2RlKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoVEVNUExBVEVfVEFHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jOTA4MzNlYmUwYWI0M2EzNzZiNjBiNjRiNWIzMjM2YzE4OTYy
NWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAor
I2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcp
CisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MVGVtcGxhdGVFbGVtZW50IDog
cHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
VGVtcGxhdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgdmlydHVhbCB+SFRNTFRlbXBsYXRlRWxlbWVudCgpOworCisgICAgRG9jdW1lbnRGcmFn
bWVudCogY29udGVudCgpOworCisgICAgdm9pZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5l
ckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEhU
TUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKKyAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OworfTsKKworY29uc3QgSFRNTFRl
bXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqKTsKKworaW5s
aW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChOb2RlKiBub2Rl
KQoreworICAgIHJldHVybiBjb25zdF9jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQqPih0b0hUTUxU
ZW1wbGF0ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8Y29uc3QgTm9kZSo+KG5vZGUpKSk7Cit9CisKKyNp
ZmRlZiBOREVCVUcKK2lubGluZSBjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1w
bGF0ZUVsZW1lbnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICAvLyBGSVhNRTogQWRkIGRlYnVn
IGFzc2VydHMuCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1l
bnQqPihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKKworI2VuZGlmIC8vIEhUTUxUZW1w
bGF0ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDFmNjVmZmRhYjdjMjFmMjdhZWE3MzYyNzljYjYwMTIyNjc5NWI4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAg
ICAgICAgQ29uZGl0aW9uYWw9VEVNUExBVEVfVEFHCisgICAgXSBIVE1MVGVtcGxhdGVFbGVtZW50
IDogSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1dGUgRG9jdW1lbnRGcmFnbWVudCBjb250
ZW50IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCAy
ZWE5MDRkZWFjMDcwZWNhNWMwMDFlZjM0ZTMyYzU3MzFiOGY3NzEwLi40N2JhNDU3ODNhYzI1Y2Jl
ZTVlYWEyYjY1OWE2YzdhN2MyMzMxMjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgi
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNzcsNiArNzgsMTEgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIAogc3Rh
dGljIGlubGluZSB2b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFz
aykKIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFz
VGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxh
dGVFbGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAgICBp
ZiAodGFzay5uZXh0Q2hpbGQpCiAgICAgICAgIHRhc2sucGFyZW50LT5wYXJzZXJJbnNlcnRCZWZv
cmUodGFzay5jaGlsZC5nZXQoKSwgdGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwogICAgIGVsc2UKQEAg
LTI0OSw3ICsyNTUsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBl
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNl
cnRDb21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLT50
eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwotICAgIGF0dGFjaExhdGVyKGN1cnJl
bnROb2RlKCksIENvbW1lbnQ6OmNyZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0b2tl
bi0+Y29tbWVudCgpKSk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6
Y3JlYXRlKG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7
CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3VtZW50
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC0zNTMsNiArMzU5LDExIEBAIHZvaWQgSFRNTENv
bnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywg
V2hpdGVzcGFjZU1vCiAgICAgaWYgKHNob3VsZEZvc3RlclBhcmVudCgpKQogICAgICAgICBmaW5k
Rm9zdGVyU2l0ZSh0YXNrKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRh
c2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFzay5wYXJlbnQg
PSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250ZW50KCk7Cisj
ZW5kaWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQgZW50aXJlbHkgb2Ygd2hpdGVzcGFjZSBh
cmUgbGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8vIFR1cm4gdGhlbSBpbnRvIEF0b21pY1N0
cmluZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcgZm9yIGVhY2guCiAgICAgYm9vbCBzaG91
bGRVc2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9kZSA9PSBBbGxXaGl0ZXNwYWNlCkBAIC0z
OTQsMTMgKzQwNSwyMyBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjpjcmVhdGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4sCiAgICAgcmV0dXJuIGVsZW1l
bnQucmVsZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQqIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
Ojpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQoreworI2lmIEVOQUJMRShURU1QTEFURV9U
QUcpCisgICAgaWYgKGN1cnJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSAmJiBjdXJyZW50RWxl
bWVudCgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTFRl
bXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVudCgpKS0+Y29udGVudCgpLT5kb2N1bWVudCgpOwor
I2VuZGlmCisgICAgcmV0dXJuIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCk7Cit9CisKIFBhc3NS
ZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxB
dG9tLCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5hbWVzcGFjZVVSSSk7CiAgICAgLy8gRklYTUU6IFRo
aXMgY2FuJ3QgdXNlIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50IGJlY2F1c2Ug
d2UKICAgICAvLyBoYXZlIHRvIHBhc3MgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50LiAgV2Ugc2hv
dWxkIHJld29yayBmb3JtIGFzc29jaWF0aW9uCiAgICAgLy8gdG8gb2NjdXIgYWZ0ZXIgY29uc3Ry
dWN0aW9uIHRvIGFsbG93IGJldHRlciBjb2RlIHNoYXJpbmcgaGVyZS4KLSAgICBSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFn
TmFtZSwgY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgZm9ybSgpLCB0cnVlKTsKKworICAgIFJl
ZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxl
bWVudCh0YWdOYW1lLCBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgZm9ybSgpLCB0cnVl
KTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCks
IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNI
VE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBAIC00NjQsNiAr
NDg1LDE0IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRh
Z3MoKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29u
c3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAg
ICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBsYXN0VGVtcGxhdGVFbGVtZW50ID0g
bV9vcGVuRWxlbWVudHMudG9wbW9zdCh0ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7CisgICAgaWYg
KGxhc3RUZW1wbGF0ZUVsZW1lbnQgJiYgIW1fb3BlbkVsZW1lbnRzLmluVGFibGVTY29wZSh0YWJs
ZVRhZykpIHsKKyAgICAgICAgdGFzay5wYXJlbnQgPSBsYXN0VGVtcGxhdGVFbGVtZW50LT5lbGVt
ZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50
U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQgPSBtX29wZW5FbGVt
ZW50cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAgICBpZiAobGFzdFRhYmxlRWxl
bWVudFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFibGVFbGVtZW50ID0gbGFzdFRh
YmxlRWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggNjA1NzJiZGQ4NTYyNzQ0NWNiZDg2
NWE5Njc5ZDJmZWJhNWY2YThkYy4uN2Q5ZmNjNjViMmE4NGI2NDg1OTk1OGZhZTg3ZDg3ZWQ3MDgz
ZDUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogICAgIENvbnRhaW5lck5vZGUq
IGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9kZSgpOyB9
CiAgICAgSFRNTFN0YWNrSXRlbSogY3VycmVudFN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1f
b3BlbkVsZW1lbnRzLnRvcFN0YWNrSXRlbSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogb25lQmVs
b3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy5vbmVCZWxvd1RvcCgpOyB9Ci0K
KyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCk7CiAgICAgSFRNTEVs
ZW1lbnRTdGFjayogb3BlbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fb3BlbkVsZW1lbnRz
OyB9CiAgICAgSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdCogYWN0aXZlRm9ybWF0dGluZ0VsZW1l
bnRzKCkgY29uc3QgeyByZXR1cm4gJm1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKaW5kZXgg
NmMyMjBjOTczOWE2NDAyMGVkMGYyN2NjMzIwMWIyYzRlMDE2MTU3OC4uODY1ZDY1MDM3YzFjMDkw
MTkwZjliMTY1YmE3NGQzNGQ0ZmQ5ZWRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKQEAgLTQ2LDYgKzQ2LDExIEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc1Jvb3ROb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAKIG5hbWVzcGFjZSB7CiAK
K2lubGluZSBib29sIGlzSFRNTE5vZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKK3sKKyAgICByZXR1
cm4gaXNSb290Tm9kZShpdGVtKTsKK30KKwogaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1M
U3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKGFwcGxldFRh
ZykKQEAgLTY0LDYgKzY5LDkgQEAgaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJ
dGVtKiBpdGVtKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWdu
T2JqZWN0VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFn
KQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRl
VGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTc3LDYg
Kzg1LDkgQEAgaW5saW5lIGJvb2wgaXNMaXN0SXRlbVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0q
IGl0ZW0pCiBpbmxpbmUgYm9vbCBpc1RhYmxlU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0YWJsZVRhZykKKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQor
I2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTg1LDEyICs5Niwx
OCBAQCBpbmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0
ZW0pCiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGJvZHlUYWcpCiAgICAgICAgIHx8IGl0
ZW0tPmhhc1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhl
YWRUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFn
TmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwog
fQogCiBpbmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0clRhZykKKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2Vu
ZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTUyNyw2ICs1NDQsMTMg
QEAgYm9vbCBIVE1MRWxlbWVudFN0YWNrOjppblNlbGVjdFNjb3BlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGluU2VsZWN0U2NvcGUodGFnTmFtZS5sb2Nh
bE5hbWUoKSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorYm9vbCBIVE1MRWxlbWVu
dFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5T
Y29wZUNvbW1vbjxpc0hUTUxOb2RlPihtX3RvcC5nZXQoKSwgdGVtcGxhdGVUYWcubG9jYWxOYW1l
KCkpOworfQorI2VuZGlmCisKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6Omh0bWxFbGVtZW50
KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9yb290Tm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggODczY2JkZWI5NWI4ZWRhMDZiM2Jl
ODBiZDk1Y2E3ZDIzODkxMWJhMy4uZDk2Y2NjZDgwOTQ3ZGFiNjE5MTFhMjZiMzhiM2ZhZTMzOTY3
OWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2su
aApAQCAtMTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzT25seU9uZUVsZW1l
bnQoKSBjb25zdDsKICAgICBib29sIHNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIGNv
bnN0OwotCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBib29sIGhhc1RlbXBsYXRlSW5I
VE1MU2NvcGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1lbnQqIGh0bWxFbGVtZW50KCkgY29u
c3Q7CiAgICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVtZW50KiBib2R5
RWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggYTc1YjUyZTM1NTA2YWEzMGU1ZTliZjMwOWYwMjBkODcx
OTFjY2ZmNC4uZDM4MTk4MjVmNzFkYTc0NTIwYjE3YWE0ODg3NjJhODA4M2ExYzRlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBA
IC0xNTUsNiArMTU1LDkgQEAgSFRNTFByZWxvYWRTY2FubmVyOjpIVE1MUHJlbG9hZFNjYW5uZXIo
RG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3Jl
YXRlKEhUTUxEb2N1bWVudFBhcnNlcjo6dXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoZG9jdW1lbnQp
KSkKICAgICAsIG1fYm9keVNlZW4oZmFsc2UpCiAgICAgLCBtX2luU3R5bGUoZmFsc2UpCisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAsIG1fdGVtcGxhdGVDb3VudCgwKQorI2VuZGlmCiB7
CiB9CiAKQEAgLTE4NywxMiArMTkwLDIyIEBAIHZvaWQgSFRNTFByZWxvYWRTY2FubmVyOjpwcm9j
ZXNzVG9rZW4oKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1fdG9rZW4udHlwZSgpICE9
IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZykKKyAgICBpZiAobV90b2tlbi50eXBlKCkgIT0gSFRN
TFRva2VuVHlwZXM6OlN0YXJ0VGFnKSB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAg
ICAgaWYgKG1fdGVtcGxhdGVDb3VudCAmJiBtX3Rva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBl
czo6RW5kVGFnICYmIEF0b21pY1N0cmluZyhtX3Rva2VuLm5hbWUoKS5kYXRhKCkpID09IHRlbXBs
YXRlVGFnKQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvdW50LS07CisjZW5kaWYKICAgICAgICAg
cmV0dXJuOworICAgIH0KIAogICAgIFByZWxvYWRUYXNrIHRhc2sobV90b2tlbik7CiAgICAgbV90
b2tlbml6ZXItPnVwZGF0ZVN0YXRlRm9yKHRhc2sudGFnTmFtZSgpLCBtX2RvY3VtZW50LT5mcmFt
ZSgpKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2sudGFnTmFtZSgp
ID09IHRlbXBsYXRlVGFnKQorICAgICAgICBtX3RlbXBsYXRlQ291bnQrKzsKKyNlbmRpZgorCiAg
ICAgaWYgKHRhc2sudGFnTmFtZSgpID09IGJvZHlUYWcpCiAgICAgICAgIG1fYm9keVNlZW4gPSB0
cnVlOwogCkBAIC0yMDIsNyArMjE1LDEwIEBAIHZvaWQgSFRNTFByZWxvYWRTY2FubmVyOjpwcm9j
ZXNzVG9rZW4oKQogICAgIGlmICh0YXNrLnRhZ05hbWUoKSA9PSBiYXNlVGFnKQogICAgICAgICB1
cGRhdGVQcmVkaWN0ZWRCYXNlRWxlbWVudFVSTChLVVJMKG1fZG9jdW1lbnQtPnVybCgpLCB0YXNr
LmJhc2VFbGVtZW50SHJlZigpKSk7CiAKLSAgICB0YXNrLnByZWxvYWQobV9kb2N1bWVudCwgc2Nh
bm5pbmdCb2R5KCksIG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwuaXNFbXB0eSgpID8gbV9kb2N1
bWVudC0+YmFzZVVSTCgpIDogbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCk7CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICBpZiAoIW1fdGVtcGxhdGVDb3VudCkKKyNlbmRpZgorICAgICAg
ICB0YXNrLnByZWxvYWQobV9kb2N1bWVudCwgc2Nhbm5pbmdCb2R5KCksIG1fcHJlZGljdGVkQmFz
ZUVsZW1lbnRVUkwuaXNFbXB0eSgpID8gbV9kb2N1bWVudC0+YmFzZVVSTCgpIDogbV9wcmVkaWN0
ZWRCYXNlRWxlbWVudFVSTCk7CiB9CiAKIGJvb2wgSFRNTFByZWxvYWRTY2FubmVyOjpzY2Fubmlu
Z0JvZHkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFByZWxvYWRTY2FubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuaAppbmRleCAzOGY1NzcyZDU1YTc3ZDkzZTYzYzYyNjAxOWI3Njc4MGFiYTI1NTM4
Li5kNGUzYzEwODk0NDRjZjJjZWFjZTAzNmI5OWI1NzY4MGFlZmFkZDQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaApAQCAtNTgsNiArNTgs
OSBAQCBwcml2YXRlOgogICAgIEhUTUxUb2tlbiBtX3Rva2VuOwogICAgIGJvb2wgbV9ib2R5U2Vl
bjsKICAgICBib29sIG1faW5TdHlsZTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIHNp
emVfdCBtX3RlbXBsYXRlQ291bnQ7CisjZW5kaWYKICAgICBLVVJMIG1fcHJlZGljdGVkQmFzZUVs
ZW1lbnRVUkw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcAppbmRleCA5NDA4MDBlZjg3ZWQwYzI0NGU5MzQ1M2I2ZTY3NjU2NGZkYzUzMjEw
Li4xMTE3ZDllY2ZjNDRmNTkxYzgxMDMzMjVmZWJjNTdhYjgxNjNjMmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQxLDYgKzQxLDcg
QEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBs
YXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tl
bml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC0zNTgsNyArMzU5LDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRNTFRva2Vu
JiByYXdUb2tlbikKICAgICAvLyBzeW5jaHJvbm91c2x5IHJlLWVudGVycyB0aGUgcGFyc2VyLiBX
ZSBkb24ndCBjbGVhciB0aGUgdG9rZW4gaW1tZWRhdGVseQogICAgIC8vIGZvciBDaGFyYWN0ZXIg
dG9rZW5zIGJlY2F1c2UgdGhlIEF0b21pY0hUTUxUb2tlbiBhdm9pZHMgY29weWluZyB0aGUKICAg
ICAvLyBjaGFyYWN0ZXJzIGJ5IGtlZXBpbmcgYSBwb2ludGVyIHRvIHRoZSB1bmRlcmx5aW5nIGJ1
ZmZlciBpbiB0aGUKLSAgICAvLyBIVE1MVG9rZW4uIEZvcnR1YW50ZWx5LCBDaGFyYWN0ZXIgdG9r
ZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgorICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVu
YXRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNlIHRvIHJlLWVudGVyCiAgICAg
Ly8gdGhlIHBhcnNlci4KICAgICAvLwogICAgIC8vIEZJWE1FOiBTdG9wIGNsZWFyaW5nIHRoZSBy
YXdUb2tlbiBvbmNlIHdlIHN0YXJ0IHJ1bm5pbmcgdGhlIHBhcnNlciBvZmYKQEAgLTY3MCw4ICs2
NzEsOCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGJv
ZHlUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAgICAgIGlmICghbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5zZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSB8fCBtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlPbmVFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1l
bnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhh
c1RlbXBsYXRlSW5IVE1MU2NvcGUoKSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgxLDcgKzY4Miw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewogICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRz
KCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1w
bGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IGlmICghbV9mcmFtZXNldE9rKQpAQCAtOTQyLDEwICs5NDMsMzIgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQog
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3Jt
YXR0aW5nRWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwog
fQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzVGVtcGxhdGVFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICBpZiAoIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5TY29wZSh0b2tlbi0+bmFtZSgpKSkgeworICAgICAgICBw
YXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RyZWUuZ2Vu
ZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgIGlmICghbV90cmVlLmN1cnJlbnRTdGFja0l0ZW0o
KS0+aGFzTG9jYWxOYW1lKHRva2VuLT5uYW1lKCkpKQorICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKKyAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKHRva2VuLT5uYW1l
KCkpOworICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+Y2xlYXJUb0xhc3RN
YXJrZXIoKTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Cit9CisjZW5k
aWYKKwogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29s
dW1uR3JvdXAoKQogewogICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKQEAgLTEwMTAsNyArMTAzMyw3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghcHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJs
ZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2Vu
KTsKQEAgLTEwMzcsNiArMTA2MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgogICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUp
OwogICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xMTUxLDYgKzExODAs
MTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICAgICAgbV90cmVlLmluc2VydFNlbGZDbG9zaW5nSFRNTEVsZW1l
bnQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91
cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE3NSw3ICsxMjEwLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgp
KSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAg
ICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KQEAgLTEyMDAsNyArMTIzNSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHx8
IGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAgICAgICAgICAgIHx8
IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgaWYg
KCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVC
b2R5TW9kZSk7CkBAIC0xMjc4LDYgKzEzMTMsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vz
c1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9r
ZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1v
ZGU6CkBAIC0xMzU3LDYgKzEzOTgsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChkaWRQcm9jZXNzLCBkaWRQcm9jZXNzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9r
ZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxl
VGV4dCgpOwpAQCAtMTM2NSwxMiArMTQxMiw0NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBUZXh0TW9kZToK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VGVtcGxhdGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAg
aWYgKHRva2VuLT5uYW1lKCkgPT0gbGlua1RhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUo
KSA9PSBzY3JpcHRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gc3R5bGVUYWcK
KyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gbWV0YVRhZworICAgICAgICAgICAgfHwg
dG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0
VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lVGFnKQorICAgICAgICAgICAgc2V0SW5z
ZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRva2VuLT5uYW1l
KCkgPT0gY29sVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3Vw
TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4t
Pm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAg
ICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gdHJUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFi
bGVCb2R5TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzVGFibGVDZWxsQ29udGV4dFRhZyh0b2tl
bi0+bmFtZSgpKSkKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Sb3dNb2RlKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKwor
ICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogewogICAgIHBhcnNlRXJyb3IodG9rZW4pOworI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSgpKSB7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgbV90cmVlLmluc2VydEhUTUxIdG1s
U3RhcnRUYWdJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xNTQwLDggKzE2MjIsMTQgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAg
ICAgICAgbGFzdCA9IHRydWU7CiAgICAgICAgICAgICBpdGVtID0gSFRNTFN0YWNrSXRlbTo6Y3Jl
YXRlKG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCksIEhUTUxTdGFja0l0ZW06Okl0
ZW1Gb3JDb250ZXh0RWxlbWVudCk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAg
ICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZW5kaWYK
ICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgeworI2lmICFFTkFCTEUo
VEVNUExBVEVfVEFHKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwor
I2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNlbGVjdE1vZGUp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBpdGVt
LT5oYXNUYWdOYW1lKHRoVGFnKSkKQEAgLTE1NTMsMTkgKzE2NDEsMjUgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAgICBpZiAo
aXRlbS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluQ2FwdGlvbk1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShj
b2xncm91cFRhZykpIHsKKyNpZiAhRU5BQkxFKFRFTVBMQVRFX1RBRykKICAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlm
IChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoaGVh
ZFRhZykpIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgaWYgKG1fZnJh
Z21lbnRDb250ZXh0LmZyYWdtZW50KCkgJiYgbV9mcmFnbWVudENvbnRleHQuY29udGV4dEVsZW1l
bnQoKSA9PSBpdGVtLT5ub2RlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlv
bk1vZGUoSW5Cb2R5TW9kZSk7CisjZWxzZQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9k
ZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluSGVhZE1v
ZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQog
ICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAg
IGlmIChpdGVtLT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSkgewotICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1v
ZGUoSW5GcmFtZXNldE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdO
YW1lKGh0bWxUYWcpKSB7CkBAIC0xNTk2LDcgKzE2OTAsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluVGFibGVCb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgc2xvdy4KICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVT
Y29wZSh0Ym9keVRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5U
YWJsZVNjb3BlKHRoZWFkVGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygp
LT5pblRhYmxlU2NvcGUodGZvb3RUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTYyNiw3ICsxNzIwLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewog
ICAgICAgICBpZiAoIXByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkpIHsKLSAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7
CkBAIC0xNjc5LDcgKzE3NzMsMTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRU
YWdGb3JJbkNlbGwoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgfHwgdG9rZW4tPm5h
bWUoKSA9PSB0clRhZwogICAgICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5h
bWUoKSkpIHsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29w
ZSh0b2tlbi0+bmFtZSgpKSkgeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAg
ICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8IG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRlbXBsYXRlVGFnKSB8fCBpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyNlbHNlCiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFn
KHRva2VuLT5uYW1lKCkpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2VuZGlmCiAgICAgICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpA
QCAtMTgxOSw2ICsxOTE3LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
Rm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHByb2Nlc3NGYWtlU3Rh
cnRUYWcoYnJUYWcpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAg
cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNl
bmRpZgogICAgIHByb2Nlc3NBbnlPdGhlckVuZFRhZ0ZvckluQm9keSh0b2tlbik7CiB9CiAKQEAg
LTE4NDAsNyArMTk0NCw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2FwdGlvbkVu
ZFRhZ0ZvckluQ2FwdGlvbigpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFn
Rm9ySW5Sb3coKQogewogICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2Nv
cGUodHJUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRz
KCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTE4NTQsNyArMTk1OCw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzVHJFbmRUYWdGb3JJblJvdygpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RhYmxl
RW5kVGFnRm9ySW5UYWJsZSgpCiB7CiAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmlu
VGFibGVTY29wZSh0YWJsZVRhZykpIHsKLSAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMo
KSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvci4KICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTE5MTEsNiArMjAxNSwxNSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAvLyBGYWxsIHRocm91
Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgp
ID09IEluSGVhZE1vZGUpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBjYXNlIHNob3VsZCBiZSBi
cm9rZW4gb3V0IGludG8gcHJvY2Vzc0VuZFRhZ0ZvckluSGVhZCwKKyAgICAgICAgLy8gYmVjYXVz
ZSBvdGhlciBlbmQgdGFnIGNhc2VzIG5vdyByZWZlciB0byBpdCAoInByb2Nlc3MgdGhlIHRva2Vu
IGZvciB1c2luZyB0aGUgcnVsZXMgb2YgdGhlICJpbiBoZWFkIiBpbnNlcnRpb24gbW9kZSIpLgor
ICAgICAgICAvLyBidXQgYmVjYXVzZSB0aGUgbG9naWMgZmFsbHMgdGhyb3VnaCB0byBBZnRlckhl
YWRNb2RlLCB0aGF0IGdldHMgYSBsaXR0bGUgbWVzc3kuCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBoZWFkVGFnKSB7
CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcEhUTUxIZWFkRWxlbWVudCgp
OwogICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckhlYWRNb2RlKTsKQEAgLTE5NzUs
NiArMjA4OCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAg
ICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vz
c1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
I2VuZGlmCiAgICAgICAgIGlmICghcHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91
cCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0yMDUwLDcgKzIxNjksMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluRnJhbWVz
ZXRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2Rl
KTsKICAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVzZXRUYWcpIHsKLSAgICAgICAg
ICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJv
b3ROb2RlKCkpIHsKKyAgICAgICAgICAgIGJvb2wgaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBh
cnNpbmcgID0gbV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5y
b290Tm9kZSgpOworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBpZ25vcmVG
cmFtZXNldEZvckZyYWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJz
aW5nIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOwor
I2VuZGlmCisgICAgICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcp
IHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjA1OSw2ICsyMTgzLDEyIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAg
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJv
Y2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAt
MjExNywxMSArMjI0NywzMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBw
cm9wcmlhdGVseSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcp
IHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIElu
VGFibGVUZXh0TW9kZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAg
IHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRl
Q29udGVudHNNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tl
bi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1
cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICAgICAg
bV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9u
TW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworICAgICAgICBwcm9jZXNzRW5kVGFn
KHRva2VuKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMjIyMiw4ICsyMzcyLDE0IEBAIFJlcHJvY2Vz
c0J1ZmZlcjoKICAgICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9u
TW9kZToKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgogICAgIGNhc2UgSW5DZWxsTW9k
ZTogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25N
b2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVt
cGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUo
KSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSkKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUo
KSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGlu
c2VydGlvbk1vZGUoKSA9PSBJbkNlbGxNb2RlKTsKKyNlbmRpZgogICAgICAgICBwcm9jZXNzQ2hh
cmFjdGVyQnVmZmVyRm9ySW5Cb2R5KGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAg
LTIzNTgsNyArMjUxNCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmls
ZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgSW5DZWxsTW9kZToKICAgICBjYXNl
IEluQ2FwdGlvbk1vZGU6CiAgICAgY2FzZSBJblJvd01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRF
X1RBRykKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGlu
c2VydGlvbk1vZGUoKSA9PSBJbkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRp
b25Nb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgIT0gVGVtcGxhdGVDb250ZW50c01vZGUpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUg
fHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09
IEluUm93TW9kZSk7CisjZW5kaWYKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8gRW1pdCBw
YXJzZSBlcnJvciBiYXNlZCBvbiB3aGF0IGVsZW1lbnRzIGFyZSBzdGlsbCBvcGVuLgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEFmdGVyQm9keU1vZGU6CkBAIC0yNDA3LDYgKzI1NjgsMTEgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7
CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgIHJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NF
UlQobV90cmVlLmN1cnJlbnROb2RlKCkpOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9w
QWxsKCk7CkBAIC0yNTEwLDYgKzI2NzYsMTQgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAg
cHJvY2Vzc0Zha2VFbmRUYWcoc2NyaXB0VGFnKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVt
cGxhdGVUYWcpIHsKKyAgICAgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5h
cHBlbmRNYXJrZXIoKTsKKyAgICAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsK
KyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhl
YWRUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA4
ZmYwZjU4YjM0NWZmZjNlNDU1YjVhZmZlZjY1ZTEwMmY2ZDViZmZhLi5jZDAxYzFkNGVlY2JhNTMz
YjU4Mjk5ZjkzZTI2ZGI2NzA2NTlkZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIH5IVE1M
VHJlZUJ1aWxkZXIoKTsKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJl
dHVybiAhIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFCTEUoVEVNUExB
VEVfVEFHKQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0
dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9Cisg
ICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0
dXJuIGlzUGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpOyB9
CisjZWxzZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBj
b25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpIH0KKyNlbmRpZgogCiAgICAgdm9pZCBk
ZXRhY2goKTsKIApAQCAtOTcsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgSW5IZWFkTW9k
ZSwKICAgICAgICAgSW5IZWFkTm9zY3JpcHRNb2RlLAogICAgICAgICBBZnRlckhlYWRNb2RlLAor
ICAgICAgICBUZW1wbGF0ZUNvbnRlbnRzTW9kZSwKICAgICAgICAgSW5Cb2R5TW9kZSwKICAgICAg
ICAgVGV4dE1vZGUsCiAgICAgICAgIEluVGFibGVNb2RlLApAQCAtMTkwLDYgKzE5NywxMCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CiAK
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlRW5kVGFn
KEF0b21pY0hUTUxUb2tlbiopOworI2VuZGlmCisKICAgICBjbGFzcyBGcmFnbWVudFBhcnNpbmdD
b250ZXh0IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQYXJzaW5nQ29u
dGV4dCk7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDViM2Fi
MmFmNDFiOTA0MDA5ODI5M2YxYzUzMzFjNGE2YTM1NzcyYzcuLjIxMWZmYTQ2YzdjZWMwOWVhMmNi
MGE3OTM0M2EwMGI2MjM4MmQ1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ2
Myw2ICs0NjMsNyBAQAogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3RydWN0b3Ig
SFRNTFRhYmxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0
cnVjdG9yIEhUTUxUYWJsZVJvd0VsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7CisgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25zdHJ1
Y3RvciBIVE1MVGVtcGxhdGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFyZWFFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRp
dGxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhU
TUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDNkMDhlYTg5ODJhNDBlMzE1ZjdkNWVmYzliNTk0Zjky
ODBmYTliZjIuLmY0MTNmOTg4MWIwMWE5NjVmMDJiNDgxYjMwMWVlYjRlZDI0MTY4ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTEwNiw2ICsxMDYsNyBAQAogICAgICAg
J0VOQUJMRV9TVkdfRk9OVFM9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxFX1RFWFRfQVVU
T1NJWklORz0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKKyAgICAgICdF
TkFCTEVfVEVNUExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVOVFM9PChlbmFi
bGVfdG91Y2hfZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORz08KGVu
YWJsZV90b3VjaF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfU0xJREVSPTEn
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDhkNjA5MjU5NDg5YjU1ODQwYTE0NTFlYWIxNTIxOTNmODZlNmI4OGEuLmRjNmNj
N2UyZGQwMTk4ZTc1MzFiNTgyZDhhZmNmNThkYWUzYzYwMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAxMi0xMC0xNyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2Yg
dGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1
bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2luZXJ0Q29udGVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9j
dW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRl
LmRhdDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHJlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5f
Z2V0KToKKyAgICAgICAgKE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTEw
LTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAg
ICAgICAgeHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4ueG1sIGNyYXNoZXMg
d2l0aCBpY29uIGFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjMzU5OTk5YTQ1MTc4M2E3MDJiYzNhMDE3MGIwNmMzMWM5YTBmNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9k
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgdGVtcGxhdGUgY29udGVu
dHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxhdGUgZWxlbWVudCBpcyBjbG9uZWQKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgMSBpcyB0ZW1wbGF0ZS5jb250ZW50
LmNoaWxkTm9kZXMubGVuZ3RoCitQQVNTIDAgaXMgY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxl
bmd0aAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L2Nsb25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9jbG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjE2MmVlYzY3NTA0NTgwZGY2NWE2NWZh
MjA0N2MzYTdkNDQxNmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPkNvbnRlbnRzPC90ZW1wbGF0ZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBh
cmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZCcpOworCitp
ZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVz
dCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCcxJywgJ3RlbXBsYXRl
LmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKK3ZhciBjbG9uZSA9IHRlbXBsYXRlLmNsb25l
Tm9kZSh0cnVlKTsKK3Nob3VsZEJlKCcwJywgJ2Nsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5n
dGgnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUxMzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly9iYXouY29t
L2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL2Jhei5j
b20vYmF0LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5lcnRDb250ZW50cy5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZworaHR0cDovL2Jhei5jb20vYmF0LmpwZyAt
IGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFp
biwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KK1RoZSB0ZXN0IGFzc2VydHMgdGhh
dCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVz
b3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi4KKworcGFzcyEKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENv
bnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lu
ZXJ0Q29udGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2MwNWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2Nj
ZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsK
Kword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgfQorCisgICAgaWYgKHRlc3RWYWwg
IT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIHRlbXBsYXRlQ29udGVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNvbnRlbnQ7CisgICAgdmFyIGltZyA9IHRl
bXBsYXRlQ29udGVudC5jaGlsZE5vZGVzWzFdOworICAgIGltZy5zcmMgPSAiaHR0cDovL2Jhei5j
b20vYmF0LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRl
bnQpOworCisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1l
bnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJjZXMg
ZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVt
cGxhdGUiPjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAyOzwvc2NyaXB0PjxpbWcgc3JjPSJodHRw
Oi8vZm9vLmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2
YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6
ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdub3JlZC4KKworPGRpdj5D
b250ZW50cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRN
TC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEzZjAzZTkyMjA0YTUyNGVjZGQxOGUyMDBhODQzZmI1NjI1ZDFl
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0
ZScpOworICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplJzsKKyAgICB2YXIgaW5uZXJU
ZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsK
KyAgICBpbm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplIGVpdGhlcic7CisKKyAgICB0
ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7CisgICAgaWYgKHRlbXBsYXRl
LmNoaWxkTm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBvbmx5IGNoaWxkIHNob3VsZCBiZSB0aGUg
c3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9IHRlbXBsYXRlLmlubmVySFRN
TDsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgdGVzdCBhc3NlcnRzIHRo
YXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0
cyBjaGlsZHJlbiBhcmUgaWdub3JlZC48L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48ZGl2
PkNvbnRlbnRzIDEKKyAgPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+PC90
ZW1wbGF0ZT4KKzxkaXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMDkyNDI3YjA1NTRmZDM4Y2Y4N2UyY2Q1OTUzZjU3ZjMyNGY5ODA2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUZXN0IEhU
TUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50IGlzIHRlbXBsYXRlLm93bmVyRG9jdW1lbnQK
K1BBU1MgZG9jdW1lbnQgaXMgbm90IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1Mg
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hp
bGQub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGlu
bmVyVGVtcGxhdGUub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50IGlzIGlubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50
IGlzIHRlbXBsYXRlMi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQgaXMgdGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyBkb2N1bWVudCBp
cyBkZi5vd25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIHNwYW4ub3duZXJEb2N1bWVudAor
UEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGRmLm93bmVyRG9jdW1lbnQKK1BB
U1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBzcGFuLm93bmVyRG9jdW1lbnQKK1BB
U1MgdGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4K
K1BBU1MgdGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24g
MTcuCitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRv
Y3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293
bmVyRG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzdkN2Q0MzI4YTQ3MGM1MmQ3M2Y0ZDliZjVk
ZmRiOTg1YjMzM2FjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c3Bhbj48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUyIj48c3Bh
bj48L3NwYW4+PC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgSFRN
TFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cu
SFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMg
RU5BQkxFKFRFTVBMQVRFX1RBRyknKTsKKwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RlbXBsYXRlJyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGUub3du
ZXJEb2N1bWVudCcpOworCit2YXIgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCA9IHRlbXBs
YXRlLmNvbnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcsICd0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCcsICd0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCcp
OworCit2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJz
dENoaWxkOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAnaW5uZXJU
ZW1wbGF0ZS5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJE
b2N1bWVudCcsICdpbm5lclRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCcpOworCit2YXIg
dGVtcGxhdGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxk
QmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlMi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTIuY29udGVudC5vd25lckRvY3Vt
ZW50Jyk7CisKK3ZhciBkZiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKK3Zh
ciBzcGFuID0gZGYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsK
K3Nob3VsZEJlKCdkb2N1bWVudCcsICdkZi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgnZG9j
dW1lbnQnLCAnc3Bhbi5vd25lckRvY3VtZW50Jyk7CisKK3RlbXBsYXRlLmNvbnRlbnQgPSBkZjsK
K3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ2RmLm93bmVyRG9jdW1l
bnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3NwYW4ub3du
ZXJEb2N1bWVudCcpOworCitzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsnKTsKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsnKTsKK2lmICh3aW5kb3cuV2ViS2l0
U2hhZG93Um9vdCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dS
b290KGRpdiknKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRt
bDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291
cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFhOGFiNGVmMTYxNzYzYjgyMmY3NzVhZjAy
ODA1NWYxNWU1ZjA4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jl
c291cmNlcy90ZW1wbGF0ZS5kYXQKQEAgLTAsMCArMSw4MjkgQEAKKyNkYXRhCis8Ym9keT48dGVt
cGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8i
Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisK
KyNkYXRhCis8aHRtbD48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8
aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rpdj48L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEK
KzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAg
IDxkaXY+Cit8ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+
PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8
ZGl2PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0
ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVt
cGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
PjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJs
ZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAi
ICAgIgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisK
KyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwv
dGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRh
YmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVt
cGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxl
Pjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBs
YXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1w
bGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvc2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wg
ICAgICAgICA8b3B0aW9uPgorfCAgIDxib2R5PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICA8b3B0aW9uPgorCisj
ZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxl
Y3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxh
dGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+
CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgPHRoZWFkPgorCisjZGF0YQorPGJvZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48
ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAg
ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48
L3RoZWFkPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJs
ZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8
ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0
ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRh
Cis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4K
K3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48
dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90
YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+
CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1w
bGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxh
dGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1w
bGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAg
ICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8Y29sPgorCisjZGF0YQorPGZy
YW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJh
bWU+PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0YQor
PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRp
dj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48
c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wg
ICAgICAgICA8c3Bhbj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0g
MTs8L3NjcmlwdD48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBp
ID0gMTsiCit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2
PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9k
eT48dGVtcGxhdGU+PHRyPjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0
cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48
L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48
L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRk
PjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxj
YXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PC90YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8
ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxj
YXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAg
ICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
Pjx0aGVhZD48L3RoZWFkPjwvdGFibGU+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0
aGVhZD4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48
dHI+PC90cj48L2Rpdj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxl
bT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPGVtPgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzdHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxzdHlsZT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+
PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPG1ldGE+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48
dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0
YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3Vw
PjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
ICAgIDxjb2w+CisKKyNkYXRhCis8Ym9keSBhPWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkg
Yz1kPjxkaXY+PC9kaXY+PC9ib2R5PjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4K
K3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1s
IGI9Yz48c3Bhbj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4K
KworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48
L2NvbD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIi
Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEK
KzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2Zy
YW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIK
K3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjllZmUzMjRiMDEyOWU2MWM5MTI0ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIv
cnVuLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVhYzQ0NDliM2U5MTdh
YzRkNDE5Y2I2NGZlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bi10ZW1wbGF0ZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0
PgordmFyIHRlc3RfZmlsZXMgPSBbCisgICdyZXNvdXJjZXMvdGVtcGxhdGUuZGF0JywKK10KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L2R1bXAtYXMtbWFya3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3Vw
LmpzCmluZGV4IDUzYTAwMWZlZmRlMjg4MWFlZjYxY2QwNjkwMjcyZmM2ZTE1YjFlOTEuLmM3ZmRm
MTdmMjBhNDI5YzEwYzZkOGIzYTE5NmRmYjkwOTQ0NjJiMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvZHVtcC1hcy1tYXJrdXAuanMKQEAgLTIyMCwxNiArMjIwLDI0IEBAIE1hcmt1cC5fZ2V0ID0g
ZnVuY3Rpb24obm9kZSwgZGVwdGgpCiAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05P
REU6CiAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09ICIjc2hhZG93LXJvb3QiKQogICAgICAg
ICAgIHN0ciArPSAiPHNoYWRvdzpyb290PiI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBzdHIg
Kz0gIiNkb2N1bWVudC1mcmFnbWVudCI7CiAgICAgfQotCi0gICAgZm9yICh2YXIgaSA9IDAsIGxl
biA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewotICAgICAgICB2YXIg
c2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7Ci0gICAgICAg
IGlmIChzZWxlY3Rpb24pCi0gICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQoZGVwdGgg
KyAxKSArIHNlbGVjdGlvbjsKLQotICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGls
ZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgIAorICAgIAorICAgIC8vIEhUTUwgVGVtcGxhdGUg
ZWxlbWVudHMgc2VyaWFsaXplIHRoZWlyIGNvbnRlbnQgRG9jdW1lbnRGcmFnbWVudCwgYW5kIE5P
VCB0aGVpciBjaGlsZHJlbi4KKyAgICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPSAnaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcgJiYgbm9kZS50YWdOYW1lID09ICdURU1QTEFURScpIHsKKyAg
ICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY29udGVudCwgZGVwdGggKyAxKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxl
bmd0aDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3Vw
Ll9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
KQorICAgICAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2Vs
ZWN0aW9uOworICAgIAorICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGRO
b2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAgICAgfQogICAgIH0KLQorICAgIAogICAgIHN0ciAr
PSBNYXJrdXAuX2dldFNoYWRvd0hvc3RJZlBvc3NpYmxlKG5vZGUsIGRlcHRoKTsKICAgICAKICAg
ICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CkBA
IC0yODQsNyArMjkyLDcgQEAgTWFya3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKIAogTWFya3Vw
Ll9nZXRTZWxlY3Rpb25Gcm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5v
ZGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKTsKKyAgICByZXR1cm4g
bm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3ID8gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1
bHRWaWV3LmdldFNlbGVjdGlvbigpIDogbnVsbDsKIH0KIAogTWFya3VwLl9TRUxFQ1RJT05fRk9D
VVMgPSAnPCNzZWxlY3Rpb24tZm9jdXM+JzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173943</attachid>
            <date>2012-11-13 12:02:03 -0800</date>
            <delta_ts>2012-11-13 18:02:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121113120004.patch</filename>
            <type>text/plain</type>
            <size>78552</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ5OTVmYWUxYWUyMGM5
MzFiYTBhMThhMjExNjQ1MDE2NzExZjFkMS4uOGRkOGQ1ZWJiNDQwMTAzODNmOGU4MTRmZmU1NjQ5
MDhlMTE4YmFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMg
YXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25z
IGJlbG93IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvY2xvbmVOb2RlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbAorICAgICAgICAgICAgICAgaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgICh0ZW1wbGF0ZSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxp
emVOb2Rlc1dpdGhOYW1lc3BhY2VzKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVtcGxhdGVFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9IVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxUZW1wbGF0
ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MVGVtcGxhdGVFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpl
eGVjdXRlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5z
ZXJ0Q29tbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5z
ZXJ0VGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmNy
ZWF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Om93
bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUpOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmg6CisgICAgICAgIChIVE1M
Q29uc3RydWN0aW9uU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFj
ay5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxFbGVtZW50U3RhY2suaDoKKyAgICAgICAgKEhUTUxFbGVtZW50U3RhY2spOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJlbG9hZFNjYW5uZXI6OkhUTUxQcmVsb2FkU2Nhbm5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTFByZWxvYWRTY2FubmVyLmg6CisgICAgICAgIChIVE1MUHJlbG9hZFNjYW5uZXIpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NUZW1wbGF0ZUVuZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluVGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
cmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNl
bGwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5k
VGFnRm9ySW5Sb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
VGFibGVFbmRUYWdGb3JJblRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NDaGFyYWN0ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKEhUTUxUcmVlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjppc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250
ZW50cyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEyLTExLTEzICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXBkYXRlIERPTUV4Y2Vw
dGlvbiBuYW1lOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggYzczZGQwZWY2MjBlYzQ1NDE0MzllNmY5ZDFkZjdhNDc4NjA2ZTk5Ni4uYjEwMjE0MWNi
MDRlZjk0ZWU0OTg0NGU3ZGU3NDdlMTRjNDczMzljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFl
bHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9u
YWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUu
IFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisg
ICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0xMS0xMyAgRGltaXRyaSBHbGF6a292ICA8
ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIxMzQzOTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjk0ZGZkMDU5NzU2YjUzNWQzOTViZGYyMGE4
MGE0NGI4MGRlNGE2NC4uOWJiMjUyMjk0MDJkODkyODA5NmNjNjQ0MjgxMGI4NjAyNmI0N2M5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTExNCw2ICsxMTE0LDcgQEAKICAgICAgICAgICAgICdodG1s
L0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVUxpc3RFbGVtZW50
LmlkbCcsCkBAIC00MTg0LDYgKzQxODUsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCcs
CisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCcsCisgICAgICAgICAg
ICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9odG1sLmNzcwppbmRleCBjNTZlZmZlNzEyZjViMGQzYTEwYWM5YjdmMDA5YTBkNzMyZjNj
NjVjLi45ZmM3NTEyZDRhMDBiMGY5N2NkZTgwMDM4ZjM2OThjNzY3NmFjZThmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0
bWwuY3NzCkBAIC0xMjYxLDYgKzEyNjEsMTAgQEAgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1h
cmtlciB7CiAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTsKIH0KIAordGVtcGxhdGUgeworICBkaXNw
bGF5OiBub25lCit9CisKIGJkaSwgb3V0cHV0IHsKICAgICB1bmljb2RlLWJpZGk6IC13ZWJraXQt
aXNvbGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM3MTdmYWMxNjVjMWI0MTc1
YjY2OTM4OTczYzgwZGE0NTA3MzY5YmMuLjdlODM3MGJhNDMxODY5ZjgyODkzM2RkZGQzZTAyMWU1
ODg2MWMxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTk5Niw0ICs1OTk2LDE3IEBA
IExvY2FsZSYgRG9jdW1lbnQ6OmdldENhY2hlZExvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmIGxv
Y2FsZSkKICAgICByZXR1cm4gKihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIH0KIAorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCitEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNP
d25lckRvY3VtZW50KCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlz
OworCisgICAgaWYgKCFtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KQorICAgICAgICBt
X3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50ID0gaW1wbGVtZW50YXRpb24oKS0+Y3JlYXRl
SFRNTERvY3VtZW50KCIiKTsKKworICAgIHJldHVybiBtX3RlbXBsYXRlQ29udGVudHNPd25lckRv
Y3VtZW50LmdldCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggOTJhMzJjYmIzM2MwNjA0Y2EyMDI0ZjE2M2U5M2RlYzFlMTM2M2Q5
OS4uMmE3Njk3OTM2ZGJkOGMwMjZmNGNmNTk1NTJmMjNkNzljZjMyZjE1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTExNjgsNiArMTE2OCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJuIGEg
TG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwgb3Ig
ZW1wdHkuCiAgICAgTG9jYWxlJiBnZXRDYWNoZWRMb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiBs
b2NhbGUgPSBudWxsQXRvbSk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIERvY3Vt
ZW50KiB0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpOworI2VuZGlmCisKIHByb3RlY3Rl
ZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wg
aXNIVE1MKTsKIApAQCAtMTUyMiw2ICsxNTI2LDEwIEBAIHByaXZhdGU6CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8QXRvbWljU3RyaW5nLCBPd25QdHI8TG9jYWxlPiA+IExvY2FsZUlkZW50aWZpZXJU
b0xvY2FsZU1hcDsKICAgICBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXAgbV9sb2NhbGVDYWNo
ZTsKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgUmVmUHRyPERvY3VtZW50PiBtX3Rl
bXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50OworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBE
b2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCBiZWI4MzJmN2Y1MDA5YjZh
YzYxM2MzM2NkOGI0NzFlYTIyNDcyZTYyLi44YzY3YzEyNzdmNGY2NGU3NGQyZjhkNDQwOWE0YWUw
NGYwNjk2ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBs
YXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCkBAIC0xNDEsNyArMTQyLDEyIEBA
IHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9k
ZSogdGFyZ2V0Tm9kZSwgTm9kZSogbm9kCiAgICAgICAgIGFwcGVuZFN0YXJ0VGFnKHRhcmdldE5v
ZGUsICZuYW1lc3BhY2VIYXNoKTsKIAogICAgIGlmICghKHRhcmdldE5vZGUtPmRvY3VtZW50KCkt
PmlzSFRNTERvY3VtZW50KCkgJiYgZWxlbWVudENhbm5vdEhhdmVFbmRUYWcodGFyZ2V0Tm9kZSkp
KSB7Ci0gICAgICAgIGZvciAoTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQo
KTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUpLT5j
b250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNlbHNl
CisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZW5k
aWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxp
bmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwg
bm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tpcCk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMmIwMWQ2ZWQ0ZTNmYjcw
Nzk1MjgzMzY0OGJkNmQ1MGQwY2QwNjlmYy4uMDNjYjZlZWNhYzYwMmU2ZGVjZmMwMmQ5ODk3OTZk
NDY2MjVkMmI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBA
QCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7CiAgICAgU3RyaW5nIG91
dGVySFRNTCgpIGNvbnN0OwotICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE91dGVySFRNTChjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRJbm5lclRleHQoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAKaW5kZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1MjAxZjg1NGVmODhkM2NiZGU0NC4uN2Yz
YjNmNDdjMDBiODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAiCisjaW5j
bHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5p
bgppbmRleCA4NWExZTYxYTVhOTU4MmIxM2U2MzQyODljZGM1M2EyMmM3NmIzZTAxLi5jNDM2Zjhk
Zjg4ODMzNGZkMzZiMWZkNGMzZmE3ZDY1NjFkN2QzMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWdOYW1lcy5pbgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAog
dGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAordGVtcGxhdGUgaW50ZXJmYWNl
TmFtZT1IVE1MVGVtcGxhdGVFbGVtZW50LCBjb25kaXRpb25hbD1URU1QTEFURV9UQUcKIHRleHRh
cmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zv
cm1FbGVtZW50CiB0Zm9vdCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0
aCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWM2ODRkOTE4MjQ3Y2NlYTYx
NjIwOGRiYWY1ODdiMjcyMWFjNDIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJIVE1MVGVt
cGxhdGVFbGVtZW50LmgiCisKKyNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgorI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOworCitpbmxpbmUgSFRNTFRlbXBsYXRlRWxlbWVudDo6SFRNTFRlbXBsYXRlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisg
ICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK3sKK30KKwordm9pZCBIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0g
Y3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1NjcmlwdGlu
Z0NvbnRlbnQsIGVjKSkKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRl
bnQoKSwgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6
On5IVE1MVGVtcGxhdGVFbGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVF
bGVtZW50PiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTFRlbXBsYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZy
YWdtZW50KiBIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkKK3sKKyAgICBpZiAobV9jb250
ZW50KQorICAgICAgICByZXR1cm4gbV9jb250ZW50LmdldCgpOworCisgICAgbV9jb250ZW50ID0g
RG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50
c093bmVyRG9jdW1lbnQoKSk7CisgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsKK30KKwordm9p
ZCBIVE1MVGVtcGxhdGVFbGVtZW50OjpzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gcHJwQ29udGVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGNvbnRlbnQgPSBwcnBDb250ZW50OworCisgICAgaWYgKCFjb250ZW50IHx8
IGNvbnRlbnQtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9jb250ZW50ICYmIG1fY29u
dGVudC5nZXQoKSA9PSBjb250ZW50LmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNl
cHRpb25Db2RlIG5vZmFpbCA9IDA7CisgICAgaWYgKGNvbnRlbnQtPm93bmVyRG9jdW1lbnQoKSAh
PSBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpCisgICAg
ICAgIG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKS0+YWRv
cHROb2RlKGNvbnRlbnQsIG5vZmFpbCk7CisgICAgQVNTRVJUKCFub2ZhaWwpOworCisgICAgbV9j
b250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBOREVCVUcKK2NvbnN0IEhUTUxUZW1wbGF0
ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIG5vZGUtPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1w
bGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTA4MzNlYmUwYWI0M2EzNzZiNjBiNjRi
NWIzMjM2YzE4OTYyNWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxUZW1wbGF0
ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKworI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MVGVtcGxh
dGVFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRlbXBsYXRlRWxlbWVudCgpOworCisgICAg
RG9jdW1lbnRGcmFnbWVudCogY29udGVudCgpOworCisgICAgdm9pZCBzZXRDb250ZW50KFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZpcnR1YWwg
dm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2
YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OworfTsKKwor
Y29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5v
ZGUqKTsKKworaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVu
dChOb2RlKiBub2RlKQoreworICAgIHJldHVybiBjb25zdF9jYXN0PEhUTUxUZW1wbGF0ZUVsZW1l
bnQqPih0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8Y29uc3QgTm9kZSo+KG5vZGUp
KSk7Cit9CisKKyNpZmRlZiBOREVCVUcKK2lubGluZSBjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50
KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICAvLyBGSVhN
RTogQWRkIGRlYnVnIGFzc2VydHMuCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxU
ZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKKworI2VuZGlm
IC8vIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmNjVmZmRhYjdjMjFmMjdhZWE3MzYyNzljYjYw
MTIyNjc5NWI4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
bXBsYXRlRWxlbWVudC5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9VEVNUExBVEVfVEFHCisgICAgXSBIVE1MVGVt
cGxhdGVFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1dGUgRG9jdW1lbnRG
cmFnbWVudCBjb250ZW50IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAppbmRleCAyZWE5MDRkZWFjMDcwZWNhNWMwMDFlZjM0ZTMyYzU3MzFiOGY3NzEwLi42YmVh
NDNmZDY4ZThlN2RkYmQ5OGRmZjJhZTE5M2IzMjRmZTg1MzNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3Jp
cHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxU
ZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1M
VG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNzcsNiArNzgs
MTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzQWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0
cmluZykKIAogc3RhdGljIGlubGluZSB2b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25T
aXRlVGFzayYgdGFzaykKIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0YXNr
LnBhcmVudC0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0g
dG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2Vu
ZGlmCisKICAgICBpZiAodGFzay5uZXh0Q2hpbGQpCiAgICAgICAgIHRhc2sucGFyZW50LT5wYXJz
ZXJJbnNlcnRCZWZvcmUodGFzay5jaGlsZC5nZXQoKSwgdGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwog
ICAgIGVsc2UKQEAgLTI0OSw3ICsyNTUsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpp
bnNlcnREb2N0eXBlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgQVNT
RVJUKHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwotICAgIGF0dGFj
aExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNyZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1
bWVudCgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUo
KSwgQ29tbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+
Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1l
bnRPbkRvY3VtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC0zNTMsNiArMzU5LDExIEBA
IHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYg
Y2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiAgICAgaWYgKHNob3VsZEZvc3RlclBhcmVudCgpKQog
ICAgICAgICBmaW5kRm9zdGVyU2l0ZSh0YXNrKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcp
CisgICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAg
dGFzay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5j
b250ZW50KCk7CisjZW5kaWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQgZW50aXJlbHkgb2Yg
d2hpdGVzcGFjZSBhcmUgbGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8vIFR1cm4gdGhlbSBp
bnRvIEF0b21pY1N0cmluZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcgZm9yIGVhY2guCiAg
ICAgYm9vbCBzaG91bGRVc2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9kZSA9PSBBbGxXaGl0
ZXNwYWNlCkBAIC0zODksMTggKzQwMCwyOCBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpp
bnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogUGFz
c1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudChBdG9t
aWNIVE1MVG9rZW4qIHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkKIHsK
ICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVz
cGFjZVVSSSk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJyZW50Tm9kZSgpLT5k
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVt
ZW50PiBlbGVtZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCktPmNyZWF0ZUVsZW1l
bnQodGFnTmFtZSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tl
bi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgcmV0
dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQqIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQoreworI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgaWYgKGN1cnJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSAmJiBj
dXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgcmV0dXJu
IHRvSFRNTFRlbXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVudCgpKS0+Y29udGVudCgpLT5kb2N1
bWVudCgpOworI2VuZGlmCisgICAgcmV0dXJuIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCk7Cit9
CisKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxF
bGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdO
YW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5hbWVzcGFjZVVSSSk7CiAgICAgLy8g
RklYTUU6IFRoaXMgY2FuJ3QgdXNlIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50
IGJlY2F1c2Ugd2UKICAgICAvLyBoYXZlIHRvIHBhc3MgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50
LiAgV2Ugc2hvdWxkIHJld29yayBmb3JtIGFzc29jaWF0aW9uCiAgICAgLy8gdG8gb2NjdXIgYWZ0
ZXIgY29uc3RydWN0aW9uIHRvIGFsbG93IGJldHRlciBjb2RlIHNoYXJpbmcgaGVyZS4KLSAgICBS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVs
ZW1lbnQodGFnTmFtZSwgY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgZm9ybSgpLCB0cnVlKTsK
KworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVh
dGVIVE1MRWxlbWVudCh0YWdOYW1lLCBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgZm9y
bSgpLCB0cnVlKTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRy
aWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxl
bWVudC0+aXNIVE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBA
IC00NjQsNiArNDg1LDE0IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1w
bGllZEVuZFRhZ3MoKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0
ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRF
X1RBRykKKyAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBsYXN0VGVtcGxhdGVF
bGVtZW50ID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7
CisgICAgaWYgKGxhc3RUZW1wbGF0ZUVsZW1lbnQgJiYgIW1fb3BlbkVsZW1lbnRzLmluVGFibGVT
Y29wZSh0YWJsZVRhZykpIHsKKyAgICAgICAgdGFzay5wYXJlbnQgPSBsYXN0VGVtcGxhdGVFbGVt
ZW50LT5lbGVtZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIEhU
TUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQgPSBt
X29wZW5FbGVtZW50cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAgICBpZiAobGFz
dFRhYmxlRWxlbWVudFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFibGVFbGVtZW50
ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggNjA1NzJiZGQ4NTYy
NzQ0NWNiZDg2NWE5Njc5ZDJmZWJhNWY2YThkYy4uN2Q5ZmNjNjViMmE4NGI2NDg1OTk1OGZhZTg3
ZDg3ZWQ3MDgzZDUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogICAgIENvbnRh
aW5lck5vZGUqIGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9w
Tm9kZSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogY3VycmVudFN0YWNrSXRlbSgpIGNvbnN0IHsg
cmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcFN0YWNrSXRlbSgpOyB9CiAgICAgSFRNTFN0YWNrSXRl
bSogb25lQmVsb3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy5vbmVCZWxvd1Rv
cCgpOyB9Ci0KKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCk7CiAg
ICAgSFRNTEVsZW1lbnRTdGFjayogb3BlbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fb3Bl
bkVsZW1lbnRzOyB9CiAgICAgSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdCogYWN0aXZlRm9ybWF0
dGluZ0VsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRz
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50
U3RhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5j
cHAKaW5kZXggNmMyMjBjOTczOWE2NDAyMGVkMGYyN2NjMzIwMWIyYzRlMDE2MTU3OC4uODY1ZDY1
MDM3YzFjMDkwMTkwZjliMTY1YmE3NGQzNGQ0ZmQ5ZWRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKQEAgLTQ2LDYgKzQ2LDExIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1Jvb3ROb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAKIG5hbWVz
cGFjZSB7CiAKK2lubGluZSBib29sIGlzSFRNTE5vZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKK3sK
KyAgICByZXR1cm4gaXNSb290Tm9kZShpdGVtKTsKK30KKwogaW5saW5lIGJvb2wgaXNTY29wZU1h
cmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1l
KGFwcGxldFRhZykKQEAgLTY0LDYgKzY5LDkgQEAgaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihI
VE1MU3RhY2tJdGVtKiBpdGVtKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVz
Ojpmb3JlaWduT2JqZWN0VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVz
OjpkZXNjVGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRh
ZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAK
QEAgLTc3LDYgKzg1LDkgQEAgaW5saW5lIGJvb2wgaXNMaXN0SXRlbVNjb3BlTWFya2VyKEhUTUxT
dGFja0l0ZW0qIGl0ZW0pCiBpbmxpbmUgYm9vbCBpc1RhYmxlU2NvcGVNYXJrZXIoSFRNTFN0YWNr
SXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0YWJsZVRhZykKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBs
YXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTg1
LDEyICs5NiwxOCBAQCBpbmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKEhUTUxTdGFj
a0l0ZW0qIGl0ZW0pCiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGJvZHlUYWcpCiAgICAg
ICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1Rh
Z05hbWUodGhlYWRUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgfHwgaXRl
bS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2Rl
KGl0ZW0pOwogfQogCiBpbmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoSFRNTFN0YWNr
SXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0clRhZykKKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRl
VGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTUyNyw2
ICs1NDQsMTMgQEAgYm9vbCBIVE1MRWxlbWVudFN0YWNrOjppblNlbGVjdFNjb3BlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGluU2VsZWN0U2NvcGUodGFn
TmFtZS5sb2NhbE5hbWUoKSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorYm9vbCBI
VE1MRWxlbWVudFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaW5TY29wZUNvbW1vbjxpc0hUTUxOb2RlPihtX3RvcC5nZXQoKSwgdGVtcGxhdGVUYWcu
bG9jYWxOYW1lKCkpOworfQorI2VuZGlmCisKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6Omh0
bWxFbGVtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9yb290Tm9kZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggODczY2JkZWI5NWI4
ZWRhMDZiM2JlODBiZDk1Y2E3ZDIzODkxMWJhMy4uZDk2Y2NjZDgwOTQ3ZGFiNjE5MTFhMjZiMzhi
M2ZhZTMzOTY3OWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TEVsZW1lbnRTdGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVt
ZW50U3RhY2suaApAQCAtMTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzT25s
eU9uZUVsZW1lbnQoKSBjb25zdDsKICAgICBib29sIHNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxl
bWVudCgpIGNvbnN0OwotCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBib29sIGhhc1Rl
bXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1lbnQqIGh0bWxFbGVt
ZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVt
ZW50KiBib2R5RWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMjMwMzhiZDBiY2VhMDhkOWUyNWVlY2Zj
ZGY1NGM0OGZjMTRiMDM3YS4uZWI2ZjYxNWFkYjk2NzVkZTNiZjFmZTI1ZGJlMGM5N2RlM2I5Mjgy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2Fu
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5u
ZXIuY3BwCkBAIC0xNTUsNiArMTU1LDkgQEAgSFRNTFByZWxvYWRTY2FubmVyOjpIVE1MUHJlbG9h
ZFNjYW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2Vu
aXplcjo6Y3JlYXRlKEhUTUxEb2N1bWVudFBhcnNlcjo6dXNlUHJlSFRNTDVQYXJzZXJRdWlya3Mo
ZG9jdW1lbnQpKSkKICAgICAsIG1fYm9keVNlZW4oZmFsc2UpCiAgICAgLCBtX2luU3R5bGUoZmFs
c2UpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAsIG1fdGVtcGxhdGVDb3VudCgwKQor
I2VuZGlmCiB7CiB9CiAKQEAgLTE4NywxMiArMTkwLDIyIEBAIHZvaWQgSFRNTFByZWxvYWRTY2Fu
bmVyOjpwcm9jZXNzVG9rZW4oKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1fdG9rZW4u
dHlwZSgpICE9IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZykKKyAgICBpZiAobV90b2tlbi50eXBl
KCkgIT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnKSB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgaWYgKG1fdGVtcGxhdGVDb3VudCAmJiBtX3Rva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6RW5kVGFnICYmIEF0b21pY1N0cmluZyhtX3Rva2VuLm5hbWUoKS5kYXRhKCkp
ID09IHRlbXBsYXRlVGFnKQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvdW50LS07CisjZW5kaWYK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFByZWxvYWRUYXNrIHRhc2sobV90b2tlbik7
CiAgICAgbV90b2tlbml6ZXItPnVwZGF0ZVN0YXRlRm9yKHRhc2sudGFnTmFtZSgpLCBtX2RvY3Vt
ZW50LT5mcmFtZSgpKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2su
dGFnTmFtZSgpID09IHRlbXBsYXRlVGFnKQorICAgICAgICBtX3RlbXBsYXRlQ291bnQrKzsKKyNl
bmRpZgorCiAgICAgaWYgKHRhc2sudGFnTmFtZSgpID09IGJvZHlUYWcpCiAgICAgICAgIG1fYm9k
eVNlZW4gPSB0cnVlOwogCkBAIC0yMDIsNyArMjE1LDEwIEBAIHZvaWQgSFRNTFByZWxvYWRTY2Fu
bmVyOjpwcm9jZXNzVG9rZW4oKQogICAgIGlmICh0YXNrLnRhZ05hbWUoKSA9PSBiYXNlVGFnKQog
ICAgICAgICB1cGRhdGVQcmVkaWN0ZWRCYXNlRWxlbWVudFVSTChLVVJMKG1fZG9jdW1lbnQtPnVy
bCgpLCB0YXNrLmJhc2VFbGVtZW50SHJlZigpKSk7CiAKLSAgICB0YXNrLnByZWxvYWQobV9kb2N1
bWVudCwgc2Nhbm5pbmdCb2R5KCksIG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwuaXNFbXB0eSgp
ID8gbV9kb2N1bWVudC0+YmFzZVVSTCgpIDogbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCk7Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAoIW1fdGVtcGxhdGVDb3VudCkKKyNlbmRp
ZgorICAgICAgICB0YXNrLnByZWxvYWQobV9kb2N1bWVudCwgc2Nhbm5pbmdCb2R5KCksIG1fcHJl
ZGljdGVkQmFzZUVsZW1lbnRVUkwuaXNFbXB0eSgpID8gbV9kb2N1bWVudC0+YmFzZVVSTCgpIDog
bV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCk7CiB9CiAKIGJvb2wgSFRNTFByZWxvYWRTY2FubmVy
OjpzY2FubmluZ0JvZHkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MUHJlbG9hZFNjYW5uZXIuaAppbmRleCAzOGY1NzcyZDU1YTc3ZDkzZTYzYzYyNjAxOWI3Njc4
MGFiYTI1NTM4Li5kNGUzYzEwODk0NDRjZjJjZWFjZTAzNmI5OWI1NzY4MGFlZmFkZDQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaApAQCAt
NTgsNiArNTgsOSBAQCBwcml2YXRlOgogICAgIEhUTUxUb2tlbiBtX3Rva2VuOwogICAgIGJvb2wg
bV9ib2R5U2VlbjsKICAgICBib29sIG1faW5TdHlsZTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgIHNpemVfdCBtX3RlbXBsYXRlQ291bnQ7CisjZW5kaWYKICAgICBLVVJMIG1fcHJlZGlj
dGVkQmFzZUVsZW1lbnRVUkw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBjNzg1NjJiMzNjMTliZDJjNTcxZDU5YmE1NWM2YTNk
MDdlMjJjOGQ3Li4xMjMxYzAzYWM5ZDZjMThmYzg4ZjA2NDczYzdlMGUzMDdjNGM4MTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRN
TFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5jbHVkZSAi
SFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUg
IkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC0zNjAs
NyArMzYxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4o
SFRNTFRva2VuJiByYXdUb2tlbikKICAgICAvLyBzeW5jaHJvbm91c2x5IHJlLWVudGVycyB0aGUg
cGFyc2VyLiBXZSBkb24ndCBjbGVhciB0aGUgdG9rZW4gaW1tZWRhdGVseQogICAgIC8vIGZvciBD
aGFyYWN0ZXIgdG9rZW5zIGJlY2F1c2UgdGhlIEF0b21pY0hUTUxUb2tlbiBhdm9pZHMgY29weWlu
ZyB0aGUKICAgICAvLyBjaGFyYWN0ZXJzIGJ5IGtlZXBpbmcgYSBwb2ludGVyIHRvIHRoZSB1bmRl
cmx5aW5nIGJ1ZmZlciBpbiB0aGUKLSAgICAvLyBIVE1MVG9rZW4uIEZvcnR1YW50ZWx5LCBDaGFy
YWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgorICAgIC8vIEhUTUxUb2tl
bi4gRm9ydHVuYXRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNlIHRvIHJlLWVu
dGVyCiAgICAgLy8gdGhlIHBhcnNlci4KICAgICAvLwogICAgIC8vIEZJWE1FOiBTdG9wIGNsZWFy
aW5nIHRoZSByYXdUb2tlbiBvbmNlIHdlIHN0YXJ0IHJ1bm5pbmcgdGhlIHBhcnNlciBvZmYKQEAg
LTY3Miw4ICs2NzMsOCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9y
SW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi0+bmFt
ZSgpID09IGJvZHlUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAgICAgIGlm
ICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5zZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQo
KSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlPbmVFbGVtZW50KCkpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgaWYgKCFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1l
bnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSkgeworICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgzLDcgKzY4
NCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRh
ZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdt
ZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIGlmICghbV9mcmFtZXNldE9rKQpAQCAtOTQ0LDEwICs5NDUsMzIgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRl
bXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVB
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQo
dG9rZW4pOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKK3ZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzVGVtcGxhdGVFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAg
ICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5TY29wZSh0b2tlbi0+bmFtZSgpKSkgewor
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBt
X3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgIGlmICghbV90cmVlLmN1cnJlbnRT
dGFja0l0ZW0oKS0+aGFzTG9jYWxOYW1lKHRva2VuLT5uYW1lKCkpKQorICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKKyAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKHRv
a2VuLT5uYW1lKCkpOworICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+Y2xl
YXJUb0xhc3RNYXJrZXIoKTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7
Cit9CisjZW5kaWYKKwogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRh
Z0ZvckluQ29sdW1uR3JvdXAoKQogewogICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKQEAgLTEwMTIsNyArMTAzNSw3IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hU
TUxUb2tlbiogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghcHJvY2Vzc1RhYmxlRW5kVGFn
Rm9ySW5UYWJsZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMo
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0
VGFnKHRva2VuKTsKQEAgLTEwMzksNiArMTA2MiwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAg
ICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxh
dGVUYWcpIHsKKyAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3Rl
cihtX3RyZWUpOwogICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xMTUz
LDYgKzExODIsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgbV90cmVlLmluc2VydFNlbGZDbG9zaW5n
SFRNTEVsZW1lbnQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxh
dGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nl
c3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Nyw3ICsx
MjEyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tl
bi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAh
bV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkp
ICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5h
bWUoKSkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Cisg
ICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRz
KCkpOwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEyMDIsNyArMTIzNyw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAg
ICAgICAgIHx8IGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAgICAg
ICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAg
ICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xMjgwLDYgKzEzMTUsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAg
ICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJ
bkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJG
cmFtZXNldE1vZGU6CkBAIC0xMzU5LDYgKzE0MDAsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgQVNT
RVJUX1VOVVNFRChkaWRQcm9jZXNzLCBkaWRQcm9jZXNzKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJ
bkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRG
b3JJblRhYmxlVGV4dCgpOwpAQCAtMTM2NywxMiArMTQxNCw0NyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBU
ZXh0TW9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykK
KyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gbGlua1RhZworICAgICAgICAgICAgfHwgdG9r
ZW4tPm5hbWUoKSA9PSBzY3JpcHRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0g
c3R5bGVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gbWV0YVRhZworICAgICAg
ICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJv
Y2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lVGFnKQorICAgICAgICAg
ICAgc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gY29sVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkNv
bHVtbkdyb3VwTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBU
YWcodG9rZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkp
KQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CisgICAgICAgIGVs
c2UgaWYgKHRva2VuLT5uYW1lKCkgPT0gdHJUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluVGFibGVCb2R5TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzVGFibGVDZWxsQ29udGV4
dFRhZyh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Sb3dN
b2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlN
b2RlKTsKKworICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworI2Vsc2UKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0ZvckluQm9keShBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIHBhcnNlRXJyb3IodG9rZW4pOworI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxh
dGVJbkhUTUxTY29wZSgpKSB7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdUZW1wbGF0ZUNvbnRl
bnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgbV90cmVlLmluc2Vy
dEhUTUxIdG1sU3RhcnRUYWdJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xNTQyLDggKzE2MjQsMTQg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHko
KQogICAgICAgICAgICAgbGFzdCA9IHRydWU7CiAgICAgICAgICAgICBpdGVtID0gSFRNTFN0YWNr
SXRlbTo6Y3JlYXRlKG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCksIEhUTUxTdGFj
a0l0ZW06Okl0ZW1Gb3JDb250ZXh0RWxlbWVudCk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisg
ICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7
CisjZW5kaWYKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgeworI2lm
ICFFTkFCTEUoVEVNUExBVEVfVEFHKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdt
ZW50KCkpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNl
bGVjdE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRkVGFn
KSB8fCBpdGVtLT5oYXNUYWdOYW1lKHRoVGFnKSkKQEAgLTE1NTUsMTkgKzE2NDMsMjUgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAg
ICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKICAgICAgICAgICAgIHJldHVy
biBzZXRJbnNlcnRpb25Nb2RlKEluQ2FwdGlvbk1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZShjb2xncm91cFRhZykpIHsKKyNpZiAhRU5BQkxFKFRFTVBMQVRFX1RBRykKICAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNlbmRpZgogICAgICAgICAgICAg
cmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAgICAgIHJldHVy
biBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1Rh
Z05hbWUoaGVhZFRhZykpIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAg
aWYgKG1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCkgJiYgbV9mcmFnbWVudENvbnRleHQuY29u
dGV4dEVsZW1lbnQoKSA9PSBpdGVtLT5ub2RlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisjZWxzZQogICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOwotICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUo
SW5Cb2R5TW9kZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
KEluSGVhZE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGJv
ZHlUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7
CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSkgewotICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGUoSW5GcmFtZXNldE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVt
LT5oYXNUYWdOYW1lKGh0bWxUYWcpKSB7CkBAIC0xNTk4LDcgKzE2OTIsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluVGFibGVCb2R5KEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgc2xvdy4KICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PmluVGFibGVTY29wZSh0Ym9keVRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aW5UYWJsZVNjb3BlKHRoZWFkVGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5F
bGVtZW50cygpLT5pblRhYmxlU2NvcGUodGZvb3RUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQ
YXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTYyOCw3ICsx
NzIyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyhBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJs
ZVRhZykgewogICAgICAgICBpZiAoIXByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVC
b2R5TW9kZSk7CkBAIC0xNjgxLDcgKzE3NzUsMTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWdGb3JJbkNlbGwoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgfHwg
dG9rZW4tPm5hbWUoKSA9PSB0clRhZwogICAgICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWco
dG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmlu
VGFibGVTY29wZSh0b2tlbi0+bmFtZSgpKSkgeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisg
ICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRlbXBsYXRlVGFnKSB8fCBpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKKyNlbHNlCiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlD
b250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2VuZGlm
CiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtMTgyMSw2ICsxOTE5LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHByb2Nl
c3NGYWtlU3RhcnRUYWcoYnJUYWcpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgogICAgIHByb2Nlc3NBbnlPdGhlckVuZFRhZ0ZvckluQm9keSh0b2tlbik7
CiB9CiAKQEAgLTE4NDIsNyArMTk0Niw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
Q2FwdGlvbkVuZFRhZ0ZvckluQ2FwdGlvbigpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1RyRW5kVGFnRm9ySW5Sb3coKQogewogICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5p
blRhYmxlU2NvcGUodHJUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0
ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTE4NTYsNyArMTk2MCw3IEBAIGJvb2wgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSgpCiB7CiAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1l
bnRzKCktPmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKLSAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRl
Q29udGVudHMoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvci4KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTE5MTMsNiArMjAxNywxNSBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAvLyBG
YWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBjYXNlIHNo
b3VsZCBiZSBicm9rZW4gb3V0IGludG8gcHJvY2Vzc0VuZFRhZ0ZvckluSGVhZCwKKyAgICAgICAg
Ly8gYmVjYXVzZSBvdGhlciBlbmQgdGFnIGNhc2VzIG5vdyByZWZlciB0byBpdCAoInByb2Nlc3Mg
dGhlIHRva2VuIGZvciB1c2luZyB0aGUgcnVsZXMgb2YgdGhlICJpbiBoZWFkIiBpbnNlcnRpb24g
bW9kZSIpLgorICAgICAgICAvLyBidXQgYmVjYXVzZSB0aGUgbG9naWMgZmFsbHMgdGhyb3VnaCB0
byBBZnRlckhlYWRNb2RlLCB0aGF0IGdldHMgYSBsaXR0bGUgbWVzc3kuCisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBo
ZWFkVGFnKSB7CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcEhUTUxIZWFk
RWxlbWVudCgpOwogICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckhlYWRNb2RlKTsK
QEAgLTE5NzcsNiArMjA5MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
ZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAg
ICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICghcHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5D
b2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDUyLDcgKzIxNzEsMTIgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNl
IEluRnJhbWVzZXRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRnJh
bWVzZXRNb2RlKTsKICAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVzZXRUYWcpIHsK
LSAgICAgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1l
bnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgICAgIGJvb2wgaWdub3JlRnJhbWVzZXRGb3JG
cmFnbWVudFBhcnNpbmcgID0gbV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5yb290Tm9kZSgpOworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAg
ICBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJh
Z21lbnRQYXJzaW5nIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSgpOworI2VuZGlmCisgICAgICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVu
dFBhcnNpbmcpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRl
bXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTg1LDEy
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9k
ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVf
VEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAg
ICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNl
dE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1v
ZGUpOwpAQCAtMjExOSwxMSArMjI0OSwzMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRp
b25Nb2RlQXBwcm9wcmlhdGVseSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVt
cGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEluVGFibGVUZXh0TW9kZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7
CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IFRlbXBsYXRlQ29udGVudHNNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAg
IGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBBU1NFUlQo
bV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAg
ICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJlc2V0
SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
I2VuZGlmCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMjIyNCw4ICsyMzc0LDE0IEBA
IFJlcHJvY2Vzc0J1ZmZlcjoKICAgICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2Ug
SW5DYXB0aW9uTW9kZToKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgogICAgIGNhc2Ug
SW5DZWxsTW9kZTogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChp
bnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0
aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2Rl
KCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2Vy
dGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSkKICAgICAgICAgQVNTRVJUKGluc2Vy
dGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25N
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNlbGxNb2RlKTsKKyNlbmRpZgogICAgICAgICBw
cm9jZXNzQ2hhcmFjdGVyQnVmZmVyRm9ySW5Cb2R5KGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KQEAgLTIzNjAsNyArMjUxNiwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgSW5DZWxsTW9kZToK
ICAgICBjYXNlIEluQ2FwdGlvbk1vZGU6CiAgICAgY2FzZSBJblJvd01vZGU6CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlN
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9
PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUgfHwgaW5zZXJ0
aW9uTW9kZSgpID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlKCkgIT0gVGVtcGxhdGVDb250ZW50c01vZGUpOwogICAgICAgICBBU1NF
UlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IElu
Q2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9u
TW9kZSgpID09IEluUm93TW9kZSk7CisjZW5kaWYKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsg
Ly8gRW1pdCBwYXJzZSBlcnJvciBiYXNlZCBvbiB3aGF0IGVsZW1lbnRzIGFyZSBzdGlsbCBvcGVu
LgogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyQm9keU1vZGU6CkBAIC0yNDA5LDYgKzI1
NzAsMTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0
aW9uTW9kZSk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1
cm47CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyAgICAgICAgcGFyc2VFcnJvcih0
b2tlbik7CisgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgIHJl
c2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnROb2RlKCkpOwogICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cG9wQWxsKCk7CkBAIC0yNTEyLDYgKzI2NzgsMTQgQEAgYm9vbCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcoc2NyaXB0VGFnKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVt
ZW50cygpLT5hcHBlbmRNYXJrZXIoKTsKKyAgICAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50
KHRva2VuKTsKKyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFt
ZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
aAppbmRleCA4ZmYwZjU4YjM0NWZmZjNlNDU1YjVhZmZlZjY1ZTEwMmY2ZDViZmZhLi5jZDAxYzFk
NGVlY2JhNTMzYjU4Mjk5ZjkzZTI2ZGI2NzA2NTlkZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgog
ICAgIH5IVE1MVHJlZUJ1aWxkZXIoKTsKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBj
b25zdCB7IHJldHVybiAhIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFC
TEUoVEVNUExBVEVfVEFHKQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNv
bnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29w
ZSgpOyB9CisgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNv
bnN0IHsgcmV0dXJuIGlzUGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250
ZW50cygpOyB9CisjZWxzZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpIH0KKyNlbmRpZgogCiAg
ICAgdm9pZCBkZXRhY2goKTsKIApAQCAtOTcsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
SW5IZWFkTW9kZSwKICAgICAgICAgSW5IZWFkTm9zY3JpcHRNb2RlLAogICAgICAgICBBZnRlckhl
YWRNb2RlLAorICAgICAgICBUZW1wbGF0ZUNvbnRlbnRzTW9kZSwKICAgICAgICAgSW5Cb2R5TW9k
ZSwKICAgICAgICAgVGV4dE1vZGUsCiAgICAgICAgIEluVGFibGVNb2RlLApAQCAtMTkwLDYgKzE5
NywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0
ZWx5KCk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIHZvaWQgcHJvY2Vzc1RlbXBs
YXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiopOworI2VuZGlmCisKICAgICBjbGFzcyBGcmFnbWVu
dFBhcnNpbmdDb250ZXh0IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQ
YXJzaW5nQ29udGV4dCk7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmlu
ZGV4IGRlNWViN2UxODI4MmZlNDM0MjcxZDQzYWFmOTY4YTE5YTE2M2ZkMzUuLjQ4ODk3YTY3M2M2
MTgwYTZiYTNjYzE5ZTQyODU5MTA2NGFiNDQ0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKQEAgLTQ2Myw2ICs0NjMsNyBAQAogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29u
c3RydWN0b3IgSFRNTFRhYmxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxl
bWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZVJvd0VsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7Cisg
ICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MVGVtcGxhdGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4
dEFyZWFFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1
dGUgSFRNTFRpdGxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0
cmlidXRlIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGYzODZkZWI3NzYyODkyMGFmM2I3ZmYy
MDViOWY4NjE5NWNiYWJkMWQuLjc2MjNmM2I3ODUwYzU3Zjg3NDhlYjI2MDI3MDk4Yjc2YTQzNDdj
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTExMCw2ICsxMTAsNyBA
QAogICAgICAgJ0VOQUJMRV9TVkdfRk9OVFM9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxF
X1RFWFRfQVVUT1NJWklORz0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywK
KyAgICAgICdFTkFCTEVfVEVNUExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVO
VFM9PChlbmFibGVfdG91Y2hfZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9B
RElORz08KGVuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hf
U0xJREVSPTEnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGE0MWExOTQ1MjIyODE4YWY0ZGI4ZDU0MzQ5YjM2NzAyMThlNjM1
OWIuLjYzNTU5Yzg5YjhiZmMwZjliZTFkZmVhNzAyMzhjNDA4MDcxOGYzMzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0xMS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBh
ZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29u
dGVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L293bmVyRG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2Vz
L3RlbXBsYXRlLmRhdDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qczoKKyAgICAgICAg
KE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUpOgor
CiAyMDEyLTExLTEzICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVXBkYXRlIERPTUV4Y2VwdGlvbiBuYW1lOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2Rl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
Y2xvbmVOb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzM1OTk5OWE0NTE3ODNhNzAyYmMz
YTAxNzBiMDZjMzFjOWEwZjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OCBAQAorVGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBub3QgY2xvbmVkIHdoZW4gdGhl
IHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xvbmVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIDEgaXMgdGVtcGxhdGUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aAorUEFTUyAw
IGlzIGNsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjIxNjJlZWM2NzUwNDU4MGRmNjVhNjVmYTIwNDdjM2E3ZDQ0MTZkNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVO
b2RlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9
InRlbXBsYXRlIj5Db250ZW50czwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9u
KCdUZXN0IHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVt
cGxhdGUgZWxlbWVudCBpcyBjbG9uZWQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxl
bWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRF
X1RBRyknKTsKKwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBs
YXRlJyk7CitzaG91bGRCZSgnMScsICd0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3Ro
Jyk7Cit2YXIgY2xvbmUgPSB0ZW1wbGF0ZS5jbG9uZU5vZGUodHJ1ZSk7CitzaG91bGRCZSgnMCcs
ICdjbG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRl
bnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmZjExNTE1YWE4Njll
NWRmYTg1MTM4YWExYWZjZDJkZWM5MzdmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3IEBACitodHRwOi8vYmF6LmNvbS9iYXQuanBnIC0gd2lsbFNlbmRSZXF1ZXN0
IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly9iYXouY29tL2JhdC5qcGcsIG1haW4gZG9jdW1lbnQg
VVJMIGluZXJ0Q29udGVudHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNl
IChudWxsKQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9iYXouY29tL2Jh
dC5qcGcKK2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjog
PE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGluZyBVUkwg
IihudWxsKSI+CitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgZWxlbWVudHMgd2l0aGluIHRlbXBsYXRl
IGNvbnRlbnRzIGFyZSAiaW5lcnQiLCBlLmcuIHJlc291cmNlcyBkbyBub3QgZmV0Y2gsIHNjcmlw
dCBkb2VzIG5vdCBydW4uCisKK3Bhc3MhCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzNjMDVlY2I5MDc5NzVkNTAxNDQ3OTUwYzNjY2U3NWExY2U5NmQ3ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250
ZW50cy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+Cit2YXIgdGVzdFZhbCA9IDE7CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNr
cygpOworICAgIH0KKworICAgIGlmICh0ZXN0VmFsICE9IDEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHZhciB0ZW1wbGF0ZUNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxh
dGUnKS5jb250ZW50OworICAgIHZhciBpbWcgPSB0ZW1wbGF0ZUNvbnRlbnQuY2hpbGROb2Rlc1sx
XTsKKyAgICBpbWcuc3JjID0gImh0dHA6Ly9iYXouY29tL2JhdC5qcGciOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGVDb250ZW50KTsKKworICAgIGlmICh0ZXN0VmFsICE9
IDIpCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRw
dXQnKS5pbm5lclRleHQgPSAncGFzcyEnOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVu
dHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMg
bm90IHJ1bi48L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c2NyaXB0PndpbmRvdy50ZXN0
VmFsID0gMjs8L3NjcmlwdD48aW1nIHNyYz0iaHR0cDovL2Zvby5jb20vYmFyLmpwZyI+Cis8L3Rl
bXBsYXRlPgorPGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Zjk3MjcwODdhM2U2NzEyMzAxMmY4NmJlN2U0YmVjODIzMjU4NjZkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5l
ckhUTUwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhlIHRlc3QgYXNzZXJ0cyB0aGF0
IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMg
Y2hpbGRyZW4gYXJlIGlnbm9yZWQuCisKKzxkaXY+Q29udGVudHMgMQorPHRlbXBsYXRlPkNvbnRl
bnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2YwM2U5
MjIwNGE1MjRlY2RkMThlMjAwYTg0M2ZiNTYyNWQxZTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgdGVtcGxhdGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91bGQg
bm90IHNlcmlhbGl6ZSc7CisgICAgdmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250ZW50
LmZpcnN0Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgaW5uZXJUZW1wbGF0ZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91bGQg
bm90IHNlcmlhbGl6ZSBlaXRoZXInOworCisgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gdGVtcGxh
dGUuaW5uZXJIVE1MOworICAgIGlmICh0ZW1wbGF0ZS5jaGlsZE5vZGVzLmxlbmd0aCAhPSAxKSAv
LyBUaGUgb25seSBjaGlsZCBzaG91bGQgYmUgdGhlIHNwYW4gdGhhdCB3YXMgYWRkZWQgYWJvdmUu
CisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQn
KS5pbm5lclRleHQgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBz
ZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuPC9w
PgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PGRpdj5Db250ZW50cyAxCisgIDx0ZW1wbGF0ZT5D
b250ZW50cyAyPC90ZW1wbGF0ZT4KKzwvZGl2PjwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQi
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25l
ckRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJmZmY1M2Q1
MTExNmFjM2EzMzViMzkyNzZjMTkyODQzOWJhMjFjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNiBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQg
b3duZXJEb2N1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1
bWVudCBpcyB0ZW1wbGF0ZS5vd25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1l
bnQgaXMgdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQK
K1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBpbm5lclRlbXBsYXRlLmNvbnRl
bnQub3duZXJEb2N1bWVudAorUEFTUyBkb2N1bWVudCBpcyB0ZW1wbGF0ZTIub3duZXJEb2N1bWVu
dAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIHRlbXBsYXRlMi5jb250ZW50
Lm93bmVyRG9jdW1lbnQKK1BBU1MgZG9jdW1lbnQgaXMgZGYub3duZXJEb2N1bWVudAorUEFTUyBk
b2N1bWVudCBpcyBzcGFuLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJE
b2N1bWVudCBpcyBkZi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQgaXMgc3Bhbi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9N
SVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZ
UEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250ZW50
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVf
TUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBkb2N1bWVudCBpcyB0ZW1wbGF0
ZTMub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIHRl
bXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJE
b2N1bWVudCBpcyB0ZW1wbGF0ZTMuY29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNzQyOGE5YWUzMDQwMTRkMmQwZWVmM2ExYzU3MzNh
ODJhYjY4MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzcGFuPjx0ZW1wbGF0ZT48L3RlbXBs
YXRlPjwvc3Bhbj48L3RlbXBsYXRlPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZTIiPjxzcGFuPjwv
c3Bhbj48L3RlbXBsYXRlPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZTMiPjxzdmc+PC9zdmc+PC90
ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxl
bWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRl
RWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBM
QVRFX1RBRyknKTsKKwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
bXBsYXRlJyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGUub3duZXJEb2N1bWVudCcp
OworCit2YXIgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlLmNvbnRlbnQu
b3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcs
ICd0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCcpOworCit2YXIgaW5u
ZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJzdENoaWxkOworc2hv
dWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAnaW5uZXJUZW1wbGF0ZS5vd25l
ckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICdp
bm5lclRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCcpOworCit2YXIgdGVtcGxhdGUyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ2RvY3VtZW50
JywgJ3RlbXBsYXRlMi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50
T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTIuY29udGVudC5vd25lckRvY3VtZW50Jyk7CisKK3Zh
ciBkZiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKK3ZhciBzcGFuID0gZGYu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKK3Nob3VsZEJlKCdk
b2N1bWVudCcsICdkZi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAnc3Bh
bi5vd25lckRvY3VtZW50Jyk7CisKK3RlbXBsYXRlLmNvbnRlbnQgPSBkZjsKK3Nob3VsZEJlKCd0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ2RmLm93bmVyRG9jdW1lbnQnKTsKK3Nob3Vs
ZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3NwYW4ub3duZXJEb2N1bWVudCcp
OworCitzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsnKTsKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoInRleHQiKTsnKTsKK2lmICh3aW5kb3cuV2ViS2l0U2hhZG93Um9vdCkg
eworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBzaG91
bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdiknKTsK
K30KKwordmFyIHRlbXBsYXRlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZTIn
KTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZTMub3duZXJEb2N1bWVudCcpOworc2hv
dWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGUzLmNvbnRlbnQu
b3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQn
LCAndGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50Jyk7CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBs
YXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmFhOGFiNGVmMTYxNzYzYjgyMmY3NzVhZjAyODA1NWYxNWU1ZjA4OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQK
QEAgLTAsMCArMSw4MjkgQEAKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAi
SGVsbG8iCisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRh
Cis8dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbD48dGVtcGxh
dGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48dGVtcGxhdGU+PGRpdj48
L2Rpdj48L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+
PHNwYW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAg
IDxzcGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxv
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PjwvdGVtcGxhdGU+PC9kaXY+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
CisjZGF0YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2
PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rp
dj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT4gICA8dGVtcGxhdGU+PC90ZW1w
bGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAiICAgIgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5
Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9k
eT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
KworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4K
K3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKwor
I2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVhZD4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGZvb3Q+Cit8ICAgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2Vs
ZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVj
dD48dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNl
bGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9u
Pjwvc2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8b3B0aW9uPgorfCAg
IDxib2R5PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwv
c2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNlbGVjdD48b3B0aW9u
Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9w
dGlvbj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48
b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+
Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2Rh
dGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxl
Y3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRo
ZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRo
ZWFkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0
YQorPGJvZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48ZGl2PjwvdGVtcGxhdGU+PC90YWJs
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8ZGl2PgorCisjZGF0YQor
PHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0
cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAgICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0
ZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAg
ICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0
ZT48dGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
ICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRl
bXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+
PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBs
YXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRh
YmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdy
b3VwPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgICAgICA8Y29sPgorCisjZGF0YQorPGZyYW1lc2V0Pjx0ZW1wbGF0ZT48ZnJh
bWU+PC9mcmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+CisKKyNkYXRhCis8dGVt
cGxhdGU+PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAg
ICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxkaXY+PGZyYW1l
c2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFu
PgorfCAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
PjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0
ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KKworI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0gMTs8L3NjcmlwdD48dGQ+PC90ZD48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAgICAgICAgPHRk
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHRyPgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+
PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RyPjx0ZD48L3RkPjwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90
ZD48dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRkPjwvdGQ+PC90
ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+
PC90ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAg
ICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90YWJsZT48dGQ+PC90
ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
Pjx0cj48L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48L3RyPjwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwv
dHI+PC90YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGJv
ZHk+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPGNhcHRpb24+Cit8ICAgICAg
ICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjwvdGFi
bGU+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGJv
ZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48dHI+PC90cj48L2Rpdj48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8ZGl2PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxlbT5IZWxsbzwvZW0+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PGVtPgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1j
b21tZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgorCisjZGF0YQorPGJvZHk+PHRlbXBs
YXRlPjxzdHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzdHlsZT4KK3wgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG1l
dGE+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48
L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRy
PgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBs
YXRlPjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9ib2R5PgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8
Ym9keSBhPWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkgYz1kPjxkaXY+PC9kaXY+PC9ib2R5
PjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICA8ZGl2PgorCisj
ZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1sIGI9Yz48c3Bhbj48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxk
aXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48
dGVtcGxhdGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48L2NvbD48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxjb2w+Cit8
ICAgICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+
PGZyYW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGZyYW1lPgor
fCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZmUzMjRiMDEyOWU2MWM5MTI0
ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1s
NWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK3Jlc291cmNlcy90
ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10
ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVhYzQ0NDliM2U5MTdhYzRkNDE5Y2I2NGZlNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCkBAIC0w
LDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0PgordmFyIHRlc3RfZmlsZXMgPSBb
CisgICdyZXNvdXJjZXMvdGVtcGxhdGUuZGF0JywKK10KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIGIv
TGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCmluZGV4IDUzYTAwMWZlZmRl
Mjg4MWFlZjYxY2QwNjkwMjcyZmM2ZTE1YjFlOTEuLmM3ZmRmMTdmMjBhNDI5YzEwYzZkOGIzYTE5
NmRmYjkwOTQ0NjJiMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMK
QEAgLTIyMCwxNiArMjIwLDI0IEBAIE1hcmt1cC5fZ2V0ID0gZnVuY3Rpb24obm9kZSwgZGVwdGgp
CiAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGlmIChub2Rl
Lm5vZGVOYW1lID09ICIjc2hhZG93LXJvb3QiKQogICAgICAgICAgIHN0ciArPSAiPHNoYWRvdzpy
b290PiI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBzdHIgKz0gIiNkb2N1bWVudC1mcmFnbWVu
dCI7CiAgICAgfQotCi0gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5s
ZW5ndGg7IGkgPCBsZW47IGkrKykgewotICAgICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9n
ZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7Ci0gICAgICAgIGlmIChzZWxlY3Rpb24pCi0gICAg
ICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQoZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKLQot
ICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEp
OworICAgIAorICAgIAorICAgIC8vIEhUTUwgVGVtcGxhdGUgZWxlbWVudHMgc2VyaWFsaXplIHRo
ZWlyIGNvbnRlbnQgRG9jdW1lbnRGcmFnbWVudCwgYW5kIE5PVCB0aGVpciBjaGlsZHJlbi4KKyAg
ICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcg
JiYgbm9kZS50YWdOYW1lID09ICdURU1QTEFURScpIHsKKyAgICAgICAgc3RyICs9IE1hcmt1cC5f
Z2V0KG5vZGUuY29udGVudCwgZGVwdGggKyAxKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3Ig
KHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIo
bm9kZSwgaSk7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uKQorICAgICAgICAgICAgICAgIHN0
ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOworICAgIAorICAgICAg
ICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsK
KyAgICAgICAgfQogICAgIH0KLQorICAgIAogICAgIHN0ciArPSBNYXJrdXAuX2dldFNoYWRvd0hv
c3RJZlBvc3NpYmxlKG5vZGUsIGRlcHRoKTsKICAgICAKICAgICB2YXIgc2VsZWN0aW9uID0gTWFy
a3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CkBAIC0yODQsNyArMjkyLDcgQEAgTWFy
a3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKIAogTWFya3VwLl9nZXRTZWxlY3Rpb25Gcm9tTm9k
ZSA9IGZ1bmN0aW9uKG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRTZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRl
ZmF1bHRWaWV3ID8gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigp
IDogbnVsbDsKIH0KIAogTWFya3VwLl9TRUxFQ1RJT05fRk9DVVMgPSAnPCNzZWxlY3Rpb24tZm9j
dXM+JzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174042</attachid>
            <date>2012-11-13 18:02:56 -0800</date>
            <delta_ts>2012-11-15 17:39:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121113180055.patch</filename>
            <type>text/plain</type>
            <size>75722</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ5OTVmYWUxYWUyMGM5
MzFiYTBhMThhMjExNjQ1MDE2NzExZjFkMS4uMGMxZDNkMzFlOTYyZDIzODQyN2I1YTA3NzRjZTMw
OTBhNTQ4NWE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvY2xvbmVOb2RlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvaW5lcnRDb250ZW50cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbAorICAgICAgICAgICAgICAgaHRtbDVs
aWIvcnVuLXRlbXBsYXRlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBjc3MvaHRtbC5jc3M6CisgICAgICAgICh0ZW1wbGF0ZSk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVO
b2Rlc1dpdGhOYW1lc3BhY2VzKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAg
ICAgIChIVE1MRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJIVE1MKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVtcGxhdGVFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
dG9IVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxUZW1wbGF0ZUVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVj
dXRlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0
Q29tbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0
VGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0
ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Om93bmVy
RG9jdW1lbnRGb3JDdXJyZW50Tm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmg6CisgICAgICAgIChIVE1MQ29u
c3RydWN0aW9uU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50U3Rh
Y2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxF
bGVtZW50U3RhY2suaDoKKyAgICAgICAgKEhUTUxFbGVtZW50U3RhY2spOgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZUVu
ZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRh
Z0ZvckluVGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSHRt
bFN0YXJ0VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNlbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3cp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGFibGVFbmRUYWdG
b3JJblRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDaGFyYWN0
ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5k
T2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnRm9ySW5IZWFkKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoK
KyAgICAgICAgKEhUTUxUcmVlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OmlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjppc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cyk6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEyLTExLTEzICBFcmlrIEFydmlkc3NvbiAg
PGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXBkYXRlIERPTUV4Y2VwdGlvbiBuYW1lOiBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYzczZGQw
ZWY2MjBlYzQ1NDE0MzllNmY5ZDFkZjdhNDc4NjA2ZTk5Ni4uZGM1MGNlYzRjYWE3NDU2MThjNGJm
ZTg0OWM5NzMzZTA4NThiODY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0xMS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm5pbmcgb24gSFRNTFRlbXBs
YXRlRWxlbWVudCBmb3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6
CisKIDIwMTItMTEtMTMgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM0MzkxLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDY5NGRmZDA1OTc1NmI1MzVkMzk1YmRmMjBhODBhNDRiODBkZTRhNjQuLjliYjI1MjI5
NDAyZDg5MjgwOTZjYzY0NDI4MTBiODYwMjZiNDdjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEx
MTQsNiArMTExNCw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50Lmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxl
RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwnLApAQCAtNDE4NCw2ICs0MTg1
LDggQEAKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5kZXggYzU2
ZWZmZTcxMmY1YjBkM2ExMGFjOWI3ZjAwOWEwZDczMmYzYzY1Yy4uOWZjNzUxMmQ0YTAwYjBmOTdj
ZGU4MDAzOGYzNjk4Yzc2NzZhY2U4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0
bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtMTI2MSw2ICsxMjYx
LDEwIEBAIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIgewogICAgIG1hcmdpbi1yaWdo
dDogMC40ZW07CiB9CiAKK3RlbXBsYXRlIHsKKyAgZGlzcGxheTogbm9uZQorfQorCiBiZGksIG91
dHB1dCB7CiAgICAgdW5pY29kZS1iaWRpOiAtd2Via2l0LWlzb2xhdGU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCBjNzE3ZmFjMTY1YzFiNDE3NWI2NjkzODk3M2M4MGRhNDUwNzM2OWJj
Li43ZTgzNzBiYTQzMTg2OWY4Mjg5MzNkZGRkM2UwMjFlNTg4NjFjMWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTU5OTYsNCArNTk5NiwxNyBAQCBMb2NhbGUmIERvY3VtZW50OjpnZXRD
YWNoZWRMb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpCiAgICAgcmV0dXJuICoocmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorRG9j
dW1lbnQqIERvY3VtZW50Ojp0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpCit7CisgICAg
aWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gdGhpczsKKworICAgIGlmICghbV90ZW1wbGF0
ZUNvbnRlbnRzT3duZXJEb2N1bWVudCkKKyAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJE
b2N1bWVudCA9IGltcGxlbWVudGF0aW9uKCktPmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7CisKKyAg
ICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudC5nZXQoKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDkyYTMy
Y2JiMzNjMDYwNGNhMjAyNGYxNjNlOTNkZWMxZTEzNjNkOTkuLjJhNzY5NzkzNmRiZDhjMDI2ZjRj
ZjU5NTUyZjIzZDc5Y2YzMmYxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTY4LDYgKzEx
NjgsMTAgQEAgcHVibGljOgogICAgIC8vIFJldHVybiBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQg
bG9jYWxlIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsIG9yIGVtcHR5LgogICAgIExvY2FsZSYgZ2V0
Q2FjaGVkTG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlID0gbnVsbEF0b20pOwogCisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBEb2N1bWVudCogdGVtcGxhdGVDb250ZW50c093
bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUq
LCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1MjIsNiAr
MTUyNiwxMCBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywg
T3duUHRyPExvY2FsZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXA7CiAgICAgTG9jYWxl
SWRlbnRpZmllclRvTG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNpZiBFTkFCTEUoVEVNUExB
VEVfVEFHKQorICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1
bWVudDsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBl
bmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHAKaW5kZXggYmViODMyZjdmNTAwOWI2YWM2MTNjMzNjZDhiNDcxZWEyMjQ3MmU2
Mi4uOGM2N2MxMjc3ZjRmNjRlNzRkMmY4ZDQ0MDlhNGFlMDRmMDY5NmYzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJLVVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAi
WExpbmtOYW1lcy5oIgpAQCAtMTQxLDcgKzE0MiwxMiBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9y
OjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdldE5vZGUsIE5vZGUqIG5v
ZAogICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAmbmFtZXNwYWNlSGFzaCk7CiAK
ICAgICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpICYmIGVs
ZW1lbnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewotICAgICAgICBmb3IgKE5vZGUq
IGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBj
dXJyZW50LT5uZXh0U2libGluZygpKQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAg
IE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSA/IHRv
SFRNTFRlbXBsYXRlRWxlbWVudCh0YXJnZXROb2RlKS0+Y29udGVudCgpLT5maXJzdENoaWxkKCkg
OiB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZWxzZQorICAgICAgICBOb2RlKiBjdXJyZW50
ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOworI2VuZGlmCisgICAgICAgIGZvciAoIDsgY3Vy
cmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICBzZXJp
YWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKGN1cnJlbnQsIG5vZGVUb1NraXAsIEluY2x1ZGVOb2Rl
LCAmbmFtZXNwYWNlSGFzaCwgdGFnTmFtZXNUb1NraXApOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oCmluZGV4IDJiMDFkNmVkNGUzZmI3MDc5NTI4MzM2NDhiZDZkNTBkMGNkMDY5
ZmMuLjAzY2I2ZWVjYWM2MDJlNmRlY2ZjMDJkOTg5Nzk2ZDQ2NjI1ZDJiNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IGlubmVySFRNTCgpIGNvbnN0OwogICAgIFN0cmluZyBvdXRlckhUTUwoKSBjb25zdDsKLSAgICB2
b2lkIHNldElubmVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmly
dHVhbCB2b2lkIHNldElubmVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0SW5uZXJUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldE91dGVyVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCmluZGV4IGQ1MTdjODQ1ODY4
N2Y4MjkxMDRlNTIwMWY4NTRlZjg4ZDNjYmRlNDQuLjdmM2IzZjQ3YzAwYjg1MTk3MjA0YTJjZGI1
OGQ4NjQwZWQ5OWUxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnRzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxs
SW5PbmUuY3BwCkBAIC0xMDYsNiArMTA2LDcgQEAKICNpbmNsdWRlICJIVE1MVGFibGVQYXJ0RWxl
bWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggODVhMWU2MWE1YTk1ODJi
MTNlNjM0Mjg5Y2RjNTNhMjJjNzZiM2UwMS4uYzQzNmY4ZGY4ODgzMzRmZDM2YjFmZDRjM2ZhN2Q2
NTYxZDdkMzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTEyNCw2ICsx
MjQsNyBAQCBzdXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdGFibGUKIHRib2R5IGludGVy
ZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRkIGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlQ2VsbEVsZW1lbnQKK3RlbXBsYXRlIGludGVyZmFjZU5hbWU9SFRNTFRlbXBsYXRlRWxlbWVu
dCwgY29uZGl0aW9uYWw9VEVNUExBVEVfVEFHCiB0ZXh0YXJlYSBpbnRlcmZhY2VOYW1lPUhUTUxU
ZXh0QXJlYUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogdGZvb3QgaW50ZXJm
YWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGggaW50ZXJmYWNlTmFtZT1IVE1MVGFi
bGVDZWxsRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzFjNjg0ZDkxODI0N2NjZWE2MTYyMDhkYmFmNTg3YjI3MjFhYzQyMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgorCisjaW5j
bHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAibWFya3VwLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworaW5saW5lIEhU
TUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCit7Cit9CisKK3ZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0SW5uZXJI
VE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJP
dXRlckhUTUwoaHRtbCwgdGhpcywgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykpCisgICAgICAg
IHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChjb250ZW50KCksIGZyYWdtZW50LnJlbGVhc2Uo
KSwgZWMpOworfQorCitIVE1MVGVtcGxhdGVFbGVtZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCgp
Cit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gSFRNTFRlbXBsYXRlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1wbGF0ZUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1lbnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxl
bWVudDo6Y29udGVudCgpCit7CisgICAgaWYgKG1fY29udGVudCkKKyAgICAgICAgcmV0dXJuIG1f
Y29udGVudC5nZXQoKTsKKworICAgIG1fY29udGVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0
ZShvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpOworICAg
IHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7Cit9CisKK3ZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6
c2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHBycENvbnRlbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjb250ZW50ID0g
cHJwQ29udGVudDsKKworICAgIGlmICghY29udGVudCB8fCBjb250ZW50LT5pc1NoYWRvd1Jvb3Qo
KSkgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1fY29udGVudCAmJiBtX2NvbnRlbnQuZ2V0KCkgPT0gY29udGVudC5n
ZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXhjZXB0aW9uQ29kZSBub2ZhaWwgPSAwOwor
ICAgIGlmIChjb250ZW50LT5vd25lckRvY3VtZW50KCkgIT0gb3duZXJEb2N1bWVudCgpLT50ZW1w
bGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpKQorICAgICAgICBvd25lckRvY3VtZW50KCktPnRl
bXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCktPmFkb3B0Tm9kZShjb250ZW50LCBub2ZhaWwp
OworICAgIEFTU0VSVCghbm9mYWlsKTsKKworICAgIG1fY29udGVudCA9IGNvbnRlbnQ7Cit9CisK
KyNpZm5kZWYgTkRFQlVHCitjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0
ZUVsZW1lbnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgKG5vZGUt
PmlzSFRNTEVsZW1lbnQoKSAmJiBub2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7Cit9
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRF
TVBMQVRFX1RBRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzkwODMzZWJlMGFiNDNhMzc2YjYwYjY0YjViMzIzNmMxODk2MjVkNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBA
IC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgSFRN
TFRlbXBsYXRlRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFRlbXBsYXRlRWxlbWVudCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1
YWwgfkhUTUxUZW1wbGF0ZUVsZW1lbnQoKTsKKworICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRl
bnQoKTsKKworICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
LCBFeGNlcHRpb25Db2RlJik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBIVE1MVGVtcGxhdGVF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCisgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKK307CisKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1l
bnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKik7CisKK2lubGluZSBIVE1MVGVt
cGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBy
ZXR1cm4gY29uc3RfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4odG9IVE1MVGVtcGxhdGVFbGVt
ZW50KHN0YXRpY19jYXN0PGNvbnN0IE5vZGUqPihub2RlKSkpOworfQorCisjaWZkZWYgTkRFQlVH
CitpbmxpbmUgY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50
KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgLy8gRklYTUU6IEFkZCBkZWJ1ZyBhc3NlcnRzLgor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7
Cit9CisjZW5kaWYgLy8gTkRFQlVHCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNlbmRpZiAvLyBIVE1MVGVtcGxhdGVFbGVtZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQxZjY1ZmZkYWI3YzIxZjI3YWVhNzM2Mjc5Y2I2MDEyMjY3OTViODQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPVRFTVBMQVRFX1RBRworICAgIF0gSFRNTFRlbXBsYXRlRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKKyAgICAgICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudCBzZXR0ZXIg
cmFpc2VzIChET01FeGNlcHRpb24pOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggMmVhOTA0ZGVhYzA3
MGVjYTVjMDAxZWYzNGUzMmM1NzMxYjhmNzcxMC4uNmJlYTQzZmQ2OGU4ZTdkZGJkOThkZmYyYWUx
OTNiMzI0ZmU4NTMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxQ
YXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxTdGFja0l0ZW0uaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUg
IkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTc3LDYgKzc4LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0FsbFdoaXRlc3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAKIHN0YXRpYyBpbmxpbmUg
dm9pZCBleGVjdXRlVGFzayhIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7CisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodGFzay5wYXJlbnQtPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpKQorICAgICAgICB0YXNrLnBhcmVudCA9IHRvSFRNTFRlbXBsYXRlRWxlbWVudCh0
YXNrLnBhcmVudC5nZXQoKSktPmNvbnRlbnQoKTsKKyNlbmRpZgorCiAgICAgaWYgKHRhc2submV4
dENoaWxkKQogICAgICAgICB0YXNrLnBhcmVudC0+cGFyc2VySW5zZXJ0QmVmb3JlKHRhc2suY2hp
bGQuZ2V0KCksIHRhc2submV4dENoaWxkLmdldCgpKTsKICAgICBlbHNlCkBAIC0yNDksNyArMjU1
LDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0RG9jdHlwZShBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0Q29tbWVudChB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIEFTU0VSVCh0b2tlbi0+dHlwZSgpID09IEhU
TUxUb2tlblR5cGVzOjpDb21tZW50KTsKLSAgICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgpLCBD
b21tZW50OjpjcmVhdGUoY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgdG9rZW4tPmNvbW1lbnQo
KSkpOworICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNyZWF0ZShvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgdG9rZW4tPmNvbW1lbnQoKSkpOwogfQogCiB2b2lk
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50T25Eb2N1bWVudChBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQpAQCAtMzUzLDYgKzM1OSwxMSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VN
bwogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkKICAgICAgICAgZmluZEZvc3RlclNpdGUo
dGFzayk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0YXNrLnBhcmVudC0+
aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVt
cGxhdGVFbGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAg
ICAvLyBTdHJpbmdzIGNvbXBvc2VkIGVudGlyZWx5IG9mIHdoaXRlc3BhY2UgYXJlIGxpa2VseSB0
byBiZSByZXBlYXRlZC4KICAgICAvLyBUdXJuIHRoZW0gaW50byBBdG9taWNTdHJpbmcgc28gd2Ug
c2hhcmUgYSBzaW5nbGUgc3RyaW5nIGZvciBlYWNoLgogICAgIGJvb2wgc2hvdWxkVXNlQXRvbWlj
U3RyaW5nID0gd2hpdGVzcGFjZU1vZGUgPT0gQWxsV2hpdGVzcGFjZQpAQCAtMzg5LDE4ICs0MDAs
MjggQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3Ry
aW5nJiBjaGFyYWN0ZXJzLCBXaGl0ZXNwYWNlTW8KIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENv
bnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbiwgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkkpCiB7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdO
YW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCBuYW1lc3BhY2VVUkkpOwotICAgIFJlZlB0cjxF
bGVtZW50PiBlbGVtZW50ID0gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVu
dCh0YWdOYW1lLCB0cnVlKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IG93bmVyRG9j
dW1lbnRGb3JDdXJyZW50Tm9kZSgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOwogICAg
IGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsK
IH0KIAoraW5saW5lIERvY3VtZW50KiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVu
dEZvckN1cnJlbnROb2RlKCkKK3sKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmIChj
dXJyZW50Tm9kZSgpLT5pc0VsZW1lbnROb2RlKCkgJiYgY3VycmVudEVsZW1lbnQoKS0+aGFzVGFn
TmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHJldHVybiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQo
Y3VycmVudEVsZW1lbnQoKSktPmNvbnRlbnQoKS0+ZG9jdW1lbnQoKTsKKyNlbmRpZgorICAgIHJl
dHVybiBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpOworfQorCiBQYXNzUmVmUHRyPEVsZW1lbnQ+
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudChBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogewogICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5h
bWUoKSwgeGh0bWxOYW1lc3BhY2VVUkkpOwogICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IHVzZSBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCBiZWNhdXNlIHdlCiAgICAgLy8gaGF2
ZSB0byBwYXNzIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudC4gIFdlIHNob3VsZCByZXdvcmsgZm9y
bSBhc3NvY2lhdGlvbgogICAgIC8vIHRvIG9jY3VyIGFmdGVyIGNvbnN0cnVjdGlvbiB0byBhbGxv
dyBiZXR0ZXIgY29kZSBzaGFyaW5nIGhlcmUuCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQg
PSBIVE1MRWxlbWVudEZhY3Rvcnk6OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIGN1cnJlbnRO
b2RlKCktPmRvY3VtZW50KCksIGZvcm0oKSwgdHJ1ZSk7CisKKyAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwg
b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAgZWxlbWVu
dC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbik7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7
CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwpAQCAtNDY0LDYgKzQ4NSwxNCBAQCB2b2lk
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkKIAogdm9pZCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUoSFRNTENvbnN0cnVjdGlvblNpdGVU
YXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgSFRNTEVsZW1lbnRT
dGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRlbXBsYXRlRWxlbWVudCA9IG1fb3BlbkVsZW1lbnRz
LnRvcG1vc3QodGVtcGxhdGVUYWcubG9jYWxOYW1lKCkpOworICAgIGlmIChsYXN0VGVtcGxhdGVF
bGVtZW50ICYmICFtX29wZW5FbGVtZW50cy5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7CisgICAg
ICAgIHRhc2sucGFyZW50ID0gbGFzdFRlbXBsYXRlRWxlbWVudC0+ZWxlbWVudCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50
UmVjb3JkKiBsYXN0VGFibGVFbGVtZW50UmVjb3JkID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0
YWJsZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgaWYgKGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQpIHsK
ICAgICAgICAgRWxlbWVudCogbGFzdFRhYmxlRWxlbWVudCA9IGxhc3RUYWJsZUVsZW1lbnRSZWNv
cmQtPmVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5oCmluZGV4IDYwNTcyYmRkODU2Mjc0NDVjYmQ4NjVhOTY3OWQyZmViYTVm
NmE4ZGMuLjdkOWZjYzY1YjJhODRiNjQ4NTk5NThmYWU4N2Q4N2VkNzA4M2Q1MGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaApAQCAt
MTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKiBjdXJyZW50Tm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcE5vZGUoKTsgfQogICAgIEhUTUxTdGFj
a0l0ZW0qIGN1cnJlbnRTdGFja0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50
b3BTdGFja0l0ZW0oKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIG9uZUJlbG93VG9wKCkgY29uc3Qg
eyByZXR1cm4gbV9vcGVuRWxlbWVudHMub25lQmVsb3dUb3AoKTsgfQotCisgICAgRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAgIEhUTUxFbGVtZW50U3RhY2sqIG9w
ZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsgfQogICAgIEhUTUxG
b3JtYXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIGNvbnN0IHsg
cmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IDZjMjIwYzk3MzlhNjQw
MjBlZDBmMjdjYzMyMDFiMmM0ZTAxNjE1NzguLjg2NWQ2NTAzN2MxYzA5MDE5MGY5YjE2NWJhNzRk
MzRkNGZkOWVkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxF
bGVtZW50U3RhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVt
ZW50U3RhY2suY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNSb290
Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQogCiBuYW1lc3BhY2UgewogCitpbmxpbmUgYm9vbCBp
c0hUTUxOb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCit7CisgICAgcmV0dXJuIGlzUm9vdE5vZGUo
aXRlbSk7Cit9CisKIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZShhcHBsZXRUYWcpCkBAIC02NCw2ICs2
OSw5IEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKICAg
ICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykKICAg
ICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKICAgICAgICAgfHwg
aXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRF
X1RBRykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgog
ICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC03Nyw2ICs4NSw5IEBAIGlubGlu
ZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogaW5saW5l
IGJvb2wgaXNUYWJsZVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0
dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykK
KyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAg
ICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC04NSwxMiArOTYsMTggQEAgaW5saW5lIGJv
b2wgaXNUYWJsZUJvZHlTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogICAgIHJldHVy
biBpdGVtLT5oYXNUYWdOYW1lKHRib2R5VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KHRmb290VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRoZWFkVGFnKQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIAogaW5saW5lIGJv
b2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0
dXJuIGl0ZW0tPmhhc1RhZ05hbWUodHJUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAg
ICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8
fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC01MjcsNiArNTQ0LDEzIEBAIGJvb2wgSFRNTEVs
ZW1lbnRTdGFjazo6aW5TZWxlY3RTY29wZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKSBj
b25zdAogICAgIHJldHVybiBpblNlbGVjdFNjb3BlKHRhZ05hbWUubG9jYWxOYW1lKCkpOwogfQog
CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKK2Jvb2wgSFRNTEVsZW1lbnRTdGFjazo6aGFzVGVt
cGxhdGVJbkhUTUxTY29wZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGluU2NvcGVDb21tb248aXNI
VE1MTm9kZT4obV90b3AuZ2V0KCksIHRlbXBsYXRlVGFnLmxvY2FsTmFtZSgpKTsKK30KKyNlbmRp
ZgorCiBFbGVtZW50KiBIVE1MRWxlbWVudFN0YWNrOjpodG1sRWxlbWVudCgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1fcm9vdE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TEVsZW1lbnRTdGFjay5oCmluZGV4IDg3M2NiZGViOTViOGVkYTA2YjNiZTgwYmQ5NWNhN2QyMzg5
MTFiYTMuLmQ5NmNjY2Q4MDk0N2RhYjYxOTExYTI2YjM4YjNmYWUzMzk2NzlmYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKQEAgLTE1MCw3ICsx
NTAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc09ubHlPbmVFbGVtZW50KCkgY29uc3Q7CiAg
ICAgYm9vbCBzZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSBjb25zdDsKLQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgYm9vbCBoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29u
c3Q7CisjZW5kaWYKICAgICBFbGVtZW50KiBodG1sRWxlbWVudCgpIGNvbnN0OwogICAgIEVsZW1l
bnQqIGhlYWRFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCogYm9keUVsZW1lbnQoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmlu
ZGV4IGM3ODU2MmIzM2MxOWJkMmM1NzFkNTliYTU1YzZhM2QwN2UyMmM4ZDcuLjEyMzFjMDNhYzlk
NmMxOGZjODhmMDY0NzNjN2UwZTMwN2M0YzgxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg
IkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxTdGFja0l0ZW0uaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTM2MCw3ICszNjEsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2VuKQog
ICAgIC8vIHN5bmNocm9ub3VzbHkgcmUtZW50ZXJzIHRoZSBwYXJzZXIuIFdlIGRvbid0IGNsZWFy
IHRoZSB0b2tlbiBpbW1lZGF0ZWx5CiAgICAgLy8gZm9yIENoYXJhY3RlciB0b2tlbnMgYmVjYXVz
ZSB0aGUgQXRvbWljSFRNTFRva2VuIGF2b2lkcyBjb3B5aW5nIHRoZQogICAgIC8vIGNoYXJhY3Rl
cnMgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgYnVmZmVyIGluIHRoZQot
ICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVhbnRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1
c2UgdXNlIHRvIHJlLWVudGVyCisgICAgLy8gSFRNTFRva2VuLiBGb3J0dW5hdGVseSwgQ2hhcmFj
dGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKICAgICAvLyB0aGUgcGFyc2Vy
LgogICAgIC8vCiAgICAgLy8gRklYTUU6IFN0b3AgY2xlYXJpbmcgdGhlIHJhd1Rva2VuIG9uY2Ug
d2Ugc3RhcnQgcnVubmluZyB0aGUgcGFyc2VyIG9mZgpAQCAtNjcyLDggKzY3Myw4IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gYm9keVRhZykgewogICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRz
KCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25k
RWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNP
bmx5T25lRWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhU
TUxTY29wZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBs
YXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
bV9mcmFtZXNldE9rID0gZmFsc2U7CkBAIC02ODMsNyArNjg0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQog
ICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7CiAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25kRWxl
bWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5
T25lRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMo
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFtX2ZyYW1l
c2V0T2spCkBAIC05NDQsMTAgKzk0NSwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAg
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50
cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiB9CiAKKyNpZiBFTkFC
TEUoVEVNUExBVEVfVEFHKQordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZUVu
ZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIGlmICghbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5pblNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisgICAgICAgIHBhcnNlRXJyb3IodG9r
ZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRF
bmRUYWdzKCk7CisgICAgaWYgKCFtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLT5oYXNMb2NhbE5h
bWUodG9rZW4tPm5hbWUoKSkpCisgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgIG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4tPm5hbWUoKSk7CisgICAgbV90
cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1hcmtlcigpOworICAg
IHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKK30KKyNlbmRpZgorCiBib29sIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpCiB7
CiAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cm9vdE5vZGUoKSkgewpAQCAtMTAxMiw3ICsxMDM1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKICAgICAgICAgaWYgKCFwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRhYmxlKCkpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwpAQCAtMTAzOSw2
ICsxMDYyLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRh
YmxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+cG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9j
ZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vu
ZGlmCiAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJl
ZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRpcmVjdGVyKG1fdHJlZSk7CiAgICAgcHJvY2Vz
c1N0YXJ0VGFnRm9ySW5Cb2R5KHRva2VuKTsKQEAgLTExNTMsNiArMTE4MiwxMiBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgICAgICBtX3RyZWUuaW5zZXJ0U2VsZkNsb3NpbmdIVE1MRWxlbWVudCh0b2tlbik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQor
ICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAg
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICghcHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5D
b2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTc3LDcgKzEyMTIsNyBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAg
IGlmIChpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5uYW1lKCkpIHx8IGlzVGFibGVC
b2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgc2xvdy4KICAgICAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRh
YmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAg
cGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQpAQCAtMTIwMiw3ICsxMjM3LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFy
dFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgfHwgaXNDYXB0aW9uQ29s
T3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKQogICAgICAgICAgICAgfHwgaXNUYWJsZUJvZHlD
b250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgICAgICBpZiAoIXByb2Nlc3NUckVu
ZFRhZ0ZvckluUm93KCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0
ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKQEAg
LTEyODAsNiArMTMxNSwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFn
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJ
bkhlYWQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcp
IHsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZToKQEAgLTEzNTks
NiArMTQwMCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21p
Y0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGRpZFByb2Nlc3Ms
IGRpZFByb2Nlc3MpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcp
IHsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNl
IEluVGFibGVUZXh0TW9kZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CkBAIC0x
MzY3LDEyICsxNDE0LDQ3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIFRleHRNb2RlOgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRl
bnRzTW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5h
bWUoKSA9PSBsaW5rVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHNjcmlwdFRh
ZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzdHlsZVRhZworICAgICAgICAgICAg
fHwgdG9rZW4tPm5hbWUoKSA9PSBtZXRhVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgp
ID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQo
dG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKElu
RnJhbWVzZXRNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBjb2xUYWcp
CisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKKyAgICAg
ICAgZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBp
c1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCisgICAgICAgICAgICBzZXRJbnNl
cnRpb25Nb2RlKEluVGFibGVNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9
PSB0clRhZykKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsK
KyAgICAgICAgZWxzZSBpZiAoaXNUYWJsZUNlbGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQor
ICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworCisgICAgICAgIHByb2Nl
c3NTdGFydFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyNlbmRpZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7
CiAgICAgcGFyc2VFcnJvcih0b2tlbik7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBp
ZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkpIHsKKyAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0luQm9k
eSh0b2tlbik7CiB9CiAKQEAgLTE1NDIsOCArMTYyNCwxNCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgICAgICBsYXN0ID0g
dHJ1ZTsKICAgICAgICAgICAgIGl0ZW0gPSBIVE1MU3RhY2tJdGVtOjpjcmVhdGUobV9mcmFnbWVu
dENvbnRleHQuY29udGV4dEVsZW1lbnQoKSwgSFRNTFN0YWNrSXRlbTo6SXRlbUZvckNvbnRleHRF
bGVtZW50KTsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlm
IChpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbmRpZgogICAgICAgICBpZiAo
aXRlbS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7CisjaWYgIUVOQUJMRShURU1QTEFURV9UQUcp
CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZW5kaWYKICAgICAg
ICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRUYWcpIHx8IGl0ZW0tPmhhc1RhZ05hbWUo
dGhUYWcpKQpAQCAtMTU1NSwxOSArMTY0MywyNSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVz
ZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdO
YW1lKGNhcHRpb25UYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5D
YXB0aW9uTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkg
eworI2lmICFFTkFCTEUoVEVNUExBVEVfVEFHKQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9k
ZShJbkNvbHVtbkdyb3VwTW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1Rh
Z05hbWUodGFibGVUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5U
YWJsZU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShoZWFkVGFnKSkgeworI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBpZiAobV9mcmFnbWVudENvbnRleHQu
ZnJhZ21lbnQoKSAmJiBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxlbWVudCgpID09IGl0ZW0t
Pm5vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlN
b2RlKTsKKyNlbHNlCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKyNlbmRpZgor
ICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5IZWFkTW9kZSk7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoYm9keVRhZykpCiAgICAgICAgICAgICBy
ZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhh
c1RhZ05hbWUoZnJhbWVzZXRUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0
TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZykp
IHsKQEAgLTE1OTgsNyArMTY5Miw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5k
VGFnRm9ySW5UYWJsZUJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4t
Pm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93Lgog
ICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFn
LmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhl
YWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29w
ZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxh
dGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNjI4LDcgKzE3MjIsNyBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluUm93KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgfQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIGlmICgh
cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1w
bGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKQEAgLTE2ODEsNyAr
MTc3NSwxMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHRyVGFn
CiAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAg
ICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLT5uYW1l
KCkpKSB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgICAgIEFTU0VSVChpc1Rh
YmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5pblRhYmxlU2NvcGUodGVtcGxhdGVUYWcpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2Vs
c2UKICAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUo
KSkgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZW5kaWYKICAgICAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODIxLDYgKzE5
MTksMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhiclRhZyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxh
dGVFbmRUYWcodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgcHJv
Y2Vzc0FueU90aGVyRW5kVGFnRm9ySW5Cb2R5KHRva2VuKTsKIH0KIApAQCAtMTg0Miw3ICsxOTQ2
LDcgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDYXB0aW9uRW5kVGFnRm9ySW5DYXB0
aW9uKCkKIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiB7
CiAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0clRhZy5sb2Nh
bE5hbWUoKSkpIHsKLSAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAg
IC8vIEZJWE1FOiBwYXJzZSBlcnJvcgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAt
MTg1Niw3ICsxOTYwLDcgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0Zv
ckluUm93KCkKIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRh
YmxlKCkKIHsKICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRh
YmxlVGFnKSkgewotICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAg
Ly8gRklYTUU6IHBhcnNlIGVycm9yLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAt
MTkxMyw2ICsyMDE3LDE1IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNl
IEluSGVhZE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTW9k
ZSk7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNhc2Ugc2hvdWxkIGJlIGJyb2tlbiBvdXQgaW50
byBwcm9jZXNzRW5kVGFnRm9ySW5IZWFkLAorICAgICAgICAvLyBiZWNhdXNlIG90aGVyIGVuZCB0
YWcgY2FzZXMgbm93IHJlZmVyIHRvIGl0ICgicHJvY2VzcyB0aGUgdG9rZW4gZm9yIHVzaW5nIHRo
ZSBydWxlcyBvZiB0aGUgImluIGhlYWQiIGluc2VydGlvbiBtb2RlIikuCisgICAgICAgIC8vIGJ1
dCBiZWNhdXNlIHRoZSBsb2dpYyBmYWxscyB0aHJvdWdoIHRvIEFmdGVySGVhZE1vZGUsIHRoYXQg
Z2V0cyBhIGxpdHRsZSBtZXNzeS4KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1Rl
bXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2Vu
ZGlmCiAgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgICAg
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wSFRNTEhlYWRFbGVtZW50KCk7CiAgICAgICAgICAg
ICBzZXRJbnNlcnRpb25Nb2RlKEFmdGVySGVhZE1vZGUpOwpAQCAtMTk3Nyw2ICsyMDkwLDEyIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRU
YWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgaWYgKCFwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTIwNTIsNyArMjE3MSwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
ZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgSW5GcmFtZXNldE1vZGU6CiAgICAg
ICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5GcmFtZXNldE1vZGUpOwogICAgICAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewotICAgICAgICAgICAgaWYgKG1fdHJl
ZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgewor
ICAgICAgICAgICAgYm9vbCBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyAgPSBtX3Ry
ZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCk7Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgICAgIGlnbm9yZUZyYW1lc2V0Rm9yRnJh
Z21lbnRQYXJzaW5nID0gaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcgfHwgbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7CisjZW5kaWYKKyAgICAg
ICAgICAgIGlmIChpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZykgeworICAgICAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAg
ICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CkBAIC0yMDYxLDYgKzIxODUsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgICAg
ICBzZXRJbnNlcnRpb25Nb2RlKEFmdGVyRnJhbWVzZXRNb2RlKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tl
bi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVF
bmRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZToKICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckZyYW1lc2V0TW9kZSk7CkBAIC0yMTE5LDExICsyMjQ5
LDMxIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tl
biogdG9rZW4pCiAgICAgICAgICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAg
ICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5UYWJsZVRleHRNb2Rl
OgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKICAgICAgICAgcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01vZGU6
CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0g
dGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRl
bSgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSk7CisgICAgICAgICAgICBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnBvcCgpOworICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlh
dGVseSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNldEluc2Vy
dGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOworI2Vs
c2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCkBAIC0yMjI0LDggKzIzNzQsMTQgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAg
IH0KICAgICBjYXNlIEluQm9keU1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgorICAgIGNh
c2UgVGVtcGxhdGVDb250ZW50c01vZGU6CiAgICAgY2FzZSBJbkNlbGxNb2RlOiB7CisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJv
ZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBJbkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBUZW1wbGF0ZUNvbnRlbnRz
TW9kZSk7CisjZWxzZQorICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpICE9IFRlbXBsYXRl
Q29udGVudHNNb2RlKQogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1v
ZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEluQ2VsbE1vZGUpOworI2VuZGlmCiAgICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJG
b3JJbkJvZHkoYnVmZmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjM2MCw3ICsyNTE2
LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiAgICAgY2FzZSBJbkNlbGxNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9k
ZToKICAgICBjYXNlIEluUm93TW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAg
ICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5z
ZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVD
b250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBU
ZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25N
b2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsK
KyNlbmRpZgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBFbWl0IHBhcnNlIGVycm9yIGJh
c2VkIG9uIHdoYXQgZWxlbWVudHMgYXJlIHN0aWxsIG9wZW4uCiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQWZ0ZXJCb2R5TW9kZToKQEAgLTI0MDksNiArMjU3MCwxMSBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAg
ICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlKTsKICAgICAgICAgcHJv
Y2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFRlbXBsYXRl
Q29udGVudHNNb2RlOgorICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9w
cmlhdGVseSgpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3RyZWUuY3Vy
cmVudE5vZGUoKSk7CiAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BBbGwoKTsKQEAgLTI1
MTIsNiArMjY3OCwxNCBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9y
SW5IZWFkKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwcm9jZXNzRmFrZUVu
ZFRhZyhzY3JpcHRUYWcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewor
ICAgICAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigp
OworICAgICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOworICAgICAgICBzZXRJ
bnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorI2VuZGlmCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDhmZjBmNThiMzQ1ZmZm
M2U0NTViNWFmZmVmNjVlMTAyZjZkNWJmZmEuLmNkMDFjMWQ0ZWVjYmE1MzNiNTgyOTlmOTNlMjZk
YjY3MDY1OWRlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCkBAIC02Nyw2ICs2NywxMiBAQCBwdWJsaWM6CiAgICAgfkhUTUxUcmVlQnVpbGRlcigp
OwogCiAgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFn
bWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAg
Ym9vbCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7IH0KKyAgICBib29sIGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5n
RnJhZ21lbnQoKSB8fCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCk7IH0KKyNlbHNlCisgICAg
Ym9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJu
IGlzUGFyc2luZ0ZyYWdtZW50KCkgfQorI2VuZGlmCiAKICAgICB2b2lkIGRldGFjaCgpOwogCkBA
IC05Nyw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgICAgICBJbkhlYWRNb2RlLAogICAgICAgICBJ
bkhlYWROb3NjcmlwdE1vZGUsCiAgICAgICAgIEFmdGVySGVhZE1vZGUsCisgICAgICAgIFRlbXBs
YXRlQ29udGVudHNNb2RlLAogICAgICAgICBJbkJvZHlNb2RlLAogICAgICAgICBUZXh0TW9kZSwK
ICAgICAgICAgSW5UYWJsZU1vZGUsCkBAIC0xOTAsNiArMTk3LDEwIEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIAorI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVFbmRUYWcoQXRvbWljSFRNTFRv
a2VuKik7CisjZW5kaWYKKwogICAgIGNsYXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQgewogICAg
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggZGU1ZWI3ZTE4MjgyZmU0MzQy
NzFkNDNhYWY5NjhhMTlhMTYzZmQzNS4uNDg4OTdhNjczYzYxODBhNmJhM2NjMTllNDI4NTkxMDY0
YWI0NDQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDYzLDYgKzQ2Myw3IEBA
CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVFbGVt
ZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVSb3dFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRh
YmxlUm93RWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKKyAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVRFTVBMQVRFX1RBR10gSFRNTFRlbXBsYXRlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZW1w
bGF0ZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25zdHJ1Y3Rv
ciBIVE1MVGV4dEFyZWFFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGl0bGVFbGVtZW50Q29u
c3RydWN0b3IgSFRNTFRpdGxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxVTGlzdEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkKaW5kZXggZjM4NmRlYjc3NjI4OTIwYWYzYjdmZjIwNWI5Zjg2MTk1Y2JhYmQxZC4uNzYy
M2YzYjc4NTBjNTdmODc0OGViMjYwMjcwOThiNzZhNDM0N2MxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTEwLDYgKzExMCw3IEBACiAgICAgICAnRU5BQkxFX1NWR19G
T05UUz08KGVuYWJsZV9zdmcpJywKICAgICAgICdFTkFCTEVfVEVYVF9BVVRPU0laSU5HPTEnLAog
ICAgICAgJ0VOQUJMRV9UT1VDSF9BREpVU1RNRU5UPTEnLAorICAgICAgJ0VOQUJMRV9URU1QTEFU
RV9UQUc9MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0VWRU5UUz08KGVuYWJsZV90b3VjaF9ldmVu
dHMpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HPTwoZW5hYmxlX3RvdWNoX2lj
b25fbG9hZGluZyknLAogICAgICAgJ0VOQUJMRV9UT1VDSF9TTElERVI9MScsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTQx
YTE5NDUyMjI4MThhZjRkYjhkNTQzNDliMzY3MDIxOGU2MzU5Yi4uZjlmODkyZDZiNzc2MjM5MTdl
NTdhM2ZmODIyMGI0MWNlMzdkY2ZjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTExLTEz
ICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1w
bGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9k
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvY2xvbmVOb2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1w
bGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5u
ZXJIVE1MLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0OiBBZGRlZC4KKyAgICAgICAgKiBodG1s
NWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodG1sNWxp
Yi9ydW4tdGVtcGxhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzOgorICAgICAgICAoTWFya3VwLl9nZXQpOgorICAgICAgICAoTWFya3VwLl9nZXRT
ZWxlY3Rpb25Gcm9tTm9kZSk6CisKIDIwMTItMTEtMTMgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgRE9NRXhjZXB0aW9uIG5hbWU6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNj
MzU5OTk5YTQ1MTc4M2E3MDJiYzNhMDE3MGIwNmMzMWM5YTBmNGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJl
IG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxhdGUgZWxlbWVudCBpcyBjbG9uZWQKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgMSBpcyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxk
Tm9kZXMubGVuZ3RoCitQQVNTIDAgaXMgY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Ns
b25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9j
bG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjE2MmVlYzY3NTA0NTgwZGY2NWE2NWZhMjA0N2Mz
YTdkNDQxNmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPkNvbnRlbnRzPC90ZW1wbGF0ZT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgbm90
IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZCcpOworCitpZiAoIXdp
bmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1
aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCcxJywgJ3RlbXBsYXRlLmNvbnRl
bnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKK3ZhciBjbG9uZSA9IHRlbXBsYXRlLmNsb25lTm9kZSh0
cnVlKTsKK3Nob3VsZEJlKCcwJywgJ2Nsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsK
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUxMzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENv
bnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly9iYXouY29tL2JhdC5q
cGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL2Jhei5jb20vYmF0
LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5lcnRDb250ZW50cy5odG1sLCBodHRwIG1ldGhvZCBH
RVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZworaHR0cDovL2Jhei5jb20vYmF0LmpwZyAtIGRpZEZh
aWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29k
ZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KK1RoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVt
ZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2Vz
IGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi4KKworcGFzcyEKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29u
dGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2MwNWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2NjZTc1YTFj
ZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsKKword2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
UmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgfQorCisgICAgaWYgKHRlc3RWYWwgIT0gMSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIHRlbXBsYXRlQ29udGVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNvbnRlbnQ7CisgICAgdmFyIGltZyA9IHRlbXBsYXRl
Q29udGVudC5jaGlsZE5vZGVzWzFdOworICAgIGltZy5zcmMgPSAiaHR0cDovL2Jhei5jb20vYmF0
LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRlbnQpOwor
CisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1lbnRzIHdp
dGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJjZXMgZG8gbm90
IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUi
PjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAyOzwvc2NyaXB0PjxpbWcgc3JjPSJodHRwOi8vZm9v
LmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhU
TUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2YmU3ZTRi
ZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitU
aGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0
aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdub3JlZC4KKworPGRpdj5Db250ZW50
cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEzZjAzZTkyMjA0YTUyNGVjZGQxOGUyMDBhODQzZmI1NjI1ZDFlOWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwor
ICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOwor
ICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSku
aW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplJzsKKyAgICB2YXIgaW5uZXJUZW1wbGF0
ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBp
bm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSku
aW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplIGVpdGhlcic7CisKKyAgICB0ZW1wbGF0
ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7CisgICAgaWYgKHRlbXBsYXRlLmNoaWxk
Tm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBvbmx5IGNoaWxkIHNob3VsZCBiZSB0aGUgc3BhbiB0
aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9IHRlbXBsYXRlLmlubmVySFRNTDsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVt
cGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGls
ZHJlbiBhcmUgaWdub3JlZC48L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48ZGl2PkNvbnRl
bnRzIDEKKyAgPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+PC90ZW1wbGF0
ZT4KKzxkaXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYmZmZjUzZDUxMTE2YWMzYTMzNWIzOTI3NmMxOTI4NDM5YmEyMWMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9v
d25lckRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IEhUTUxUZW1w
bGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGRvY3VtZW50IGlzIHRlbXBsYXRlLm93bmVyRG9jdW1lbnQKK1BBU1Mg
ZG9jdW1lbnQgaXMgbm90IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3du
ZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGlubmVyVGVt
cGxhdGUub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlz
IGlubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIHRl
bXBsYXRlMi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQg
aXMgdGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyBkb2N1bWVudCBpcyBkZi5v
d25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIHNwYW4ub3duZXJEb2N1bWVudAorUEFTUyB0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGRmLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBzcGFuLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVt
cGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1Mg
dGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7IHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQ
QVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IGRvY3VtZW50IGlzIHRlbXBsYXRlMy5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyB0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIHRlbXBsYXRlMy5jb250ZW50LmZpcnN0Q2hp
bGQub3duZXJEb2N1bWVudAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA3NDI4YTlhZTMw
NDAxNGQyZDBlZWYzYTFjNTczM2E4MmFiNjgyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sCkBAIC0w
LDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PHNw
YW4+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zcGFuPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9
InRlbXBsYXRlMiI+PHNwYW4+PC9zcGFuPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBs
YXRlMyI+PHN2Zz48L3N2Zz48L3RlbXBsYXRlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbign
VGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCcpOworCitpZiAo
IXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCBy
ZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1w
bGF0ZS5vd25lckRvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
ID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Oworc2hvdWxkTm90QmUoJ2RvY3VtZW50
JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNv
bnRlbnRPd25lckRvY3VtZW50JywgJ3RlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRv
Y3VtZW50Jyk7CisKK3ZhciBpbm5lclRlbXBsYXRlID0gdGVtcGxhdGUuY29udGVudC5maXJzdENo
aWxkLmZpcnN0Q2hpbGQ7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcs
ICdpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRl
bnRPd25lckRvY3VtZW50JywgJ2lubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Jyk7
CisKK3ZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUyJyk7
CitzaG91bGRCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGUyLm93bmVyRG9jdW1lbnQnKTsKK3Nob3Vs
ZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3RlbXBsYXRlMi5jb250ZW50Lm93
bmVyRG9jdW1lbnQnKTsKKwordmFyIGRmID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCgpOwordmFyIHNwYW4gPSBkZi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
cGFuJykpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ2RmLm93bmVyRG9jdW1lbnQnKTsKK3Nob3Vs
ZEJlKCdkb2N1bWVudCcsICdzcGFuLm93bmVyRG9jdW1lbnQnKTsKKwordGVtcGxhdGUuY29udGVu
dCA9IGRmOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAnZGYub3du
ZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAn
c3Bhbi5vd25lckRvY3VtZW50Jyk7CisKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOycpOworc2hvdWxkVGhyb3coJ3RlbXBsYXRl
LmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOycpOworaWYgKHdpbmRv
dy5XZWJLaXRTaGFkb3dSb290KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIHNob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoZGl2KScpOworfQorCit2YXIgdGVtcGxhdGUzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlMy5v
d25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcs
ICd0ZW1wbGF0ZTMuY29udGVudC5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTMuY29udGVudC5maXJzdENoaWxkLm93bmVy
RG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1s
NWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3Vy
Y2VzL3RlbXBsYXRlLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWE4YWI0ZWYxNjE3NjNiODIyZjc3NWFmMDI4
MDU1ZjE1ZTVmMDg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVz
b3VyY2VzL3RlbXBsYXRlLmRhdApAQCAtMCwwICsxLDgyOSBAQAorI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT5IZWxsbzwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICJIZWxsbyIK
K3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48L3RlbXBsYXRlPjxkaXY+PC9kaXY+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KKwor
I2RhdGEKKzxodG1sPjx0ZW1wbGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgICJIZWxsbyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxo
ZWFkPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2PjwvdGVtcGxhdGU+PC9oZWFkPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgIDxib2R5PgorCisjZGF0YQor
PGRpdj48dGVtcGxhdGU+PGRpdj48c3Bhbj48L3RlbXBsYXRlPjxiPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAg
PGRpdj4KK3wgICAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgIDxiPgorCisjZGF0YQorPGRpdj48
dGVtcGxhdGU+PC9kaXY+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzxk
aXY+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3Rl
bXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PGRpdj48dGVtcGxhdGU+PC90ZW1w
bGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxl
PiAgIDx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgICIg
ICAiCit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKwor
I2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90
Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFi
bGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJs
ZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PC90ZW1w
bGF0ZT48L3RoZWFkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+
PHRmb290Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGZvb3Q+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAg
IDx0Zm9vdD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zZWxlY3Q+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvdGVtcGxh
dGU+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHRlbXBs
YXRlPjxvcHRpb24+PC9vcHRpb24+PC9zZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8b3B0aW9uPgorfCAg
ICAgICAgIDxvcHRpb24+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjxvcHRpb24+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgIDxvcHRpb24+CisKKyNk
YXRhCis8c2VsZWN0PjxvcHRpb24+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zZWxlY3Q+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVj
dD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0
ZT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPG9wdGlvbj4K
KworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdGFibGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRkPgorCisjZGF0YQor
PHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICA8dGhlYWQ+CisKKyNkYXRhCis8Ym9keT48dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RyPjxk
aXY+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAg
ICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwv
dGhlYWQ+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0YQorPHRhYmxl
Pjx0aGVhZD48dGVtcGxhdGU+PHRyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
Pjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4KKworI2RhdGEK
Kzx0YWJsZT48dHI+PHRlbXBsYXRlPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5Pgor
fCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0
ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBs
YXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+Cit8ICAg
ICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRkPjwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0
ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRlbXBs
YXRlPjx0cj48L3RyPjwvdGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KK3wgICAgICAg
ICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PGNvbGdyb3VwPjx0ZW1wbGF0ZT48Y29sPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8ZnJh
bWVzZXQ+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+PC9mcmFtZXNldD4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxm
cmFtZT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L2ZyYW1lc2V0PjxmcmFt
ZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDxmcmFtZT4KK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8
dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2PjxzcGFuPjwvc3Bhbj48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2
PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgICAgPHNwYW4+Cit8ICAgPGJvZHk+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2Pjxz
cGFuPjwvc3Bhbj48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgICAgIDxzcGFuPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzY3JpcHQ+dmFyIGkgPSAx
Ozwvc2NyaXB0Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzY3JpcHQ+Cit8ICAgICAgICAgICAidmFyIGkg
PSAxOyIKK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjxkaXY+
PC9kaXY+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxib2R5
Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRy
PgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjwv
dHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworCisjZGF0YQorPGJv
ZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjx0Ym9keT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAg
ICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjxjYXB0aW9uPjwv
Y2FwdGlvbj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjxjb2xncm91cD48L2NhcHRpb24+PHRkPjwvdGQ+PC90
ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+
PC90ZD48L3RhYmxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRib2R5Pjx0cj48L3RyPjwvdGVtcGxhdGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0
cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PGNh
cHRpb24+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48L3RhYmxlPjx0cj48L3RyPjwvdGVtcGxhdGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wg
ICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRoZWFkPjwvdGhlYWQ+PGNh
cHRpb24+PC9jYXB0aW9uPjx0Ym9keT48L3Rib2R5PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAg
ICA8Y2FwdGlvbj4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+
PHRoZWFkPjwvdGhlYWQ+PC90YWJsZT48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPjwvYm9keT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRo
ZWFkPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48ZGl2Pjx0
cj48L3RyPjwvZGl2PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGVt
PkhlbGxvPC9lbT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8ZW0+Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PCEtLWNvbW1lbnQtLT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8IS0tIGNvbW1lbnQgLS0+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHN0eWxlPjwvc3R5bGU+PHRkPjwvdGQ+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHN0eWxlPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48bWV0YT48
dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8bWV0YT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48
dGVtcGxhdGU+PGxpbms+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGxpbms+Cit8ICAgICAgICAgPHRkPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0
ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRh
YmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD48L2NvbD48L3RlbXBsYXRlPjwvY29sZ3JvdXA+
PC90YWJsZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAg
ICAgPGNvbD4KKworI2RhdGEKKzxib2R5IGE9Yj48dGVtcGxhdGU+PGRpdj48L2Rpdj48Ym9keSBj
PWQ+PGRpdj48L2Rpdj48L2JvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICBhPSJiIgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2Pgor
fCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxkaXY+PGh0bWwg
Yj1jPjxzcGFuPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
YT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5Pgor
CisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjxodG1sIGI9Yz48Y29sPjwv
Y29sPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIK
K3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgICA8Y29sPgorfCAgIDxib2R5PgorCisjZGF0YQor
PGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48aHRtbCBiPWM+PGZyYW1lPjwvZnJh
bWU+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBhPSJiIgor
fCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0OWIzZTkxN2Fj
NGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVu
LXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQ+
Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQnLAorXQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
ZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAu
anMKaW5kZXggNTNhMDAxZmVmZGUyODgxYWVmNjFjZDA2OTAyNzJmYzZlMTViMWU5MS4uYzdmZGYx
N2YyMGE0MjljMTBjNmQ4YjNhMTk2ZGZiOTA5NDQ2MmIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNl
cy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIwLDE2ICsyMjAsMjQgQEAgTWFya3VwLl9nZXQgPSBm
dW5jdGlvbihub2RlLCBkZXB0aCkKICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9E
RToKICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ctcm9vdCIpCiAgICAgICAg
ICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHN0ciAr
PSAiI2RvY3VtZW50LWZyYWdtZW50IjsKICAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMCwgbGVu
ID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIHZhciBz
ZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKLSAgICAgICAg
aWYgKHNlbGVjdGlvbikKLSAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCAr
IDEpICsgc2VsZWN0aW9uOwotCi0gICAgICAgIHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNoaWxk
Tm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgCisgICAgCisgICAgLy8gSFRNTCBUZW1wbGF0ZSBl
bGVtZW50cyBzZXJpYWxpemUgdGhlaXIgY29udGVudCBEb2N1bWVudEZyYWdtZW50LCBhbmQgTk9U
IHRoZWlyIGNoaWxkcmVuLgorICAgIGlmIChub2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RFTVBMQVRFJykgeworICAg
ICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jb250ZW50LCBkZXB0aCArIDEpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVu
Z3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAu
X2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24p
CisgICAgICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxl
Y3Rpb247CisgICAgCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGlsZE5v
ZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgc3RyICs9
IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVwdGgpOwogICAgIAogICAg
IHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKQEAg
LTI4NCw3ICsyOTIsNyBAQCBNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQID0gewogCiBNYXJrdXAu
X2dldFNlbGVjdGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKIHsKLSAgICByZXR1cm4gbm9k
ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpOworICAgIHJldHVybiBu
b2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPyBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVs
dFZpZXcuZ2V0U2VsZWN0aW9uKCkgOiBudWxsOwogfQogCiBNYXJrdXAuX1NFTEVDVElPTl9GT0NV
UyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174571</attachid>
            <date>2012-11-15 17:37:27 -0800</date>
            <delta_ts>2012-11-28 11:30:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121115173524.patch</filename>
            <type>text/plain</type>
            <size>78516</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJmZTMyYjA1YjlmYmM3
YmExZTZkOTRhMWUyNjhlNDkzNWQ1MzY4Ni4uYTIxODJiYTgyZGM5M2VhOGNlYmViZGU4MjMzNGZi
ZGRiMDM0MDcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMTUgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+
CiAKICAgICAgICAgW0dUS10gU3BsaXQgV2ViQ29yZS9wbGF0Zm9ybSBpbnRvIGEgc2VwYXJhdGUg
bGlicmFyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhY2Q4MTY0NzAyMjY0ODg5MWM5
YzFmZTk3ZjE3NmRjNmU3YzY0MDlkLi4xMzc2ZDE1NmYxN2FkYmUwMjIwNjUyNDBiMzMzYmMxNjQ5
OTdhNzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTExLTEzICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgSW1wbGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVHVybmluZyBvbiBIVE1MVGVtcGxhdGVFbGVtZW50IGZv
ciBjaHJvbWl1bSBwb3J0LgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0xMS0x
NSAgWXVlIFpoYW5nICA8enlzeHFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgSWdub3JlIGF1dG9j
b21wbGV0ZT1vZmYgZm9yIGNocm9tZSBnZW5lcmF0ZWQgcGFzc3dvcmRzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGYxZDMwN2E2MzUwYzk0YmI0Zjg2ZDQ3ZTUzNDYxOWUzMzg4NzE5M2IuLjRjMDkyOGIy
YjhiZDYxMTUxNjhlNDY1OGIwOWEzYzI2YmFkN2I5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEx
MjAsNiArMTEyMCw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50Lmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxl
RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwnLApAQCAtNDE5OCw2ICs0MTk5
LDggQEAKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5kZXggNGEx
ZTMzNTY4Y2IxNTdhNzIzZjBjN2FmYTY5N2MzNDA5MjY2NjE2OC4uY2ZlODcwNTNkYzcyMGE0ZTM0
NzkyNWFlNjk5MzkyNTgyMzljYTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0
bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtMTI2Miw2ICsxMjYy
LDEwIEBAIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIgewogICAgIG1hcmdpbi1yaWdo
dDogMC40ZW07CiB9CiAKK3RlbXBsYXRlIHsKKyAgICBkaXNwbGF5OiBub25lCit9CisKIGJkaSwg
b3V0cHV0IHsKICAgICB1bmljb2RlLWJpZGk6IC13ZWJraXQtaXNvbGF0ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDdlYzNkNTcxMjJlMjYxMDMzNDA4YzM0MDRlMmM3NzI5NzFhMDA0
YzAuLmQxYTU3ODY3M2EzNmJhNWU5ZDg5MWI3MDkwNzg5ZmQyMGQwNTkzZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNjAwMiw0ICs2MDAyLDIxIEBAIExvY2FsZSYgRG9jdW1lbnQ6Omdl
dENhY2hlZExvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKICAgICByZXR1cm4gKihy
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCitE
b2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkKK3sKKyAg
ICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlzOworCisgICAgaWYgKCFtX3RlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgp
KQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1
bWVudDo6Y3JlYXRlKDAsIEtVUkwoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fdGVt
cGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtVUkwoKSk7
CisgICAgfQorCisgICAgcmV0dXJuIG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQuZ2V0
KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCA5MmEzMmNiYjMzYzA2MDRjYTIwMjRmMTYzZTkzZGVjMWUxMzYzZDk5Li4yYTc2OTc5
MzZkYmQ4YzAyNmY0Y2Y1OTU1MmYyM2Q3OWNmMzJmMTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTE2OCw2ICsxMTY4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm4gYSBMb2NhbGUgZm9y
IHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbCBvciBlbXB0eS4KICAg
ICBMb2NhbGUmIGdldENhY2hlZExvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSA9IG51
bGxBdG9tKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgRG9jdW1lbnQqIHRlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIERv
Y3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwog
CkBAIC0xNTIyLDYgKzE1MjYsMTAgQEAgcHJpdmF0ZToKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIE93blB0cjxMb2NhbGU+ID4gTG9jYWxlSWRlbnRpZmllclRvTG9jYWxlTWFw
OwogICAgIExvY2FsZUlkZW50aWZpZXJUb0xvY2FsZU1hcCBtX2xvY2FsZUNhY2hlOworCisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVDb250
ZW50c093bmVyRG9jdW1lbnQ7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpu
b3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGJlYjgzMmY3ZjUwMDliNmFjNjEzYzMzY2Q4
YjQ3MWVhMjI0NzJlNjIuLjhjNjdjMTI3N2Y0ZjY0ZTc0ZDJmOGQ0NDA5YTRhZTA0ZjA2OTZmMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50
LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKQEAgLTE0MSw3ICsxNDIsMTIgQEAgdm9pZCBNYXJr
dXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlKiB0YXJnZXRO
b2RlLCBOb2RlKiBub2QKICAgICAgICAgYXBwZW5kU3RhcnRUYWcodGFyZ2V0Tm9kZSwgJm5hbWVz
cGFjZUhhc2gpOwogCiAgICAgaWYgKCEodGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9j
dW1lbnQoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyh0YXJnZXROb2RlKSkpIHsKLSAgICAg
ICAgZm9yIChOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50
OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKKyNpZiBFTkFCTEUoVEVNUExBVEVf
VEFHKQorICAgICAgICBOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+aGFzVGFnTmFtZSh0ZW1w
bGF0ZVRhZykgPyB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFyZ2V0Tm9kZSktPmNvbnRlbnQoKS0+
Zmlyc3RDaGlsZCgpIDogdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOworI2Vsc2UKKyAgICAgICAg
Tm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNlbmRpZgorICAgICAg
ICBmb3IgKCA7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQogICAg
ICAgICAgICAgc2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhjdXJyZW50LCBub2RlVG9Ta2lw
LCBJbmNsdWRlTm9kZSwgJm5hbWVzcGFjZUhhc2gsIHRhZ05hbWVzVG9Ta2lwKTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggOWM2NjRhYjk3Y2NhOWE0YmNlNGVl
M2E0M2Q0YmMzMWQ1ZmJjMzJiYy4uMDY3ZWYzMTJmNzE4MGM0MDk2ODNjYjkzNGM5NDRiNjZhNjFm
ZmMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAi
UmVuZGVyV29yZEJyZWFrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgpAQCAt
MzQzLDggKzM0NCwxNCBAQCBTdHJpbmcgSFRNTEVsZW1lbnQ6Om91dGVySFRNTCgpIGNvbnN0CiAK
IHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2Ny
aXB0aW5nQ29udGVudCwgZWMpKQotICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQo
dGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgaWYgKFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwoaHRtbCwg
dGhpcywgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykpIHsKKyAgICAgICAgQ29udGFpbmVyTm9k
ZSogY29udGFpbmVyID0gdGhpczsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBp
ZiAoaGFzTG9jYWxOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgICAgIGNvbnRhaW5lciA9IHRv
SFRNTFRlbXBsYXRlRWxlbWVudCh0aGlzKS0+Y29udGVudCgpOworI2VuZGlmCisgICAgICAgIHJl
cGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2UoKSwg
ZWMpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgbWVyZ2VXaXRoTmV4dFRleHROb2RlKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCmluZGV4IGQ1MTdjODQ1ODY4N2Y4MjkxMDRlNTIw
MWY4NTRlZjg4ZDNjYmRlNDQuLjdmM2IzZjQ3YzAwYjg1MTk3MjA0YTJjZGI1OGQ4NjQwZWQ5OWUx
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCkBA
IC0xMDYsNiArMTA2LDcgQEAKICNpbmNsdWRlICJIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50LmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggODVhMWU2MWE1YTk1ODJiMTNlNjM0Mjg5Y2Rj
NTNhMjJjNzZiM2UwMS4uYzQzNmY4ZGY4ODgzMzRmZDM2YjFmZDRjM2ZhN2Q2NTYxZDdkMzAwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTEyNCw2ICsxMjQsNyBAQCBzdXAg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogdGFibGUKIHRib2R5IGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1l
bnQKK3RlbXBsYXRlIGludGVyZmFjZU5hbWU9SFRNTFRlbXBsYXRlRWxlbWVudCwgY29uZGl0aW9u
YWw9VEVNUExBVEVfVEFHCiB0ZXh0YXJlYSBpbnRlcmZhY2VOYW1lPUhUTUxUZXh0QXJlYUVsZW1l
bnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogdGZvb3QgaW50ZXJmYWNlTmFtZT1IVE1M
VGFibGVTZWN0aW9uRWxlbWVudAogdGggaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2YzYzM0YjQ5MjRhOWFmYjYxMzI0Y2M0MGFlZWU0YmQ0NGUyY2M2OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKQEAgLTAs
MCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcp
CisKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCisKKyNpbmNsdWRlICJET01JbXBs
ZW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJI
VE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitpbmxpbmUgSFRNTFRlbXBsYXRlRWxl
bWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
K3sKK30KKworSFRNTFRlbXBsYXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQoKQorewor
fQorCitQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGVtcGxhdGVFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7Cit9CisKK0RvY3VtZW50RnJhZ21lbnQqIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6
OmNvbnRlbnQoKQoreworICAgIGlmICghbV9jb250ZW50KQorICAgICAgICBtX2NvbnRlbnQgPSBE
b2N1bWVudEZyYWdtZW50OjpjcmVhdGUob3duZXJEb2N1bWVudCgpLT50ZW1wbGF0ZUNvbnRlbnRz
T3duZXJEb2N1bWVudCgpKTsKKworICAgIHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7Cit9CisKK3Zv
aWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IHBycENvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBjb250ZW50ID0gcHJwQ29udGVudDsKKworICAgIGlmICghY29udGVudCB8
fCBjb250ZW50LT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hf
RVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fY29udGVudCAmJiBtX2Nv
bnRlbnQuZ2V0KCkgPT0gY29udGVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGNvbnRlbnQtPm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29u
dGVudHNPd25lckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVD
b250ZW50c093bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRlbnQsIEFTU0VSVF9OT19FWENF
UFRJT04pOworCisgICAgbV9jb250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBOREVCVUcK
K2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBO
b2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVudCgp
ICYmIG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTUxMzNk
ZGM3NzljZGExZmQ3NmNlMjVmNWE0NjQyMWQxOWVmNDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50
X2gKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBIVE1MVGVtcGxhdGVFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRlbXBsYXRl
RWxlbWVudCgpOworCisgICAgRG9jdW1lbnRGcmFnbWVudCogY29udGVudCgpOworCisgICAgdm9p
ZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUm
KTsKKworcHJpdmF0ZToKKyAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworCisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVu
dDsKK307CisKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVu
dChjb25zdCBOb2RlKik7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1w
bGF0ZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxIVE1MVGVt
cGxhdGVFbGVtZW50Kj4odG9IVE1MVGVtcGxhdGVFbGVtZW50KHN0YXRpY19jYXN0PGNvbnN0IE5v
ZGUqPihub2RlKSkpOworfQorCisjaWZkZWYgTkRFQlVHCisKKy8vIFRoZSBkZWJ1ZyB2ZXJzaW9u
IG9mIHRoaXMsIHdpdGggYXNzZXJ0aW9ucywgaXMgbm90IGlubGluZWQuCitpbmxpbmUgY29uc3Qg
SFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqIG5v
ZGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQq
Pihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKKworI2VuZGlmIC8vIEhUTUxUZW1wbGF0
ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDFmNjVmZmRhYjdjMjFmMjdhZWE3MzYyNzljYjYwMTIyNjc5NWI4NAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5p
ZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAg
ICAgQ29uZGl0aW9uYWw9VEVNUExBVEVfVEFHCisgICAgXSBIVE1MVGVtcGxhdGVFbGVtZW50IDog
SFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1dGUgRG9jdW1lbnRGcmFnbWVudCBjb250ZW50
IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA5YzE4
MmJhMjM0M2I0ZTUxMzlhMzIwMjI2MDgxNGVkMDQ5NTkxOWQ4Li44YmI4YzkyZGI5ODk3MWExNDE1
NTk4YmQzMTM2YzI1ODZhNmM3MjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAj
aW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNzcsNiArNzgsMTEgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzQWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIAogc3RhdGlj
IGlubGluZSB2b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykK
IHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFzVGFn
TmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxhdGVF
bGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAgICBpZiAo
dGFzay5uZXh0Q2hpbGQpCiAgICAgICAgIHRhc2sucGFyZW50LT5wYXJzZXJJbnNlcnRCZWZvcmUo
dGFzay5jaGlsZC5nZXQoKSwgdGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwogICAgIGVsc2UKQEAgLTI0
Nyw3ICsyNTMsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRD
b21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLT50eXBl
KCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwotICAgIGF0dGFjaExhdGVyKGN1cnJlbnRO
b2RlKCksIENvbW1lbnQ6OmNyZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0b2tlbi0+
Y29tbWVudCgpKSk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6Y3Jl
YXRlKG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CiB9
CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3VtZW50KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC0zNTEsNiArMzU3LDExIEBAIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hp
dGVzcGFjZU1vCiAgICAgaWYgKHNob3VsZEZvc3RlclBhcmVudCgpKQogICAgICAgICBmaW5kRm9z
dGVyU2l0ZSh0YXNrKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2su
cGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFzay5wYXJlbnQgPSB0
b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250ZW50KCk7CisjZW5k
aWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQgZW50aXJlbHkgb2Ygd2hpdGVzcGFjZSBhcmUg
bGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8vIFR1cm4gdGhlbSBpbnRvIEF0b21pY1N0cmlu
ZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcgZm9yIGVhY2guCiAgICAgYm9vbCBzaG91bGRV
c2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9kZSA9PSBBbGxXaGl0ZXNwYWNlCkBAIC0zODcs
MTggKzM5OCwyNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShj
b25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogUGFzc1JlZlB0cjxFbGVtZW50
PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRv
a2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkKIHsKICAgICBRdWFsaWZpZWRO
YW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVzcGFjZVVSSSk7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCktPmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1
ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygp
LCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVs
ZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQqIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQoreworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisg
ICAgaWYgKGN1cnJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSAmJiBjdXJyZW50RWxlbWVudCgp
LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTFRlbXBsYXRl
RWxlbWVudChjdXJyZW50RWxlbWVudCgpKS0+Y29udGVudCgpLT5kb2N1bWVudCgpOworI2VuZGlm
CisgICAgcmV0dXJuIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCk7Cit9CisKIFBhc3NSZWZQdHI8
RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hU
TUxUb2tlbiogdG9rZW4pCiB7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0
b2tlbi0+bmFtZSgpLCB4aHRtbE5hbWVzcGFjZVVSSSk7CiAgICAgLy8gRklYTUU6IFRoaXMgY2Fu
J3QgdXNlIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50IGJlY2F1c2Ugd2UKICAg
ICAvLyBoYXZlIHRvIHBhc3MgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50LiAgV2Ugc2hvdWxkIHJl
d29yayBmb3JtIGFzc29jaWF0aW9uCiAgICAgLy8gdG8gb2NjdXIgYWZ0ZXIgY29uc3RydWN0aW9u
IHRvIGFsbG93IGJldHRlciBjb2RlIHNoYXJpbmcgaGVyZS4KLSAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwg
Y3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgZm9ybSgpLCB0cnVlKTsKKyAgICBSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFn
TmFtZSwgb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAg
ZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1l
bnQoKSk7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwpAQCAtNDYyLDYgKzQ4MiwxNCBA
QCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkKIAog
dm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUoSFRNTENvbnN0cnVjdGlv
blNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgSFRNTEVs
ZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRlbXBsYXRlRWxlbWVudCA9IG1fb3BlbkVs
ZW1lbnRzLnRvcG1vc3QodGVtcGxhdGVUYWcubG9jYWxOYW1lKCkpOworICAgIGlmIChsYXN0VGVt
cGxhdGVFbGVtZW50ICYmICFtX29wZW5FbGVtZW50cy5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7
CisgICAgICAgIHRhc2sucGFyZW50ID0gbGFzdFRlbXBsYXRlRWxlbWVudC0+ZWxlbWVudCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBIVE1MRWxlbWVudFN0YWNrOjpF
bGVtZW50UmVjb3JkKiBsYXN0VGFibGVFbGVtZW50UmVjb3JkID0gbV9vcGVuRWxlbWVudHMudG9w
bW9zdCh0YWJsZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgaWYgKGxhc3RUYWJsZUVsZW1lbnRSZWNv
cmQpIHsKICAgICAgICAgRWxlbWVudCogbGFzdFRhYmxlRWxlbWVudCA9IGxhc3RUYWJsZUVsZW1l
bnRSZWNvcmQtPmVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IDYwNTcyYmRkODU2Mjc0NDVjYmQ4NjVhOTY3OWQy
ZmViYTVmNmE4ZGMuLjdkOWZjYzY1YjJhODRiNjQ4NTk5NThmYWU4N2Q4N2VkNzA4M2Q1MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUu
aApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKiBjdXJyZW50
Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcE5vZGUoKTsgfQogICAgIEhU
TUxTdGFja0l0ZW0qIGN1cnJlbnRTdGFja0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVt
ZW50cy50b3BTdGFja0l0ZW0oKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIG9uZUJlbG93VG9wKCkg
Y29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMub25lQmVsb3dUb3AoKTsgfQotCisgICAgRG9j
dW1lbnQqIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAgIEhUTUxFbGVtZW50U3Rh
Y2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsgfQogICAg
IEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIGNv
bnN0IHsgcmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IDZjMjIwYzk3
MzlhNjQwMjBlZDBmMjdjYzMyMDFiMmM0ZTAxNjE1NzguLjg2NWQ2NTAzN2MxYzA5MDE5MGY5YjE2
NWJhNzRkMzRkNGZkOWVkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxFbGVtZW50U3RhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxFbGVtZW50U3RhY2suY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQogCiBuYW1lc3BhY2UgewogCitpbmxpbmUg
Ym9vbCBpc0hUTUxOb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCit7CisgICAgcmV0dXJuIGlzUm9v
dE5vZGUoaXRlbSk7Cit9CisKIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRl
bSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZShhcHBsZXRUYWcpCkBAIC02
NCw2ICs2OSw5IEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRh
ZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKICAgICAg
ICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpCisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNl
bmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC03Nyw2ICs4NSw5IEBA
IGlubGluZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQog
aW5saW5lIGJvb2wgaXNUYWJsZVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAg
ICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRF
X1RBRykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgog
ICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC04NSwxMiArOTYsMTggQEAgaW5s
aW5lIGJvb2wgaXNUYWJsZUJvZHlTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogICAg
IHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRib2R5VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNU
YWdOYW1lKHRmb290VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRoZWFkVGFnKQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIAogaW5s
aW5lIGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAg
ICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodHJUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAg
ICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC01MjcsNiArNTQ0LDEzIEBAIGJvb2wg
SFRNTEVsZW1lbnRTdGFjazo6aW5TZWxlY3RTY29wZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lKSBjb25zdAogICAgIHJldHVybiBpblNlbGVjdFNjb3BlKHRhZ05hbWUubG9jYWxOYW1lKCkp
OwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKK2Jvb2wgSFRNTEVsZW1lbnRTdGFjazo6
aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGluU2NvcGVDb21t
b248aXNIVE1MTm9kZT4obV90b3AuZ2V0KCksIHRlbXBsYXRlVGFnLmxvY2FsTmFtZSgpKTsKK30K
KyNlbmRpZgorCiBFbGVtZW50KiBIVE1MRWxlbWVudFN0YWNrOjpodG1sRWxlbWVudCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1fcm9vdE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5oCmluZGV4IDg3M2NiZGViOTViOGVkYTA2YjNiZTgwYmQ5NWNh
N2QyMzg5MTFiYTMuLmQ5NmNjY2Q4MDk0N2RhYjYxOTExYTI2YjM4YjNmYWUzMzk2NzlmYTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKQEAgLTE1
MCw3ICsxNTAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc09ubHlPbmVFbGVtZW50KCkgY29u
c3Q7CiAgICAgYm9vbCBzZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSBjb25zdDsKLQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgYm9vbCBoYXNUZW1wbGF0ZUluSFRNTFNjb3Bl
KCkgY29uc3Q7CisjZW5kaWYKICAgICBFbGVtZW50KiBodG1sRWxlbWVudCgpIGNvbnN0OwogICAg
IEVsZW1lbnQqIGhlYWRFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCogYm9keUVsZW1lbnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwCmluZGV4IGM3ODU2MmIzM2MxOWJkMmM1NzFkNTliYTU1YzZhM2QwN2UyMmM4ZDcuLmViMGFj
MWYyZmJhMzgxZDRhZjk1ZTQyZTEzNmNiNjBkOGJhODRmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxTdGFja0l0ZW0uaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5o
IgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTM2MCw3ICszNjEsNyBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rv
a2VuKQogICAgIC8vIHN5bmNocm9ub3VzbHkgcmUtZW50ZXJzIHRoZSBwYXJzZXIuIFdlIGRvbid0
IGNsZWFyIHRoZSB0b2tlbiBpbW1lZGF0ZWx5CiAgICAgLy8gZm9yIENoYXJhY3RlciB0b2tlbnMg
YmVjYXVzZSB0aGUgQXRvbWljSFRNTFRva2VuIGF2b2lkcyBjb3B5aW5nIHRoZQogICAgIC8vIGNo
YXJhY3RlcnMgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgYnVmZmVyIGlu
IHRoZQotICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVhbnRlbHksIENoYXJhY3RlciB0b2tlbnMgY2Fu
J3QgY2F1c2UgdXNlIHRvIHJlLWVudGVyCisgICAgLy8gSFRNTFRva2VuLiBGb3J0dW5hdGVseSwg
Q2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKICAgICAvLyB0aGUg
cGFyc2VyLgogICAgIC8vCiAgICAgLy8gRklYTUU6IFN0b3AgY2xlYXJpbmcgdGhlIHJhd1Rva2Vu
IG9uY2Ugd2Ugc3RhcnQgcnVubmluZyB0aGUgcGFyc2VyIG9mZgpAQCAtNjcyLDggKzY3Myw4IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gYm9keVRhZykg
ewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
c2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5oYXNPbmx5T25lRWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxh
dGVJbkhUTUxTY29wZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRP
clRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CkBAIC02ODMsNyArNjg0LDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7CiAgICAgICAgIHBh
cnNlRXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vj
b25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5o
YXNPbmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFt
X2ZyYW1lc2V0T2spCkBAIC05NDQsMTAgKzk0NSw0MCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAg
IHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAg
ICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorI2VuZGlmCiAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0Vs
ZW1lbnRzKCk7CiAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKIH0KIAorI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVt
cGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIG1fdHJlZS5hY3Rp
dmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5kTWFya2VyKCk7CisgICAgbV90cmVlLmluc2Vy
dEhUTUxFbGVtZW50KHRva2VuKTsKKyAgICBzZXRJbnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVu
dHNNb2RlKTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZUVuZFRh
ZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50
cygpLT5pblNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRU
YWdzKCk7CisgICAgaWYgKCFtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLT5oYXNMb2NhbE5hbWUo
dG9rZW4tPm5hbWUoKSkpCisgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4tPm5hbWUoKSk7CisgICAgbV90cmVl
LmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1hcmtlcigpOworICAgIHJl
c2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKK30KKyNlbmRpZgorCiBib29sIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpCiB7CiAg
ICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9v
dE5vZGUoKSkgewpAQCAtMTAxMiw3ICsxMDQzLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAo
dG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
ICAgICAgICAgaWYgKCFwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRhYmxlKCkpIHsKLSAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwpAQCAtMTAzOSw2ICsx
MDcwLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxl
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykK
KyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNz
VGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJl
Y3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKICAgICBwcm9jZXNzU3Rh
cnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTE1Myw2ICsxMTkwLDEyIEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAg
ICAgICAgIG1fdHJlZS5pbnNlcnRTZWxmQ2xvc2luZ0hUTUxFbGVtZW50KHRva2VuKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAg
ICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9j
ZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1u
R3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Nyw3ICsxMjIwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBpZiAo
aXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNv
bnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlz
IHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNj
b3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRh
YmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsKLSAgICAgICAgICAgICAgICBB
U1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAg
LTEyMDIsNyArMTI0NSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHx8IGlzQ2FwdGlvbkNvbE9yQ29s
Z3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAgICAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4
dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdG
b3JJblJvdygpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250
ZW50cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xMjgw
LDYgKzEzMjMsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFk
KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7Cisg
ICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZToKQEAgLTEzNTksNiArMTQw
OCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGRpZFByb2Nlc3MsIGRpZFBy
b2Nlc3MpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBM
QVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAg
ICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5UYWJs
ZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKQEAgLTEzNjcsMTIg
KzE0MjIsNTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgVGV4dE1vZGU6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2Rl
OgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tl
bik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodG9rZW4t
Pm5hbWUoKSA9PSBsaW5rVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHNjcmlw
dFRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzdHlsZVRhZworICAgICAgICAg
ICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBtZXRhVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3Rh
cnRUYWdGb3JJbkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCisgICAgICAgICAgICBzZXRJ
bnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5h
bWUoKSA9PSBjb2xUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3Jv
dXBNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tl
bi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCisgICAg
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAo
dG9rZW4tPm5hbWUoKSA9PSB0clRhZykKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5U
YWJsZUJvZHlNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNUYWJsZUNlbGxDb250ZXh0VGFnKHRv
a2VuLT5uYW1lKCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwor
CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiB7CiAgICAgcGFyc2VFcnJvcih0b2tlbik7CisjaWYgRU5BQkxFKFRFTVBM
QVRFX1RBRykKKyAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRN
TFNjb3BlKCkpIHsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEh0
bWxTdGFydFRhZ0luQm9keSh0b2tlbik7CiB9CiAKQEAgLTE1NDIsOCArMTYzNiwxMSBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAg
ICAgICAgICBsYXN0ID0gdHJ1ZTsKICAgICAgICAgICAgIGl0ZW0gPSBIVE1MU3RhY2tJdGVtOjpj
cmVhdGUobV9mcmFnbWVudENvbnRleHQuY29udGV4dEVsZW1lbnQoKSwgSFRNTFN0YWNrSXRlbTo6
SXRlbUZvckNvbnRleHRFbGVtZW50KTsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9U
QUcpCisgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbmRp
ZgogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5z
ZXJ0aW9uTW9kZShJblNlbGVjdE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5o
YXNUYWdOYW1lKHRkVGFnKSB8fCBpdGVtLT5oYXNUYWdOYW1lKHRoVGFnKSkKQEAgLTE1NTUsMTkg
KzE2NTIsMjAgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJv
cHJpYXRlbHkoKQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKICAg
ICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQ2FwdGlvbk1vZGUpOwogICAgICAg
ICBpZiAoaXRlbS0+aGFzVGFnTmFtZShjb2xncm91cFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25N
b2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZSh0YWJsZVRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJ
blRhYmxlTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGhlYWRUYWcpKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Ci0gICAgICAgICAgICByZXR1
cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgICAgICAgICAgaWYgKG1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCkgJiYgbV9mcmFn
bWVudENvbnRleHQuY29udGV4dEVsZW1lbnQoKSA9PSBpdGVtLT5ub2RlKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisjZW5kaWYKKyAgICAg
ICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluSGVhZE1vZGUpOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQogICAgICAgICAgICAgcmV0dXJu
IHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdO
YW1lKGZyYW1lc2V0VGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5GcmFtZXNldE1vZGUp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGh0bWxUYWcpKSB7CkBA
IC0xNTk4LDcgKzE2OTYsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0Zv
ckluVGFibGVCb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgc2xvdy4KICAgICAg
ICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Ym9keVRhZy5sb2Nh
bE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRoZWFkVGFn
LmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGZv
b3RUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSk7CiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQpAQCAtMTYyOCw3ICsxNzI2LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NFbmRUYWdGb3JJblJvdyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIH0K
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICBpZiAoIXByb2Nl
c3NUckVuZFRhZ0ZvckluUm93KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVD
b250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NF
UlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xNjgxLDcgKzE3Nzks
MTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkNlbGwoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSB0clRhZwogICAg
ICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAg
aWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0b2tlbi0+bmFtZSgpKSkg
eworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJv
ZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5U
YWJsZVNjb3BlKHRlbXBsYXRlVGFnKSB8fCBpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNlbHNlCiAg
ICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8
IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2VuZGlmCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRv
a2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTgyMSw2ICsxOTIzLDEy
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hU
TUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcoYnJUYWcpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5k
VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIHByb2Nlc3NB
bnlPdGhlckVuZFRhZ0ZvckluQm9keSh0b2tlbik7CiB9CiAKQEAgLTE4NDIsNyArMTk1MCw3IEBA
IGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2FwdGlvbkVuZFRhZ0ZvckluQ2FwdGlvbigp
CiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogewogICAg
IGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodHJUYWcubG9jYWxOYW1l
KCkpKSB7Ci0gICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNT
RVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBG
SVhNRTogcGFyc2UgZXJyb3IKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE4NTYs
NyArMTk2NCw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJv
dygpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSgp
CiB7CiAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0YWJsZVRh
ZykpIHsKLSAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgIC8vIEZJ
WE1FOiBwYXJzZSBlcnJvci4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE5MTMs
NiArMjAyMSwxNSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhl
YWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOwor
ICAgICAgICAvLyBGSVhNRTogVGhpcyBjYXNlIHNob3VsZCBiZSBicm9rZW4gb3V0IGludG8gcHJv
Y2Vzc0VuZFRhZ0ZvckluSGVhZCwKKyAgICAgICAgLy8gYmVjYXVzZSBvdGhlciBlbmQgdGFnIGNh
c2VzIG5vdyByZWZlciB0byBpdCAoInByb2Nlc3MgdGhlIHRva2VuIGZvciB1c2luZyB0aGUgcnVs
ZXMgb2YgdGhlICJpbiBoZWFkIiBpbnNlcnRpb24gbW9kZSIpLgorICAgICAgICAvLyBidXQgYmVj
YXVzZSB0aGUgbG9naWMgZmFsbHMgdGhyb3VnaCB0byBBZnRlckhlYWRNb2RlLCB0aGF0IGdldHMg
YSBsaXR0bGUgbWVzc3kuCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0
ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBoZWFkVGFnKSB7CiAgICAgICAgICAgICBtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPnBvcEhUTUxIZWFkRWxlbWVudCgpOwogICAgICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShBZnRlckhlYWRNb2RlKTsKQEAgLTE5NzcsNiArMjA5NCwxMiBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQog
ICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUo
KSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRv
a2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlm
ICghcHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0y
MDUyLDcgKzIxNzUsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluRnJhbWVzZXRNb2RlOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gZnJhbWVzZXRUYWcpIHsKLSAgICAgICAgICAgIGlmIChtX3RyZWUuY3Vy
cmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAg
ICAgICAgIGJvb2wgaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcgID0gbV90cmVlLmN1
cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpOworI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50
UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nIHx8IG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisgICAgICAgICAg
ICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcpIHsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAg
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTg5LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5h
bWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFn
KHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNl
cnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAtMjExOSwxMSArMjI1MywzMSBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAg
ICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHBy
b2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVUZXh0TW9kZToKICAg
ICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9r
ZW4pOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+
aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50
cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHko
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluQm9keU1vZGUpOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyNlbHNlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIApAQCAtMjIyNCw4ICsyMzc4LDE0IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICB9CiAg
ICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKKyAgICBjYXNlIFRl
bXBsYXRlQ29udGVudHNNb2RlOgogICAgIGNhc2UgSW5DZWxsTW9kZTogeworI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkg
PT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUp
OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRl
bnRzTW9kZSkKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8
IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJ
bkNlbGxNb2RlKTsKKyNlbmRpZgogICAgICAgICBwcm9jZXNzQ2hhcmFjdGVyQnVmZmVyRm9ySW5C
b2R5KGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTIzNjAsNyArMjUyMCwxMiBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgIGNhc2UgSW5DZWxsTW9kZToKICAgICBjYXNlIEluQ2FwdGlvbk1vZGU6CiAg
ICAgY2FzZSBJblJvd01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJ
bkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlv
bk1vZGUoKSA9PSBJblJvd01vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IFRlbXBsYXRlQ29udGVu
dHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgIT0gVGVtcGxh
dGVDb250ZW50c01vZGUpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9k
eU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSk7CisjZW5k
aWYKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8gRW1pdCBwYXJzZSBlcnJvciBiYXNlZCBv
biB3aGF0IGVsZW1lbnRzIGFyZSBzdGlsbCBvcGVuLgogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFmdGVyQm9keU1vZGU6CkBAIC0yNDA5LDYgKzI1NzQsMTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CiAgICAgICAgIHByb2Nlc3NF
bmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRl
bnRzTW9kZToKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgIG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRl
bHkoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRO
b2RlKCkpOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wQWxsKCk7CkBAIC0yNTEyLDYg
KzI2ODIsMTIgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVh
ZChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWco
c2NyaXB0VGFnKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisjZW5kaWYKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBoZWFkVGFnKSB7CiAgICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKaW5kZXggOGZmMGY1OGIzNDVmZmYz
ZTQ1NWI1YWZmZWY2NWUxMDJmNmQ1YmZmYS4uNzdlNmNjNzVkOWM4NjA5ODY4YTczZmFmMTg2NjUw
NjRkNGQ5ZjAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmgKQEAgLTY3LDYgKzY3LDEyIEBAIHB1YmxpYzoKICAgICB+SFRNTFRyZWVCdWlsZGVyKCk7
CiAKICAgICBib29sIGlzUGFyc2luZ0ZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gISFtX2ZyYWdt
ZW50Q29udGV4dC5mcmFnbWVudCgpOyB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBi
b29sIGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsgfQorICAgIGJvb2wgaXNQYXJz
aW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdG
cmFnbWVudCgpIHx8IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKTsgfQorI2Vsc2UKKyAgICBi
b29sIGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4g
aXNQYXJzaW5nRnJhZ21lbnQoKSB9CisjZW5kaWYKIAogICAgIHZvaWQgZGV0YWNoKCk7CiAKQEAg
LTk3LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIEluSGVhZE1vZGUsCiAgICAgICAgIElu
SGVhZE5vc2NyaXB0TW9kZSwKICAgICAgICAgQWZ0ZXJIZWFkTW9kZSwKKyAgICAgICAgVGVtcGxh
dGVDb250ZW50c01vZGUsCiAgICAgICAgIEluQm9keU1vZGUsCiAgICAgICAgIFRleHRNb2RlLAog
ICAgICAgICBJblRhYmxlTW9kZSwKQEAgLTE5MCw2ICsxOTcsMTEgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxU
b2tlbiopOworICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiop
OworI2VuZGlmCisKICAgICBjbGFzcyBGcmFnbWVudFBhcnNpbmdDb250ZXh0IHsKICAgICAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQYXJzaW5nQ29udGV4dCk7CiAgICAgcHVibGlj
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGRjMmEyZGNiMTRhMjE2M2U0ZTc3YWU2
NWE3NTdiZTlmYmJkMThiYzcuLjc2ZWZlY2NkZTNjZWQyNDA0YjdkNjlhZjZmMDUxNTdiNzllYWQw
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ2NCw2ICs0NjQsNyBAQAogICAg
IGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxlRWxlbWVudDsK
ICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZVJv
d0VsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q29uc3RydWN0
b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7CisgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1U
RU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGVtcGxhdGVF
bGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFyZWFFbGVtZW50Q29uc3RydWN0b3IgSFRN
TFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRpdGxlRWxlbWVudENvbnN0cnVj
dG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxVTGlzdEVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
CmluZGV4IGYzODZkZWI3NzYyODkyMGFmM2I3ZmYyMDViOWY4NjE5NWNiYWJkMWQuLjc2MjNmM2I3
ODUwYzU3Zjg3NDhlYjI2MDI3MDk4Yjc2YTQzNDdjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2Zl
YXR1cmVzLmd5cGkKQEAgLTExMCw2ICsxMTAsNyBAQAogICAgICAgJ0VOQUJMRV9TVkdfRk9OVFM9
PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxFX1RFWFRfQVVUT1NJWklORz0xJywKICAgICAg
ICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKKyAgICAgICdFTkFCTEVfVEVNUExBVEVfVEFH
PTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVOVFM9PChlbmFibGVfdG91Y2hfZXZlbnRzKScs
CiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORz08KGVuYWJsZV90b3VjaF9pY29uX2xv
YWRpbmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfU0xJREVSPTEnLApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzNWZhMzgz
YWIxZWE0NzIyOTlkOWU1NDdjODJhNDM1NTAzOTRiOTAuLjNlY2IxNjE5ZmMyYjdkOWQ0ZThhNzM3
MjU2ODQxNWJiMjExYjZmNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMS0xMyAgUmFm
YWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRN
TC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293
bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHRt
bDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIv
cnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVu
LXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9kdW1wLWFzLW1hcmt1
cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5fZ2V0U2VsZWN0
aW9uRnJvbU5vZGUpOgorCiAyMDEyLTExLTE1ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkIG1pc3NpbmcgdGV4dCB0ZXN0IGV4cGVj
dGF0aW9ucyBmb3IgTWFjIGFuZCBXaW5kb3dzIHBvcnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNjMzU5OTk5YTQ1MTc4M2E3MDJiYzNhMDE3MGIwNmMzMWM5YTBm
NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQg
dGVtcGxhdGUgY29udGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxhdGUgZWxlbWVu
dCBpcyBjbG9uZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgMSBpcyB0
ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoCitQQVNTIDAgaXMgY2xvbmUuY29udGVu
dC5jaGlsZE5vZGVzLmxlbmd0aAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjE2MmVlYzY3
NTA0NTgwZGY2NWE2NWZhMjA0N2MzYTdkNDQxNmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApAQCAtMCww
ICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPkNvbnRl
bnRzPC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0ZW1w
bGF0ZSBjb250ZW50cyBhcmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlz
IGNsb25lZCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RG
YWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCit2YXIg
dGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJl
KCcxJywgJ3RlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKK3ZhciBjbG9uZSA9
IHRlbXBsYXRlLmNsb25lTm9kZSh0cnVlKTsKK3Nob3VsZEJlKCcwJywgJ2Nsb25lLmNvbnRlbnQu
Y2hpbGROb2Rlcy5sZW5ndGgnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUxMzhhYTFhZmNk
MmRlYzkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBV
UkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5lcnRDb250ZW50
cy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZworaHR0cDovL2Jh
ei5jb20vYmF0LmpwZyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4g
TlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KK1RoZSB0
ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJp
bmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi4K
KworcGFzcyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2MwNWVjYjkwNzk3
NWQ1MDE0NDc5NTBjM2NjZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3Zh
ciB0ZXN0VmFsID0gMTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgfQorCisg
ICAgaWYgKHRlc3RWYWwgIT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIHRlbXBsYXRl
Q29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNvbnRlbnQ7Cisg
ICAgdmFyIGltZyA9IHRlbXBsYXRlQ29udGVudC5jaGlsZE5vZGVzWzFdOworICAgIGltZy5zcmMg
PSAiaHR0cDovL2Jhei5jb20vYmF0LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh0ZW1wbGF0ZUNvbnRlbnQpOworCisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAgICAgICAgcmV0
dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9
ICdwYXNzISc7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNz
ZXJ0cyB0aGF0IGVsZW1lbnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0Iiwg
ZS5nLiByZXNvdXJjZXMgZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLjwvcD4KKzx0
ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAyOzwvc2NyaXB0
PjxpbWcgc3JjPSJodHRwOi8vZm9vLmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+Cis8ZGl2IGlk
PSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmOTcyNzA4
N2EzZTY3MTIzMDEyZjg2YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUgY29udGVu
dHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdu
b3JlZC4KKworPGRpdj5Db250ZW50cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVtcGxhdGU+
Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvaW5uZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2lubmVySFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZjAzZTkyMjA0YTUyNGVjZGQxOGUy
MDBhODQzZmI1NjI1ZDFlOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZW1wbGF0ZScpOworICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplJzsK
KyAgICB2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJz
dEVsZW1lbnRDaGlsZDsKKyAgICBpbm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplIGVp
dGhlcic7CisKKyAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7Cisg
ICAgaWYgKHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBvbmx5IGNoaWxk
IHNob3VsZCBiZSB0aGUgc3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAgICAgcmV0dXJu
OworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9IHRl
bXBsYXRlLmlubmVySFRNTDsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUg
dGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBp
bm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdub3JlZC48L3A+Cis8dGVtcGxhdGUgaWQ9
InRlbXBsYXRlIj48ZGl2PkNvbnRlbnRzIDEKKyAgPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3RlbXBs
YXRlPgorPC9kaXY+PC90ZW1wbGF0ZT4KKzxkaXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRv
Y3VtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2Q5ZmJiNmIzZDY5YTIwMDEzMTAzMzk5
N2E3ZTk2MjliZTRkZWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI4IEBACitUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50CisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50IGlzIHRlbXBsYXRl
Lm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5j
ZW9mIEhUTUxEb2N1bWVudCBpcyB0cnVlCitQQVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNv
bnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMg
dGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCBpcyBpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQKK1BBU1Mg
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBpbm5lclRlbXBsYXRlLmNvbnRlbnQub3du
ZXJEb2N1bWVudAorUEFTUyBpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBI
VE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudCBpcyB0ZW1wbGF0ZTIub3duZXJEb2N1
bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIHRlbXBsYXRlMi5jb250
ZW50Lm93bmVyRG9jdW1lbnQKK1BBU1MgZG9jdW1lbnQgaXMgZGYub3duZXJEb2N1bWVudAorUEFT
UyBkb2N1bWVudCBpcyBzcGFuLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCBpcyBkZi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQgaXMgc3Bhbi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQ
RV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHRlbXBsYXRlLmNvbnRlbnQg
PSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6
IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250
ZW50ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZ
UEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBkb2N1bWVudCBpcyB0ZW1w
bGF0ZTMub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlz
IHRlbXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZTMuY29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9j
dW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3du
ZXJEb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5N2RhMjY4NGRjNmI0MjE4OWZlOTNkYmMzNTcy
MTlmOTdjMjkyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzcGFuPjx0ZW1wbGF0ZT48L3Rl
bXBsYXRlPjwvc3Bhbj48L3RlbXBsYXRlPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZTIiPjxzcGFu
Pjwvc3Bhbj48L3RlbXBsYXRlPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZTMiPjxzdmc+PC9zdmc+
PC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRl
RWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBs
YXRlRWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRF
TVBMQVRFX1RBRyknKTsKKwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RlbXBsYXRlJyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGUub3duZXJEb2N1bWVu
dCcpOworCit2YXIgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlLmNvbnRl
bnQub3duZXJEb2N1bWVudDsKK3Nob3VsZEJlVHJ1ZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOworc2hvdWxkTm90QmUoJ2RvY3VtZW50Jywg
J3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRl
bnRPd25lckRvY3VtZW50JywgJ3RlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3Vt
ZW50Jyk7CisKK3ZhciBpbm5lclRlbXBsYXRlID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxk
LmZpcnN0Q2hpbGQ7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICdp
bm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50JywgJ2lubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Jyk7Citz
aG91bGRCZVRydWUoJ2lubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxE
b2N1bWVudCcpOworCit2YXIgdGVtcGxhdGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
bXBsYXRlMicpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlMi5vd25lckRvY3VtZW50
Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTIu
Y29udGVudC5vd25lckRvY3VtZW50Jyk7CisKK3ZhciBkZiA9IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKK3ZhciBzcGFuID0gZGYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICdkZi5vd25lckRvY3VtZW50
Jyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAnc3Bhbi5vd25lckRvY3VtZW50Jyk7CisKK3RlbXBs
YXRlLmNvbnRlbnQgPSBkZjsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
JywgJ2RmLm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50JywgJ3NwYW4ub3duZXJEb2N1bWVudCcpOworCitzaG91bGRUaHJvdygndGVtcGxhdGUu
Y29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsnKTsKK3Nob3VsZFRocm93
KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsnKTsK
K2lmICh3aW5kb3cuV2ViS2l0U2hhZG93Um9vdCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdiknKTsKK30KKwordmFyIHRlbXBsYXRlMyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZTInKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0
ZW1wbGF0ZTMub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQnLCAndGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUo
J3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RD
aGlsZC5vd25lckRvY3VtZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25l
ckRvY3VtZW50WEhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmNjliZmZkOTFkMWVmOTdm
NjFkZjZlZTNhNjk3MDA5Y2NhMDc1YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3du
ZXJEb2N1bWVudCBpbiBYSFRNTCBEb2N1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBkb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyBmYWxzZQorUEFT
UyBkb2N1bWVudCBpcyBub3QgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRv
Y3VtZW50WEhUTUwueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTdiNGJhOGZmNzVkODc5
Y2QxMDIwMmYxYjg1NmQ1YmQ1OGYxNzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwKQEAg
LTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxU
ZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50Jyk7
CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhp
cyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1QTEFURV9UQUcpJyk7CisKK3Nob3VsZEJlRmFsc2Uo
J2RvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7Cit2YXIgdGVtcGxhdGU0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25l
ckRvY3VtZW50ID0gdGVtcGxhdGU0LmNvbnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJl
KCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZUZh
bHNlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50
Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRt
bDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291
cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFhOGFiNGVmMTYxNzYzYjgyMmY3NzVhZjAy
ODA1NWYxNWU1ZjA4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jl
c291cmNlcy90ZW1wbGF0ZS5kYXQKQEAgLTAsMCArMSw4MjkgQEAKKyNkYXRhCis8Ym9keT48dGVt
cGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8i
Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisK
KyNkYXRhCis8aHRtbD48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8
aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rpdj48L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEK
KzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAg
IDxkaXY+Cit8ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+
PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8
ZGl2PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0
ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVt
cGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
PjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJs
ZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAi
ICAgIgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisK
KyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwv
dGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRh
YmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVt
cGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxl
Pjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBs
YXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1w
bGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvc2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wg
ICAgICAgICA8b3B0aW9uPgorfCAgIDxib2R5PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICA8b3B0aW9uPgorCisj
ZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxl
Y3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxh
dGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+
CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgPHRoZWFkPgorCisjZGF0YQorPGJvZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48
ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAg
ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48
L3RoZWFkPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJs
ZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8
ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0
ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRh
Cis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4K
K3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48
dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90
YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+
CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1w
bGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxh
dGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1w
bGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAg
ICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8Y29sPgorCisjZGF0YQorPGZy
YW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJh
bWU+PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0YQor
PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRp
dj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48
c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wg
ICAgICAgICA8c3Bhbj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0g
MTs8L3NjcmlwdD48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBp
ID0gMTsiCit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2
PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9k
eT48dGVtcGxhdGU+PHRyPjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0
cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48
L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48
L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRk
PjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxj
YXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PC90YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8
ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxj
YXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAg
ICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
Pjx0aGVhZD48L3RoZWFkPjwvdGFibGU+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0
aGVhZD4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48
dHI+PC90cj48L2Rpdj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxl
bT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPGVtPgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzdHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxzdHlsZT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+
PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPG1ldGE+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48
dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0
YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3Vw
PjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
ICAgIDxjb2w+CisKKyNkYXRhCis8Ym9keSBhPWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkg
Yz1kPjxkaXY+PC9kaXY+PC9ib2R5PjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4K
K3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1s
IGI9Yz48c3Bhbj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4K
KworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48
L2NvbD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIi
Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEK
KzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2Zy
YW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIK
K3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjllZmUzMjRiMDEyOWU2MWM5MTI0ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIv
cnVuLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVhYzQ0NDliM2U5MTdh
YzRkNDE5Y2I2NGZlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bi10ZW1wbGF0ZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0
PgordmFyIHRlc3RfZmlsZXMgPSBbCisgICdyZXNvdXJjZXMvdGVtcGxhdGUuZGF0JywKK10KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L2R1bXAtYXMtbWFya3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3Vw
LmpzCmluZGV4IDUzYTAwMWZlZmRlMjg4MWFlZjYxY2QwNjkwMjcyZmM2ZTE1YjFlOTEuLmM3ZmRm
MTdmMjBhNDI5YzEwYzZkOGIzYTE5NmRmYjkwOTQ0NjJiMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvZHVtcC1hcy1tYXJrdXAuanMKQEAgLTIyMCwxNiArMjIwLDI0IEBAIE1hcmt1cC5fZ2V0ID0g
ZnVuY3Rpb24obm9kZSwgZGVwdGgpCiAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05P
REU6CiAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09ICIjc2hhZG93LXJvb3QiKQogICAgICAg
ICAgIHN0ciArPSAiPHNoYWRvdzpyb290PiI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBzdHIg
Kz0gIiNkb2N1bWVudC1mcmFnbWVudCI7CiAgICAgfQotCi0gICAgZm9yICh2YXIgaSA9IDAsIGxl
biA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewotICAgICAgICB2YXIg
c2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7Ci0gICAgICAg
IGlmIChzZWxlY3Rpb24pCi0gICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQoZGVwdGgg
KyAxKSArIHNlbGVjdGlvbjsKLQotICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGls
ZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgIAorICAgIAorICAgIC8vIEhUTUwgVGVtcGxhdGUg
ZWxlbWVudHMgc2VyaWFsaXplIHRoZWlyIGNvbnRlbnQgRG9jdW1lbnRGcmFnbWVudCwgYW5kIE5P
VCB0aGVpciBjaGlsZHJlbi4KKyAgICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPSAnaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcgJiYgbm9kZS50YWdOYW1lID09ICdURU1QTEFURScpIHsKKyAg
ICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY29udGVudCwgZGVwdGggKyAxKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxl
bmd0aDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3Vw
Ll9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
KQorICAgICAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2Vs
ZWN0aW9uOworICAgIAorICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGRO
b2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAgICAgfQogICAgIH0KLQorICAgIAogICAgIHN0ciAr
PSBNYXJrdXAuX2dldFNoYWRvd0hvc3RJZlBvc3NpYmxlKG5vZGUsIGRlcHRoKTsKICAgICAKICAg
ICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CkBA
IC0yODQsNyArMjkyLDcgQEAgTWFya3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKIAogTWFya3Vw
Ll9nZXRTZWxlY3Rpb25Gcm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5v
ZGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKTsKKyAgICByZXR1cm4g
bm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3ID8gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1
bHRWaWV3LmdldFNlbGVjdGlvbigpIDogbnVsbDsKIH0KIAogTWFya3VwLl9TRUxFQ1RJT05fRk9D
VVMgPSAnPCNzZWxlY3Rpb24tZm9jdXM+JzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176518</attachid>
            <date>2012-11-28 10:47:10 -0800</date>
            <delta_ts>2012-11-28 11:29:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121128104445.patch</filename>
            <type>text/plain</type>
            <size>81608</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM4MDNlNDVkZTJkZWJj
OWRmNjY3ZWU5MTkyZDYxMDlkYWJlMzdiZS4uNThkMGVlYzczZDI2MTIzNWVmYTE3OGZhNzhmMjQy
NDgzMzY3NDAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjggIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1F0XVtXaW5dIEVuYWJsZSB1c2FnZSBvZiBRVFdFQktJVF9QTFVHSU5fUEFUSC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmQ0ODg2ZDU1NGYzYmZjZWEyMTI2OGNiNjRhN2E0
MzhmYWM2MGFkYi4uM2MzMzM5MjIyZTQwYzk5NDc2Y2EzNGZhYjI1Mzk1MzZjNDQ4NDJlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0xMyAgUmFm
YWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFR1cm5pbmcgb24gSFRNTFRlbXBsYXRlRWxlbWVudCBmb3IgY2hyb21pdW0g
cG9ydC4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTItMTEtMjggIFNhZHJ1bCBI
YWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gQWxsb3cgcGx1Z2lucyB0byBvcHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZl
bnRzIG91dCBvZiB0b3VjaCBldmVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDZmOTEyMDIxZDRm
YzNiZWNiODQ1YTNhMjI2MmZmMjUzZTEwYTNkMi4uMzc3NDU5NGM0MGEwMDFmMTUzNzU5OWQyNmI5
OTA2YjQzMjQ5MGFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTEyOCw2ICsxMTI4LDcgQEAKICAg
ICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVUxpc3RFbGVtZW50LmlkbCcsCkBAIC00MTgwLDYgKzQxODEsOCBAQAogICAgICAgICAgICAg
J2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNw
cCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRs
ZUVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCA0YTFlMzM1NjhjYjE1N2E3MjNmMGM3
YWZhNjk3YzM0MDkyNjY2MTY4Li5jZmU4NzA1M2RjNzIwYTRlMzQ3OTI1YWU2OTkzOTI1ODIzOWNh
NTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0xMjYyLDYgKzEyNjIsMTAgQEAgc3VtbWFyeTo6LXdl
YmtpdC1kZXRhaWxzLW1hcmtlciB7CiAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTsKIH0KIAordGVt
cGxhdGUgeworICAgIGRpc3BsYXk6IG5vbmUKK30KKwogYmRpLCBvdXRwdXQgewogICAgIHVuaWNv
ZGUtYmlkaTogLXdlYmtpdC1pc29sYXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCmluZGV4IDIzZmJkNGZiYTY0OGRkYzIxZjQ3NzBmNWYzZTllZmUxYmRlNzBhZTUuLjBkMjUx
NjYzM2YzOGJmOWY2ZWJiMTk1MGU4NzRkNzJiNDE3ZThjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKQEAgLTIzMCw2ICsyMzAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBh
cnNlckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hp
bAogICAgIEFTU0VSVChuZXdDaGlsZCk7CiAgICAgQVNTRVJUKG5leHRDaGlsZCk7CiAgICAgQVNT
RVJUKG5leHRDaGlsZC0+cGFyZW50Tm9kZSgpID09IHRoaXMpOworICAgIEFTU0VSVChkb2N1bWVu
dCgpID09IG5ld0NoaWxkLT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsK
ICAgICBjb2xsZWN0VGFyZ2V0Tm9kZXMobmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMpOwpAQCAtNjEw
LDYgKzYxMSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VyQXBwZW5kQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCkKIHsKICAgICBBU1NFUlQobmV3Q2hpbGQpOwogICAgIEFTU0VS
VCghbmV3Q2hpbGQtPnBhcmVudE5vZGUoKSk7IC8vIFVzZSBhcHBlbmRDaGlsZCBpZiB5b3UgbmVl
ZCB0byBoYW5kbGUgcmVwYXJlbnRpbmcgKGFuZCB3YW50IERPTSBtdXRhdGlvbiBldmVudHMpLgor
ICAgIEFTU0VSVChkb2N1bWVudCgpID09IG5ld0NoaWxkLT5kb2N1bWVudCgpKTsKIAogICAgIE5v
ZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBkYjc0ZDU1ZGU1YzEwZjA2ZDU1MjE2MTMzMGFjZjY3MjU3ZTIxOWIyLi45YjI0ZWExYWEzZmU1
ODYwYTg2NTFiZDNiNGYwMDg5Y2UwM2UwODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTU5MzUsNCArNTkzNSwyMiBAQCBMb2NhbGUmIERvY3VtZW50OjpnZXRDYWNoZWRMb2NhbGUoY29u
c3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpCiAgICAgcmV0dXJuICoocmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorRG9jdW1lbnQqIERvY3VtZW50
Ojp0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpCit7CisgICAgLy8gSWYgRE9DVU1FTlQg
ZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQsIExldCBURU1QTEFURSBDT05URU5UUyBP
V05FUiBiZSBET0NVTUVOVCBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFtX2ZyYW1l
KQorICAgICAgICByZXR1cm4gdGhpczsKKworICAgIGlmICghbV90ZW1wbGF0ZUNvbnRlbnRzT3du
ZXJEb2N1bWVudCkgeworICAgICAgICBpZiAoaXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgw
LCBibGFua1VSTCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRl
bnRzT3duZXJEb2N1bWVudCA9IERvY3VtZW50OjpjcmVhdGUoMCwgYmxhbmtVUkwoKSk7CisgICAg
fQorCisgICAgcmV0dXJuIG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQuZ2V0KCk7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCBiYTFlNTQ3YzBjOTdjMDU3NjkwZjgzYjhhZTAwNDRjZjllMzA5YzM0Li5mNjhhYmQzMGY5MGRi
ZmE0MzVjZThkMDk4NDM1ZmJkZTExZDk1YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE3
MCw2ICsxMTcwLDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+
ID4mIHRvcExheWVyRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RvcExheWVyRWxlbWVudHM7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBEb2N1bWVudCogdGVt
cGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAg
RG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7
CiAKQEAgLTE1MjMsNiArMTUyNywxMCBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PEF0b21pY1N0cmluZywgT3duUHRyPExvY2FsZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVN
YXA7CiAgICAgTG9jYWxlSWRlbnRpZmllclRvTG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZUNv
bnRlbnRzT3duZXJEb2N1bWVudDsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6
Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggYmViODMyZjdmNTAwOWI2YWM2MTNjMzNj
ZDhiNDcxZWEyMjQ3MmU2Mi4uOGM2N2MxMjc3ZjRmNjRlNzRkMmY4ZDQ0MDlhNGFlMDRmMDY5NmYz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgpAQCAtMTQxLDcgKzE0MiwxMiBAQCB2b2lkIE1h
cmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdl
dE5vZGUsIE5vZGUqIG5vZAogICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAmbmFt
ZXNwYWNlSGFzaCk7CiAKICAgICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hUTUxE
b2N1bWVudCgpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewotICAg
ICAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJl
bnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5oYXNUYWdOYW1lKHRl
bXBsYXRlVGFnKSA/IHRvSFRNTFRlbXBsYXRlRWxlbWVudCh0YXJnZXROb2RlKS0+Y29udGVudCgp
LT5maXJzdENoaWxkKCkgOiB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZWxzZQorICAgICAg
ICBOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOworI2VuZGlmCisgICAg
ICAgIGZvciAoIDsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCiAg
ICAgICAgICAgICBzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKGN1cnJlbnQsIG5vZGVUb1Nr
aXAsIEluY2x1ZGVOb2RlLCAmbmFtZXNwYWNlSGFzaCwgdGFnTmFtZXNUb1NraXApOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA4N2I3ZTI2Mjk1ZmI3NGYzYTAw
MWFlNDJlY2UxNGY3YTM5ZWM5MTFkLi42NzRmMWVkZDQzZGRiMTgzZjM1OTBkZTI1YWIzZmEwNmU2
MzExMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJXb3JkQnJlYWsuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBA
IC0zNDMsOCArMzQ0LDE0IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QK
IAogdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwoaHRtbCwgdGhpcywgQWxsb3dT
Y3JpcHRpbmdDb250ZW50LCBlYykpCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dCh0aGlzLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICBpZiAoUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1s
LCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkgeworICAgICAgICBDb250YWluZXJO
b2RlKiBjb250YWluZXIgPSB0aGlzOworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAg
IGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgY29udGFpbmVyID0g
dG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMpLT5jb250ZW50KCk7CisjZW5kaWYKKyAgICAgICAg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZSgp
LCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1
MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNmNDdjMDBiODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5
ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAK
QEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4NWExZTYxYTVhOTU4MmIxM2U2MzQyODlj
ZGM1M2EyMmM3NmIzZTAxLi5jNDM2ZjhkZjg4ODMzNGZkMzZiMWZkNGMzZmE3ZDY1NjFkN2QzMDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1
cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1I
VE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxl
bWVudAordGVtcGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1MVGVtcGxhdGVFbGVtZW50LCBjb25kaXRp
b25hbD1URU1QTEFURV9UQUcKIHRleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxl
bWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiB0Zm9vdCBpbnRlcmZhY2VOYW1lPUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0aCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVt
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZjAzZWUyZGI4NGM5MGU3ZjNiNzQ4NjkzYjM5ZDFjYjVjNTk1YTQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApAQCAt
MCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKworI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkRPTUlt
cGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIm1hcmt1cC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK2lubGluZSBIVE1MVGVtcGxhdGVF
bGVtZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQoreworfQorCitIVE1MVGVtcGxhdGVFbGVtZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCgpCit7
Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gSFRNTFRlbXBsYXRlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1wbGF0ZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1lbnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxlbWVu
dDo6Y29udGVudCgpCit7CisgICAgaWYgKCFtX2NvbnRlbnQpCisgICAgICAgIG1fY29udGVudCA9
IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVu
dHNPd25lckRvY3VtZW50KCkpOworCisgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsKK30KKwor
dm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50OjpzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gcHJwQ29udGVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGNvbnRlbnQgPSBwcnBDb250ZW50OworCisgICAgaWYgKCFjb250ZW50
IHx8IGNvbnRlbnQtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRD
SF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9jb250ZW50LmdldCgp
ID09IGNvbnRlbnQuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb250ZW50LT5v
d25lckRvY3VtZW50KCkgIT0gb3duZXJEb2N1bWVudCgpLT50ZW1wbGF0ZUNvbnRlbnRzT3duZXJE
b2N1bWVudCgpKQorICAgICAgICBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25l
ckRvY3VtZW50KCktPmFkb3B0Tm9kZShjb250ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKwor
ICAgIG1fY29udGVudCA9IGNvbnRlbnQ7Cit9CisKKyNpZm5kZWYgTkRFQlVHCitjb25zdCBIVE1M
VGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9kZSogbm9kZSkK
K3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBub2RlLT5o
YXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBI
VE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk1MTMzZGRjNzc5Y2RhMWZk
NzZjZTI1ZjVhNDY0MjFkMTllZjQ2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1M
VGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFRlbXBsYXRlRWxlbWVudF9oCisKKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRN
TFRlbXBsYXRlRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxUZW1wbGF0ZUVsZW1lbnQoKTsK
KworICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRlbnQoKTsKKworICAgIHZvaWQgc2V0Q29udGVu
dChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZh
dGU6CisgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7Cit9OworCitj
b25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9k
ZSopOworCitpbmxpbmUgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50
KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SFRNTFRlbXBsYXRlRWxlbWVu
dCo+KHRvSFRNTFRlbXBsYXRlRWxlbWVudChzdGF0aWNfY2FzdDxjb25zdCBOb2RlKj4obm9kZSkp
KTsKK30KKworI2lmZGVmIE5ERUJVRworCisvLyBUaGUgZGVidWcgdmVyc2lvbiBvZiB0aGlzLCB3
aXRoIGFzc2VydGlvbnMsIGlzIG5vdCBpbmxpbmVkLgoraW5saW5lIGNvbnN0IEhUTUxUZW1wbGF0
ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7Cit9
CisjZW5kaWYgLy8gTkRFQlVHCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNlbmRpZiAvLyBIVE1MVGVtcGxhdGVFbGVtZW50X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU0ODc2NTM2NWZmNDI5MDFhMWE3NDc2N2Q1NjdmZGEyNjU0MTZjODEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVRFTVBMQVRFX1RBRworXSBpbnRlcmZhY2UgSFRN
TFRlbXBsYXRlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBhdHRyaWJ1dGUgRG9jdW1lbnRG
cmFnbWVudCBjb250ZW50IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cit9OworCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAK
aW5kZXggOWMxODJiYTIzNDNiNGU1MTM5YTMyMDIyNjA4MTRlZDA0OTU5MTlkOC4uNzcwNWIxNDdh
MDY0OTkyMzJmNDg2OTRjMGExYzdmZDIxMGZkYjc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdGFja0l0ZW0uaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxh
dGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2Vu
aXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTc3LDYgKzc4LDExIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FsbFdoaXRlc3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBleGVjdXRlVGFzayhIVE1MQ29uc3RydWN0aW9uU2l0ZVRh
c2smIHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodGFzay5wYXJl
bnQtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNrLnBhcmVudCA9IHRvSFRN
TFRlbXBsYXRlRWxlbWVudCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRlbnQoKTsKKyNlbmRpZgor
CiAgICAgaWYgKHRhc2submV4dENoaWxkKQogICAgICAgICB0YXNrLnBhcmVudC0+cGFyc2VySW5z
ZXJ0QmVmb3JlKHRhc2suY2hpbGQuZ2V0KCksIHRhc2submV4dENoaWxkLmdldCgpKTsKICAgICBl
bHNlCkBAIC0yNDcsNyArMjUzLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0
RG9jdHlwZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6aW5zZXJ0Q29tbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIEFTU0VSVCh0
b2tlbi0+dHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpDb21tZW50KTsKLSAgICBhdHRhY2hMYXRl
cihjdXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUoY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQo
KSwgdG9rZW4tPmNvbW1lbnQoKSkpOworICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENv
bW1lbnQ6OmNyZWF0ZShvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgdG9rZW4tPmNvbW1l
bnQoKSkpOwogfQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50T25E
b2N1bWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQpAQCAtMzI1LDcgKzMzMSw3IEBAIHZvaWQg
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFNjcmlwdEVsZW1lbnQoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAvLyB0aG9zZSBmbGFncyBvciBlZmZlY3RzIHRoZXJlb2YuCiAgICAgY29u
c3QgYm9vbCBwYXJzZXJJbnNlcnRlZCA9IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uICE9
IEFsbG93U2NyaXB0aW5nQ29udGVudEFuZERvTm90TWFya0FscmVhZHlTdGFydGVkOwogICAgIGNv
bnN0IGJvb2wgYWxyZWFkeVN0YXJ0ZWQgPSBtX2lzUGFyc2luZ0ZyYWdtZW50ICYmIHBhcnNlcklu
c2VydGVkOwotICAgIFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gZWxlbWVudCA9IEhUTUxTY3Jp
cHRFbGVtZW50OjpjcmVhdGUoc2NyaXB0VGFnLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCBw
YXJzZXJJbnNlcnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOworICAgIFJlZlB0cjxIVE1MU2NyaXB0RWxl
bWVudD4gZWxlbWVudCA9IEhUTUxTY3JpcHRFbGVtZW50OjpjcmVhdGUoc2NyaXB0VGFnLCBvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgcGFyc2VySW5zZXJ0ZWQsIGFscmVhZHlTdGFydGVk
KTsKICAgICBpZiAobV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gRGlzYWxsb3dTY3Jp
cHRpbmdDb250ZW50KQogICAgICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2Vu
LT5hdHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBhdHRh
Y2hMYXRlcihjdXJyZW50Tm9kZSgpLCBlbGVtZW50KTsKQEAgLTM1MSw2ICszNTcsMTEgQEAgdm9p
ZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5nJiBjaGFy
YWN0ZXJzLCBXaGl0ZXNwYWNlTW8KICAgICBpZiAoc2hvdWxkRm9zdGVyUGFyZW50KCkpCiAgICAg
ICAgIGZpbmRGb3N0ZXJTaXRlKHRhc2spOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAg
ICBpZiAodGFzay5wYXJlbnQtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNr
LnBhcmVudCA9IHRvSFRNTFRlbXBsYXRlRWxlbWVudCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRl
bnQoKTsKKyNlbmRpZgorCiAgICAgLy8gU3RyaW5ncyBjb21wb3NlZCBlbnRpcmVseSBvZiB3aGl0
ZXNwYWNlIGFyZSBsaWtlbHkgdG8gYmUgcmVwZWF0ZWQuCiAgICAgLy8gVHVybiB0aGVtIGludG8g
QXRvbWljU3RyaW5nIHNvIHdlIHNoYXJlIGEgc2luZ2xlIHN0cmluZyBmb3IgZWFjaC4KICAgICBi
b29sIHNob3VsZFVzZUF0b21pY1N0cmluZyA9IHdoaXRlc3BhY2VNb2RlID09IEFsbFdoaXRlc3Bh
Y2UKQEAgLTM4NywxOCArMzk4LDI3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2Vy
dFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiBQYXNzUmVm
UHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0b21pY0hU
TUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKQogewogICAg
IFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFtZXNwYWNl
VVJJKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGN1cnJlbnROb2RlKCktPmRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1ZSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQgPSBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKS0+Y3JlYXRlRWxlbWVudCh0
YWdOYW1lLCB0cnVlKTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5h
dHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICByZXR1cm4g
ZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKK2lubGluZSBEb2N1bWVudCogSFRNTENvbnN0cnVjdGlv
blNpdGU6Om93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpCit7CisjaWYgRU5BQkxFKFRFTVBM
QVRFX1RBRykKKyAgICBpZiAoY3VycmVudE5vZGUoKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykp
CisgICAgICAgIHJldHVybiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY3VycmVudEVsZW1lbnQoKSkt
PmNvbnRlbnQoKS0+ZG9jdW1lbnQoKTsKKyNlbmRpZgorICAgIHJldHVybiBjdXJyZW50Tm9kZSgp
LT5kb2N1bWVudCgpOworfQorCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25T
aXRlOjpjcmVhdGVIVE1MRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIFF1
YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgeGh0bWxOYW1lc3Bh
Y2VVUkkpOwogICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IHVzZSBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6Y3JlYXRlRWxlbWVudCBiZWNhdXNlIHdlCiAgICAgLy8gaGF2ZSB0byBwYXNzIHRoZSBjdXJy
ZW50IGZvcm0gZWxlbWVudC4gIFdlIHNob3VsZCByZXdvcmsgZm9ybSBhc3NvY2lhdGlvbgogICAg
IC8vIHRvIG9jY3VyIGFmdGVyIGNvbnN0cnVjdGlvbiB0byBhbGxvdyBiZXR0ZXIgY29kZSBzaGFy
aW5nIGhlcmUuCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MRWxlbWVudEZhY3Rv
cnk6OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCks
IGZvcm0oKSwgdHJ1ZSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MRWxlbWVu
dEZhY3Rvcnk6OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIG93bmVyRG9jdW1lbnRGb3JDdXJy
ZW50Tm9kZSgpLCBmb3JtKCksIHRydWUpOwogICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0
ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwog
ICAgIEFTU0VSVChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpOwogICAgIHJldHVybiBlbGVtZW50
LnJlbGVhc2UoKTsKQEAgLTQ2Miw2ICs0ODIsMTUgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6Z2VuZXJhdGVJbXBsaWVkRW5kVGFncygpCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6
OmZpbmRGb3N0ZXJTaXRlKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIHsKKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorICAgIC8vIFdoZW4gYSBub2RlIGlzIHRvIGJlIGZvc3RlciBw
YXJlbnRlZCwgdGhlIGxhc3QgdGVtcGxhdGUgZWxlbWVudCB3aXRoIG5vIHRhYmxlIGVsZW1lbnQg
aXMgYmVsb3cgaXQgaW4gdGhlIHN0YWNrIG9mIG9wZW4gZWxlbWVudHMgaXMgdGhlIGZvc3RlciBw
YXJlbnQgZWxlbWVudCAoTk9UIHRoZSB0ZW1wbGF0ZSdzIHBhcmVudCEpCisgICAgSFRNTEVsZW1l
bnRTdGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRlbXBsYXRlRWxlbWVudCA9IG1fb3BlbkVsZW1l
bnRzLnRvcG1vc3QodGVtcGxhdGVUYWcubG9jYWxOYW1lKCkpOworICAgIGlmIChsYXN0VGVtcGxh
dGVFbGVtZW50ICYmICFtX29wZW5FbGVtZW50cy5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7Cisg
ICAgICAgIHRhc2sucGFyZW50ID0gbGFzdFRlbXBsYXRlRWxlbWVudC0+ZWxlbWVudCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVt
ZW50UmVjb3JkKiBsYXN0VGFibGVFbGVtZW50UmVjb3JkID0gbV9vcGVuRWxlbWVudHMudG9wbW9z
dCh0YWJsZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgaWYgKGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQp
IHsKICAgICAgICAgRWxlbWVudCogbGFzdFRhYmxlRWxlbWVudCA9IGxhc3RUYWJsZUVsZW1lbnRS
ZWNvcmQtPmVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IDYwNTcyYmRkODU2Mjc0NDVjYmQ4NjVhOTY3OWQyZmVi
YTVmNmE4ZGMuLmRmMzI1OTBhNzkzNzE3YmU3YTkxZGE3NmI5MTVjNGE5MTU1YjUxZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaApA
QCAtMTE0LDkgKzExNCwxMCBAQCBwdWJsaWM6CiAgICAgQ29udGFpbmVyTm9kZSogY3VycmVudE5v
ZGUoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCk7IH0KICAgICBIVE1M
U3RhY2tJdGVtKiBjdXJyZW50U3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVu
dHMudG9wU3RhY2tJdGVtKCk7IH0KICAgICBIVE1MU3RhY2tJdGVtKiBvbmVCZWxvd1RvcCgpIGNv
bnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLm9uZUJlbG93VG9wKCk7IH0KLQorICAgIERvY3Vt
ZW50KiBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKTsKICAgICBIVE1MRWxlbWVudFN0YWNr
KiBvcGVuRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiAmbV9vcGVuRWxlbWVudHM7IH0KICAgICBI
VE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0KiBhY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSBjb25z
dCB7IHJldHVybiAmbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHM7IH0KKyAgICBib29sIGN1cnJl
bnRJc1Jvb3ROb2RlKCkgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9kZSgpID09IG1fb3Bl
bkVsZW1lbnRzLnJvb3ROb2RlKCk7IH0KIAogICAgIEVsZW1lbnQqIGhlYWQoKSBjb25zdCB7IHJl
dHVybiBtX2hlYWQtPmVsZW1lbnQoKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIGhlYWRTdGFja0l0
ZW0oKSBjb25zdCB7IHJldHVybiBtX2hlYWQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKaW5kZXggNmMyMjBjOTczOWE2NDAyMGVk
MGYyN2NjMzIwMWIyYzRlMDE2MTU3OC4uM2QyYThjOTY4YzgwZGExOGY0NDEzODlmMzM5ODMwMjhk
MDZmMWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5jcHAKQEAgLTM4LDE0ICszOCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1Jvb3ROb2RlKEhU
TUxTdGFja0l0ZW0qIGl0ZW0pCisKK25hbWVzcGFjZSB7CisKK2lubGluZSBib29sIGlzUm9vdE5v
ZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aXNEb2N1bWVudEZy
YWdtZW50Tm9kZSgpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZyk7CiB9CiAK
LW5hbWVzcGFjZSB7Ci0KIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSog
aXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZShhcHBsZXRUYWcpCkBAIC02NCw2
ICs2NSw5IEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkK
ICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykK
ICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKICAgICAgICAg
fHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpCisjaWYgRU5BQkxFKFRFTVBM
QVRFX1RBRykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRp
ZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC03Nyw2ICs4MSw5IEBAIGlu
bGluZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogaW5s
aW5lIGJvb2wgaXNUYWJsZVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAg
cmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAg
ICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC04NSwxMiArOTIsMTggQEAgaW5saW5l
IGJvb2wgaXNUYWJsZUJvZHlTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogICAgIHJl
dHVybiBpdGVtLT5oYXNUYWdOYW1lKHRib2R5VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdO
YW1lKHRmb290VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRoZWFkVGFnKQorI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxh
dGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIAogaW5saW5l
IGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAg
cmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodHJUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykK
KyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAg
ICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC01MjcsNiArNTQwLDEzIEBAIGJvb2wgSFRN
TEVsZW1lbnRTdGFjazo6aW5TZWxlY3RTY29wZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
KSBjb25zdAogICAgIHJldHVybiBpblNlbGVjdFNjb3BlKHRhZ05hbWUubG9jYWxOYW1lKCkpOwog
fQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKK2Jvb2wgSFRNTEVsZW1lbnRTdGFjazo6aGFz
VGVtcGxhdGVJbkhUTUxTY29wZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGluU2NvcGVDb21tb248
aXNSb290Tm9kZT4obV90b3AuZ2V0KCksIHRlbXBsYXRlVGFnLmxvY2FsTmFtZSgpKTsKK30KKyNl
bmRpZgorCiBFbGVtZW50KiBIVE1MRWxlbWVudFN0YWNrOjpodG1sRWxlbWVudCgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG1fcm9vdE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVsZW1lbnRTdGFjay5oCmluZGV4IDg3M2NiZGViOTViOGVkYTA2YjNiZTgwYmQ5NWNhN2Qy
Mzg5MTFiYTMuLmQ5NmNjY2Q4MDk0N2RhYjYxOTExYTI2YjM4YjNmYWUzMzk2NzlmYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKQEAgLTE1MCw3
ICsxNTAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc09ubHlPbmVFbGVtZW50KCkgY29uc3Q7
CiAgICAgYm9vbCBzZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSBjb25zdDsKLQorI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgYm9vbCBoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkg
Y29uc3Q7CisjZW5kaWYKICAgICBFbGVtZW50KiBodG1sRWxlbWVudCgpIGNvbnN0OwogICAgIEVs
ZW1lbnQqIGhlYWRFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCogYm9keUVsZW1lbnQoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
CmluZGV4IGM3ODU2MmIzM2MxOWJkMmM1NzFkNTliYTU1YzZhM2QwN2UyMmM4ZDcuLmI3YWYxYWQ0
NTYzNjdkYzc3M2Q4OTRlMTY4OGViZTUyODE3M2Q2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1
ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxTdGFja0l0ZW0uaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgog
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTM2MCw3ICszNjEsNyBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2Vu
KQogICAgIC8vIHN5bmNocm9ub3VzbHkgcmUtZW50ZXJzIHRoZSBwYXJzZXIuIFdlIGRvbid0IGNs
ZWFyIHRoZSB0b2tlbiBpbW1lZGF0ZWx5CiAgICAgLy8gZm9yIENoYXJhY3RlciB0b2tlbnMgYmVj
YXVzZSB0aGUgQXRvbWljSFRNTFRva2VuIGF2b2lkcyBjb3B5aW5nIHRoZQogICAgIC8vIGNoYXJh
Y3RlcnMgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgYnVmZmVyIGluIHRo
ZQotICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVhbnRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3Qg
Y2F1c2UgdXNlIHRvIHJlLWVudGVyCisgICAgLy8gSFRNTFRva2VuLiBGb3J0dW5hdGVseSwgQ2hh
cmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKICAgICAvLyB0aGUgcGFy
c2VyLgogICAgIC8vCiAgICAgLy8gRklYTUU6IFN0b3AgY2xlYXJpbmcgdGhlIHJhd1Rva2VuIG9u
Y2Ugd2Ugc3RhcnQgcnVubmluZyB0aGUgcGFyc2VyIG9mZgpAQCAtNjcyLDggKzY3Myw4IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gYm9keVRhZykgewog
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1l
bnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOworICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vj
b25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5o
YXNPbmx5T25lRWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJ
bkhUTUxTY29wZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRl
bXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CkBAIC02ODMsNyArNjg0LDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7CiAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25k
RWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNP
bmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQo
KSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVu
dHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFtX2Zy
YW1lc2V0T2spCkBAIC05NDQsMTMgKzk0NSw0MyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHBh
cnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAg
fQorI2VuZGlmCiAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1l
bnRzKCk7CiAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKIH0KIAorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxh
dGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIG1fdHJlZS5hY3RpdmVG
b3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5kTWFya2VyKCk7CisgICAgbV90cmVlLmluc2VydEhU
TUxFbGVtZW50KHRva2VuKTsKKyAgICBzZXRJbnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNN
b2RlKTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZUVuZFRhZyhB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygp
LT5pblNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdz
KCk7CisgICAgaWYgKCFtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLT5oYXNMb2NhbE5hbWUodG9r
ZW4tPm5hbWUoKSkpCisgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgIG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4tPm5hbWUoKSk7CisgICAgbV90cmVlLmFj
dGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1hcmtlcigpOworICAgIHJlc2V0
SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKK30KKyNlbmRpZgorCiBib29sIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpCiB7Ci0gICAg
aWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5v
ZGUoKSkgeworICAgIGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKSkgewogICAgICAgICBB
U1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJv
cgogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDEyLDcgKzEwNDMsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIXByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUo
KSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7
CkBAIC0xMDM5LDYgKzEwNzAsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFy
dFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7Cisg
ICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgogICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgIEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOwog
ICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xMTUzLDYgKzExOTAsMTIg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgICAgICAgICAgbV90cmVlLmluc2VydFNlbGZDbG9zaW5nSFRNTEVsZW1lbnQo
dG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBM
QVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAg
ICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICghcHJvY2Vzc0NvbGdyb3VwRW5k
VGFnRm9ySW5Db2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTc3LDcgKzEyMjAsNyBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgICAgIGlmIChpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5uYW1lKCkpIHx8
IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgc2xvdy4KICAgICAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50
cygpLT5pblRhYmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkgewotICAg
ICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAg
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQpAQCAtMTIwMiw3ICsxMjQ1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgfHwgaXND
YXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKQogICAgICAgICAgICAgfHwgaXNU
YWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgICAgICBpZiAoIXBy
b2Nlc3NUckVuZFRhZ0ZvckluUm93KCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlN
b2RlKTsKQEAgLTEyODAsNiArMTMyMywxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwcm9jZXNzU3Rh
cnRUYWdGb3JJbkhlYWQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVt
cGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyRnJhbWVzZXRNb2RlOgpA
QCAtMTM1OSw2ICsxNDA4LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRU
YWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoZGlk
UHJvY2VzcywgZGlkUHJvY2Vzcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgp
OwpAQCAtMTM2NywxMiArMTQyMiw1MSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBUZXh0TW9kZToKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGVtcGxh
dGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRv
a2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0
ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGxpbmtUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5u
YW1lKCkgPT0gc2NyaXB0VGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHN0eWxl
VGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IG1ldGFUYWcpIHsKKyAgICAgICAg
ICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZVRhZykKKyAg
ICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5GcmFtZXNldE1vZGUpOworICAgICAgICBlbHNl
IGlmICh0b2tlbi0+bmFtZSgpID09IGNvbFRhZykKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1v
ZGUoSW5Db2x1bW5Hcm91cE1vZGUpOworICAgICAgICBlbHNlIGlmIChpc0NhcHRpb25Db2xPckNv
bGdyb3VwVGFnKHRva2VuLT5uYW1lKCkpIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+
bmFtZSgpKSkKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZU1vZGUpOworICAg
ICAgICBlbHNlIGlmICh0b2tlbi0+bmFtZSgpID09IHRyVGFnKQorICAgICAgICAgICAgc2V0SW5z
ZXJ0aW9uTW9kZShJblRhYmxlQm9keU1vZGUpOworICAgICAgICBlbHNlIGlmIChpc1RhYmxlQ2Vs
bENvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEluUm93TW9kZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUo
SW5Cb2R5TW9kZSk7CisKKyAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyNlbHNlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJv
ZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmIChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhh
c1RlbXBsYXRlSW5IVE1MU2NvcGUoKSkgeworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fdHJl
ZS5pbnNlcnRIVE1MSHRtbFN0YXJ0VGFnSW5Cb2R5KHRva2VuKTsKIH0KIApAQCAtMTU0Miw4ICsx
NjM2LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3By
aWF0ZWx5KCkKICAgICAgICAgICAgIGxhc3QgPSB0cnVlOwogICAgICAgICAgICAgaXRlbSA9IEhU
TUxTdGFja0l0ZW06OmNyZWF0ZShtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxlbWVudCgpLCBI
VE1MU3RhY2tJdGVtOjpJdGVtRm9yQ29udGV4dEVsZW1lbnQpOwogICAgICAgICB9CisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpKQorICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoVGVtcGxhdGVDb250ZW50
c01vZGUpOworI2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykp
IHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRUYWcpIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhUYWcp
KQpAQCAtMTU1NSwxOSArMTY1MiwyMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNl
cnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNh
cHRpb25UYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5DYXB0aW9u
TW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkgewotICAg
ICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJu
IHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAgICAgICB9CiAgICAgICAg
IGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUo
aGVhZFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgaWYgKCFtX2ZyYWdtZW50Q29udGV4
dC5mcmFnbWVudCgpIHx8IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCkgIT0gaXRl
bS0+bm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluSGVh
ZE1vZGUpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJv
ZHlNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShib2R5VGFn
KSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAg
ICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShmcmFtZXNldFRhZykpIHsKLSAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRp
b25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZShodG1sVGFnKSkgewpAQCAtMTU5OCw3ICsxNjk2LDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGlzIHNsb3cuCiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRh
YmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcGFyc2VFcnJvcih0
b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE2MjgsNyArMTcyNiw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Sb3coQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcp
IHsKICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1v
ZGUpOwpAQCAtMTY4MSw3ICsxNzc5LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
RW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHx8IHRva2Vu
LT5uYW1lKCkgPT0gdHJUYWcKICAgICAgICAgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2Vu
LT5uYW1lKCkpKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxl
U2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAg
ICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0ZW1wbGF0ZVRhZykgfHwgaXNQYXJzaW5n
RnJhZ21lbnQoKSk7CisjZWxzZQogICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4
dFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNlbmRpZgogICAg
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTE4MjEsNiArMTkyMywxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBwcm9jZXNzRmFr
ZVN0YXJ0VGFnKGJyVGFnKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisjZW5kaWYKICAgICBwcm9jZXNzQW55T3RoZXJFbmRUYWdGb3JJbkJvZHkodG9rZW4pOwogfQog
CkBAIC0xODQyLDcgKzE5NTAsNyBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NhcHRp
b25FbmRUYWdGb3JJbkNhcHRpb24oKQogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUckVu
ZFRhZ0ZvckluUm93KCkKIHsKICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJs
ZVNjb3BlKHRyVGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250
ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CkBAIC0xODU2LDcgKzE5NjQsNyBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NU
YWJsZUVuZFRhZ0ZvckluVGFibGUoKQogewogICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygp
LT5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7Ci0gICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IuCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CkBAIC0xOTEzLDYgKzIwMjEsMTUgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgLy8gRmFsbCB0
aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1v
ZGUoKSA9PSBJbkhlYWRNb2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY2FzZSBzaG91bGQg
YmUgYnJva2VuIG91dCBpbnRvIHByb2Nlc3NFbmRUYWdGb3JJbkhlYWQsCisgICAgICAgIC8vIGJl
Y2F1c2Ugb3RoZXIgZW5kIHRhZyBjYXNlcyBub3cgcmVmZXIgdG8gaXQgKCJwcm9jZXNzIHRoZSB0
b2tlbiBmb3IgdXNpbmcgdGhlIHJ1bGVzIG9mIHRoZSAiaW4gaGVhZCIgaW5zZXJ0aW9uIG1vZGUi
KS4KKyAgICAgICAgLy8gYnV0IGJlY2F1c2UgdGhlIGxvZ2ljIGZhbGxzIHRocm91Z2ggdG8gQWZ0
ZXJIZWFkTW9kZSwgdGhhdCBnZXRzIGEgbGl0dGxlIG1lc3N5LgorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRh
ZykgewogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BIVE1MSGVhZEVsZW1l
bnQoKTsKICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJIZWFkTW9kZSk7CkBAIC0x
OTc3LDYgKzIwOTQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAg
ICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHBy
b2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1u
R3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMjA1Miw3ICsyMTc1LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBJbkZy
YW1lc2V0TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkZyYW1lc2V0
TW9kZSk7CiAgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7Ci0gICAg
ICAgICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygp
LT5yb290Tm9kZSgpKSB7CisgICAgICAgICAgICBib29sIGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21l
bnRQYXJzaW5nICA9IG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpOworI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgICAgICAgICBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyA9
IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisgICAgICAgICAgICBpZiAoaWdu
b3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAg
cGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQpAQCAtMjA2MSw2ICsyMTg5LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5k
VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9u
TW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAtMjExOSwxMSArMjI1MywzMiBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYg
KHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1w
bGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVUZXh0TW9kZToKICAgICAgICAgZGVm
YXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9Q
dWJsaWMvc2hvd19idWcuY2dpP2lkPTE5OTY2CisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0
ZW0oKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICAgICAgbV90cmVlLm9wZW5F
bGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJp
YXRlbHkoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzZXRJbnNl
cnRpb25Nb2RlKEluQm9keU1vZGUpOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyNl
bHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIApAQCAtMjIyNCw4ICsyMzc5LDE0IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAg
ICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKKyAgICBj
YXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgogICAgIGNhc2UgSW5DZWxsTW9kZTogeworI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5C
b2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25N
b2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50
c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0
ZUNvbnRlbnRzTW9kZSkKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlN
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUo
KSA9PSBJbkNlbGxNb2RlKTsKKyNlbmRpZgogICAgICAgICBwcm9jZXNzQ2hhcmFjdGVyQnVmZmVy
Rm9ySW5Cb2R5KGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTIzNjAsNyArMjUy
MSwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgIGNhc2UgSW5DZWxsTW9kZToKICAgICBjYXNlIEluQ2FwdGlvbk1v
ZGU6CiAgICAgY2FzZSBJblJvd01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUo
KSA9PSBJbkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGlu
c2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IFRlbXBsYXRl
Q29udGVudHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgIT0g
VGVtcGxhdGVDb250ZW50c01vZGUpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9u
TW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSk7
CisjZW5kaWYKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8gRW1pdCBwYXJzZSBlcnJvciBi
YXNlZCBvbiB3aGF0IGVsZW1lbnRzIGFyZSBzdGlsbCBvcGVuLgogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEFmdGVyQm9keU1vZGU6CkBAIC0yMzg2LDcgKzI1NTIsNyBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5Db2x1
bW5Hcm91cE1vZGU6Ci0gICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50
SXNSb290Tm9kZSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
CiAgICAgICAgICAgICByZXR1cm47IC8vIEZJWE1FOiBTaG91bGQgd2UgYnJlYWsgaGVyZSBpbnN0
ZWFkIG9mIHJldHVybmluZz8KICAgICAgICAgfQpAQCAtMjQwOSw2ICsyNTc1LDE2IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUobV9vcmlnaW5hbEluc2VydGlvbk1vZGUpOwogICAg
ICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
VGVtcGxhdGVDb250ZW50c01vZGU6CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5v
ZGUoKSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAg
ICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgIHJlc2V0SW5zZXJ0aW9u
TW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50Tm9kZSgpKTsK
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcEFsbCgpOwpAQCAtMjUxMiw2ICsyNjg4LDEy
IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKHNjcmlwdFRh
Zyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nl
c3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
I2VuZGlmCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDhmZjBmNThiMzQ1ZmZmM2U0NTViNWFm
ZmVmNjVlMTAyZjZkNWJmZmEuLjc3ZTZjYzc1ZDljODYwOTg2OGE3M2ZhZjE4NjY1MDY0ZDRkOWYw
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBA
IC02Nyw2ICs2NywxMiBAQCBwdWJsaWM6CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwogCiAgICAg
Ym9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVudENvbnRl
eHQuZnJhZ21lbnQoKTsgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgYm9vbCBpc1Bh
cnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gbV90cmVlLm9wZW5FbGVtZW50
cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7IH0KKyAgICBib29sIGlzUGFyc2luZ0ZyYWdt
ZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5nRnJhZ21lbnQo
KSB8fCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCk7IH0KKyNlbHNlCisgICAgYm9vbCBpc1Bh
cnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGlzUGFyc2lu
Z0ZyYWdtZW50KCkgfQorI2VuZGlmCiAKICAgICB2b2lkIGRldGFjaCgpOwogCkBAIC05Nyw2ICsx
MDMsNyBAQCBwcml2YXRlOgogICAgICAgICBJbkhlYWRNb2RlLAogICAgICAgICBJbkhlYWROb3Nj
cmlwdE1vZGUsCiAgICAgICAgIEFmdGVySGVhZE1vZGUsCisgICAgICAgIFRlbXBsYXRlQ29udGVu
dHNNb2RlLAogICAgICAgICBJbkJvZHlNb2RlLAogICAgICAgICBUZXh0TW9kZSwKICAgICAgICAg
SW5UYWJsZU1vZGUsCkBAIC0xOTAsNiArMTk3LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJl
c2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9U
QUcpCisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qKTsK
KyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1MVG9rZW4qKTsKKyNlbmRp
ZgorCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCB7CiAgICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEZyYWdtZW50UGFyc2luZ0NvbnRleHQpOwogICAgIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0YTNhNWY0ZGVmMDdkZjI4NmJlNDE2YWEyOWI1MDI4
ZDFkOWRmNTQ4Li45ZTZiMDdjZjlmNzRmNDAwODg2NzgyYWZkY2FhNjIyMDY2MWZjNzBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00NzIsNiArNDcyLDcgQEAKICAgICBhdHRyaWJ1
dGUgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZUVsZW1lbnQ7CiAgICAgYXR0
cmlidXRlIEhUTUxUYWJsZVJvd0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVSb3dFbGVtZW50
OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudENvbnN0cnVjdG9yIEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OworICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VEVNUExBVEVf
VEFHXSBIVE1MVGVtcGxhdGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRlbXBsYXRlRWxlbWVudDsK
ICAgICBhdHRyaWJ1dGUgSFRNTFRleHRBcmVhRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZXh0QXJl
YUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUaXRsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
VGl0bGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVUxpc3RFbGVtZW50Q29uc3RydWN0b3Ig
SFRNTFVMaXN0RWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBh
N2JmNjM2N2ExNGYxNjlmODBhOGE0OWY2ZTIxMGMyZjE2NWQ5YjE1Li45MmJjYjMxYjVhNWJkMzE5
OTgxZTUwODJiOGE3N2IwZTAwODU4YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5n
eXBpCkBAIC0xMTEsNiArMTExLDcgQEAKICAgICAgICdFTkFCTEVfU1ZHX0ZPTlRTPTwoZW5hYmxl
X3N2ZyknLAogICAgICAgJ0VOQUJMRV9URVhUX0FVVE9TSVpJTkc9MScsCiAgICAgICAnRU5BQkxF
X1RPVUNIX0FESlVTVE1FTlQ9MScsCisgICAgICAnRU5BQkxFX1RFTVBMQVRFX1RBRz0xJywKICAg
ICAgICdFTkFCTEVfVE9VQ0hfRVZFTlRTPTwoZW5hYmxlX3RvdWNoX2V2ZW50cyknLAogICAgICAg
J0VOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkc9PChlbmFibGVfdG91Y2hfaWNvbl9sb2FkaW5nKScs
CiAgICAgICAnRU5BQkxFX1RPVUNIX1NMSURFUj0xJywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMTc0MGY3NDY3YWNlNTBm
NWJmMzRmZGI3MzFmYzgzYmUzMWU3NTU5Li45ZTcwYjM1ZTFiYTc3ODM5MjM3YzYwMGM4ZDhjNTYz
NjQ5M2EyMjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTEtMTMgIFJhZmFlbCBXZWlu
c3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgSFRNTFRl
bXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5v
ZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3Vt
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3Jl
c291cmNlcy90ZW1wbGF0ZS5kYXQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1w
bGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanM6Cisg
ICAgICAgIChNYXJrdXAuX2dldCk6CisgICAgICAgIChNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21O
b2RlKToKKwogMjAxMi0xMS0yOCAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBbGxvdyBwbHVnaW5zIHRvIG9wdC1pbiB0
byByZWNlaXZlIHN5bnRoZXRpYyBtb3VzZSBldmVudHMgb3V0IG9mIHRvdWNoIGV2ZW50cy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVO
b2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzM1OTk5OWE0NTE3ODNhNzAy
YmMzYTAxNzBiMDZjMzFjOWEwZjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOCBAQAorVGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBub3QgY2xvbmVkIHdoZW4g
dGhlIHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xvbmVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIDEgaXMgdGVtcGxhdGUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aAorUEFT
UyAwIGlzIGNsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjIxNjJlZWM2NzUwNDU4MGRmNjVhNjVmYTIwNDdjM2E3ZDQ0MTZkNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xv
bmVOb2RlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUg
aWQ9InRlbXBsYXRlIj5Db250ZW50czwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCdUZXN0IHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUg
dGVtcGxhdGUgZWxlbWVudCBpcyBjbG9uZWQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRl
RWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBM
QVRFX1RBRyknKTsKKwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
bXBsYXRlJyk7CitzaG91bGRCZSgnMScsICd0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVu
Z3RoJyk7Cit2YXIgY2xvbmUgPSB0ZW1wbGF0ZS5jbG9uZU5vZGUodHJ1ZSk7CitzaG91bGRCZSgn
MCcsICdjbG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJyk7CisKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENv
bnRlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmZjExNTE1YWE4
NjllNWRmYTg1MTM4YWExYWZjZDJkZWM5MzdmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitodHRwOi8vYmF6LmNvbS9iYXQuanBnIC0gd2lsbFNlbmRSZXF1
ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly9iYXouY29tL2JhdC5qcGcsIG1haW4gZG9jdW1l
bnQgVVJMIGluZXJ0Q29udGVudHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3Bv
bnNlIChudWxsKQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9iYXouY29t
L2JhdC5qcGcKK2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJv
cjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGluZyBV
UkwgIihudWxsKSI+CitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgZWxlbWVudHMgd2l0aGluIHRlbXBs
YXRlIGNvbnRlbnRzIGFyZSAiaW5lcnQiLCBlLmcuIHJlc291cmNlcyBkbyBub3QgZmV0Y2gsIHNj
cmlwdCBkb2VzIG5vdCBydW4uCisKK3Bhc3MhCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzNjMDVlY2I5MDc5NzVkNTAxNDQ3OTUwYzNjY2U3NWExY2U5NmQ3ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRD
b250ZW50cy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+Cit2YXIgdGVzdFZhbCA9IDE7CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcygpOworICAgIH0KKworICAgIGlmICh0ZXN0VmFsICE9IDEpCisgICAgICAgIHJldHVybjsK
KworICAgIHZhciB0ZW1wbGF0ZUNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVt
cGxhdGUnKS5jb250ZW50OworICAgIHZhciBpbWcgPSB0ZW1wbGF0ZUNvbnRlbnQuY2hpbGROb2Rl
c1sxXTsKKyAgICBpbWcuc3JjID0gImh0dHA6Ly9iYXouY29tL2JhdC5qcGciOworICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGVDb250ZW50KTsKKworICAgIGlmICh0ZXN0VmFs
ICE9IDIpCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdv
dXRwdXQnKS5pbm5lclRleHQgPSAncGFzcyEnOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29u
dGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRv
ZXMgbm90IHJ1bi48L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c2NyaXB0PndpbmRvdy50
ZXN0VmFsID0gMjs8L3NjcmlwdD48aW1nIHNyYz0iaHR0cDovL2Zvby5jb20vYmFyLmpwZyI+Cis8
L3RlbXBsYXRlPgorPGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41Zjk3MjcwODdhM2U2NzEyMzAxMmY4NmJlN2U0YmVjODIzMjU4NjZkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bm5lckhUTUwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhlIHRlc3QgYXNzZXJ0cyB0
aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBp
dHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuCisKKzxkaXY+Q29udGVudHMgMQorPHRlbXBsYXRlPkNv
bnRlbnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzYy
Y2EzYmVmMWQzZDgyNzlmYWIxOTE3ODk5MmMyYzVmNjFjM2M1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApA
QCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgdGVtcGxhdGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91
bGQgbm90IHNlcmlhbGl6ZSc7CisgICAgdmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250
ZW50LmZpcnN0Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgaW5uZXJUZW1wbGF0ZS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91
bGQgbm90IHNlcmlhbGl6ZSBlaXRoZXInOworCisgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gdGVt
cGxhdGUuaW5uZXJIVE1MOworICAgIGlmICh0ZW1wbGF0ZS5jaGlsZE5vZGVzLmxlbmd0aCAhPSAx
KSAvLyBUaGUgb25seSBjaGlsZCBzaG91bGQgYmUgdGhlIHNwYW4gdGhhdCB3YXMgYWRkZWQgYWJv
dmUuCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRw
dXQnKS5pbm5lclRleHQgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7CisgICAgdmFyIHRlbXBsYXRlMiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7CisgICAgdGVtcGxhdGUyLmlubmVy
SFRNTCA9ICc8dGVtcGxhdGU+PC90ZW1wbGF0ZT4nOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoZSB0ZXN0IGFzc2VydHMgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgc2Vy
aWFsaXplZCB3aXRoIGlubmVySFRNTCBhbmQgaXRzIGNoaWxkcmVuIGFyZSBpZ25vcmVkLjwvcD4K
Kzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxkaXY+Q29udGVudHMgMQorICA8dGVtcGxhdGU+Q29u
dGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj48L3RlbXBsYXRlPgorPGRpdiBpZD0ib3V0cHV0Ij4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OTczNWFmZTYx
ZGYyNjg2ZGY1MGNjNDFmOGNiNzQwYmQ4ZmU1MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjggQEAKK1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93
bmVyRG9jdW1lbnQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1l
bnQgaXMgdGVtcGxhdGUub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQgaXMg
bm90IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudAor
UEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGlubmVyVGVtcGxhdGUub3duZXJE
b2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGlubmVyVGVtcGxh
dGUuY29udGVudC5vd25lckRvY3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVu
dCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyB0cnVlCitQQVNTIGRvY3VtZW50IGlzIHRlbXBs
YXRlMi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMg
dGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyBkb2N1bWVudCBpcyBkZi5vd25l
ckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIHNwYW4ub3duZXJEb2N1bWVudAorUEFTUyB0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGRmLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBzcGFuLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxh
dGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVt
cGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7IHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNlcHRpb24gMTcuCitQQVNT
IHRlbXBsYXRlLmNvbnRlbnQgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGRv
Y3VtZW50IGlzIHRlbXBsYXRlMy5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93
bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyB0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIHRlbXBsYXRlMy5jb250ZW50LmZpcnN0Q2hpbGQu
b3duZXJEb2N1bWVudAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvb3duZXJEb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk3ZGEyNjg0ZGM2YjQy
MTg5ZmU5M2RiYzM1NzIxOWY5N2MyOTJlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sCkBAIC0wLDAg
KzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PHNwYW4+
PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zcGFuPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRl
bXBsYXRlMiI+PHNwYW4+PC9zcGFuPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRl
MyI+PHN2Zz48L3N2Zz48L3RlbXBsYXRlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVz
dCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCcpOworCitpZiAoIXdp
bmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1
aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0
ZS5vd25lckRvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0g
dGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Oworc2hvdWxkQmVUcnVlKCd0ZW1wbGF0ZUNv
bnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CitzaG91bGROb3RC
ZSgnZG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUo
J3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGUuY29udGVudC5maXJzdENo
aWxkLm93bmVyRG9jdW1lbnQnKTsKKwordmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250
ZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25l
ckRvY3VtZW50JywgJ2lubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3Rl
bXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAnaW5uZXJUZW1wbGF0ZS5jb250ZW50Lm93bmVy
RG9jdW1lbnQnKTsKK3Nob3VsZEJlVHJ1ZSgnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGlu
c3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVtcGxhdGUyJyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGUy
Lm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
JywgJ3RlbXBsYXRlMi5jb250ZW50Lm93bmVyRG9jdW1lbnQnKTsKKwordmFyIGRmID0gZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwordmFyIHNwYW4gPSBkZi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ2Rm
Lm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICdzcGFuLm93bmVyRG9jdW1l
bnQnKTsKKwordGVtcGxhdGUuY29udGVudCA9IGRmOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQnLCAnZGYub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRl
Q29udGVudE93bmVyRG9jdW1lbnQnLCAnc3Bhbi5vd25lckRvY3VtZW50Jyk7CisKK3Nob3VsZFRo
cm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOycp
Oworc2hvdWxkVGhyb3coJ3RlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgidGV4dCIpOycpOworaWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dSb290KSB7CisgICAgdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHNob3VsZFRocm93KCd0ZW1w
bGF0ZS5jb250ZW50ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KScpOworfQorCit2YXIgdGVt
cGxhdGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUo
J2RvY3VtZW50JywgJ3RlbXBsYXRlMy5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTMuY29udGVudC5vd25lckRvY3VtZW50
Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTMu
Y29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9j
dW1lbnRYSFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY2
OWJmZmQ5MWQxZWY5N2Y2MWRmNmVlM2E2OTcwMDljY2EwNzViNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhI
VE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IEhUTUxUZW1wbGF0ZUVsZW1l
bnQgY29udGVudCBvd25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50CisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50
IGlzIGZhbHNlCitQQVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9j
dW1lbnQgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBh
N2I0YmE4ZmY3NWQ4NzljZDEwMjAyZjFiODU2ZDViZDU4ZjE3MDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRY
SFRNTC54aHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRp
b24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQgaW4gWEhU
TUwgRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0
ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX1RBRyknKTsKKwor
c2hvdWxkQmVGYWxzZSgnZG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQnKTsKK3ZhciB0
ZW1wbGF0ZTQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpOwordmFyIHRlbXBs
YXRlQ29udGVudE93bmVyRG9jdW1lbnQgPSB0ZW1wbGF0ZTQuY29udGVudC5vd25lckRvY3VtZW50
Oworc2hvdWxkTm90QmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQn
KTsKK3Nob3VsZEJlRmFsc2UoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2Vv
ZiBIVE1MRG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0IGIvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWE4YWI0ZWYxNjE3
NjNiODIyZjc3NWFmMDI4MDU1ZjE1ZTVmMDg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdApAQCAtMCwwICsxLDgyOSBAQAorI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1w
bGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICJIZWxsbyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48L3RlbXBsYXRl
PjxkaXY+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgIDxib2R5Pgor
fCAgICAgPGRpdj4KKworI2RhdGEKKzxodG1sPjx0ZW1wbGF0ZT5IZWxsbzwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICJIZWxsbyIKK3wgICA8Ym9k
eT4KKworI2RhdGEKKzxoZWFkPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2PjwvdGVtcGxhdGU+PC9oZWFk
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgIDxi
b2R5PgorCisjZGF0YQorPGRpdj48dGVtcGxhdGU+PGRpdj48c3Bhbj48L3RlbXBsYXRlPjxiPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgIDxiPgor
CisjZGF0YQorPGRpdj48dGVtcGxhdGU+PC9kaXY+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICJIZWxs
byIKKworI2RhdGEKKzxkaXY+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8
dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxl
Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PGRpdj48
dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzx0
YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
CisjZGF0YQorPHRhYmxlPiAgIDx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgICIgICAiCit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+
PC90Ym9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9k
eT48dGVtcGxhdGU+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJv
ZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+PC90
YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0aGVhZD48
dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RoZWFkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+
Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisK
KyNkYXRhCis8dGFibGU+PHRmb290Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGZvb3Q+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0Zm9vdD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxh
dGU+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48b3B0aW9uPjwv
b3B0aW9uPjwvdGVtcGxhdGU+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8b3B0aW9uPgor
CisjZGF0YQorPHRlbXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC9zZWxlY3Q+PG9wdGlvbj48L29w
dGlvbj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8b3B0aW9uPgorfCAgICAgICAgIDxvcHRpb24+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2Vs
ZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjxvcHRpb24+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0Pgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
IDxvcHRpb24+CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PHRlbXBsYXRlPjwvdGVtcGxhdGU+
PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwv
b3B0aW9uPjx0ZW1wbGF0ZT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0ZD48L3Rl
bXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAg
PHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8Ym9keT48dGFibGU+PHRlbXBs
YXRlPjx0ZD48L3RyPjxkaXY+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8
dGQ+Cit8ICAgICAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVh
ZD48L3RlbXBsYXRlPjwvdGhlYWQ+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgor
CisjZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PHRyPjwvdGVtcGxhdGU+PC90YWJsZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8
dGFibGU+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAg
IDx0cj4KKworI2RhdGEKKzx0YWJsZT48dHI+PHRlbXBsYXRlPjx0ZD4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgPHRkPgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdHI+
PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48
dGQ+PC90ZD48L3RlbXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48
dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48
dGVtcGxhdGU+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAg
IDx0cj4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PGNvbGdyb3VwPjx0ZW1wbGF0
ZT48Y29sPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+
CisKKyNkYXRhCis8ZnJhbWVzZXQ+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+
PC9mcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8ZnJhbWVzZXQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDxmcmFtZT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48
L2ZyYW1lc2V0PjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxmcmFtZT4KK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgPGJv
ZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2
PjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgICAgPHNwYW4+Cit8
ICAgPGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+
PC9zcGFuPjwvZGl2PjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAg
ICAgIDxzcGFuPgorfCAgICAgICAgIDxzcGFuPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxz
Y3JpcHQ+dmFyIGkgPSAxOzwvc2NyaXB0Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzY3JpcHQ+Cit8ICAg
ICAgICAgICAidmFyIGkgPSAxOyIKK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVt
cGxhdGU+PHRyPjxkaXY+PC9kaXY+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPGRpdj4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGQ+PC90ZD48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+
Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBs
YXRlPjx0ZD48L3RkPjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4K
KworCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjx0Ym9keT48dGQ+PC90ZD48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48
L3RkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAg
PHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjxjb2xncm91cD48L2NhcHRp
b24+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5
Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RhYmxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAg
ICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRib2R5Pjx0cj48
L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxh
dGU+PHRyPjwvdHI+PGNhcHRpb24+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0
cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48L3RhYmxlPjx0cj48L3RyPjwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRo
ZWFkPjwvdGhlYWQ+PGNhcHRpb24+PC9jYXB0aW9uPjx0Ym9keT48L3Rib2R5PjwvdGVtcGxhdGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0
aGVhZD4KK3wgICAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PHRoZWFkPjwvdGhlYWQ+PC90YWJsZT48dGJvZHk+PC90Ym9keT48L3Rl
bXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0
ZW1wbGF0ZT48ZGl2Pjx0cj48L3RyPjwvZGl2PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9k
eT48dGVtcGxhdGU+PGVtPkhlbGxvPC9lbT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZW0+Cit8ICAgICAgICAgICAiSGVs
bG8iCisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PCEtLWNvbW1lbnQtLT48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8IS0t
IGNvbW1lbnQgLS0+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHN0eWxlPjwvc3R5bGU+PHRk
PjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPHN0eWxlPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0
ZW1wbGF0ZT48bWV0YT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8bWV0YT4KK3wgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGxpbms+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGxpbms+Cit8
ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90
cj48L3RlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisj
ZGF0YQorPGJvZHk+PHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD48L2NvbD48L3RlbXBs
YXRlPjwvY29sZ3JvdXA+PC90YWJsZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjb2xn
cm91cD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICAgICAgPGNvbD4KKworI2RhdGEKKzxib2R5IGE9Yj48dGVtcGxhdGU+PGRp
dj48L2Rpdj48Ym9keSBjPWQ+PGRpdj48L2Rpdj48L2JvZHk+PC90ZW1wbGF0ZT48L2JvZHk+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICBhPSJiIgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICA8ZGl2PgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbCBhPWI+PHRlbXBs
YXRlPjxkaXY+PGh0bWwgYj1jPjxzcGFuPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFu
PgorfCAgIDxib2R5PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjxo
dG1sIGI9Yz48Y29sPjwvY29sPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgICA8Y29sPgorfCAgIDxi
b2R5PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48aHRtbCBi
PWM+PGZyYW1lPjwvZnJhbWU+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICBhPSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAg
IDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZm
ZWFjNDQ0OWIzZTkxN2FjNGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxzY3JpcHQ+Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0
ZS5kYXQnLAorXQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48
L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
ZHVtcC1hcy1tYXJrdXAuanMKaW5kZXggNTNhMDAxZmVmZGUyODgxYWVmNjFjZDA2OTAyNzJmYzZl
MTViMWU5MS4uYzdmZGYxN2YyMGE0MjljMTBjNmQ4YjNhMTk2ZGZiOTA5NDQ2MmIwYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91
dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIwLDE2ICsyMjAsMjQgQEAg
TWFya3VwLl9nZXQgPSBmdW5jdGlvbihub2RlLCBkZXB0aCkKICAgICBjYXNlIE5vZGUuRE9DVU1F
TlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ct
cm9vdCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgIHN0ciArPSAiI2RvY3VtZW50LWZyYWdtZW50IjsKICAgICB9Ci0KLSAgICBmb3Ig
KHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7
Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2Rl
LCBpKTsKLSAgICAgICAgaWYgKHNlbGVjdGlvbikKLSAgICAgICAgICAgIHN0ciArPSBNYXJrdXAu
X2luZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOwotCi0gICAgICAgIHN0ciArPSBNYXJrdXAu
X2dldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgCisgICAgCisgICAgLy8g
SFRNTCBUZW1wbGF0ZSBlbGVtZW50cyBzZXJpYWxpemUgdGhlaXIgY29udGVudCBEb2N1bWVudEZy
YWdtZW50LCBhbmQgTk9UIHRoZWlyIGNoaWxkcmVuLgorICAgIGlmIChub2RlLm5hbWVzcGFjZVVS
SSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RF
TVBMQVRFJykgeworICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jb250ZW50LCBkZXB0
aCArIDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2Rl
LmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzZWxl
Y3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICAgICAgICAg
IGlmIChzZWxlY3Rpb24pCisgICAgICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRl
cHRoICsgMSkgKyBzZWxlY3Rpb247CisgICAgCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9n
ZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAgICB9CiAgICAgfQotCisg
ICAgCiAgICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVw
dGgpOwogICAgIAogICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtl
cihub2RlLCBpKTsKQEAgLTI4NCw3ICsyOTIsNyBAQCBNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQ
ID0gewogCiBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKIHsK
LSAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigp
OworICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPyBub2RlLm93bmVy
RG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCkgOiBudWxsOwogfQogCiBNYXJrdXAu
X1NFTEVDVElPTl9GT0NVUyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176531</attachid>
            <date>2012-11-28 11:29:22 -0800</date>
            <delta_ts>2012-11-28 17:29:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121128112657.patch</filename>
            <type>text/plain</type>
            <size>82232</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM4MDNlNDVkZTJkZWJj
OWRmNjY3ZWU5MTkyZDYxMDlkYWJlMzdiZS4uNThkMGVlYzczZDI2MTIzNWVmYTE3OGZhNzhmMjQy
NDgzMzY3NDAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjggIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1F0XVtXaW5dIEVuYWJsZSB1c2FnZSBvZiBRVFdFQktJVF9QTFVHSU5fUEFUSC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmQ0ODg2ZDU1NGYzYmZjZWEyMTI2OGNiNjRhN2E0
MzhmYWM2MGFkYi4uM2MzMzM5MjIyZTQwYzk5NDc2Y2EzNGZhYjI1Mzk1MzZjNDQ4NDJlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0xMyAgUmFm
YWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFR1cm5pbmcgb24gSFRNTFRlbXBsYXRlRWxlbWVudCBmb3IgY2hyb21pdW0g
cG9ydC4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTItMTEtMjggIFNhZHJ1bCBI
YWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gQWxsb3cgcGx1Z2lucyB0byBvcHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZl
bnRzIG91dCBvZiB0b3VjaCBldmVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDZmOTEyMDIxZDRm
YzNiZWNiODQ1YTNhMjI2MmZmMjUzZTEwYTNkMi4uMzc3NDU5NGM0MGEwMDFmMTUzNzU5OWQyNmI5
OTA2YjQzMjQ5MGFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTEyOCw2ICsxMTI4LDcgQEAKICAg
ICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVUxpc3RFbGVtZW50LmlkbCcsCkBAIC00MTgwLDYgKzQxODEsOCBAQAogICAgICAgICAgICAg
J2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNw
cCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRs
ZUVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCA0YTFlMzM1NjhjYjE1N2E3MjNmMGM3
YWZhNjk3YzM0MDkyNjY2MTY4Li5jZmU4NzA1M2RjNzIwYTRlMzQ3OTI1YWU2OTkzOTI1ODIzOWNh
NTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0xMjYyLDYgKzEyNjIsMTAgQEAgc3VtbWFyeTo6LXdl
YmtpdC1kZXRhaWxzLW1hcmtlciB7CiAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTsKIH0KIAordGVt
cGxhdGUgeworICAgIGRpc3BsYXk6IG5vbmUKK30KKwogYmRpLCBvdXRwdXQgewogICAgIHVuaWNv
ZGUtYmlkaTogLXdlYmtpdC1pc29sYXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCmluZGV4IDIzZmJkNGZiYTY0OGRkYzIxZjQ3NzBmNWYzZTllZmUxYmRlNzBhZTUuLjBkMjUx
NjYzM2YzOGJmOWY2ZWJiMTk1MGU4NzRkNzJiNDE3ZThjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKQEAgLTIzMCw2ICsyMzAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBh
cnNlckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hp
bAogICAgIEFTU0VSVChuZXdDaGlsZCk7CiAgICAgQVNTRVJUKG5leHRDaGlsZCk7CiAgICAgQVNT
RVJUKG5leHRDaGlsZC0+cGFyZW50Tm9kZSgpID09IHRoaXMpOworICAgIEFTU0VSVChkb2N1bWVu
dCgpID09IG5ld0NoaWxkLT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsK
ICAgICBjb2xsZWN0VGFyZ2V0Tm9kZXMobmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMpOwpAQCAtNjEw
LDYgKzYxMSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VyQXBwZW5kQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCkKIHsKICAgICBBU1NFUlQobmV3Q2hpbGQpOwogICAgIEFTU0VS
VCghbmV3Q2hpbGQtPnBhcmVudE5vZGUoKSk7IC8vIFVzZSBhcHBlbmRDaGlsZCBpZiB5b3UgbmVl
ZCB0byBoYW5kbGUgcmVwYXJlbnRpbmcgKGFuZCB3YW50IERPTSBtdXRhdGlvbiBldmVudHMpLgor
ICAgIEFTU0VSVChkb2N1bWVudCgpID09IG5ld0NoaWxkLT5kb2N1bWVudCgpKTsKIAogICAgIE5v
ZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBkYjc0ZDU1ZGU1YzEwZjA2ZDU1MjE2MTMzMGFjZjY3MjU3ZTIxOWIyLi45YjI0ZWExYWEzZmU1
ODYwYTg2NTFiZDNiNGYwMDg5Y2UwM2UwODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTU5MzUsNCArNTkzNSwyMiBAQCBMb2NhbGUmIERvY3VtZW50OjpnZXRDYWNoZWRMb2NhbGUoY29u
c3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpCiAgICAgcmV0dXJuICoocmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorRG9jdW1lbnQqIERvY3VtZW50
Ojp0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpCit7CisgICAgLy8gSWYgRE9DVU1FTlQg
ZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQsIExldCBURU1QTEFURSBDT05URU5UUyBP
V05FUiBiZSBET0NVTUVOVCBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFtX2ZyYW1l
KQorICAgICAgICByZXR1cm4gdGhpczsKKworICAgIGlmICghbV90ZW1wbGF0ZUNvbnRlbnRzT3du
ZXJEb2N1bWVudCkgeworICAgICAgICBpZiAoaXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgw
LCBibGFua1VSTCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRl
bnRzT3duZXJEb2N1bWVudCA9IERvY3VtZW50OjpjcmVhdGUoMCwgYmxhbmtVUkwoKSk7CisgICAg
fQorCisgICAgcmV0dXJuIG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQuZ2V0KCk7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCBiYTFlNTQ3YzBjOTdjMDU3NjkwZjgzYjhhZTAwNDRjZjllMzA5YzM0Li5mNjhhYmQzMGY5MGRi
ZmE0MzVjZThkMDk4NDM1ZmJkZTExZDk1YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE3
MCw2ICsxMTcwLDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+
ID4mIHRvcExheWVyRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RvcExheWVyRWxlbWVudHM7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBEb2N1bWVudCogdGVt
cGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAg
RG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7
CiAKQEAgLTE1MjMsNiArMTUyNywxMCBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PEF0b21pY1N0cmluZywgT3duUHRyPExvY2FsZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVN
YXA7CiAgICAgTG9jYWxlSWRlbnRpZmllclRvTG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZUNv
bnRlbnRzT3duZXJEb2N1bWVudDsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6
Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggYmViODMyZjdmNTAwOWI2YWM2MTNjMzNj
ZDhiNDcxZWEyMjQ3MmU2Mi4uOGM2N2MxMjc3ZjRmNjRlNzRkMmY4ZDQ0MDlhNGFlMDRmMDY5NmYz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgpAQCAtMTQxLDcgKzE0MiwxMiBAQCB2b2lkIE1h
cmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdl
dE5vZGUsIE5vZGUqIG5vZAogICAgICAgICBhcHBlbmRTdGFydFRhZyh0YXJnZXROb2RlLCAmbmFt
ZXNwYWNlSGFzaCk7CiAKICAgICBpZiAoISh0YXJnZXROb2RlLT5kb2N1bWVudCgpLT5pc0hUTUxE
b2N1bWVudCgpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKHRhcmdldE5vZGUpKSkgewotICAg
ICAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJl
bnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5oYXNUYWdOYW1lKHRl
bXBsYXRlVGFnKSA/IHRvSFRNTFRlbXBsYXRlRWxlbWVudCh0YXJnZXROb2RlKS0+Y29udGVudCgp
LT5maXJzdENoaWxkKCkgOiB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZWxzZQorICAgICAg
ICBOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOworI2VuZGlmCisgICAg
ICAgIGZvciAoIDsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCiAg
ICAgICAgICAgICBzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKGN1cnJlbnQsIG5vZGVUb1Nr
aXAsIEluY2x1ZGVOb2RlLCAmbmFtZXNwYWNlSGFzaCwgdGFnTmFtZXNUb1NraXApOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA4N2I3ZTI2Mjk1ZmI3NGYzYTAw
MWFlNDJlY2UxNGY3YTM5ZWM5MTFkLi42NzRmMWVkZDQzZGRiMTgzZjM1OTBkZTI1YWIzZmEwNmU2
MzExMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJXb3JkQnJlYWsuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBA
IC0zNDMsOCArMzQ0LDE0IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QK
IAogdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwoaHRtbCwgdGhpcywgQWxsb3dT
Y3JpcHRpbmdDb250ZW50LCBlYykpCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dCh0aGlzLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICBpZiAoUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1s
LCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkgeworICAgICAgICBDb250YWluZXJO
b2RlKiBjb250YWluZXIgPSB0aGlzOworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAg
IGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgY29udGFpbmVyID0g
dG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMpLT5jb250ZW50KCk7CisjZW5kaWYKKyAgICAgICAg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZSgp
LCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1
MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNmNDdjMDBiODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5
ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAK
QEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4NWExZTYxYTVhOTU4MmIxM2U2MzQyODlj
ZGM1M2EyMmM3NmIzZTAxLi5jNDM2ZjhkZjg4ODMzNGZkMzZiMWZkNGMzZmE3ZDY1NjFkN2QzMDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1
cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1I
VE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxl
bWVudAordGVtcGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1MVGVtcGxhdGVFbGVtZW50LCBjb25kaXRp
b25hbD1URU1QTEFURV9UQUcKIHRleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxl
bWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiB0Zm9vdCBpbnRlcmZhY2VOYW1lPUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0aCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVt
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYTlhNDMxYjc3OThhYzY2MGY1ODZmODYwOGVhMzAzYTkwMDJhOGZiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApAQCAt
MCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKworI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkRPTUlt
cGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIm1hcmt1cC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK2lubGluZSBIVE1MVGVtcGxhdGVF
bGVtZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQoreworfQorCitIVE1MVGVtcGxhdGVFbGVtZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCgpCit7
Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gSFRNTFRlbXBsYXRlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1wbGF0ZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1lbnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxlbWVu
dDo6Y29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbnRlbnQpCisgICAgICAgIG1fY29u
dGVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25lckRvY3VtZW50KCktPnRlbXBsYXRl
Q29udGVudHNPd25lckRvY3VtZW50KCkpOworCisgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsK
K30KKworCisvLyBGSVhNRTogaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVn
LmNnaT9pZD0yMDEyNyAocHJldmVudCBET00gaGllcmFyY2h5IGN5Y2xlcykuCisvLyBGSVhNRTog
aHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMDEyOSAoZXh0
ZW5kZWQgYWRvcHROb2RlIHRvIGNvbnNpZGVyIHRlbXBsYXRlLmNvbnRlbnQpLgordm9pZCBIVE1M
VGVtcGxhdGVFbGVtZW50OjpzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
cHJwQ29udGVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNvbnRlbnQgPSBwcnBDb250ZW50OworCisgICAgaWYgKCFjb250ZW50IHx8IGNvbnRl
bnQtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9jb250ZW50LmdldCgpID09IGNvbnRl
bnQuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb250ZW50LT5vd25lckRvY3Vt
ZW50KCkgIT0gb3duZXJEb2N1bWVudCgpLT50ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgp
KQorICAgICAgICBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50
KCktPmFkb3B0Tm9kZShjb250ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworICAgIG1fY29u
dGVudCA9IGNvbnRlbnQ7Cit9CisKKyNpZm5kZWYgTkRFQlVHCitjb25zdCBIVE1MVGVtcGxhdGVF
bGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBB
U1NFUlQoIW5vZGUgfHwgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBub2RlLT5oYXNUYWdOYW1l
KHRlbXBsYXRlVGFnKSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1MVGVtcGxh
dGVFbGVtZW50Kj4obm9kZSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIxM2M0MjE4M2QxZDhjZDg3MGU1NDk1M2Zm
ZTc5MGIxNzViNDgyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MVGVtcGxhdGVF
bGVtZW50X2gKKyNkZWZpbmUgSFRNTFRlbXBsYXRlRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFRlbXBsYXRl
RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxUZW1wbGF0ZUVsZW1lbnQoKTsKKworICAgIERv
Y3VtZW50RnJhZ21lbnQqIGNvbnRlbnQoKSBjb25zdDsKKworICAgIHZvaWQgc2V0Q29udGVudChQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6
CisgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKKworICAgIG11dGFibGUgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKK307
CisKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25z
dCBOb2RlKik7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVs
ZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxIVE1MVGVtcGxhdGVF
bGVtZW50Kj4odG9IVE1MVGVtcGxhdGVFbGVtZW50KHN0YXRpY19jYXN0PGNvbnN0IE5vZGUqPihu
b2RlKSkpOworfQorCisjaWZkZWYgTkRFQlVHCisKKy8vIFRoZSBkZWJ1ZyB2ZXJzaW9uIG9mIHRo
aXMsIHdpdGggYXNzZXJ0aW9ucywgaXMgbm90IGlubGluZWQuCitpbmxpbmUgY29uc3QgSFRNTFRl
bXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2Rl
KTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKKworI2VuZGlmIC8vIEhUTUxUZW1wbGF0ZUVsZW1l
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTQ4NzY1MzY1ZmY0MjkwMWExYTc0NzY3ZDU2N2ZkYTI2NTQxNmM4MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VEVNUExBVEVfVEFHCitdIGludGVyZmFj
ZSBIVE1MVGVtcGxhdGVFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIGF0dHJpYnV0ZSBEb2N1
bWVudEZyYWdtZW50IGNvbnRlbnQgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKK307CisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAppbmRleCA5YzE4MmJhMjM0M2I0ZTUxMzlhMzIwMjI2MDgxNGVkMDQ5NTkxOWQ4Li43NzA1
YjE0N2EwNjQ5OTIzMmY0ODY5NGMwYTFjN2ZkMjEwZmRiNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3Jp
cHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxU
ZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1M
VG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNzcsNiArNzgs
MTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzQWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0
cmluZykKIAogc3RhdGljIGlubGluZSB2b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25T
aXRlVGFzayYgdGFzaykKIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0YXNr
LnBhcmVudC0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0g
dG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2Vu
ZGlmCisKICAgICBpZiAodGFzay5uZXh0Q2hpbGQpCiAgICAgICAgIHRhc2sucGFyZW50LT5wYXJz
ZXJJbnNlcnRCZWZvcmUodGFzay5jaGlsZC5nZXQoKSwgdGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwog
ICAgIGVsc2UKQEAgLTI0Nyw3ICsyNTMsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpp
bnNlcnREb2N0eXBlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgQVNT
RVJUKHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwotICAgIGF0dGFj
aExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNyZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1
bWVudCgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUo
KSwgQ29tbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+
Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1l
bnRPbkRvY3VtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC0zMjUsNyArMzMxLDcgQEAg
dm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0U2NyaXB0RWxlbWVudChBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgIC8vIHRob3NlIGZsYWdzIG9yIGVmZmVjdHMgdGhlcmVvZi4KICAg
ICBjb25zdCBib29sIHBhcnNlckluc2VydGVkID0gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b24gIT0gQWxsb3dTY3JpcHRpbmdDb250ZW50QW5kRG9Ob3RNYXJrQWxyZWFkeVN0YXJ0ZWQ7CiAg
ICAgY29uc3QgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IG1faXNQYXJzaW5nRnJhZ21lbnQgJiYgcGFy
c2VySW5zZXJ0ZWQ7Ci0gICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRN
TFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIGN1cnJlbnROb2RlKCktPmRvY3VtZW50
KCksIHBhcnNlckluc2VydGVkLCBhbHJlYWR5U3RhcnRlZCk7CisgICAgUmVmUHRyPEhUTUxTY3Jp
cHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcs
IG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCBwYXJzZXJJbnNlcnRlZCwgYWxyZWFkeVN0
YXJ0ZWQpOwogICAgIGlmIChtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiAhPSBEaXNhbGxv
d1NjcmlwdGluZ0NvbnRlbnQpCiAgICAgICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXMo
dG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAg
IGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIGVsZW1lbnQpOwpAQCAtMzUxLDYgKzM1NywxMSBA
QCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcm
IGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkK
ICAgICAgICAgZmluZEZvc3RlclNpdGUodGFzayk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAg
IHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+
Y29udGVudCgpOworI2VuZGlmCisKICAgICAvLyBTdHJpbmdzIGNvbXBvc2VkIGVudGlyZWx5IG9m
IHdoaXRlc3BhY2UgYXJlIGxpa2VseSB0byBiZSByZXBlYXRlZC4KICAgICAvLyBUdXJuIHRoZW0g
aW50byBBdG9taWNTdHJpbmcgc28gd2Ugc2hhcmUgYSBzaW5nbGUgc3RyaW5nIGZvciBlYWNoLgog
ICAgIGJvb2wgc2hvdWxkVXNlQXRvbWljU3RyaW5nID0gd2hpdGVzcGFjZU1vZGUgPT0gQWxsV2hp
dGVzcGFjZQpAQCAtMzg3LDE4ICszOTgsMjcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5nJiBjaGFyYWN0ZXJzLCBXaGl0ZXNwYWNlTW8KIFBh
c3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQoQXRv
bWljSFRNTFRva2VuKiB0b2tlbiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkkpCiB7
CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCBuYW1l
c3BhY2VVUkkpOwotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3VycmVudE5vZGUoKS0+
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCB0cnVlKTsKKyAgICBSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCA9IG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLT5jcmVhdGVFbGVt
ZW50KHRhZ05hbWUsIHRydWUpOwogICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9r
ZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIHJl
dHVybiBlbGVtZW50LnJlbGVhc2UoKTsKIH0KIAoraW5saW5lIERvY3VtZW50KiBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCkKK3sKKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorICAgIGlmIChjdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKHRlbXBsYXRl
VGFnKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVu
dCgpKS0+Y29udGVudCgpLT5kb2N1bWVudCgpOworI2VuZGlmCisgICAgcmV0dXJuIGN1cnJlbnRO
b2RlKCktPmRvY3VtZW50KCk7Cit9CisKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVj
dGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAg
ICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5h
bWVzcGFjZVVSSSk7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgdXNlIEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpjcmVhdGVFbGVtZW50IGJlY2F1c2Ugd2UKICAgICAvLyBoYXZlIHRvIHBhc3MgdGhl
IGN1cnJlbnQgZm9ybSBlbGVtZW50LiAgV2Ugc2hvdWxkIHJld29yayBmb3JtIGFzc29jaWF0aW9u
CiAgICAgLy8gdG8gb2NjdXIgYWZ0ZXIgY29uc3RydWN0aW9uIHRvIGFsbG93IGJldHRlciBjb2Rl
IHNoYXJpbmcgaGVyZS4KLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50
RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwgY3VycmVudE5vZGUoKS0+ZG9jdW1l
bnQoKSwgZm9ybSgpLCB0cnVlKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxF
bGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwgb3duZXJEb2N1bWVudEZv
ckN1cnJlbnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0
cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
bik7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIGVs
ZW1lbnQucmVsZWFzZSgpOwpAQCAtNDYyLDYgKzQ4MiwxNSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkKIAogdm9pZCBIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6ZmluZEZvc3RlclNpdGUoSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogewor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgLy8gV2hlbiBhIG5vZGUgaXMgdG8gYmUgZm9z
dGVyIHBhcmVudGVkLCB0aGUgbGFzdCB0ZW1wbGF0ZSBlbGVtZW50IHdpdGggbm8gdGFibGUgZWxl
bWVudCBpcyBiZWxvdyBpdCBpbiB0aGUgc3RhY2sgb2Ygb3BlbiBlbGVtZW50cyBpcyB0aGUgZm9z
dGVyIHBhcmVudCBlbGVtZW50IChOT1QgdGhlIHRlbXBsYXRlJ3MgcGFyZW50ISkKKyAgICBIVE1M
RWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBsYXN0VGVtcGxhdGVFbGVtZW50ID0gbV9vcGVu
RWxlbWVudHMudG9wbW9zdCh0ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7CisgICAgaWYgKGxhc3RU
ZW1wbGF0ZUVsZW1lbnQgJiYgIW1fb3BlbkVsZW1lbnRzLmluVGFibGVTY29wZSh0YWJsZVRhZykp
IHsKKyAgICAgICAgdGFzay5wYXJlbnQgPSBsYXN0VGVtcGxhdGVFbGVtZW50LT5lbGVtZW50KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50U3RhY2s6
OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQgPSBtX29wZW5FbGVtZW50cy50
b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAgICBpZiAobGFzdFRhYmxlRWxlbWVudFJl
Y29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFibGVFbGVtZW50ID0gbGFzdFRhYmxlRWxl
bWVudFJlY29yZC0+ZWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggNjA1NzJiZGQ4NTYyNzQ0NWNiZDg2NWE5Njc5
ZDJmZWJhNWY2YThkYy4uZGYzMjU5MGE3OTM3MTdiZTdhOTFkYTc2YjkxNWM0YTkxNTViNTFmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5oCkBAIC0xMTQsOSArMTE0LDEwIEBAIHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKiBjdXJy
ZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcE5vZGUoKTsgfQogICAg
IEhUTUxTdGFja0l0ZW0qIGN1cnJlbnRTdGFja0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX29wZW5F
bGVtZW50cy50b3BTdGFja0l0ZW0oKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIG9uZUJlbG93VG9w
KCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMub25lQmVsb3dUb3AoKTsgfQotCisgICAg
RG9jdW1lbnQqIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAgIEhUTUxFbGVtZW50
U3RhY2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsgfQog
ICAgIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygp
IGNvbnN0IHsgcmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsgfQorICAgIGJvb2wg
Y3VycmVudElzUm9vdE5vZGUoKSB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCkgPT0g
bV9vcGVuRWxlbWVudHMucm9vdE5vZGUoKTsgfQogCiAgICAgRWxlbWVudCogaGVhZCgpIGNvbnN0
IHsgcmV0dXJuIG1faGVhZC0+ZWxlbWVudCgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogaGVhZFN0
YWNrSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1faGVhZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRleCA2YzIyMGM5NzM5YTY0
MDIwZWQwZjI3Y2MzMjAxYjJjNGUwMTYxNTc4Li4zZDJhOGM5NjhjODBkYTE4ZjQ0MTM4OWYzMzk4
MzAyOGQwNmYxY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RWxlbWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmNwcApAQCAtMzgsMTQgKzM4LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotc3RhdGljIGlubGluZSBib29sIGlzUm9vdE5v
ZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKKworbmFtZXNwYWNlIHsKKworaW5saW5lIGJvb2wgaXNS
b290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5pc0RvY3Vt
ZW50RnJhZ21lbnROb2RlKCkKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKTsK
IH0KIAotbmFtZXNwYWNlIHsKLQogaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJ
dGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKGFwcGxldFRhZykKQEAg
LTY0LDYgKzY1LDkgQEAgaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBp
dGVtKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0
VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQogICAg
ICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQor
I2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTc3LDYgKzgxLDkg
QEAgaW5saW5lIGJvb2wgaXNMaXN0SXRlbVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0p
CiBpbmxpbmUgYm9vbCBpc1RhYmxlU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIHsK
ICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0YWJsZVRhZykKKyNpZiBFTkFCTEUoVEVNUExB
VEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlm
CiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTg1LDEyICs5MiwxOCBAQCBp
bmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAg
ICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGJvZHlUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhh
c1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhlYWRUYWcp
CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0
ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCiBp
bmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIHsK
ICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0clRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVf
VEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlmCiAg
ICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTUyNyw2ICs1NDAsMTMgQEAgYm9v
bCBIVE1MRWxlbWVudFN0YWNrOjppblNlbGVjdFNjb3BlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGluU2VsZWN0U2NvcGUodGFnTmFtZS5sb2NhbE5hbWUo
KSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorYm9vbCBIVE1MRWxlbWVudFN0YWNr
OjpoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5TY29wZUNv
bW1vbjxpc1Jvb3ROb2RlPihtX3RvcC5nZXQoKSwgdGVtcGxhdGVUYWcubG9jYWxOYW1lKCkpOwor
fQorI2VuZGlmCisKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6Omh0bWxFbGVtZW50KCkgY29u
c3QKIHsKICAgICBBU1NFUlQobV9yb290Tm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggODczY2JkZWI5NWI4ZWRhMDZiM2JlODBiZDk1
Y2E3ZDIzODkxMWJhMy4uZDk2Y2NjZDgwOTQ3ZGFiNjE5MTFhMjZiMzhiM2ZhZTMzOTY3OWZhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaApAQCAt
MTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzT25seU9uZUVsZW1lbnQoKSBj
b25zdDsKICAgICBib29sIHNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIGNvbnN0Owot
CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBib29sIGhhc1RlbXBsYXRlSW5IVE1MU2Nv
cGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1lbnQqIGh0bWxFbGVtZW50KCkgY29uc3Q7CiAg
ICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVtZW50KiBib2R5RWxlbWVu
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAKaW5kZXggYzc4NTYyYjMzYzE5YmQyYzU3MWQ1OWJhNTVjNmEzZDA3ZTIyYzhkNy4uYmUy
MGY5NDhiMGNiNDM0YmM5YmIwN2Y1NTQxNGJkMTJjZTU5MjljMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVy
LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtMzYwLDcgKzM2MSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3
VG9rZW4pCiAgICAgLy8gc3luY2hyb25vdXNseSByZS1lbnRlcnMgdGhlIHBhcnNlci4gV2UgZG9u
J3QgY2xlYXIgdGhlIHRva2VuIGltbWVkYXRlbHkKICAgICAvLyBmb3IgQ2hhcmFjdGVyIHRva2Vu
cyBiZWNhdXNlIHRoZSBBdG9taWNIVE1MVG9rZW4gYXZvaWRzIGNvcHlpbmcgdGhlCiAgICAgLy8g
Y2hhcmFjdGVycyBieSBrZWVwaW5nIGEgcG9pbnRlciB0byB0aGUgdW5kZXJseWluZyBidWZmZXIg
aW4gdGhlCi0gICAgLy8gSFRNTFRva2VuLiBGb3J0dWFudGVseSwgQ2hhcmFjdGVyIHRva2VucyBj
YW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKKyAgICAvLyBIVE1MVG9rZW4uIEZvcnR1bmF0ZWx5
LCBDaGFyYWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgogICAgIC8vIHRo
ZSBwYXJzZXIuCiAgICAgLy8KICAgICAvLyBGSVhNRTogU3RvcCBjbGVhcmluZyB0aGUgcmF3VG9r
ZW4gb25jZSB3ZSBzdGFydCBydW5uaW5nIHRoZSBwYXJzZXIgb2ZmCkBAIC02NzIsOCArNjczLDgg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBib2R5VGFn
KSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICBpZiAoIW1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+c2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5oYXNPbmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygp
LT5zZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRz
KCktPmhhc09ubHlPbmVFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNUZW1w
bGF0ZUluSFRNTFNjb3BlKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKQEAgLTY4Myw3ICs2ODQsNyBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVzZXRUYWcpIHsKICAgICAgICAg
cGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5z
ZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
Pmhhc09ubHlPbmVFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVD
b250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAo
IW1fZnJhbWVzZXRPaykKQEAgLTk0NCwxMyArOTQ1LDQzIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewor
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5n
RWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwogfQogCisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NU
ZW1wbGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgbV90cmVlLmFj
dGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5hcHBlbmRNYXJrZXIoKTsKKyAgICBtX3RyZWUuaW5z
ZXJ0SFRNTEVsZW1lbnQodG9rZW4pOworICAgIHNldEluc2VydGlvbk1vZGUoVGVtcGxhdGVDb250
ZW50c01vZGUpOworfQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5k
VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1l
bnRzKCktPmluU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyAgICAgICAgcGFyc2VFcnJvcih0b2tl
bik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV90cmVlLmdlbmVyYXRlSW1wbGllZEVu
ZFRhZ3MoKTsKKyAgICBpZiAoIW1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc0xvY2FsTmFt
ZSh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi0+bmFtZSgpKTsKKyAgICBtX3Ry
ZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAg
cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworfQorI2VuZGlmCisKIGJvb2wgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkKIHsK
LSAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5y
b290Tm9kZSgpKSB7CisgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpKSB7CiAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNl
IGVycm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTIsNyArMTA0Myw3IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tl
biogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAg
cGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghcHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5U
YWJsZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRv
a2VuKTsKQEAgLTEwMzksNiArMTA3MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcp
IHsKKyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICByZXR1
cm47CisgICAgfQorI2VuZGlmCiAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgSFRNTENvbnN0
cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRpcmVjdGVyKG1fdHJl
ZSk7CiAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KHRva2VuKTsKQEAgLTExNTMsNiArMTE5
MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiAgICAgICAgICAgICBtX3RyZWUuaW5zZXJ0U2VsZkNsb3NpbmdIVE1MRWxl
bWVudCh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykg
eworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKCFwcm9jZXNzQ29sZ3Jv
dXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNzcsNyArMTIyMCw3IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICAgICAgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUo
KSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmluVGFibGVTY29wZSh0Ym9keVRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRoZWFkVGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90
cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGZvb3RUYWcubG9jYWxOYW1lKCkpKSB7
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAg
ICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CkBAIC0xMjAyLDcgKzEyNDUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICB8
fCBpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5uYW1lKCkpCiAgICAgICAgICAgICB8
fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgICAgIGlm
ICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxl
Qm9keU1vZGUpOwpAQCAtMTI4MCw2ICsxMzIzLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHByb2Nl
c3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9
PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9r
ZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1v
ZGU6CkBAIC0xMzU5LDYgKzE0MDgsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChkaWRQcm9jZXNzLCBkaWRQcm9jZXNzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tl
bik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVh
azsKICAgICBjYXNlIEluVGFibGVUZXh0TW9kZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVU
ZXh0KCk7CkBAIC0xMzY3LDEyICsxNDIyLDUxIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIFRleHRNb2RlOgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBU
ZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1Rl
bXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gbGlua1RhZworICAgICAgICAgICAgfHwgdG9r
ZW4tPm5hbWUoKSA9PSBzY3JpcHRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0g
c3R5bGVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gbWV0YVRhZykgeworICAg
ICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lVGFn
KQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CisgICAgICAg
IGVsc2UgaWYgKHRva2VuLT5uYW1lKCkgPT0gY29sVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0
aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzQ2FwdGlvbkNv
bE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRv
a2VuLT5uYW1lKCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7
CisgICAgICAgIGVsc2UgaWYgKHRva2VuLT5uYW1lKCkgPT0gdHJUYWcpCisgICAgICAgICAgICBz
ZXRJbnNlcnRpb25Nb2RlKEluVGFibGVCb2R5TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzVGFi
bGVDZWxsQ29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgICAgIHNldEluc2VydGlv
bk1vZGUoSW5Sb3dNb2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9u
TW9kZShJbkJvZHlNb2RlKTsKKworICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworI2Vs
c2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0Zv
ckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIHBhcnNlRXJyb3IodG9rZW4p
OworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpKSB7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdU
ZW1wbGF0ZUNvbnRlbnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAg
bV90cmVlLmluc2VydEhUTUxIdG1sU3RhcnRUYWdJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xNTQy
LDggKzE2MzYsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFw
cHJvcHJpYXRlbHkoKQogICAgICAgICAgICAgbGFzdCA9IHRydWU7CiAgICAgICAgICAgICBpdGVt
ID0gSFRNTFN0YWNrSXRlbTo6Y3JlYXRlKG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50
KCksIEhUTUxTdGFja0l0ZW06Okl0ZW1Gb3JDb250ZXh0RWxlbWVudCk7CiAgICAgICAgIH0KKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMDEzMCAoc2hvdWxkIDx0ZW1wbGF0ZT4g
Y2xlYXIgdGhlICJpbXBsaWVkIGNvbnRleHQgZWxlbWVudCIuCisgICAgICAgIGlmIChpdGVtLT5o
YXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25N
b2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbmRpZgogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZShzZWxlY3RUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNlbGVjdE1vZGUp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBpdGVt
LT5oYXNUYWdOYW1lKHRoVGFnKSkKQEAgLTE1NTUsMTkgKzE2NTMsMjAgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAgICBpZiAo
aXRlbS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluQ2FwdGlvbk1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShj
b2xncm91cFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsK
ICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0YWJsZVRhZykpCiAgICAg
ICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CiAgICAgICAgIGlm
IChpdGVtLT5oYXNUYWdOYW1lKGhlYWRUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgICAgIGlm
ICghbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKSB8fCBtX2ZyYWdtZW50Q29udGV4dC5jb250
ZXh0RWxlbWVudCgpICE9IGl0ZW0tPm5vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2V0
SW5zZXJ0aW9uTW9kZShJbkhlYWRNb2RlKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0t
Pmhhc1RhZ05hbWUoYm9keVRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9k
ZShJbkJvZHlNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoZnJhbWVzZXRUYWcp
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAg
ICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZykpIHsKQEAgLTE1OTgsNyArMTY5Nyw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJsZUJvZHkoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykg
ewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICBpZiAoIW1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90
cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYm
ICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUo
KSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CkBAIC0xNjI4LDcgKzE3MjcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
Z0ZvckluUm93KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIGlmICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5S
b3coKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKQEAgLTE2ODEsNyArMTc4MCwxMSBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHRyVGFnCiAgICAgICAgIHx8IGlzVGFibGVC
b2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICBpZiAoIW1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9r
ZW4tPm5hbWUoKSkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGVtcGxh
dGVUYWcpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2Vsc2UKICAgICAgICAgICAgIEFTU0VS
VChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CisjZW5kaWYKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODIxLDYgKzE5MjQsMTIgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikK
ICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhiclRhZyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgcHJvY2Vzc0FueU90aGVyRW5kVGFnRm9y
SW5Cb2R5KHRva2VuKTsKIH0KIApAQCAtMTg0Miw3ICsxOTUxLDcgQEAgYm9vbCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NDYXB0aW9uRW5kVGFnRm9ySW5DYXB0aW9uKCkKIGJvb2wgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiB7CiAgICAgaWYgKCFtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0clRhZy5sb2NhbE5hbWUoKSkpIHsKLSAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJv
cgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTg1Niw3ICsxOTY1LDcgQEAgYm9v
bCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIGJvb2wgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRhYmxlKCkKIHsKICAgICBpZiAoIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRhYmxlVGFnKSkgewotICAgICAgICBB
U1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9y
LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTkxMyw2ICsyMDIyLDE1IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEluSGVhZE1vZGU6CiAgICAgICAg
IEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTW9kZSk7CisgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGNhc2Ugc2hvdWxkIGJlIGJyb2tlbiBvdXQgaW50byBwcm9jZXNzRW5kVGFnRm9ySW5I
ZWFkLAorICAgICAgICAvLyBiZWNhdXNlIG90aGVyIGVuZCB0YWcgY2FzZXMgbm93IHJlZmVyIHRv
IGl0ICgicHJvY2VzcyB0aGUgdG9rZW4gZm9yIHVzaW5nIHRoZSBydWxlcyBvZiB0aGUgImluIGhl
YWQiIGluc2VydGlvbiBtb2RlIikuCisgICAgICAgIC8vIGJ1dCBiZWNhdXNlIHRoZSBsb2dpYyBm
YWxscyB0aHJvdWdoIHRvIEFmdGVySGVhZE1vZGUsIHRoYXQgZ2V0cyBhIGxpdHRsZSBtZXNzeS4K
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICh0b2tl
bi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+cG9wSFRNTEhlYWRFbGVtZW50KCk7CiAgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEFm
dGVySGVhZE1vZGUpOwpAQCAtMTk3Nyw2ICsyMDk1LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKCFwcm9jZXNzQ29sZ3Jv
dXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwNTIsNyArMjE3NiwxMiBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgIGNhc2UgSW5GcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25N
b2RlKCkgPT0gSW5GcmFtZXNldE1vZGUpOwogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBm
cmFtZXNldFRhZykgewotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAgICAgICAgYm9vbCBpZ25v
cmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyAgPSBtX3RyZWUuY3VycmVudElzUm9vdE5vZGUo
KTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgaWdub3JlRnJhbWVzZXRG
b3JGcmFnbWVudFBhcnNpbmcgPSBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyB8fCBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsKKyNlbmRpZgor
ICAgICAgICAgICAgaWYgKGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nKSB7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkp
OwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KQEAgLTIwNjEsNiArMjE5MCwxMiBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAg
ICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJGcmFtZXNldE1vZGUpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYg
KHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1w
bGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyRnJhbWVzZXRNb2RlOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyRnJhbWVzZXRNb2RlKTsKQEAgLTIxMTksMTEg
KzIyNTQsMzIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRl
bHkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4
dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwogICAgICAgICBwcm9jZXNz
RW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRz
TW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAvLyBGSVhNRTogaHR0cHM6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0xOTk2NgorICAgICAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgQVNTRVJUKG1f
dHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKTsKKyAgICAg
ICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgICAgICByZXNldElu
c2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKyAgICAgICAgcHJvY2Vz
c0VuZFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNl
bmRpZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTIyMjQsOCArMjM4MCwxNCBAQCBS
ZXByb2Nlc3NCdWZmZXI6CiAgICAgfQogICAgIGNhc2UgSW5Cb2R5TW9kZToKICAgICBjYXNlIElu
Q2FwdGlvbk1vZGU6CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKICAgICBjYXNlIElu
Q2VsbE1vZGU6IHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBBU1NFUlQoaW5z
ZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlv
bk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgIT0gVGVtcGxhdGVDb250ZW50c01vZGUpCiAgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7CisjZW5kaWYKICAgICAgICAgcHJv
Y2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZmZXIpOwogICAgICAgICBicmVhazsKICAg
ICB9CkBAIC0yMzYwLDcgKzI1MjIsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NF
bmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluQ2VsbE1vZGU6CiAg
ICAgY2FzZSBJbkNhcHRpb25Nb2RlOgogICAgIGNhc2UgSW5Sb3dNb2RlOgorI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0g
SW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlIHx8IGluc2VydGlv
bk1vZGUoKSA9PSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZWxzZQorICAgICAgICBBU1NFUlQo
aW5zZXJ0aW9uTW9kZSgpICE9IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNl
bGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBJblJvd01vZGUpOworI2VuZGlmCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7IC8v
IEVtaXQgcGFyc2UgZXJyb3IgYmFzZWQgb24gd2hhdCBlbGVtZW50cyBhcmUgc3RpbGwgb3Blbi4K
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckJvZHlNb2RlOgpAQCAtMjM4Niw3ICsyNTUz
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEluQ29sdW1uR3JvdXBNb2RlOgotICAgICAgICBpZiAobV90cmVlLmN1cnJl
bnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgICAg
IGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOyAvLyBGSVhNRTogU2hvdWxk
IHdlIGJyZWFrIGhlcmUgaW5zdGVhZCBvZiByZXR1cm5pbmc/CiAgICAgICAgIH0KQEAgLTI0MDks
NiArMjU3NiwxNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJ
bnNlcnRpb25Nb2RlKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorICAgICAgICBpZiAobV90
cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOworICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOworICAg
ICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgICAgIHByb2Nlc3NF
bmRPZkZpbGUodG9rZW4pOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3Ry
ZWUuY3VycmVudE5vZGUoKSk7CiAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BBbGwoKTsK
QEAgLTI1MTIsNiArMjY4OSwxMiBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnRm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwcm9jZXNz
RmFrZUVuZFRhZyhzY3JpcHRUYWcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRh
ZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRU
YWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA4ZmYw
ZjU4YjM0NWZmZjNlNDU1YjVhZmZlZjY1ZTEwMmY2ZDViZmZhLi43N2U2Y2M3NWQ5Yzg2MDk4Njhh
NzNmYWYxODY2NTA2NGQ0ZDlmMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaApAQCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIH5IVE1MVHJl
ZUJ1aWxkZXIoKTsKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJldHVy
biAhIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVf
VEFHKQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CisgICAg
Ym9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJu
IGlzUGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpOyB9Cisj
ZWxzZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25z
dCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpIH0KKyNlbmRpZgogCiAgICAgdm9pZCBkZXRh
Y2goKTsKIApAQCAtOTcsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgSW5IZWFkTW9kZSwK
ICAgICAgICAgSW5IZWFkTm9zY3JpcHRNb2RlLAogICAgICAgICBBZnRlckhlYWRNb2RlLAorICAg
ICAgICBUZW1wbGF0ZUNvbnRlbnRzTW9kZSwKICAgICAgICAgSW5Cb2R5TW9kZSwKICAgICAgICAg
VGV4dE1vZGUsCiAgICAgICAgIEluVGFibGVNb2RlLApAQCAtMTkwLDYgKzE5NywxMSBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CiAKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWco
QXRvbWljSFRNTFRva2VuKik7CisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVFbmRUYWcoQXRvbWlj
SFRNTFRva2VuKik7CisjZW5kaWYKKwogICAgIGNsYXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQg
ewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsK
ICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNGEzYTVmNGRlZjA3
ZGYyODZiZTQxNmFhMjliNTAyOGQxZDlkZjU0OC4uOWU2YjA3Y2Y5Zjc0ZjQwMDg4Njc4MmFmZGNh
YTYyMjA2NjFmYzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDcyLDYgKzQ3
Miw3IEBACiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFi
bGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVSb3dFbGVtZW50Q29uc3RydWN0b3Ig
SFRNTFRhYmxlUm93RWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKKyAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPVRFTVBMQVRFX1RBR10gSFRNTFRlbXBsYXRlRWxlbWVudENvbnN0cnVjdG9yIEhU
TUxUZW1wbGF0ZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVGV4dEFyZWFFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGl0bGVFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTFRpdGxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxVTGlzdEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2Zl
YXR1cmVzLmd5cGkKaW5kZXggYTdiZjYzNjdhMTRmMTY5ZjgwYThhNDlmNmUyMTBjMmYxNjVkOWIx
NS4uOTJiY2IzMWI1YTViZDMxOTk4MWU1MDgyYjhhNzdiMGUwMDg1OGMwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTExLDYgKzExMSw3IEBACiAgICAgICAnRU5BQkxF
X1NWR19GT05UUz08KGVuYWJsZV9zdmcpJywKICAgICAgICdFTkFCTEVfVEVYVF9BVVRPU0laSU5H
PTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9BREpVU1RNRU5UPTEnLAorICAgICAgJ0VOQUJMRV9U
RU1QTEFURV9UQUc9MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0VWRU5UUz08KGVuYWJsZV90b3Vj
aF9ldmVudHMpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HPTwoZW5hYmxlX3Rv
dWNoX2ljb25fbG9hZGluZyknLAogICAgICAgJ0VOQUJMRV9UT1VDSF9TTElERVI9MScsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMDE3NDBmNzQ2N2FjZTUwZjViZjM0ZmRiNzMxZmM4M2JlMzFlNzU1OS4uOWU3MGIzNWUxYmE3
NzgzOTIzN2M2MDBjOGQ4YzU2MzY0OTNhMjI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEy
LTExLTEzICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgSW1wbGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Ns
b25lTm9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1w
bGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvaW5uZXJIVE1MLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0OiBBZGRlZC4KKyAgICAgICAg
KiBodG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL2R1
bXAtYXMtbWFya3VwLmpzOgorICAgICAgICAoTWFya3VwLl9nZXQpOgorICAgICAgICAoTWFya3Vw
Ll9nZXRTZWxlY3Rpb25Gcm9tTm9kZSk6CisKIDIwMTItMTEtMjggIFNhZHJ1bCBIYWJpYiBDaG93
ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cg
cGx1Z2lucyB0byBvcHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBv
ZiB0b3VjaCBldmVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2MzNTk5OTlhNDUxNzgzYTcwMmJjM2EwMTcwYjA2YzMxYzlhMGY0ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBh
cmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAxIGlzIHRlbXBsYXRlLmNvbnRlbnQuY2hp
bGROb2Rlcy5sZW5ndGgKK1BBU1MgMCBpcyBjbG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3Ro
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
Y2xvbmVOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2Nsb25lTm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMTYyZWVjNjc1MDQ1ODBkZjY1YTY1ZmEyMDQ3
YzNhN2Q0NDE2ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+Q29udGVudHM8L3RlbXBsYXRlPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBu
b3QgY2xvbmVkIHdoZW4gdGhlIHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xvbmVkJyk7CisKK2lmICgh
d2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJl
cXVpcmVzIEVOQUJMRShURU1QTEFURV9UQUcpJyk7CisKK3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOworc2hvdWxkQmUoJzEnLCAndGVtcGxhdGUuY29u
dGVudC5jaGlsZE5vZGVzLmxlbmd0aCcpOwordmFyIGNsb25lID0gdGVtcGxhdGUuY2xvbmVOb2Rl
KHRydWUpOworc2hvdWxkQmUoJzAnLCAnY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCcp
OworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1w
bGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ1ZmYxMTUxNWFhODY5ZTVkZmE4NTEzOGFhMWFmY2QyZGVjOTM3ZjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0
Q29udGVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAoraHR0cDovL2Jhei5jb20vYmF0
LmpwZyAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vYmF6LmNvbS9i
YXQuanBnLCBtYWluIGRvY3VtZW50IFVSTCBpbmVydENvbnRlbnRzLmh0bWwsIGh0dHAgbWV0aG9k
IEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwOi8vYmF6LmNvbS9iYXQuanBnCitodHRwOi8vYmF6LmNvbS9iYXQuanBnIC0gZGlk
RmFpbExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWluLCBj
b2RlIC05OTksIGZhaWxpbmcgVVJMICIobnVsbCkiPgorVGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVs
ZW1lbnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJj
ZXMgZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLgorCitwYXNzIQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVu
dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRD
b250ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYzA1ZWNiOTA3OTc1ZDUwMTQ0Nzk1MGMzY2NlNzVh
MWNlOTZkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgordmFyIHRlc3RWYWwgPSAxOworCit3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKKyAgICB9CisKKyAgICBpZiAodGVzdFZhbCAhPSAx
KQorICAgICAgICByZXR1cm47CisKKyAgICB2YXIgdGVtcGxhdGVDb250ZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJykuY29udGVudDsKKyAgICB2YXIgaW1nID0gdGVtcGxh
dGVDb250ZW50LmNoaWxkTm9kZXNbMV07CisgICAgaW1nLnNyYyA9ICJodHRwOi8vYmF6LmNvbS9i
YXQuanBnIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBsYXRlQ29udGVudCk7
CisKKyAgICBpZiAodGVzdFZhbCAhPSAyKQorICAgICAgICByZXR1cm47CisKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJUZXh0ID0gJ3Bhc3MhJzsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgdGVzdCBhc3NlcnRzIHRoYXQgZWxlbWVudHMg
d2l0aGluIHRlbXBsYXRlIGNvbnRlbnRzIGFyZSAiaW5lcnQiLCBlLmcuIHJlc291cmNlcyBkbyBu
b3QgZmV0Y2gsIHNjcmlwdCBkb2VzIG5vdCBydW4uPC9wPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0
ZSI+PHNjcmlwdD53aW5kb3cudGVzdFZhbCA9IDI7PC9zY3JpcHQ+PGltZyBzcmM9Imh0dHA6Ly9m
b28uY29tL2Jhci5qcGciPgorPC90ZW1wbGF0ZT4KKzxkaXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVy
SFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY5NzI3MDg3YTNlNjcxMjMwMTJmODZiZTdl
NGJlYzgyMzI1ODY2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1RoZSB0ZXN0IGFzc2VydHMgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgc2VyaWFsaXplZCB3
aXRoIGlubmVySFRNTCBhbmQgaXRzIGNoaWxkcmVuIGFyZSBpZ25vcmVkLgorCis8ZGl2PkNvbnRl
bnRzIDEKKzx0ZW1wbGF0ZT5Db250ZW50cyAyPC90ZW1wbGF0ZT4KKzwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzc2MmNhM2JlZjFkM2Q4Mjc5ZmFiMTkxNzg5OTJjMmM1ZjYxYzNjNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvaW5uZXJIVE1MLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
CisgICAgdmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyk7
CisgICAgdGVtcGxhdGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bhbicp
KS5pbm5lclRleHQgPSAnc2hvdWxkIG5vdCBzZXJpYWxpemUnOworICAgIHZhciBpbm5lclRlbXBs
YXRlID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLmZpcnN0RWxlbWVudENoaWxkOworICAg
IGlubmVyVGVtcGxhdGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bhbicp
KS5pbm5lclRleHQgPSAnc2hvdWxkIG5vdCBzZXJpYWxpemUgZWl0aGVyJzsKKworICAgIHRlbXBs
YXRlLmlubmVySFRNTCA9IHRlbXBsYXRlLmlubmVySFRNTDsKKyAgICBpZiAodGVtcGxhdGUuY2hp
bGROb2Rlcy5sZW5ndGggIT0gMSkgLy8gVGhlIG9ubHkgY2hpbGQgc2hvdWxkIGJlIHRoZSBzcGFu
IHRoYXQgd2FzIGFkZGVkIGFib3ZlLgorICAgICAgICByZXR1cm47CisKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJUZXh0ID0gdGVtcGxhdGUuaW5uZXJIVE1MOwor
ICAgIHZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpOwor
ICAgIHRlbXBsYXRlMi5pbm5lckhUTUwgPSAnPHRlbXBsYXRlPjwvdGVtcGxhdGU+JzsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxh
dGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJl
biBhcmUgaWdub3JlZC48L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48ZGl2PkNvbnRlbnRz
IDEKKyAgPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+PC90ZW1wbGF0ZT4K
KzxkaXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNTk3MzVhZmU2MWRmMjY4NmRmNTBjYzQxZjhjYjc0MGJkOGZlNTFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25l
ckRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUZXN0IEhUTUxUZW1wbGF0
ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIGRvY3VtZW50IGlzIHRlbXBsYXRlLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyB0cnVl
CitQQVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNT
IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGUuY29udGVudC5maXJzdENo
aWxkLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBp
bm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudCBpcyBpbm5lclRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyBpbm5lclRl
bXBsYXRlLm93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFT
UyBkb2N1bWVudCBpcyB0ZW1wbGF0ZTIub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRl
bnRPd25lckRvY3VtZW50IGlzIHRlbXBsYXRlMi5jb250ZW50Lm93bmVyRG9jdW1lbnQKK1BBU1Mg
ZG9jdW1lbnQgaXMgZGYub3duZXJEb2N1bWVudAorUEFTUyBkb2N1bWVudCBpcyBzcGFuLm93bmVy
RG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyBkZi5vd25lckRv
Y3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgc3Bhbi5vd25lckRv
Y3VtZW50CitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNl
cHRpb24gMTcuCitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgidGV4dCIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00g
RXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250ZW50ID0gbmV3IFdlYktpdFNoYWRvd1Jv
b3QoZGl2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyBkb2N1bWVudCBpcyB0ZW1wbGF0ZTMub3duZXJEb2N1bWVudAorUEFT
UyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIHRlbXBsYXRlMy5jb250ZW50Lm93bmVy
RG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZTMu
Y29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg5N2RhMjY4NGRjNmI0MjE4OWZlOTNkYmMzNTcyMTlmOTdjMjkyZTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9j
dW1lbnQuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBp
ZD0idGVtcGxhdGUiPjxzcGFuPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc3Bhbj48L3RlbXBsYXRl
PgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZTIiPjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPgorPHRl
bXBsYXRlIGlkPSJ0ZW1wbGF0ZTMiPjxzdmc+PC9zdmc+PC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9j
dW1lbnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0ZXN0RmFp
bGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX1RBRyknKTsKKwordmFyIHRl
bXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyk7CitzaG91bGRCZSgn
ZG9jdW1lbnQnLCAndGVtcGxhdGUub3duZXJEb2N1bWVudCcpOworCit2YXIgdGVtcGxhdGVDb250
ZW50T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3Vs
ZEJlVHJ1ZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1
bWVudCcpOworc2hvdWxkTm90QmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3RlbXBs
YXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50Jyk7CisKK3ZhciBpbm5lclRlbXBs
YXRlID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CitzaG91bGRCZSgn
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICdpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1l
bnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ2lubmVyVGVt
cGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZVRydWUoJ2lubmVyVGVtcGxh
dGUub3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOworCit2YXIgdGVtcGxh
dGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ2Rv
Y3VtZW50JywgJ3RlbXBsYXRlMi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTIuY29udGVudC5vd25lckRvY3VtZW50Jyk7
CisKK3ZhciBkZiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKK3ZhciBzcGFu
ID0gZGYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKK3Nob3Vs
ZEJlKCdkb2N1bWVudCcsICdkZi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgnZG9jdW1lbnQn
LCAnc3Bhbi5vd25lckRvY3VtZW50Jyk7CisKK3RlbXBsYXRlLmNvbnRlbnQgPSBkZjsKK3Nob3Vs
ZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ2RmLm93bmVyRG9jdW1lbnQnKTsK
K3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3NwYW4ub3duZXJEb2N1
bWVudCcpOworCitzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsnKTsKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsnKTsKK2lmICh3aW5kb3cuV2ViS2l0U2hhZG93
Um9vdCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICBzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRp
diknKTsKK30KKwordmFyIHRlbXBsYXRlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1w
bGF0ZTInKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZTMub3duZXJEb2N1bWVudCcp
Oworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGUzLmNv
bnRlbnQub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQnLCAndGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50Jyk7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJmNjliZmZkOTFkMWVmOTdmNjFkZjZlZTNhNjk3MDA5Y2NhMDc1YjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCBpbiBYSFRNTCBEb2N1
bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudCBpbnN0
YW5jZW9mIEhUTUxEb2N1bWVudCBpcyBmYWxzZQorUEFTUyBkb2N1bWVudCBpcyBub3QgdGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYTdiNGJhOGZmNzVkODc5Y2QxMDIwMmYxYjg1NmQ1YmQ1OGYxNzA4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBv
d25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50Jyk7CisKK2lmICghd2luZG93LkhUTUxUZW1w
bGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShU
RU1QTEFURV9UQUcpJyk7CisKK3Nob3VsZEJlRmFsc2UoJ2RvY3VtZW50IGluc3RhbmNlb2YgSFRN
TERvY3VtZW50Jyk7Cit2YXIgdGVtcGxhdGU0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVt
cGxhdGUnKTsKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGU0LmNv
bnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNv
bnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZUZhbHNlKCd0ZW1wbGF0ZUNvbnRlbnRPd25l
ckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRl
LmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWJhZTgxZWZkZGZkYzRkOGY4Njc3MWM2MmM0YTEzOTcyNDAyYmE4YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKQEAg
LTAsMCArMSw4NDMgQEAKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVs
bG8iCisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8
dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbD48dGVtcGxhdGU+
SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rp
dj48L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNw
YW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgIDxz
cGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PjwvdGVtcGxhdGU+PC9kaXY+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJs
ZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisj
ZGF0YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2Pgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICA8
dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0
ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAiICAgIgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0
ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4K
K3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKwor
I2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wg
ICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2Rh
dGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVhZD4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJs
ZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1w
bGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0
Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48
dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVj
dD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwv
c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgIDxi
b2R5PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2Vs
ZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0
ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlv
bj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
KworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0
aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEK
KzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+
Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRoZWFk
Pjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8
dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFk
PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0YQor
PGJvZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8ZGl2PgorCisjZGF0YQorPHRh
YmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48
L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAg
ICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48
dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48
dGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAg
PHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBs
YXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90
YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+
CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRk
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRl
Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxl
Pjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3Vw
PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgICAgICA8Y29sPgorCisjZGF0YQorPGZyYW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+
PC9mcmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxh
dGU+PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAg
ICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0
PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgor
fCAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxk
aXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48
L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0gMTs8L3NjcmlwdD48dGQ+PC90ZD48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAgICAgICAgPHRkPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRy
PgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRk
PjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKwor
I2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0
ZD4KK3wgICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48
dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90
ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0
cj48L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48L3RyPjwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+
PC90YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+
PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAg
PHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjwvdGFibGU+
PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGJvZHk+
CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48dHI+PC90cj48L2Rpdj48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
ZGl2PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxlbT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGVt
PgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1jb21t
ZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
PjxzdHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzdHlsZT4KK3wgICAgICAgICA8dGQ+
CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG1ldGE+
Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3Rk
PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0
ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgor
fCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRl
Pjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9ib2R5PgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRh
YmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8Ym9k
eSBhPWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkgYz1kPjxkaXY+PC9kaXY+PC9ib2R5Pjwv
dGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0
YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1sIGI9Yz48c3Bhbj48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+
Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVt
cGxhdGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48L2NvbD48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxjb2w+Cit8ICAg
ICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGZy
YW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGZyYW1lPgorfCAg
ICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+
PC90cj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHRkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFj
NDQ0OWIzZTkxN2FjNGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxzY3JpcHQ+Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5k
YXQnLAorXQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFy
a3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3Nj
cmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVt
cC1hcy1tYXJrdXAuanMKaW5kZXggNTNhMDAxZmVmZGUyODgxYWVmNjFjZDA2OTAyNzJmYzZlMTVi
MWU5MS4uYzdmZGYxN2YyMGE0MjljMTBjNmQ4YjNhMTk2ZGZiOTA5NDQ2MmIwYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRl
c3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIwLDE2ICsyMjAsMjQgQEAgTWFy
a3VwLl9nZXQgPSBmdW5jdGlvbihub2RlLCBkZXB0aCkKICAgICBjYXNlIE5vZGUuRE9DVU1FTlRf
RlJBR01FTlRfTk9ERToKICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ctcm9v
dCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgIHN0ciArPSAiI2RvY3VtZW50LWZyYWdtZW50IjsKICAgICB9Ci0KLSAgICBmb3IgKHZh
ciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7Ci0g
ICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBp
KTsKLSAgICAgICAgaWYgKHNlbGVjdGlvbikKLSAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2lu
ZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOwotCi0gICAgICAgIHN0ciArPSBNYXJrdXAuX2dl
dChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgCisgICAgCisgICAgLy8gSFRN
TCBUZW1wbGF0ZSBlbGVtZW50cyBzZXJpYWxpemUgdGhlaXIgY29udGVudCBEb2N1bWVudEZyYWdt
ZW50LCBhbmQgTk9UIHRoZWlyIGNoaWxkcmVuLgorICAgIGlmIChub2RlLm5hbWVzcGFjZVVSSSA9
ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RFTVBM
QVRFJykgeworICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jb250ZW50LCBkZXB0aCAr
IDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2RlLmNo
aWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3Rp
b24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICAgICAgICAgIGlm
IChzZWxlY3Rpb24pCisgICAgICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRo
ICsgMSkgKyBzZWxlY3Rpb247CisgICAgCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQo
bm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAgICB9CiAgICAgfQotCisgICAg
CiAgICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVwdGgp
OwogICAgIAogICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihu
b2RlLCBpKTsKQEAgLTI4NCw3ICsyOTIsNyBAQCBNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQID0g
ewogCiBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKIHsKLSAg
ICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpOwor
ICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPyBub2RlLm93bmVyRG9j
dW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCkgOiBudWxsOwogfQogCiBNYXJrdXAuX1NF
TEVDVElPTl9GT0NVUyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176611</attachid>
            <date>2012-11-28 17:29:57 -0800</date>
            <delta_ts>2012-11-29 12:28:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121128172731.patch</filename>
            <type>text/plain</type>
            <size>94399</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIxOWIxZTEzMWY2OGM0
OWZhMDEzOTMzZGVjYTJmMzUyZWUxMjg1NC4uYzE1MGU0YjhmZjQ3MDI2NWNiZDU5ZDQyYTg1NDNl
ZWY5Yzk1YTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjggIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEluZGV4ZWREQjogQ2hhbmdlIGZyb250ZW5kIHRvIGNhbGwgSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlOjpjcmVhdGVUcmFuc2FjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGRlMDBhYzcxMmUxOGUyOTQ0MzgxNDBlMjNjNzViNTNhNDYzMTk3ZWIuLjUwYzcx
YjQzYzY4Y2M0YjhhNTAxMzkzZTc5NDcxMjVhNWE2MTRkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxy
YWZhZWx3QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYw
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJu
aW5nIG9uIEhUTUxUZW1wbGF0ZUVsZW1lbnQgZm9yIGNocm9taXVtIHBvcnQuCisKKyAgICAgICAg
KiBmZWF0dXJlcy5neXBpOgorCiAyMDEyLTExLTI4ICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdl
QGNocm9taXVtLm9yZz4KIAogICAgICAgICByZW1vdmUgdW51c2VkIFBsYXRmb3JtR2VzdHVyZUN1
cnZlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3
NDAzZDRhZjczYjZjNTYzMS4uYzE1MmFmZmY1M2U2MDAzZmU1NGFhYjdmODBlM2Y1NTZmMzM0ZDBh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4OCw2ICs0ODgsNyBAQCBTRVQoV2ViQ29yZV9J
RExfRklMRVMKICAgICBodG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVGFi
bGVSb3dFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsCisg
ICAgaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5pZGwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmlkbApAQCAtMTQzMCw2ICsxNDMxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUYWJsZVJvd3ND
b2xsZWN0aW9uLmNwcAogICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCisgICAg
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAKICAgICBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTFRpdGxlRWxlbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGU1
MzZmZDEzYTk0YTdkMGE1ZTQ1Yjc1Nzk5ZmI4ZGNkNjY2MjA0YTEuLjdiYWE1Zjg3ODZjNmQyODA2
ZTE0NTczNmE3YzI2ODc5OTdlYTVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMzQ4LDYgKzM0OCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
SFRNTFRhYmxlRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVSb3dF
bGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxU
cmFja0VsZW1lbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhmYjYz
Nzg3MDNlNjRjY2JiMGU2Y2RhZjI3NWVlYTNmODc5Mjg3NWQuLjMwZWNlY2IyZmQ0NjExYzE3M2Vm
ZDFhNGQzYjQ2YmEwYjNlZTJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDMxLDYgKzQzMSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRleHRB
cmVhRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRpdGxlRWxlbWVu
dC5jcHAgXApAQCAtMTQ4OSw2ICsxNDkxLDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChX
ZWJDb3JlKS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBc
CiAJJChXZWJDb3JlKS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUp
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmlkbCBcCkBAIC0zNDM1LDYgKzM0MzgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCBjNTdkNThiMjBjYzVmNWU3MmVjODk1MWFiNjE2MmIzMTcwYWZmYTVlLi4xMmU5
MWYyMWY3MDYzZTA0YzkwMTE0NjIyN2IzZTZhYzQ4ODEwYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTY1
OCw2ICs2NTgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQu
Y3BwIFwKICAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBcCiAgICAgaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAgXAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQu
Y3BwIFwKQEAgLTE4MjIsNiArMTgyMyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAog
ICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisgICAgaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKICAgICBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVu
dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkOTVhMTdkOGRkYjA0YjhmNmEyYzA1MjViYzk3M2Qz
ZmU5ODYwZjQzLi45ZDg2OTI0ZTBmNThmNWQzYTBiMGExNDJiNGYyYzAyYzk5OTg2ZTYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xMTI4LDYgKzExMjgsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRs
JywKKyAgICAgICAgICAgICdodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
cmFja0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRs
JywKQEAgLTQxODAsNiArNDE4MSw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dz
Q29sbGVjdGlvbi5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oJywKKyAg
ICAgICAgICAgICdodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdo
dG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMWQzYTIy
MzMwZmI4MWE3YzBhYmMyYWE2MzEwMWEwMWZmOWFhYjI0Li4yMzMyMjQwYzU2ZDVjOTc2NzY1Yzk3
Njk3YTE5MzRmYWE4NDI0MzljIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtOTYyMiw3ICs5NjIyLDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC05Njc0LDkg
Kzk2NzQsNjUgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisJCQkJUmVs
YXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4K
KyAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4z
MiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAg
ICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+
CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8
RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4z
MiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAg
ICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+
CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8
RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAg
ICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAg
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAg
ICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJh
dGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAg
ICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1
cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAg
ICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25m
aWd1cmF0aW9uPgorICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAg
ICAgICAgICAgICBSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisgICAg
ICAgICAgICAgICAgPgorICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNIVE1MVGl0bGVFbGVtZW50LmNwcCIKIAkJCQk+CkBAIC02MzQ1OCw3ICs2MzUx
NCw3IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1s
XEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
IAkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC02MzUxMCw5ICs2MzU2Niw2NSBAQAogCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxo
dG1sXEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAg
ICA8RmlsZQorICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcCIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGVD
b25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIgorICAg
ICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAg
ICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAg
ICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIgorICAg
ICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAg
ICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAg
ICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8
V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAg
ICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAg
ICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9v
bAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAg
ICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgor
ICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxU
b29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAg
ICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAg
IDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
ICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRp
b24+CisgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAg
ICAgIFJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogCQkJCT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBi
MmQ1NzU2Y2M1YTYwMDVkNGRmOWNlZTc1MWZhOWQ4MmQ2YWZmZWNjLi45NWJjMWUzYTk2MTEzZjEy
N2UwYTI5ODNmY2NiN2U4ZDJlZWMzNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzQ1Niw2ICsxMzQ1Niw5IEBACiAJCUQ2
RTI3NkFFMTQ2Mzc0NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZFNTI4QTExNDlBOTI2RDAw
RUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYz
IC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQ2RUZDMEJCMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxh
dGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxU
ZW1wbGF0ZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENkVGQzBC
QzE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MVGVtcGxhdGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQ2RUZDMEJEMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVGVtcGxhdGVFbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUx
IC8qIEhpc3RvZ3JhbVN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSGlzdG9ncmFtU3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMiAvKiBTdGF0c0NvdW50ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RhdHNDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUzIC8qIE1lbW9yeVVzYWdl
U3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlV
c2FnZVN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4MDAsNiAr
MTc4MDMsOSBAQAogCQkJCUE4NzFEQjE3MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5oICovLAogCQkJCTg1NTU0MjVDMEFBNDhCMUUwMEJBODlGMiAvKiBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5pZGwgKi8sCiAJCQkJNTE5RkUwQTIwREFENDQ2RTAwQTA4RjIxIC8q
IEhUTUxUYWdOYW1lcy5pbiAqLywKKwkJCQlENkVGQzBCQjE2NjZERjdBMDAzRDI5MUUgLyogSFRN
TFRlbXBsYXRlRWxlbWVudC5jcHAgKi8sCisJCQkJRDZFRkMwQkMxNjY2REY3QTAwM0QyOTFFIC8q
IEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCAqLywKKwkJCQlENkVGQzBCRDE2NjZERjdBMDAzRDI5MUUg
LyogSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QkIwOTczNzRGNTAwRDc0
NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUJBMDk3Mzc0RjUw
MEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdFMTYwQTFBN0ND
QjAwN0ZCOEM1IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaWRsICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmlu
ZGV4IDRhMWUzMzU2OGNiMTU3YTcyM2YwYzdhZmE2OTdjMzQwOTI2NjYxNjguLmNmZTg3MDUzZGM3
MjBhNGUzNDc5MjVhZTY5OTM5MjU4MjM5Y2E1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTEyNjIs
NiArMTI2MiwxMCBAQCBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsKICAgICBtYXJn
aW4tcmlnaHQ6IDAuNGVtOwogfQogCit0ZW1wbGF0ZSB7CisgICAgZGlzcGxheTogbm9uZQorfQor
CiBiZGksIG91dHB1dCB7CiAgICAgdW5pY29kZS1iaWRpOiAtd2Via2l0LWlzb2xhdGU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggMjNmYmQ0ZmJhNjQ4ZGRjMjFmNDc3
MGY1ZjNlOWVmZTFiZGU3MGFlNS4uMGQyNTE2NjMzZjM4YmY5ZjZlYmIxOTUwZTg3NGQ3MmI0MTdl
OGM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMjMwLDYgKzIzMCw3
IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9k
ZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRDaGlsCiAgICAgQVNTRVJUKG5ld0NoaWxkKTsKICAgICBB
U1NFUlQobmV4dENoaWxkKTsKICAgICBBU1NFUlQobmV4dENoaWxkLT5wYXJlbnROb2RlKCkgPT0g
dGhpcyk7CisgICAgQVNTRVJUKGRvY3VtZW50KCkgPT0gbmV3Q2hpbGQtPmRvY3VtZW50KCkpOwog
CiAgICAgTm9kZVZlY3RvciB0YXJnZXRzOwogICAgIGNvbGxlY3RUYXJnZXROb2RlcyhuZXdDaGls
ZC5nZXQoKSwgdGFyZ2V0cyk7CkBAIC02MTAsNiArNjExLDcgQEAgdm9pZCBDb250YWluZXJOb2Rl
OjpwYXJzZXJBcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkKQogewogICAgIEFT
U0VSVChuZXdDaGlsZCk7CiAgICAgQVNTRVJUKCFuZXdDaGlsZC0+cGFyZW50Tm9kZSgpKTsgLy8g
VXNlIGFwcGVuZENoaWxkIGlmIHlvdSBuZWVkIHRvIGhhbmRsZSByZXBhcmVudGluZyAoYW5kIHdh
bnQgRE9NIG11dGF0aW9uIGV2ZW50cykuCisgICAgQVNTRVJUKGRvY3VtZW50KCkgPT0gbmV3Q2hp
bGQtPmRvY3VtZW50KCkpOwogCiAgICAgTm9kZSogbGFzdCA9IG1fbGFzdENoaWxkOwogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGRiNzRkNTVkZTVjMTBmMDZkNTUyMTYxMzMwYWNm
NjcyNTdlMjE5YjIuLjliMjRlYTFhYTNmZTU4NjBhODY1MWJkM2I0ZjAwODljZTAzZTA4OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTkzNSw0ICs1OTM1LDIyIEBAIExvY2FsZSYgRG9j
dW1lbnQ6OmdldENhY2hlZExvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKICAgICBy
ZXR1cm4gKihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFU
RV9UQUcpCitEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50
KCkKK3sKKyAgICAvLyBJZiBET0NVTUVOVCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4
dCwgTGV0IFRFTVBMQVRFIENPTlRFTlRTIE9XTkVSIGJlIERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlzOworCisgICAg
aWYgKCFtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hU
TUxEb2N1bWVudCgpKQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVu
dCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKDAsIGJsYW5rVVJMKCkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNy
ZWF0ZSgwLCBibGFua1VSTCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRl
bnRzT3duZXJEb2N1bWVudC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGJhMWU1NDdjMGM5N2MwNTc2OTBmODNiOGFlMDA0
NGNmOWUzMDljMzQuLmY2OGFiZDMwZjkwZGJmYTQzNWNlOGQwOTg0MzVmYmRlMTFkOTViOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTcwLDYgKzExNzAsMTAgQEAgcHVibGljOgogICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYgdG9wTGF5ZXJFbGVtZW50cygpIGNvbnN0IHsg
cmV0dXJuIG1fdG9wTGF5ZXJFbGVtZW50czsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExB
VEVfVEFHKQorICAgIERvY3VtZW50KiB0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpOwor
I2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBi
b29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTUyMyw2ICsxNTI3LDEwIEBAIHByaXZh
dGU6CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBPd25QdHI8TG9jYWxlPiA+
IExvY2FsZUlkZW50aWZpZXJUb0xvY2FsZU1hcDsKICAgICBMb2NhbGVJZGVudGlmaWVyVG9Mb2Nh
bGVNYXAgbV9sb2NhbGVDYWNoZTsKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgUmVm
UHRyPERvY3VtZW50PiBtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50OworI2VuZGlmCiB9
OwogCiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVk
ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRl
eCBiZWI4MzJmN2Y1MDA5YjZhYzYxM2MzM2NkOGI0NzFlYTIyNDcyZTYyLi44YzY3YzEyNzdmNGY2
NGU3NGQyZjhkNDQwOWE0YWUwNGYwNjk2ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkVkaXRv
ci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNs
dWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCkBA
IC0xNDEsNyArMTQyLDEyIEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVz
V2l0aE5hbWVzcGFjZXMoTm9kZSogdGFyZ2V0Tm9kZSwgTm9kZSogbm9kCiAgICAgICAgIGFwcGVu
ZFN0YXJ0VGFnKHRhcmdldE5vZGUsICZuYW1lc3BhY2VIYXNoKTsKIAogICAgIGlmICghKHRhcmdl
dE5vZGUtPmRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkgJiYgZWxlbWVudENhbm5vdEhhdmVF
bmRUYWcodGFyZ2V0Tm9kZSkpKSB7Ci0gICAgICAgIGZvciAoTm9kZSogY3VycmVudCA9IHRhcmdl
dE5vZGUtPmZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJs
aW5nKCkpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgTm9kZSogY3VycmVudCA9
IHRhcmdldE5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVt
ZW50KHRhcmdldE5vZGUpLT5jb250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZp
cnN0Q2hpbGQoKTsKKyNlbHNlCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5m
aXJzdENoaWxkKCk7CisjZW5kaWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0g
Y3VycmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5h
bWVzcGFjZXMoY3VycmVudCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNo
LCB0YWdOYW1lc1RvU2tpcCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CmluZGV4IDg3YjdlMjYyOTVmYjc0ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkxMWQuLjY3NGYxZWRk
NDNkZGIxODNmMzU5MGRlMjVhYjNmYTA2ZTYzMTEyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgor
I2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTM0Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxF
bGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhU
TUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91
dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMp
OworICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFn
bWVudEZvcklubmVyT3V0ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwg
ZWMpKSB7CisgICAgICAgIENvbnRhaW5lck5vZGUqIGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKGhhc0xvY2FsTmFtZSh0ZW1wbGF0ZVRhZykp
CisgICAgICAgICAgICBjb250YWluZXIgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGhpcyktPmNv
bnRlbnQoKTsKKyNlbmRpZgorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoY29u
dGFpbmVyLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lk
IG1lcmdlV2l0aE5leHRUZXh0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJ
bk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcApp
bmRleCBkNTE3Yzg0NTg2ODdmODI5MTA0ZTUyMDFmODU0ZWY4OGQzY2JkZTQ0Li43ZjNiM2Y0N2Mw
MGI4NTE5NzIwNGEyY2RiNThkODY0MGVkOTllMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50c0FsbEluT25lLmNwcApAQCAtMTA2LDYgKzEwNiw3IEBACiAjaW5jbHVkZSAi
SFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCIKKyNpbmNsdWRlICJI
VE1MVGVtcGxhdGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
SFRNTFRpdGxlRWxlbWVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4
IDg1YTFlNjFhNWE5NTgyYjEzZTYzNDI4OWNkYzUzYTIyYzc2YjNlMDEuLmM0MzZmOGRmODg4MzM0
ZmQzNmIxZmQ0YzNmYTdkNjU2MWQ3ZDMwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVz
LmluCkBAIC0xMjQsNiArMTI0LDcgQEAgc3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRh
YmxlCiB0Ym9keSBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0ZCBpbnRl
cmZhY2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50Cit0ZW1wbGF0ZSBpbnRlcmZhY2VOYW1lPUhU
TUxUZW1wbGF0ZUVsZW1lbnQsIGNvbmRpdGlvbmFsPVRFTVBMQVRFX1RBRwogdGV4dGFyZWEgaW50
ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQKIHRmb290IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVy
ZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOWE0MzFiNzc5OGFjNjYwZjU4NmY4NjA4
ZWEzMDNhOTAwMmE4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxl
bWVudC5oIgorCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJEb2N1
bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAibWFy
a3VwLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKKworaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCit7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6
On5IVE1MVGVtcGxhdGVFbGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVF
bGVtZW50PiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTFRlbXBsYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZy
YWdtZW50KiBIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fY29udGVudCkKKyAgICAgICAgbV9jb250ZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRl
KG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKSk7CisKKyAg
ICByZXR1cm4gbV9jb250ZW50LmdldCgpOworfQorCisKKy8vIEZJWE1FOiBodHRwczovL3d3dy53
My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTI3IChwcmV2ZW50IERPTSBoaWVy
YXJjaHkgY3ljbGVzKS4KKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMv
c2hvd19idWcuY2dpP2lkPTIwMTI5IChleHRlbmRlZCBhZG9wdE5vZGUgdG8gY29uc2lkZXIgdGVt
cGxhdGUuY29udGVudCkuCit2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQoUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBwcnBDb250ZW50LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY29udGVudCA9IHBycENvbnRlbnQ7CisK
KyAgICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAg
ZWMgPSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX2NvbnRlbnQuZ2V0KCkgPT0gY29udGVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGNvbnRlbnQtPm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3VtZW50KCktPnRlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9jdW1lbnQoKS0+dGVt
cGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRlbnQsIEFTU0VSVF9O
T19FWENFUFRJT04pOworCisgICAgbV9jb250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBO
REVCVUcKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChj
b25zdCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxl
bWVudCgpICYmIG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFH
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
YjEzYzQyMTgzZDFkOGNkODcwZTU0OTUzZmZlNzkwYjE3NWI0ODIwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVF
bGVtZW50X2gKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBIVE1MVGVtcGxhdGVFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRl
bXBsYXRlRWxlbWVudCgpOworCisgICAgRG9jdW1lbnRGcmFnbWVudCogY29udGVudCgpIGNvbnN0
OworCisgICAgdm9pZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4
Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCisgICAgbXV0YWJsZSBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gbV9jb250ZW50OworfTsKKworY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCog
dG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqKTsKKworaW5saW5lIEhUTUxUZW1wbGF0
ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIHJldHVy
biBjb25zdF9jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQqPih0b0hUTUxUZW1wbGF0ZUVsZW1lbnQo
c3RhdGljX2Nhc3Q8Y29uc3QgTm9kZSo+KG5vZGUpKSk7Cit9CisKKyNpZmRlZiBOREVCVUcKKwor
Ly8gVGhlIGRlYnVnIHZlcnNpb24gb2YgdGhpcywgd2l0aCBhc3NlcnRpb25zLCBpcyBub3QgaW5s
aW5lZC4KK2lubGluZSBjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVs
ZW1lbnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
SFRNTFRlbXBsYXRlRWxlbWVudCo+KG5vZGUpOworfQorI2VuZGlmIC8vIE5ERUJVRworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisj
ZW5kaWYgLy8gSFRNTFRlbXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDg3NjUzNjVmZjQyOTAxYTFhNzQ3Njdk
NTY3ZmRhMjY1NDE2YzgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0
IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25h
bD1URU1QTEFURV9UQUcKK10gaW50ZXJmYWNlIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CisgICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudCBzZXR0ZXIgcmFp
c2VzIChET01FeGNlcHRpb24pOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDljMTgyYmEyMzQzYjRlNTEzOWEz
MjAyMjYwODE0ZWQwNDk1OTE5ZDguLjc3MDViMTQ3YTA2NDk5MjMyZjQ4Njk0YzBhMWM3ZmQyMTBm
ZGI3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3Rh
Y2tJdGVtLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCkBAIC03Nyw2ICs3OCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBbGxX
aGl0ZXNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXhl
Y3V0ZVRhc2soSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFn
KSkKKyAgICAgICAgdGFzay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJl
bnQuZ2V0KCkpLT5jb250ZW50KCk7CisjZW5kaWYKKwogICAgIGlmICh0YXNrLm5leHRDaGlsZCkK
ICAgICAgICAgdGFzay5wYXJlbnQtPnBhcnNlckluc2VydEJlZm9yZSh0YXNrLmNoaWxkLmdldCgp
LCB0YXNrLm5leHRDaGlsZC5nZXQoKSk7CiAgICAgZWxzZQpAQCAtMjQ3LDcgKzI1Myw3IEBAIHZv
aWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydERvY3R5cGUoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnQoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKIHsKICAgICBBU1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9rZW5U
eXBlczo6Q29tbWVudCk7Ci0gICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6
Y3JlYXRlKGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCksIHRva2VuLT5jb21tZW50KCkpKTsKKyAg
ICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUob3duZXJEb2N1bWVu
dEZvckN1cnJlbnROb2RlKCksIHRva2VuLT5jb21tZW50KCkpKTsKIH0KIAogdm9pZCBIVE1MQ29u
c3RydWN0aW9uU2l0ZTo6aW5zZXJ0Q29tbWVudE9uRG9jdW1lbnQoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKQEAgLTMyNSw3ICszMzEsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNl
cnRTY3JpcHRFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgLy8gdGhvc2UgZmxh
Z3Mgb3IgZWZmZWN0cyB0aGVyZW9mLgogICAgIGNvbnN0IGJvb2wgcGFyc2VySW5zZXJ0ZWQgPSBt
X2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiAhPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnRBbmRE
b05vdE1hcmtBbHJlYWR5U3RhcnRlZDsKICAgICBjb25zdCBib29sIGFscmVhZHlTdGFydGVkID0g
bV9pc1BhcnNpbmdGcmFnbWVudCAmJiBwYXJzZXJJbnNlcnRlZDsKLSAgICBSZWZQdHI8SFRNTFNj
cmlwdEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRlKHNjcmlwdFRh
ZywgY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgcGFyc2VySW5zZXJ0ZWQsIGFscmVhZHlTdGFy
dGVkKTsKKyAgICBSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MU2NyaXB0
RWxlbWVudDo6Y3JlYXRlKHNjcmlwdFRhZywgb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCks
IHBhcnNlckluc2VydGVkLCBhbHJlYWR5U3RhcnRlZCk7CiAgICAgaWYgKG1fZnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uICE9IERpc2FsbG93U2NyaXB0aW5nQ29udGVudCkKICAgICAgICAgZWxl
bWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgZWxl
bWVudCk7CkBAIC0zNTEsNiArMzU3LDExIEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omlu
c2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiAgICAg
aWYgKHNob3VsZEZvc3RlclBhcmVudCgpKQogICAgICAgICBmaW5kRm9zdGVyU2l0ZSh0YXNrKTsK
IAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdO
YW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFzay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVs
ZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250ZW50KCk7CisjZW5kaWYKKwogICAgIC8vIFN0
cmluZ3MgY29tcG9zZWQgZW50aXJlbHkgb2Ygd2hpdGVzcGFjZSBhcmUgbGlrZWx5IHRvIGJlIHJl
cGVhdGVkLgogICAgIC8vIFR1cm4gdGhlbSBpbnRvIEF0b21pY1N0cmluZyBzbyB3ZSBzaGFyZSBh
IHNpbmdsZSBzdHJpbmcgZm9yIGVhY2guCiAgICAgYm9vbCBzaG91bGRVc2VBdG9taWNTdHJpbmcg
PSB3aGl0ZXNwYWNlTW9kZSA9PSBBbGxXaGl0ZXNwYWNlCkBAIC0zODcsMTggKzM5OCwyNyBAQCB2
b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNo
YXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0
aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVs
bEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVzcGFjZVVSSSk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQgPSBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRhZ05h
bWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gb3duZXJEb2N1bWVudEZv
ckN1cnJlbnROb2RlKCktPmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1ZSk7CiAgICAgZWxlbWVu
dC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbik7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQogCitp
bmxpbmUgRG9jdW1lbnQqIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25lckRvY3VtZW50Rm9yQ3Vy
cmVudE5vZGUoKQoreworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKGN1cnJlbnRO
b2RlKCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICByZXR1cm4gdG9IVE1MVGVt
cGxhdGVFbGVtZW50KGN1cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7Cisj
ZW5kaWYKKyAgICByZXR1cm4gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKTsKK30KKwogUGFzc1Jl
ZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0
b20sIHRva2VuLT5uYW1lKCksIHhodG1sTmFtZXNwYWNlVVJJKTsKICAgICAvLyBGSVhNRTogVGhp
cyBjYW4ndCB1c2UgSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3
ZQogICAgIC8vIGhhdmUgdG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBzaG91
bGQgcmV3b3JrIGZvcm0gYXNzb2NpYXRpb24KICAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1
Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxFbGVt
ZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdO
YW1lLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVu
dCh0YWdOYW1lLCBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgZm9ybSgpLCB0cnVlKTsK
ICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIG1f
ZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1M
RWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBAIC00NjIsNiArNDgy
LDE1IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3Mo
KQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3Ry
dWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAv
LyBXaGVuIGEgbm9kZSBpcyB0byBiZSBmb3N0ZXIgcGFyZW50ZWQsIHRoZSBsYXN0IHRlbXBsYXRl
IGVsZW1lbnQgd2l0aCBubyB0YWJsZSBlbGVtZW50IGlzIGJlbG93IGl0IGluIHRoZSBzdGFjayBv
ZiBvcGVuIGVsZW1lbnRzIGlzIHRoZSBmb3N0ZXIgcGFyZW50IGVsZW1lbnQgKE5PVCB0aGUgdGVt
cGxhdGUncyBwYXJlbnQhKQorICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxh
c3RUZW1wbGF0ZUVsZW1lbnQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRlbXBsYXRlVGFnLmxv
Y2FsTmFtZSgpKTsKKyAgICBpZiAobGFzdFRlbXBsYXRlRWxlbWVudCAmJiAhbV9vcGVuRWxlbWVu
dHMuaW5UYWJsZVNjb3BlKHRhYmxlVGFnKSkgeworICAgICAgICB0YXNrLnBhcmVudCA9IGxhc3RU
ZW1wbGF0ZUVsZW1lbnQtPmVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRp
ZgorCiAgICAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRhYmxlRWxlbWVu
dFJlY29yZCA9IG1fb3BlbkVsZW1lbnRzLnRvcG1vc3QodGFibGVUYWcubG9jYWxOYW1lKCkpOwog
ICAgIGlmIChsYXN0VGFibGVFbGVtZW50UmVjb3JkKSB7CiAgICAgICAgIEVsZW1lbnQqIGxhc3RU
YWJsZUVsZW1lbnQgPSBsYXN0VGFibGVFbGVtZW50UmVjb3JkLT5lbGVtZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAppbmRleCA2
MDU3MmJkZDg1NjI3NDQ1Y2JkODY1YTk2NzlkMmZlYmE1ZjZhOGRjLi5kZjMyNTkwYTc5MzcxN2Jl
N2E5MWRhNzZiOTE1YzRhOTE1NWI1MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKQEAgLTExNCw5ICsxMTQsMTAgQEAgcHVibGlj
OgogICAgIENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVu
RWxlbWVudHMudG9wTm9kZSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogY3VycmVudFN0YWNrSXRl
bSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcFN0YWNrSXRlbSgpOyB9CiAgICAg
SFRNTFN0YWNrSXRlbSogb25lQmVsb3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50
cy5vbmVCZWxvd1RvcCgpOyB9Ci0KKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJl
bnROb2RlKCk7CiAgICAgSFRNTEVsZW1lbnRTdGFjayogb3BlbkVsZW1lbnRzKCkgY29uc3QgeyBy
ZXR1cm4gJm1fb3BlbkVsZW1lbnRzOyB9CiAgICAgSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdCog
YWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fYWN0aXZlRm9ybWF0
dGluZ0VsZW1lbnRzOyB9CisgICAgYm9vbCBjdXJyZW50SXNSb290Tm9kZSgpIHsgcmV0dXJuIG1f
b3BlbkVsZW1lbnRzLnRvcE5vZGUoKSA9PSBtX29wZW5FbGVtZW50cy5yb290Tm9kZSgpOyB9CiAK
ICAgICBFbGVtZW50KiBoZWFkKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkLT5lbGVtZW50KCk7IH0K
ICAgICBIVE1MU3RhY2tJdGVtKiBoZWFkU3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9oZWFk
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3Rh
Y2suY3BwCmluZGV4IDZjMjIwYzk3MzlhNjQwMjBlZDBmMjdjYzMyMDFiMmM0ZTAxNjE1NzguLjNk
MmE4Yzk2OGM4MGRhMThmNDQxMzg5ZjMzOTgzMDI4ZDA2ZjFjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCkBAIC0zOCwxNCArMzgsMTUg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1z
dGF0aWMgaW5saW5lIGJvb2wgaXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQorCituYW1l
c3BhY2UgeworCitpbmxpbmUgYm9vbCBpc1Jvb3ROb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7
CiAgICAgcmV0dXJuIGl0ZW0tPmlzRG9jdW1lbnRGcmFnbWVudE5vZGUoKQogICAgICAgICB8fCBp
dGVtLT5oYXNUYWdOYW1lKGh0bWxUYWcpOwogfQogCi1uYW1lc3BhY2UgewotCiBpbmxpbmUgYm9v
bCBpc1Njb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0ZW0t
Pmhhc1RhZ05hbWUoYXBwbGV0VGFnKQpAQCAtNjQsNiArNjUsOSBAQCBpbmxpbmUgYm9vbCBpc1Nj
b3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OmRlc2NUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OnRpdGxlVGFnKQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0t
Pmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShp
dGVtKTsKIH0KIApAQCAtNzcsNiArODEsOSBAQCBpbmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVN
YXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIGlubGluZSBib29sIGlzVGFibGVTY29wZU1hcmtl
cihIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRh
YmxlVGFnKQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsK
IH0KIApAQCAtODUsMTIgKzkyLDE4IEBAIGlubGluZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJr
ZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0Ym9k
eVRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykKICAgICAgICAgfHwg
aXRlbS0+aGFzVGFnTmFtZSh0aGVhZFRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAg
ICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8
IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKIGlubGluZSBib29sIGlzVGFibGVSb3dTY29wZU1hcmtl
cihIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRy
VGFnKQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0K
IApAQCAtNTI3LDYgKzU0MCwxMyBAQCBib29sIEhUTUxFbGVtZW50U3RhY2s6OmluU2VsZWN0U2Nv
cGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkgY29uc3QKICAgICByZXR1cm4gaW5TZWxl
Y3RTY29wZSh0YWdOYW1lLmxvY2FsTmFtZSgpKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9U
QUcpCitib29sIEhUTUxFbGVtZW50U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25z
dAoreworICAgIHJldHVybiBpblNjb3BlQ29tbW9uPGlzUm9vdE5vZGU+KG1fdG9wLmdldCgpLCB0
ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7Cit9CisjZW5kaWYKKwogRWxlbWVudCogSFRNTEVsZW1l
bnRTdGFjazo6aHRtbEVsZW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAppbmRleCA4
NzNjYmRlYjk1YjhlZGEwNmIzYmU4MGJkOTVjYTdkMjM4OTExYmEzLi5kOTZjY2NkODA5NDdkYWI2
MTkxMWEyNmIzOGIzZmFlMzM5Njc5ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5oCkBAIC0xNTAsNyArMTUwLDkgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBoYXNPbmx5T25lRWxlbWVudCgpIGNvbnN0OwogICAgIGJvb2wgc2Vjb25kRWxlbWVudElz
SFRNTEJvZHlFbGVtZW50KCkgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAg
IGJvb2wgaGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpIGNvbnN0OworI2VuZGlmCiAgICAgRWxlbWVu
dCogaHRtbEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVtZW50KiBoZWFkRWxlbWVudCgpIGNvbnN0
OwogICAgIEVsZW1lbnQqIGJvZHlFbGVtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCBjNzg1NjJiMzNjMTliZDJjNTcx
ZDU5YmE1NWM2YTNkMDdlMjJjOGQ3Li4zNTBhNzczNTY1MDM5YTgxMDViMjYwNzYzNWY4ZmZhZjM3
YjFmZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAj
aW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgi
CisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5o
IgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCkBAIC0zNjAsNyArMzYxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRy
ZWVGcm9tVG9rZW4oSFRNTFRva2VuJiByYXdUb2tlbikKICAgICAvLyBzeW5jaHJvbm91c2x5IHJl
LWVudGVycyB0aGUgcGFyc2VyLiBXZSBkb24ndCBjbGVhciB0aGUgdG9rZW4gaW1tZWRhdGVseQog
ICAgIC8vIGZvciBDaGFyYWN0ZXIgdG9rZW5zIGJlY2F1c2UgdGhlIEF0b21pY0hUTUxUb2tlbiBh
dm9pZHMgY29weWluZyB0aGUKICAgICAvLyBjaGFyYWN0ZXJzIGJ5IGtlZXBpbmcgYSBwb2ludGVy
IHRvIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlciBpbiB0aGUKLSAgICAvLyBIVE1MVG9rZW4uIEZvcnR1
YW50ZWx5LCBDaGFyYWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgorICAg
IC8vIEhUTUxUb2tlbi4gRm9ydHVuYXRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2Ug
dXNlIHRvIHJlLWVudGVyCiAgICAgLy8gdGhlIHBhcnNlci4KICAgICAvLwogICAgIC8vIEZJWE1F
OiBTdG9wIGNsZWFyaW5nIHRoZSByYXdUb2tlbiBvbmNlIHdlIHN0YXJ0IHJ1bm5pbmcgdGhlIHBh
cnNlciBvZmYKQEAgLTY3Miw4ICs2NzMsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIH0KICAgICBp
ZiAodG9rZW4tPm5hbWUoKSA9PSBib2R5VGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwotICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25kRWxlbWVudElzSFRN
TEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5T25lRWxlbWVu
dCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAg
IGJvb2wgZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSA9ICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNl
Y29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
aGFzT25seU9uZUVsZW1lbnQoKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBm
cmFnbWVudE9yVGVtcGxhdGVDYXNlID0gZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSB8fCBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsKKyNlbmRpZgorICAgICAg
ICBpZiAoZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgzLDcgKzY4OCw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykg
ewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGlmICghbV9mcmFtZXNldE9rKQpAQCAtOTQ0LDEzICs5NDksNDMgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2
ZUZvcm1hdHRpbmdFbGVtZW50cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tl
bik7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorCit2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAg
ICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigpOworICAg
IG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CisgICAgc2V0SW5zZXJ0aW9uTW9kZShU
ZW1wbGF0ZUNvbnRlbnRzTW9kZSk7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
VGVtcGxhdGVFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICBpZiAoIW1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aW5TY29wZSh0b2tlbi0+bmFtZSgpKSkgeworICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RyZWUuZ2VuZXJh
dGVJbXBsaWVkRW5kVGFncygpOworICAgIGlmICghbV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+
aGFzTG9jYWxOYW1lKHRva2VuLT5uYW1lKCkpKQorICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
KyAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKHRva2VuLT5uYW1lKCkp
OworICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+Y2xlYXJUb0xhc3RNYXJr
ZXIoKTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Cit9CisjZW5kaWYK
KwogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1u
R3JvdXAoKQogewotICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2Rl
KCkpIHsKICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAvLyBG
SVhNRTogcGFyc2UgZXJyb3IKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAxMiw3ICsxMDQ3
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykg
ewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFwcm9jZXNzVGFibGVF
bmRUYWdGb3JJblRhYmxlKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250
ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNz
U3RhcnRUYWcodG9rZW4pOwpAQCAtMTAzOSw2ICsxMDc0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGly
ZWN0ZXIobV90cmVlKTsKICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAt
MTE1Myw2ICsxMTk0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRTZWxmQ2xv
c2luZ0hUTUxFbGVtZW50KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRl
bXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXBy
b2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNT
RVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Nyw3
ICsxMjI0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0
b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAm
JiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1l
KCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2Nh
bE5hbWUoKSkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEyMDIsNyArMTI0OSw3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAg
ICAgICAgICAgIHx8IGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAg
ICAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAg
ICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgp
ID09IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xMjgwLDYgKzEzMjcsMTIgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAg
ICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tl
bi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVT
dGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRl
ckZyYW1lc2V0TW9kZToKQEAgLTEzNTksNiArMTQxMiwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBB
U1NFUlRfVU5VU0VEKGRpZFByb2Nlc3MsIGRpZFByb2Nlc3MpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2Vu
LT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0
YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0
Rm9ySW5UYWJsZVRleHQoKTsKQEAgLTEzNjcsMTIgKzE0MjYsNTEgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2Ug
VGV4dE1vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcp
CisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAg
ICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBsaW5rVGFnCisgICAgICAg
ICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHNjcmlwdFRhZworICAgICAgICAgICAgfHwgdG9rZW4t
Pm5hbWUoKSA9PSBzdHlsZVRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBtZXRh
VGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkg
PT0gZnJhbWVUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2Rl
KTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBjb2xUYWcpCisgICAgICAgICAg
ICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAo
aXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNv
bnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKElu
VGFibGVNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRhZykKKyAg
ICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgZWxz
ZSBpZiAoaXNUYWJsZUNlbGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAgICAgICAg
c2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBz
ZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworCisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0
b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSHRt
bFN0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgcGFyc2VF
cnJvcih0b2tlbik7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAobV90cmVlLm9w
ZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkpIHsKKyAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0luQm9keSh0b2tlbik7CiB9
CiAKQEAgLTE1NDIsOCArMTY0MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNl
cnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgICAgICBsYXN0ID0gdHJ1ZTsKICAgICAg
ICAgICAgIGl0ZW0gPSBIVE1MU3RhY2tJdGVtOjpjcmVhdGUobV9mcmFnbWVudENvbnRleHQuY29u
dGV4dEVsZW1lbnQoKSwgSFRNTFN0YWNrSXRlbTo6SXRlbUZvckNvbnRleHRFbGVtZW50KTsKICAg
ICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJWE1FOiBodHRw
czovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTMwIChzaG91bGQg
PHRlbXBsYXRlPiBjbGVhciB0aGUgImltcGxpZWQgY29udGV4dCBlbGVtZW50Ii4KKyAgICAgICAg
aWYgKGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHNl
dEluc2VydGlvbk1vZGUoVGVtcGxhdGVDb250ZW50c01vZGUpOworI2VuZGlmCiAgICAgICAgIGlm
IChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
U2VsZWN0TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRU
YWcpIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhUYWcpKQpAQCAtMTU1NSwxOSArMTY1NywyMCBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAg
ICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQogICAgICAgICAgICAgcmV0
dXJuIHNldEluc2VydGlvbk1vZGUoSW5DYXB0aW9uTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5o
YXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5H
cm91cE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxl
VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsK
ICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoaGVhZFRhZykpIHsKLSAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAg
ICAgICAgICAgaWYgKCFtX2ZyYWdtZW50Q29udGV4dC5mcmFnbWVudCgpIHx8IG1fZnJhZ21lbnRD
b250ZXh0LmNvbnRleHRFbGVtZW50KCkgIT0gaXRlbS0+bm9kZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluSGVhZE1vZGUpOworI2VuZGlmCiAgICAgICAgICAg
ICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoaXRlbS0+aGFzVGFnTmFtZShib2R5VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShm
cmFtZXNldFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsK
ICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKSkgewpAQCAtMTU5
OCw3ICsxNzAxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRh
YmxlQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRhYmxlVGFnKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgIGlm
ICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1l
KCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2Nh
bE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFn
LmxvY2FsTmFtZSgpKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRz
KCkpOwogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KQEAgLTE2MjgsNyArMTczMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW5Sb3coQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAg
aWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgaWYgKCFwcm9jZXNzVHJF
bmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQo
KSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVu
dHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTY4MSw3ICsxNzg0LDExIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gdHJUYWcKICAgICAgICAg
fHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgIGlmICgh
bV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29u
dGV4dFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVT
Y29wZSh0ZW1wbGF0ZVRhZykgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZWxzZQogICAgICAg
ICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKKyNlbmRpZgogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE4MjEsNiArMTkyOCwxMiBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKGJyVGFnKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0
b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwcm9jZXNzQW55T3Ro
ZXJFbmRUYWdGb3JJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xODQyLDcgKzE5NTUsNyBAQCBib29s
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NhcHRpb25FbmRUYWdGb3JJbkNhcHRpb24oKQogYm9v
bCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIHsKICAgICBpZiAo
IW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRyVGFnLmxvY2FsTmFtZSgpKSkg
ewotICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6
IHBhcnNlIGVycm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xODU2LDcgKzE5
NjksNyBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQog
Ym9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUoKQogewog
ICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7
Ci0gICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTog
cGFyc2UgZXJyb3IuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xOTEzLDYgKzIw
MjYsMTUgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9k
ZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKKyAgICAg
ICAgLy8gRklYTUU6IFRoaXMgY2FzZSBzaG91bGQgYmUgYnJva2VuIG91dCBpbnRvIHByb2Nlc3NF
bmRUYWdGb3JJbkhlYWQsCisgICAgICAgIC8vIGJlY2F1c2Ugb3RoZXIgZW5kIHRhZyBjYXNlcyBu
b3cgcmVmZXIgdG8gaXQgKCJwcm9jZXNzIHRoZSB0b2tlbiBmb3IgdXNpbmcgdGhlIHJ1bGVzIG9m
IHRoZSAiaW4gaGVhZCIgaW5zZXJ0aW9uIG1vZGUiKS4KKyAgICAgICAgLy8gYnV0IGJlY2F1c2Ug
dGhlIGxvZ2ljIGZhbGxzIHRocm91Z2ggdG8gQWZ0ZXJIZWFkTW9kZSwgdGhhdCBnZXRzIGEgbGl0
dGxlIG1lc3N5LgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRU
YWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5wb3BIVE1MSGVhZEVsZW1lbnQoKTsKICAgICAgICAgICAgIHNldEluc2Vy
dGlvbk1vZGUoQWZ0ZXJIZWFkTW9kZSk7CkBAIC0xOTc3LDYgKzIwOTksMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0g
dGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXBy
b2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNT
RVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjA1Miw3
ICsyMTgwLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hU
TUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBJbkZyYW1lc2V0TW9kZToKICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7Ci0gICAgICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRO
b2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgICAgICAg
ICBib29sIGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nICA9IG1fdHJlZS5jdXJyZW50
SXNSb290Tm9kZSgpOworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBpZ25v
cmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQ
YXJzaW5nIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgp
OworI2VuZGlmCisgICAgICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNp
bmcpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRl
Q29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTk0LDEyIEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQor
ICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAg
cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6
CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpA
QCAtMjExOSwxMSArMjI1OCwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRh
ZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2Rl
QXBwcm9wcmlhdGVseSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVU
YWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNl
IEluVGFibGVUZXh0TW9kZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAg
ICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBs
YXRlQ29udGVudHNNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJ
WE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTE5OTY2
CisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAg
ICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRh
ZykpOworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAg
ICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworICAg
ICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMjIyNCw4ICsy
Mzg0LDE0IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgog
ICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgog
ICAgIGNhc2UgSW5DZWxsTW9kZTogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAg
IEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkg
PT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNl
cnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgICAgIEFT
U0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0g
SW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7CisjZW5kaWYK
ICAgICAgICAgcHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZmZXIpOwogICAgICAg
ICBicmVhazsKICAgICB9CkBAIC0yMzYwLDcgKzI1MjYsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIElu
Q2VsbE1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgogICAgIGNhc2UgSW5Sb3dNb2RlOgor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkg
PT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2Rl
IHx8IGluc2VydGlvbk1vZGUoKSA9PSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZWxzZQorICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpICE9IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKICAg
ICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBJbkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8
IGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUpOworI2VuZGlmCiAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7IC8vIEVtaXQgcGFyc2UgZXJyb3IgYmFzZWQgb24gd2hhdCBlbGVtZW50cyBhcmUg
c3RpbGwgb3Blbi4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckJvZHlNb2RlOgpAQCAt
MjM4Niw3ICsyNTU3LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUo
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEluQ29sdW1uR3JvdXBNb2RlOgotICAgICAgICBpZiAo
bV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgp
KSB7CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKSkgewogICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOyAvLyBG
SVhNRTogU2hvdWxkIHdlIGJyZWFrIGhlcmUgaW5zdGVhZCBvZiByZXR1cm5pbmc/CiAgICAgICAg
IH0KQEAgLTI0MDksNiArMjU4MCwxNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZE9mRmlsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tl
bik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorICAg
ICAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKKyAgICAgICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PnBvcCgpOworICAgICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAg
ICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOworICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IEFTU0VSVChtX3RyZWUuY3VycmVudE5vZGUoKSk7CiAgICAgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5wb3BBbGwoKTsKQEAgLTI1MTIsNiArMjY5MywxMiBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAg
ICAgICBwcm9jZXNzRmFrZUVuZFRhZyhzY3JpcHRUYWcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9
PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFt
ZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
aAppbmRleCA4ZmYwZjU4YjM0NWZmZjNlNDU1YjVhZmZlZjY1ZTEwMmY2ZDViZmZhLi5lZWRiYjky
ZDBmNDJmYzUxNWVkNzkwZmVmMjAxODk2ODE3YWNhNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgog
ICAgIH5IVE1MVHJlZUJ1aWxkZXIoKTsKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBj
b25zdCB7IHJldHVybiAhIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFC
TEUoVEVNUExBVEVfVEFHKQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNv
bnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29w
ZSgpOyB9CisgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNv
bnN0IHsgcmV0dXJuIGlzUGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250
ZW50cygpOyB9CisjZWxzZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpOyB9CisjZW5kaWYKIAog
ICAgIHZvaWQgZGV0YWNoKCk7CiAKQEAgLTk3LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAg
IEluSGVhZE1vZGUsCiAgICAgICAgIEluSGVhZE5vc2NyaXB0TW9kZSwKICAgICAgICAgQWZ0ZXJI
ZWFkTW9kZSwKKyAgICAgICAgVGVtcGxhdGVDb250ZW50c01vZGUsCiAgICAgICAgIEluQm9keU1v
ZGUsCiAgICAgICAgIFRleHRNb2RlLAogICAgICAgICBJblRhYmxlTW9kZSwKQEAgLTE5MCw2ICsx
OTcsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlh
dGVseSgpOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICB2b2lkIHByb2Nlc3NUZW1w
bGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiopOworICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRl
RW5kVGFnKEF0b21pY0hUTUxUb2tlbiopOworI2VuZGlmCisKICAgICBjbGFzcyBGcmFnbWVudFBh
cnNpbmdDb250ZXh0IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQYXJz
aW5nQ29udGV4dCk7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4
IDRhM2E1ZjRkZWYwN2RmMjg2YmU0MTZhYTI5YjUwMjhkMWQ5ZGY1NDguLjllNmIwN2NmOWY3NGY0
MDA4ODY3ODJhZmRjYWE2MjIwNjYxZmM3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
QEAgLTQ3Miw2ICs0NzIsNyBAQAogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFRhYmxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxUYWJsZVJvd0VsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7CisgICAg
YXR0cmlidXRlIFtDb25kaXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1lbnRD
b25zdHJ1Y3RvciBIVE1MVGVtcGxhdGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFy
ZWFFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUg
SFRNTFRpdGxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmli
dXRlIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGE3YmY2MzY3YTE0ZjE2OWY4MGE4YTQ5ZjZl
MjEwYzJmMTY1ZDliMTUuLjkyYmNiMzFiNWE1YmQzMTk5ODFlNTA4MmI4YTc3YjBlMDA4NThjMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTExMSw2ICsxMTEsNyBAQAog
ICAgICAgJ0VOQUJMRV9TVkdfRk9OVFM9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxFX1RF
WFRfQVVUT1NJWklORz0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKKyAg
ICAgICdFTkFCTEVfVEVNUExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVOVFM9
PChlbmFibGVfdG91Y2hfZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
Rz08KGVuYWJsZV90b3VjaF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfU0xJ
REVSPTEnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGYwMmI3ZTliNDBiOTVjNDRmNTU4NTFhYTZhMWQwZTI5MGI2NTBmMmYu
LmJiZjYyZDc5OGYwNzM5ZDkxOTEzNDMwNDg5OTdjZDU2NWU2ZWZhOGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMi0xMS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29u
dGVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVu
dC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRk
ZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHJlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAg
ICAgICAgKE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTExLTI4ICBUb20g
U2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFhTU0F1ZGl0b3IgYnlwYXNz
IHdpdGggc2NyaXB0IHNyYz1kYXRhOiBVUkwgZW5kaW5nIGluIDwhLS0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2Rl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzM1OTk5OWE0NTE3ODNhNzAyYmMzYTAxNzBiMDZj
MzFjOWEwZjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVz
dCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBub3QgY2xvbmVkIHdoZW4gdGhlIHRlbXBsYXRl
IGVsZW1lbnQgaXMgY2xvbmVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IDEgaXMgdGVtcGxhdGUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aAorUEFTUyAwIGlzIGNsb25l
LmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIx
NjJlZWM2NzUwNDU4MGRmNjVhNjVmYTIwNDdjM2E3ZDQ0MTZkNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwK
QEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRl
Ij5Db250ZW50czwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRo
YXQgdGVtcGxhdGUgY29udGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxhdGUgZWxl
bWVudCBpcyBjbG9uZWQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAg
ICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX1RBRyknKTsK
KwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyk7Citz
aG91bGRCZSgnMScsICd0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJyk7Cit2YXIg
Y2xvbmUgPSB0ZW1wbGF0ZS5jbG9uZU5vZGUodHJ1ZSk7CitzaG91bGRCZSgnMCcsICdjbG9uZS5j
b250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRD
b250ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmZjExNTE1YWE4NjllNWRmYTg1MTM4
YWExYWZjZDJkZWM5MzdmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACitodHRwOi8vYmF6LmNvbS9iYXQuanBnIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJl
cXVlc3QgVVJMIGh0dHA6Ly9iYXouY29tL2JhdC5qcGcsIG1haW4gZG9jdW1lbnQgVVJMIGluZXJ0
Q29udGVudHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9iYXouY29tL2JhdC5qcGcKK2h0
dHA6Ly9iYXouY29tL2JhdC5qcGcgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3Ig
ZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGluZyBVUkwgIihudWxsKSI+
CitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgZWxlbWVudHMgd2l0aGluIHRlbXBsYXRlIGNvbnRlbnRz
IGFyZSAiaW5lcnQiLCBlLmcuIHJlc291cmNlcyBkbyBub3QgZmV0Y2gsIHNjcmlwdCBkb2VzIG5v
dCBydW4uCisKK3Bhc3MhCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNjMDVl
Y2I5MDc5NzVkNTAxNDQ3OTUwYzNjY2U3NWExY2U5NmQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1s
CkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+Cit2YXIgdGVzdFZhbCA9IDE7CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOworICAg
IH0KKworICAgIGlmICh0ZXN0VmFsICE9IDEpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciB0
ZW1wbGF0ZUNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKS5jb250
ZW50OworICAgIHZhciBpbWcgPSB0ZW1wbGF0ZUNvbnRlbnQuY2hpbGROb2Rlc1sxXTsKKyAgICBp
bWcuc3JjID0gImh0dHA6Ly9iYXouY29tL2JhdC5qcGciOworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQodGVtcGxhdGVDb250ZW50KTsKKworICAgIGlmICh0ZXN0VmFsICE9IDIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5l
clRleHQgPSAncGFzcyEnOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZSB0
ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJp
bmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi48
L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c2NyaXB0PndpbmRvdy50ZXN0VmFsID0gMjs8
L3NjcmlwdD48aW1nIHNyYz0iaHR0cDovL2Zvby5jb20vYmFyLmpwZyI+Cis8L3RlbXBsYXRlPgor
PGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1w
bGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
Zjk3MjcwODdhM2U2NzEyMzAxMmY4NmJlN2U0YmVjODIzMjU4NjZkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRl
IGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4g
YXJlIGlnbm9yZWQuCisKKzxkaXY+Q29udGVudHMgMQorPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3Rl
bXBsYXRlPgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzYyY2EzYmVmMWQzZDgy
NzlmYWIxOTE3ODk5MmMyYzVmNjFjM2M1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApAQCAtMCwwICsxLDMy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgord2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91bGQgbm90IHNlcmlh
bGl6ZSc7CisgICAgdmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hp
bGQuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgaW5uZXJUZW1wbGF0ZS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91bGQgbm90IHNlcmlh
bGl6ZSBlaXRoZXInOworCisgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gdGVtcGxhdGUuaW5uZXJI
VE1MOworICAgIGlmICh0ZW1wbGF0ZS5jaGlsZE5vZGVzLmxlbmd0aCAhPSAxKSAvLyBUaGUgb25s
eSBjaGlsZCBzaG91bGQgYmUgdGhlIHNwYW4gdGhhdCB3YXMgYWRkZWQgYWJvdmUuCisgICAgICAg
IHJldHVybjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lclRl
eHQgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7CisgICAgdmFyIHRlbXBsYXRlMiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7CisgICAgdGVtcGxhdGUyLmlubmVySFRNTCA9ICc8dGVt
cGxhdGU+PC90ZW1wbGF0ZT4nOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
ZSB0ZXN0IGFzc2VydHMgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgc2VyaWFsaXplZCB3aXRo
IGlubmVySFRNTCBhbmQgaXRzIGNoaWxkcmVuIGFyZSBpZ25vcmVkLjwvcD4KKzx0ZW1wbGF0ZSBp
ZD0idGVtcGxhdGUiPjxkaXY+Q29udGVudHMgMQorICA8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVt
cGxhdGU+Cis8L2Rpdj48L3RlbXBsYXRlPgorPGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OTczNWFmZTYxZGYyNjg2ZGY1MGNj
NDFmOGNiNzQwYmQ4ZmU1MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjggQEAKK1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQgaXMgdGVtcGxh
dGUub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3Rh
bmNlb2YgSFRNTERvY3VtZW50IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQgaXMgbm90IHRlbXBsYXRl
Q29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBp
cyB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0
ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudAorUEFT
UyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlzIGlubmVyVGVtcGxhdGUuY29udGVudC5v
d25lckRvY3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBpbnN0YW5jZW9m
IEhUTUxEb2N1bWVudCBpcyB0cnVlCitQQVNTIGRvY3VtZW50IGlzIHRlbXBsYXRlMi5vd25lckRv
Y3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGUyLmNv
bnRlbnQub3duZXJEb2N1bWVudAorUEFTUyBkb2N1bWVudCBpcyBkZi5vd25lckRvY3VtZW50CitQ
QVNTIGRvY3VtZW50IGlzIHNwYW4ub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50IGlzIGRmLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCBpcyBzcGFuLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUuY29udGVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBU
eXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUuY29udGVu
dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7IHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHRlbXBsYXRlLmNv
bnRlbnQgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
VHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIGRvY3VtZW50IGlzIHRl
bXBsYXRlMy5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQg
aXMgdGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50IGlzIHRlbXBsYXRlMy5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVu
dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9v
d25lckRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk3ZGEyNjg0ZGM2YjQyMTg5ZmU5M2RiYzM1
NzIxOWY5N2MyOTJlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PHNwYW4+PHRlbXBsYXRlPjwv
dGVtcGxhdGU+PC9zcGFuPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlMiI+PHNw
YW4+PC9zcGFuPjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlMyI+PHN2Zz48L3N2
Zz48L3RlbXBsYXRlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCBIVE1MVGVtcGxh
dGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVt
cGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUo
VEVNUExBVEVfVEFHKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZS5vd25lckRvY3Vt
ZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGUuY29u
dGVudC5vd25lckRvY3VtZW50Oworc2hvdWxkQmVUcnVlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CitzaG91bGROb3RCZSgnZG9jdW1lbnQn
LCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLm93bmVyRG9j
dW1lbnQnKTsKKwordmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hp
bGQuZmlyc3RDaGlsZDsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jywg
J2lubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQnLCAnaW5uZXJUZW1wbGF0ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQnKTsK
K3Nob3VsZEJlVHJ1ZSgnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRN
TERvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVtcGxhdGUyJyk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGUyLm93bmVyRG9jdW1l
bnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3RlbXBsYXRl
Mi5jb250ZW50Lm93bmVyRG9jdW1lbnQnKTsKKwordmFyIGRmID0gZG9jdW1lbnQuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwordmFyIHNwYW4gPSBkZi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzcGFuJykpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ2RmLm93bmVyRG9jdW1l
bnQnKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICdzcGFuLm93bmVyRG9jdW1lbnQnKTsKKwordGVt
cGxhdGUuY29udGVudCA9IGRmOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1l
bnQnLCAnZGYub3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQnLCAnc3Bhbi5vd25lckRvY3VtZW50Jyk7CisKK3Nob3VsZFRocm93KCd0ZW1wbGF0
ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOycpOworc2hvdWxkVGhy
b3coJ3RlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOycp
OworaWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dSb290KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHNob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KScpOworfQorCit2YXIgdGVtcGxhdGUzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ2RvY3VtZW50Jywg
J3RlbXBsYXRlMy5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTMuY29udGVudC5vd25lckRvY3VtZW50Jyk7CitzaG91bGRC
ZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZTMuY29udGVudC5maXJz
dENoaWxkLm93bmVyRG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293
bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY2OWJmZmQ5MWQxZWY5
N2Y2MWRmNmVlM2E2OTcwMDljY2EwNzViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBv
d25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIGRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNlCitQ
QVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRl
bXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnRYSFRNTC54aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhN2I0YmE4ZmY3NWQ4
NzljZDEwMjAyZjFiODU2ZDViZDU4ZjE3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbApA
QCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgSFRN
TFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQgaW4gWEhUTUwgRG9jdW1lbnQn
KTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdU
aGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX1RBRyknKTsKKworc2hvdWxkQmVGYWxz
ZSgnZG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQnKTsKK3ZhciB0ZW1wbGF0ZTQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpOwordmFyIHRlbXBsYXRlQ29udGVudE93
bmVyRG9jdW1lbnQgPSB0ZW1wbGF0ZTQuY29udGVudC5vd25lckRvY3VtZW50Oworc2hvdWxkTm90
QmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJl
RmFsc2UoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1l
bnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVz
b3VyY2VzL3RlbXBsYXRlLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmFlODFlZmRkZmRjNGQ4Zjg2NzcxYzYy
YzRhMTM5NzI0MDJiYThiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIv
cmVzb3VyY2VzL3RlbXBsYXRlLmRhdApAQCAtMCwwICsxLDg0MyBAQAorI2RhdGEKKzxib2R5Pjx0
ZW1wbGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT5IZWxsbzwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICJIZWxs
byIKK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48L3RlbXBsYXRlPjxkaXY+PC9kaXY+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgIDxib2R5PgorfCAgICAgPGRpdj4K
KworI2RhdGEKKzxodG1sPjx0ZW1wbGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICJIZWxsbyIKK3wgICA8Ym9keT4KKworI2RhdGEK
KzxoZWFkPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2PjwvdGVtcGxhdGU+PC9oZWFkPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgIDxib2R5PgorCisjZGF0
YQorPGRpdj48dGVtcGxhdGU+PGRpdj48c3Bhbj48L3RlbXBsYXRlPjxiPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
ICAgPGRpdj4KK3wgICAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgIDxiPgorCisjZGF0YQorPGRp
dj48dGVtcGxhdGU+PC9kaXY+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICJIZWxsbyIKKworI2RhdGEK
KzxkaXY+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBs
YXRlPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PGRpdj48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxh
dGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgIDx0YWJsZT4KK3wgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRh
YmxlPiAgIDx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAg
ICIgICAiCit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
KworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+
PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8
dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L3RoZWFkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFi
bGU+PHRmb290Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGZvb3Q+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0Zm9vdD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zZWxlY3Q+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvdGVt
cGxhdGU+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHRl
bXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC9zZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8b3B0aW9uPgor
fCAgICAgICAgIDxvcHRpb24+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0
ZT48L3RlbXBsYXRlPjxvcHRpb24+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgIDxvcHRpb24+CisK
KyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zZWxlY3Q+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNl
bGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1w
bGF0ZT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPG9wdGlv
bj4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdGFi
bGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRkPgorCisjZGF0
YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8Ym9keT48dGFibGU+PHRlbXBsYXRlPjx0ZD48L3Ry
PjxkaXY+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAg
ICAgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRl
PjwvdGhlYWQ+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0YQorPHRh
YmxlPjx0aGVhZD48dGVtcGxhdGU+PHRyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRlbXBs
YXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4KKworI2Rh
dGEKKzx0YWJsZT48dHI+PHRlbXBsYXRlPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5
PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxl
Pjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48
L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgICAgIDx0
ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3Rl
bXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+Cit8
ICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRk
PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRl
bXBsYXRlPjx0cj48L3RyPjwvdGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KK3wgICAg
ICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PGNvbGdyb3VwPjx0ZW1wbGF0ZT48Y29sPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8
ZnJhbWVzZXQ+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+PC9mcmFtZXNldD4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxmcmFtZT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L2ZyYW1lc2V0Pjxm
cmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgIDxmcmFtZT4KK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgPGJvZHk+CisKKyNkYXRh
Cis8dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2PjxzcGFuPjwvc3Bh
bj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgICAgPHNwYW4+Cit8ICAgPGJvZHk+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2
PjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgor
fCAgICAgICAgIDxzcGFuPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzY3JpcHQ+dmFyIGkg
PSAxOzwvc2NyaXB0Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzY3JpcHQ+Cit8ICAgICAgICAgICAidmFy
IGkgPSAxOyIKK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjxk
aXY+PC9kaXY+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAg
PHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3Rk
PjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjx0Ym9keT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8
ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjxjYXB0aW9u
PjwvY2FwdGlvbj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjxjb2xncm91cD48L2NhcHRpb24+PHRkPjwvdGQ+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48
dGQ+PC90ZD48L3RhYmxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRib2R5Pjx0cj48L3RyPjwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+
PGNhcHRpb24+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48L3RhYmxlPjx0cj48L3RyPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4K
K3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRoZWFkPjwvdGhlYWQ+
PGNhcHRpb24+PC9jYXB0aW9uPjx0Ym9keT48L3Rib2R5PjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAg
ICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxh
dGU+PHRoZWFkPjwvdGhlYWQ+PC90YWJsZT48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPjwvYm9k
eT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHRoZWFkPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48ZGl2
Pjx0cj48L3RyPjwvZGl2PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+
PGVtPkhlbGxvPC9lbT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZW0+Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRh
Cis8Ym9keT48dGVtcGxhdGU+PCEtLWNvbW1lbnQtLT48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8IS0tIGNvbW1lbnQgLS0+
CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHN0eWxlPjwvc3R5bGU+PHRkPjwvdGQ+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPHN0eWxlPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48bWV0
YT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8bWV0YT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9k
eT48dGVtcGxhdGU+PGxpbms+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGxpbms+Cit8ICAgICAgICAgPHRk
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRl
Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+
PHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD48L2NvbD48L3RlbXBsYXRlPjwvY29sZ3Jv
dXA+PC90YWJsZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAgICAgPGNvbD4KKworI2RhdGEKKzxib2R5IGE9Yj48dGVtcGxhdGU+PGRpdj48L2Rpdj48Ym9k
eSBjPWQ+PGRpdj48L2Rpdj48L2JvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICBhPSJiIgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2
PgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxkaXY+PGh0
bWwgYj1jPjxzcGFuPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5
PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjxodG1sIGI9Yz48Y29s
PjwvY29sPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0i
YiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgICA8Y29sPgorfCAgIDxib2R5PgorCisjZGF0
YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48aHRtbCBiPWM+PGZyYW1lPjwv
ZnJhbWU+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBhPSJi
IgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjx0ZD48
L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIv
cnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWZlMzI0YjAxMjllNjFjOTEy
NGU1NTgwOTI4MmE5NWQwYmFhYWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACityZXNvdXJjZXMv
dGVtcGxhdGUuZGF0OiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4t
dGVtcGxhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY4MTEyOWEwZTE2ZmZlYWM0NDQ5YjNlOTE3YWM0ZDQxOWNiNjRmZTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbApAQCAt
MCwwICsxLDggQEAKKzwhZG9jdHlwZSBodG1sPgorPHNjcmlwdD4KK3ZhciB0ZXN0X2ZpbGVzID0g
WworICAncmVzb3VyY2VzL3RlbXBsYXRlLmRhdCcsCitdCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyBi
L0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcwppbmRleCA1M2EwMDFmZWZk
ZTI4ODFhZWY2MWNkMDY5MDI3MmZjNmUxNWIxZTkxLi5jN2ZkZjE3ZjIwYTQyOWMxMGM2ZDhiM2Ex
OTZkZmI5MDk0NDYyYjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1h
cy1tYXJrdXAuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpz
CkBAIC0yMjAsMTYgKzIyMCwyNCBAQCBNYXJrdXAuX2dldCA9IGZ1bmN0aW9uKG5vZGUsIGRlcHRo
KQogICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBpZiAobm9k
ZS5ub2RlTmFtZSA9PSAiI3NoYWRvdy1yb290IikKICAgICAgICAgICBzdHIgKz0gIjxzaGFkb3c6
cm9vdD4iOworICAgICAgICBlbHNlCisgICAgICAgICAgc3RyICs9ICIjZG9jdW1lbnQtZnJhZ21l
bnQiOwogICAgIH0KLQotICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMu
bGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgdmFyIHNlbGVjdGlvbiA9IE1hcmt1cC5f
Z2V0U2VsZWN0aW9uTWFya2VyKG5vZGUsIGkpOwotICAgICAgICBpZiAoc2VsZWN0aW9uKQotICAg
ICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247Ci0K
LSAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAx
KTsKKyAgICAKKyAgICAKKyAgICAvLyBIVE1MIFRlbXBsYXRlIGVsZW1lbnRzIHNlcmlhbGl6ZSB0
aGVpciBjb250ZW50IERvY3VtZW50RnJhZ21lbnQsIGFuZCBOT1QgdGhlaXIgY2hpbGRyZW4uCisg
ICAgaWYgKG5vZGUubmFtZXNwYWNlVVJJID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
ICYmIG5vZGUudGFnTmFtZSA9PSAnVEVNUExBVEUnKSB7CisgICAgICAgIHN0ciArPSBNYXJrdXAu
X2dldChub2RlLmNvbnRlbnQsIGRlcHRoICsgMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykg
eworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2Vy
KG5vZGUsIGkpOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikKKyAgICAgICAgICAgICAgICBz
dHIgKz0gTWFya3VwLl9pbmRlbnQoZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKKyAgICAKKyAgICAg
ICAgICAgIHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7
CisgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAgICBzdHIgKz0gTWFya3VwLl9nZXRTaGFkb3dI
b3N0SWZQb3NzaWJsZShub2RlLCBkZXB0aCk7CiAgICAgCiAgICAgdmFyIHNlbGVjdGlvbiA9IE1h
cmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKG5vZGUsIGkpOwpAQCAtMjg0LDcgKzI5Miw3IEBAIE1h
cmt1cC5fTkFNRVNQQUNFX1VSSV9NQVAgPSB7CiAKIE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5v
ZGUgPSBmdW5jdGlvbihub2RlKQogewotICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCk7CisgICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5k
ZWZhdWx0VmlldyA/IG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24o
KSA6IG51bGw7CiB9CiAKIE1hcmt1cC5fU0VMRUNUSU9OX0ZPQ1VTID0gJzwjc2VsZWN0aW9uLWZv
Y3VzPic7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176788</attachid>
            <date>2012-11-29 12:28:58 -0800</date>
            <delta_ts>2012-11-29 12:44:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121129122631.patch</filename>
            <type>text/plain</type>
            <size>98188</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY1Njc5ODkwMjgzMWEw
ZjRiYTg3MDA5OGUwNmU2ZDRkNzZkNjRhYS4uZDgwM2Y2ZDc5ZDBhNjkyNzcyODAxYTMyNTg5OGVj
ZTAxZTJkNWJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTI3NzE4ODU+IFN1cHBvcnQgcnVieS1wb3NpdGlvbjoge2Jl
Zm9yZSwgYWZ0ZXJ9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGRmMzYxMzkxYzkwZjhh
NDdiZDZiYWRiZTc0ZDY1ZWQyNWRiYmIzNTAuLmJiYmQyZDAzMzAxY2RjOTQ0ZDNjZDQ3MzdjMGIz
MzJlMTM5YzhiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuaW5nIG9uIEhUTUxUZW1wbGF0ZUVsZW1l
bnQgZm9yIGNocm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEy
LTExLTI5ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBBZGQgY29kZSBzdXBwcHJlc3Npb24gZmxhZ3MgZm9yIHNraWEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYz
MS4uYzE1MmFmZmY1M2U2MDAzZmU1NGFhYjdmODBlM2Y1NTZmMzM0ZDBhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTQ4OCw2ICs0ODgsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBo
dG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50Lmlk
bAogICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKICAgICBo
dG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbApA
QCAtMTQzMCw2ICsxNDMxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcAog
ICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCisgICAgaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKICAgICBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGU1MzZmZDEzYTk0YTdkMGE1
ZTQ1Yjc1Nzk5ZmI4ZGNkNjY2MjA0YTEuLjdiYWE1Zjg3ODZjNmQyODA2ZTE0NTczNmE3YzI2ODc5
OTdlYTVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzQ4LDYgKzM0OCw3
IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGl0
bGVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhmYjYzNzg3MDNlNjRjY2JiMGU2
Y2RhZjI3NWVlYTNmODc5Mjg3NWQuLjMwZWNlY2IyZmQ0NjExYzE3M2VmZDFhNGQzYjQ2YmEwYjNl
ZTJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDMxLDYgKzQzMSw4IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxUYWJsZVJvd0VsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGVtcGxh
dGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRleHRBcmVhRWxlbWVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRpdGxlRWxlbWVudC5jcHAgXApAQCAtMTQ4
OSw2ICsxNDkxLDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwgXAor
CSQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRpdGxl
RWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCBcCkBA
IC0zNDM1LDYgKzM0MzgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjNTdk
NThiMjBjYzVmNWU3MmVjODk1MWFiNjE2MmIzMTcwYWZmYTVlLi4xMmU5MWYyMWY3MDYzZTA0Yzkw
MTE0NjIyN2IzZTZhYzQ4ODEwYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTY1OCw2ICs2NTgsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKICAgICBodG1s
L0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBcCiAgICAgaHRtbC9IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5jcHAgXAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgXAogICAgIGh0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwIFwKQEAgLTE4MjIs
NiArMTgyMyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5o
IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAogICAgIGh0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCBcCisgICAgaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggXAog
ICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBkOTVhMTdkOGRkYjA0YjhmNmEyYzA1MjViYzk3M2QzZmU5ODYwZjQzLi45ZDg2
OTI0ZTBmNThmNWQzYTBiMGExNDJiNGYyYzAyYzk5OTg2ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xMTI4LDYgKzExMjgsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsJywKKyAgICAgICAgICAg
ICdodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
aXRsZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRs
JywKICAgICAgICAgICAgICdodG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsJywKQEAgLTQxODAsNiAr
NDE4MSw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1s
L0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMWQzYTIyMzMwZmI4MWE3YzBhYmMy
YWE2MzEwMWEwMWZmOWFhYjI0Li4yMzMyMjQwYzU2ZDVjOTc2NzY1Yzk3Njk3YTE5MzRmYWE4NDI0
MzljIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtOTYyMiw3ICs5NjIyLDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KIAkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC05Njc0LDkgKzk2NzQsNjUgQEAKIAkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
SFRNTFRlbXBsYXRlRWxlbWVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxG
aWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJh
dGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiIKKyAgICAgICAgICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4K
KyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4K
KyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
ICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAg
ICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxl
Q29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAg
ICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVi
dWdfQWxsfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAg
ICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAg
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAor
ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAg
ICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAg
ICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICBSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1M
VGl0bGVFbGVtZW50LmNwcCIKIAkJCQk+CkBAIC02MzQ1OCw3ICs2MzUxNCw3IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0ZUVs
ZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCkBAIC02MzUxMCw5ICs2MzU2Niw2NSBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
VGV4dEFyZWFFbGVtZW50LmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0
ZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorICAgICAg
ICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIK
KyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIgorICAgICAgICAgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAg
ICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIgorICAgICAgICAgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAg
ICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAg
ICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAg
ICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1
cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAg
ICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAg
ICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAg
Lz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAg
ICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAg
ICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
ICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAg
ICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAg
ICA8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0
aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisgICAgICAgICAgICAgICAgPgorICAg
ICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMmQ1NzU2Y2M1YTYwMDVk
NGRmOWNlZTc1MWZhOWQ4MmQ2YWZmZWNjLi45NWJjMWUzYTk2MTEzZjEyN2UwYTI5ODNmY2NiN2U4
ZDJlZWMzNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMzQ1Niw2ICsxMzQ1Niw5IEBACiAJCUQ2RTI3NkFFMTQ2Mzc0NTUw
MDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZFNTI4QTExNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQ2RUZDMEJCMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENkVGQzBCQzE2NjZERjdBMDAzRDI5
MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIVE1MVGVtcGxhdGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQ2RUZDMEJEMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVGVtcGxhdGVFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUxIC8qIEhpc3RvZ3JhbVN1
cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlzdG9ncmFt
U3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2
MTkwMDM3QjFFMiAvKiBTdGF0c0NvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3RhdHNDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUzIC8qIE1lbW9yeVVzYWdlU3VwcG9ydC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlVc2FnZVN1cHBvcnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4MDAsNiArMTc4MDMsOSBAQAogCQkJ
CUE4NzFEQjE3MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oICov
LAogCQkJCTg1NTU0MjVDMEFBNDhCMUUwMEJBODlGMiAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5pZGwgKi8sCiAJCQkJNTE5RkUwQTIwREFENDQ2RTAwQTA4RjIxIC8qIEhUTUxUYWdOYW1lcy5p
biAqLywKKwkJCQlENkVGQzBCQjE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAgKi8sCisJCQkJRDZFRkMwQkMxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCAqLywKKwkJCQlENkVGQzBCRDE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QkIwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUJBMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1M
VGV4dEFyZWFFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdFMTYwQTFBN0NDQjAwN0ZCOEM1IC8qIEhU
TUxUZXh0QXJlYUVsZW1lbnQuaWRsICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4IDRhMWUzMzU2OGNi
MTU3YTcyM2YwYzdhZmE2OTdjMzQwOTI2NjYxNjguLmNmZTg3MDUzZGM3MjBhNGUzNDc5MjVhZTY5
OTM5MjU4MjM5Y2E1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTEyNjIsNiArMTI2MiwxMCBAQCBz
dW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsKICAgICBtYXJnaW4tcmlnaHQ6IDAuNGVt
OwogfQogCit0ZW1wbGF0ZSB7CisgICAgZGlzcGxheTogbm9uZQorfQorCiBiZGksIG91dHB1dCB7
CiAgICAgdW5pY29kZS1iaWRpOiAtd2Via2l0LWlzb2xhdGU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKaW5kZXggZjNjNmFiZDM4YTc3NTg2ODkyYTJmMTVkOWQzY2Y2ZDFmMGI0
MTFjYS4uM2Y0MjVjNTY2NGY1NThjNDMzZmJjYWIxMGIyYzA3OTBkYWQzNDI2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMjkzLDYgKzI5Myw3IEBAIHZvaWQgQ29udGFp
bmVyTm9kZTo6cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIG5leHRDaGlsCiAgICAgQVNTRVJUKG5ld0NoaWxkKTsKICAgICBBU1NFUlQobmV4dENoaWxk
KTsKICAgICBBU1NFUlQobmV4dENoaWxkLT5wYXJlbnROb2RlKCkgPT0gdGhpcyk7CisgICAgQVNT
RVJUKGRvY3VtZW50KCkgPT0gbmV3Q2hpbGQtPmRvY3VtZW50KCkpOwogCiAgICAgTm9kZVZlY3Rv
ciB0YXJnZXRzOwogICAgIGNvbGxlY3RUYXJnZXROb2RlcyhuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0
cyk7CkBAIC02NzQsNiArNjc1LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJBcHBlbmRD
aGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkKQogewogICAgIEFTU0VSVChuZXdDaGlsZCk7
CiAgICAgQVNTRVJUKCFuZXdDaGlsZC0+cGFyZW50Tm9kZSgpKTsgLy8gVXNlIGFwcGVuZENoaWxk
IGlmIHlvdSBuZWVkIHRvIGhhbmRsZSByZXBhcmVudGluZyAoYW5kIHdhbnQgRE9NIG11dGF0aW9u
IGV2ZW50cykuCisgICAgQVNTRVJUKGRvY3VtZW50KCkgPT0gbmV3Q2hpbGQtPmRvY3VtZW50KCkp
OwogCiAgICAgTm9kZSogbGFzdCA9IG1fbGFzdENoaWxkOwogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IGRiNzRkNTVkZTVjMTBmMDZkNTUyMTYxMzMwYWNmNjcyNTdlMjE5YjIuLjli
MjRlYTFhYTNmZTU4NjBhODY1MWJkM2I0ZjAwODljZTAzZTA4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtNTkzNSw0ICs1OTM1LDIyIEBAIExvY2FsZSYgRG9jdW1lbnQ6OmdldENhY2hl
ZExvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKICAgICByZXR1cm4gKihyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCitEb2N1bWVu
dCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkKK3sKKyAgICAvLyBJ
ZiBET0NVTUVOVCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCwgTGV0IFRFTVBMQVRF
IENPTlRFTlRTIE9XTkVSIGJlIERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBp
ZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlzOworCisgICAgaWYgKCFtX3RlbXBsYXRl
Q29udGVudHNPd25lckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQor
ICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1bWVu
dDo6Y3JlYXRlKDAsIGJsYW5rVVJMKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3Rl
bXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFua1VS
TCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVu
dC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDRlMjY3MTYxMTIyMGQzZmJmNzcyMGEwOGRjNGQ3OTUzZGExZTUwZWUuLjRh
M2YxODNiYThhYzkwNjhjYTViNzQ2NTA5MWQ0OTYzNmQwMGQyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMTcxLDYgKzExNzEsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8RWxlbWVudD4gPiYgdG9wTGF5ZXJFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGF5
ZXJFbGVtZW50czsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIERv
Y3VtZW50KiB0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpOworI2VuZGlmCisKIHByb3Rl
Y3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJv
b2wgaXNIVE1MKTsKIApAQCAtMTUyMyw2ICsxNTI3LDEwIEBAIHByaXZhdGU6CiAKICAgICB0eXBl
ZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBPd25QdHI8TG9jYWxlPiA+IExvY2FsZUlkZW50aWZp
ZXJUb0xvY2FsZU1hcDsKICAgICBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXAgbV9sb2NhbGVD
YWNoZTsKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgUmVmUHRyPERvY3VtZW50PiBt
X3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50OworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9p
ZCBEb2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCBiZWI4MzJmN2Y1MDA5
YjZhYzYxM2MzM2NkOGI0NzFlYTIyNDcyZTYyLi44YzY3YzEyNzdmNGY2NGU3NGQyZjhkNDQwOWE0
YWUwNGYwNjk2ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFRl
bXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCkBAIC0xNDEsNyArMTQyLDEy
IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMo
Tm9kZSogdGFyZ2V0Tm9kZSwgTm9kZSogbm9kCiAgICAgICAgIGFwcGVuZFN0YXJ0VGFnKHRhcmdl
dE5vZGUsICZuYW1lc3BhY2VIYXNoKTsKIAogICAgIGlmICghKHRhcmdldE5vZGUtPmRvY3VtZW50
KCktPmlzSFRNTERvY3VtZW50KCkgJiYgZWxlbWVudENhbm5vdEhhdmVFbmRUYWcodGFyZ2V0Tm9k
ZSkpKSB7Ci0gICAgICAgIGZvciAoTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmZpcnN0Q2hp
bGQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhh
c1RhZ05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUp
LT5jb250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNl
bHNlCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7Cisj
ZW5kaWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVu
dCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tp
cCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDg3YjdlMjYy
OTVmYjc0ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkxMWQuLjY3NGYxZWRkNDNkZGIxODNmMzU5MGRl
MjVhYjNmYTA2ZTYzMTEyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxU
ZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlz
dGVuZXIuaCIKQEAgLTM0Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhU
TUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5n
JiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0
aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgIGlmIChSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0
ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKSB7CisgICAgICAg
IENvbnRhaW5lck5vZGUqIGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgaWYgKGhhc0xvY2FsTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICBj
b250YWluZXIgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGhpcyktPmNvbnRlbnQoKTsKKyNlbmRp
ZgorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoY29udGFpbmVyLCBmcmFnbWVu
dC5yZWxlYXNlKCksIGVjKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIG1lcmdlV2l0aE5leHRU
ZXh0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAppbmRleCBkNTE3Yzg0NTg2
ODdmODI5MTA0ZTUyMDFmODU0ZWY4OGQzY2JkZTQ0Li43ZjNiM2Y0N2MwMGI4NTE5NzIwNGEyY2Ri
NThkODY0MGVkOTllMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50c0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0Fs
bEluT25lLmNwcApAQCAtMTA2LDYgKzEwNiw3IEBACiAjaW5jbHVkZSAiSFRNTFRhYmxlUGFydEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKICNpbmNsdWRlICJI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVu
dC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDg1YTFlNjFhNWE5NTgy
YjEzZTYzNDI4OWNkYzUzYTIyYzc2YjNlMDEuLmM0MzZmOGRmODg4MzM0ZmQzNmIxZmQ0YzNmYTdk
NjU2MWQ3ZDMwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMjQsNiAr
MTI0LDcgQEAgc3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxlCiB0Ym9keSBpbnRl
cmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0ZCBpbnRlcmZhY2VOYW1lPUhUTUxU
YWJsZUNlbGxFbGVtZW50Cit0ZW1wbGF0ZSBpbnRlcmZhY2VOYW1lPUhUTUxUZW1wbGF0ZUVsZW1l
bnQsIGNvbmRpdGlvbmFsPVRFTVBMQVRFX1RBRwogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1M
VGV4dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290IGludGVy
ZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlQ2VsbEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNhOWE0MzFiNzc5OGFjNjYwZjU4NmY4NjA4ZWEzMDNhOTAwMmE4ZmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgorCisjaW5j
bHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAibWFya3VwLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworaW5saW5lIEhU
TUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCit7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVtcGxhdGVF
bGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBIVE1MVGVt
cGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRlbXBsYXRlRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZyYWdtZW50KiBIVE1MVGVt
cGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29udGVudCkKKyAg
ICAgICAgbV9jb250ZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnQo
KS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKSk7CisKKyAgICByZXR1cm4gbV9jb250
ZW50LmdldCgpOworfQorCisKKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJs
aWMvc2hvd19idWcuY2dpP2lkPTIwMTI3IChwcmV2ZW50IERPTSBoaWVyYXJjaHkgY3ljbGVzKS4K
Ky8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lk
PTIwMTI5IChleHRlbmRlZCBhZG9wdE5vZGUgdG8gY29uc2lkZXIgdGVtcGxhdGUuY29udGVudCku
Cit2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQoUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBwcnBDb250ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gY29udGVudCA9IHBycENvbnRlbnQ7CisKKyAgICBpZiAoIWNvbnRl
bnQgfHwgY29udGVudC0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01B
VENIX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2NvbnRlbnQuZ2V0
KCkgPT0gY29udGVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNvbnRlbnQt
Pm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25l
ckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093
bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwor
CisgICAgbV9jb250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBOREVCVUcKK2NvbnN0IEhU
TUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKiBub2Rl
KQoreworICAgIEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIG5vZGUt
Pmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjEzYzQyMTgzZDFkOGNk
ODcwZTU0OTUzZmZlNzkwYjE3NWI0ODIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhU
TUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKworI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBI
VE1MVGVtcGxhdGVFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRlbXBsYXRlRWxlbWVudCgp
OworCisgICAgRG9jdW1lbnRGcmFnbWVudCogY29udGVudCgpIGNvbnN0OworCisgICAgdm9pZCBz
ZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsK
KworcHJpdmF0ZToKKyAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworCisgICAgbXV0YWJsZSBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9j
b250ZW50OworfTsKKworY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVF
bGVtZW50KGNvbnN0IE5vZGUqKTsKKworaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRN
TFRlbXBsYXRlRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIHJldHVybiBjb25zdF9jYXN0PEhU
TUxUZW1wbGF0ZUVsZW1lbnQqPih0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8Y29u
c3QgTm9kZSo+KG5vZGUpKSk7Cit9CisKKyNpZmRlZiBOREVCVUcKKworLy8gVGhlIGRlYnVnIHZl
cnNpb24gb2YgdGhpcywgd2l0aCBhc3NlcnRpb25zLCBpcyBub3QgaW5saW5lZC4KK2lubGluZSBj
b25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9k
ZSogbm9kZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTFRlbXBsYXRlRWxl
bWVudCo+KG5vZGUpOworfQorI2VuZGlmIC8vIE5ERUJVRworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisjZW5kaWYgLy8gSFRNTFRl
bXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1w
bGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNDg3NjUzNjVmZjQyOTAxYTFhNzQ3NjdkNTY3ZmRhMjY1NDE2Yzgx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1URU1QTEFURV9UQUcK
K10gaW50ZXJmYWNlIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgYXR0
cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudCBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRp
b24pOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCmluZGV4IDljMTgyYmEyMzQzYjRlNTEzOWEzMjAyMjYwODE0ZWQwNDk1
OTE5ZDguLjc3MDViMTQ3YTA2NDk5MjMyZjQ4Njk0YzBhMWM3ZmQyMTBmZGI3OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5j
bHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2lu
Y2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBA
IC03Nyw2ICs3OCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBbGxXaGl0ZXNwYWNlKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRNTENv
bnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisg
ICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFz
ay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250
ZW50KCk7CisjZW5kaWYKKwogICAgIGlmICh0YXNrLm5leHRDaGlsZCkKICAgICAgICAgdGFzay5w
YXJlbnQtPnBhcnNlckluc2VydEJlZm9yZSh0YXNrLmNoaWxkLmdldCgpLCB0YXNrLm5leHRDaGls
ZC5nZXQoKSk7CiAgICAgZWxzZQpAQCAtMjQ3LDcgKzI1Myw3IEBAIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6Omluc2VydERvY3R5cGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHZvaWQgSFRN
TENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikK
IHsKICAgICBBU1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6Q29tbWVudCk7
Ci0gICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6Y3JlYXRlKGN1cnJlbnRO
b2RlKCktPmRvY3VtZW50KCksIHRva2VuLT5jb21tZW50KCkpKTsKKyAgICBhdHRhY2hMYXRlcihj
dXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUob3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KCksIHRva2VuLT5jb21tZW50KCkpKTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
aW5zZXJ0Q29tbWVudE9uRG9jdW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKQEAgLTMyNSw3
ICszMzEsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRTY3JpcHRFbGVtZW50
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgLy8gdGhvc2UgZmxhZ3Mgb3IgZWZmZWN0cyB0
aGVyZW9mLgogICAgIGNvbnN0IGJvb2wgcGFyc2VySW5zZXJ0ZWQgPSBtX2ZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiAhPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnRBbmREb05vdE1hcmtBbHJlYWR5
U3RhcnRlZDsKICAgICBjb25zdCBib29sIGFscmVhZHlTdGFydGVkID0gbV9pc1BhcnNpbmdGcmFn
bWVudCAmJiBwYXJzZXJJbnNlcnRlZDsKLSAgICBSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGVs
ZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRlKHNjcmlwdFRhZywgY3VycmVudE5vZGUo
KS0+ZG9jdW1lbnQoKSwgcGFyc2VySW5zZXJ0ZWQsIGFscmVhZHlTdGFydGVkKTsKKyAgICBSZWZQ
dHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRl
KHNjcmlwdFRhZywgb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCksIHBhcnNlckluc2VydGVk
LCBhbHJlYWR5U3RhcnRlZCk7CiAgICAgaWYgKG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
ICE9IERpc2FsbG93U2NyaXB0aW5nQ29udGVudCkKICAgICAgICAgZWxlbWVudC0+cGFyc2VyU2V0
QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbik7CiAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgZWxlbWVudCk7CkBAIC0zNTEs
NiArMzU3LDExIEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNv
bnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiAgICAgaWYgKHNob3VsZEZvc3Rl
clBhcmVudCgpKQogICAgICAgICBmaW5kRm9zdGVyU2l0ZSh0YXNrKTsKIAorI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFn
KSkKKyAgICAgICAgdGFzay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJl
bnQuZ2V0KCkpLT5jb250ZW50KCk7CisjZW5kaWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQg
ZW50aXJlbHkgb2Ygd2hpdGVzcGFjZSBhcmUgbGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8v
IFR1cm4gdGhlbSBpbnRvIEF0b21pY1N0cmluZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcg
Zm9yIGVhY2guCiAgICAgYm9vbCBzaG91bGRVc2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9k
ZSA9PSBBbGxXaGl0ZXNwYWNlCkBAIC0zODcsMTggKzM5OCwyNyBAQCB2b2lkIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRl
c3BhY2VNbwogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRl
RWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVVSSSkKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5u
YW1lKCksIG5hbWVzcGFjZVVSSSk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJy
ZW50Tm9kZSgpLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAg
IFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCkt
PmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0
cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
bik7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQq
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQorewor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKGN1cnJlbnROb2RlKCktPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpKQorICAgICAgICByZXR1cm4gdG9IVE1MVGVtcGxhdGVFbGVtZW50KGN1
cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7CisjZW5kaWYKKyAgICByZXR1
cm4gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKTsKK30KKwogUGFzc1JlZlB0cjxFbGVtZW50PiBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1l
KCksIHhodG1sTmFtZXNwYWNlVVJJKTsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2UgSFRN
TENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3ZQogICAgIC8vIGhhdmUg
dG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBzaG91bGQgcmV3b3JrIGZvcm0g
YXNzb2NpYXRpb24KICAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cg
YmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
SFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50Tm9k
ZSgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgZm9ybSgpLCB0cnVlKTsKICAgICBlbGVtZW50LT5w
YXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsKICAg
ICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBAIC00NjIsNiArNDgyLDE1IEBAIHZvaWQgSFRN
TENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogCiB2b2lkIEhUTUxD
b25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2sm
IHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAvLyBXaGVuIGEgbm9kZSBp
cyB0byBiZSBmb3N0ZXIgcGFyZW50ZWQsIHRoZSBsYXN0IHRlbXBsYXRlIGVsZW1lbnQgd2l0aCBu
byB0YWJsZSBlbGVtZW50IGlzIGJlbG93IGl0IGluIHRoZSBzdGFjayBvZiBvcGVuIGVsZW1lbnRz
IGlzIHRoZSBmb3N0ZXIgcGFyZW50IGVsZW1lbnQgKE5PVCB0aGUgdGVtcGxhdGUncyBwYXJlbnQh
KQorICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUZW1wbGF0ZUVsZW1l
bnQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRlbXBsYXRlVGFnLmxvY2FsTmFtZSgpKTsKKyAg
ICBpZiAobGFzdFRlbXBsYXRlRWxlbWVudCAmJiAhbV9vcGVuRWxlbWVudHMuaW5UYWJsZVNjb3Bl
KHRhYmxlVGFnKSkgeworICAgICAgICB0YXNrLnBhcmVudCA9IGxhc3RUZW1wbGF0ZUVsZW1lbnQt
PmVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgSFRNTEVs
ZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRhYmxlRWxlbWVudFJlY29yZCA9IG1fb3Bl
bkVsZW1lbnRzLnRvcG1vc3QodGFibGVUYWcubG9jYWxOYW1lKCkpOwogICAgIGlmIChsYXN0VGFi
bGVFbGVtZW50UmVjb3JkKSB7CiAgICAgICAgIEVsZW1lbnQqIGxhc3RUYWJsZUVsZW1lbnQgPSBs
YXN0VGFibGVFbGVtZW50UmVjb3JkLT5lbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAppbmRleCA2MDU3MmJkZDg1NjI3NDQ1
Y2JkODY1YTk2NzlkMmZlYmE1ZjZhOGRjLi5kZjMyNTkwYTc5MzcxN2JlN2E5MWRhNzZiOTE1YzRh
OTE1NWI1MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmgKQEAgLTExNCw5ICsxMTQsMTAgQEAgcHVibGljOgogICAgIENvbnRhaW5l
ck5vZGUqIGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9k
ZSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogY3VycmVudFN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0
dXJuIG1fb3BlbkVsZW1lbnRzLnRvcFN0YWNrSXRlbSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSog
b25lQmVsb3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy5vbmVCZWxvd1RvcCgp
OyB9Ci0KKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCk7CiAgICAg
SFRNTEVsZW1lbnRTdGFjayogb3BlbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fb3BlbkVs
ZW1lbnRzOyB9CiAgICAgSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdCogYWN0aXZlRm9ybWF0dGlu
Z0VsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzOyB9
CisgICAgYm9vbCBjdXJyZW50SXNSb290Tm9kZSgpIHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRv
cE5vZGUoKSA9PSBtX29wZW5FbGVtZW50cy5yb290Tm9kZSgpOyB9CiAKICAgICBFbGVtZW50KiBo
ZWFkKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkLT5lbGVtZW50KCk7IH0KICAgICBIVE1MU3RhY2tJ
dGVtKiBoZWFkU3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkLmdldCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IDZj
MjIwYzk3MzlhNjQwMjBlZDBmMjdjYzMyMDFiMmM0ZTAxNjE1NzguLjNkMmE4Yzk2OGM4MGRhMThm
NDQxMzg5ZjMzOTgzMDI4ZDA2ZjFjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCkBAIC0zOCwxNCArMzgsMTUgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgaW5saW5lIGJv
b2wgaXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQorCituYW1lc3BhY2UgeworCitpbmxp
bmUgYm9vbCBpc1Jvb3ROb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0
ZW0tPmlzRG9jdW1lbnRGcmFnbWVudE5vZGUoKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KGh0bWxUYWcpOwogfQogCi1uYW1lc3BhY2UgewotCiBpbmxpbmUgYm9vbCBpc1Njb3BlTWFya2Vy
KEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUoYXBw
bGV0VGFnKQpAQCAtNjQsNiArNjUsOSBAQCBpbmxpbmUgYm9vbCBpc1Njb3BlTWFya2VyKEhUTUxT
dGFja0l0ZW0qIGl0ZW0pCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZv
cmVpZ25PYmplY3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmRl
c2NUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFnKQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAt
NzcsNiArODEsOSBAQCBpbmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVNYXJrZXIoSFRNTFN0YWNr
SXRlbSogaXRlbSkKIGlubGluZSBib29sIGlzVGFibGVTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVt
KiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtODUsMTIg
KzkyLDE4IEBAIGlubGluZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRl
bSogaXRlbSkKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0Ym9keVRhZykKICAgICAgICAg
fHwgaXRlbS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFt
ZSh0aGVhZFRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5o
YXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRl
bSk7CiB9CiAKIGlubGluZSBib29sIGlzVGFibGVSb3dTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVt
KiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRyVGFnKQorI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcp
CisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtNTI3LDYgKzU0
MCwxMyBAQCBib29sIEhUTUxFbGVtZW50U3RhY2s6OmluU2VsZWN0U2NvcGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSkgY29uc3QKICAgICByZXR1cm4gaW5TZWxlY3RTY29wZSh0YWdOYW1l
LmxvY2FsTmFtZSgpKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCitib29sIEhUTUxF
bGVtZW50U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdAoreworICAgIHJldHVy
biBpblNjb3BlQ29tbW9uPGlzUm9vdE5vZGU+KG1fdG9wLmdldCgpLCB0ZW1wbGF0ZVRhZy5sb2Nh
bE5hbWUoKSk7Cit9CisjZW5kaWYKKwogRWxlbWVudCogSFRNTEVsZW1lbnRTdGFjazo6aHRtbEVs
ZW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAppbmRleCA4NzNjYmRlYjk1YjhlZGEw
NmIzYmU4MGJkOTVjYTdkMjM4OTExYmEzLi5kOTZjY2NkODA5NDdkYWI2MTkxMWEyNmIzOGIzZmFl
MzM5Njc5ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5oCkBAIC0xNTAsNyArMTUwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNPbmx5T25l
RWxlbWVudCgpIGNvbnN0OwogICAgIGJvb2wgc2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50
KCkgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGJvb2wgaGFzVGVtcGxh
dGVJbkhUTUxTY29wZSgpIGNvbnN0OworI2VuZGlmCiAgICAgRWxlbWVudCogaHRtbEVsZW1lbnQo
KSBjb25zdDsKICAgICBFbGVtZW50KiBoZWFkRWxlbWVudCgpIGNvbnN0OwogICAgIEVsZW1lbnQq
IGJvZHlFbGVtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAppbmRleCBjNzg1NjJiMzNjMTliZDJjNTcxZDU5YmE1NWM2YTNkMDdl
MjJjOGQ3Li4zNTBhNzczNTY1MDM5YTgxMDViMjYwNzYzNWY4ZmZhZjM3YjFmZTFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNj
cmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5jbHVkZSAiSFRN
TFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhU
TUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC0zNjAsNyAr
MzYxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRN
TFRva2VuJiByYXdUb2tlbikKICAgICAvLyBzeW5jaHJvbm91c2x5IHJlLWVudGVycyB0aGUgcGFy
c2VyLiBXZSBkb24ndCBjbGVhciB0aGUgdG9rZW4gaW1tZWRhdGVseQogICAgIC8vIGZvciBDaGFy
YWN0ZXIgdG9rZW5zIGJlY2F1c2UgdGhlIEF0b21pY0hUTUxUb2tlbiBhdm9pZHMgY29weWluZyB0
aGUKICAgICAvLyBjaGFyYWN0ZXJzIGJ5IGtlZXBpbmcgYSBwb2ludGVyIHRvIHRoZSB1bmRlcmx5
aW5nIGJ1ZmZlciBpbiB0aGUKLSAgICAvLyBIVE1MVG9rZW4uIEZvcnR1YW50ZWx5LCBDaGFyYWN0
ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgorICAgIC8vIEhUTUxUb2tlbi4g
Rm9ydHVuYXRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNlIHRvIHJlLWVudGVy
CiAgICAgLy8gdGhlIHBhcnNlci4KICAgICAvLwogICAgIC8vIEZJWE1FOiBTdG9wIGNsZWFyaW5n
IHRoZSByYXdUb2tlbiBvbmNlIHdlIHN0YXJ0IHJ1bm5pbmcgdGhlIHBhcnNlciBvZmYKQEAgLTY3
Miw4ICs2NzMsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zvcklu
Qm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4tPm5hbWUo
KSA9PSBib2R5VGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICBpZiAo
IW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkg
fHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIGJvb2wgZnJhZ21lbnRP
clRlbXBsYXRlQ2FzZSA9ICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hU
TUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1l
bnQoKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBmcmFnbWVudE9yVGVtcGxh
dGVDYXNlID0gZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
Pmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsKKyNlbmRpZgorICAgICAgICBpZiAoZnJhZ21lbnRP
clRlbXBsYXRlQ2FzZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JU
ZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgzLDcgKzY4OCw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewogICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29u
ZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFz
T25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICghbV9m
cmFtZXNldE9rKQpAQCAtOTQ0LDEzICs5NDksNDMgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBw
YXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVt
ZW50cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiB9CiAKKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBs
YXRlU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICBtX3RyZWUuYWN0aXZl
Rm9ybWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigpOworICAgIG1fdHJlZS5pbnNlcnRI
VE1MRWxlbWVudCh0b2tlbik7CisgICAgc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRz
TW9kZSk7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVFbmRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+aW5TY29wZSh0b2tlbi0+bmFtZSgpKSkgeworICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFn
cygpOworICAgIGlmICghbV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzTG9jYWxOYW1lKHRv
a2VuLT5uYW1lKCkpKQorICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKHRva2VuLT5uYW1lKCkpOworICAgIG1fdHJlZS5h
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+Y2xlYXJUb0xhc3RNYXJrZXIoKTsKKyAgICByZXNl
dEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Cit9CisjZW5kaWYKKwogYm9vbCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKQogewotICAg
IGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3RO
b2RlKCkpIHsKKyAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJy
b3IKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAxMiw3ICsxMDQ3LDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRhYmxl
KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4p
OwpAQCAtMTAzOSw2ICsxMDc0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+cG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewor
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisjZW5kaWYKICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICBIVE1MQ29uc3RydWN0
aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsK
ICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTE1Myw2ICsxMTk0LDEy
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRTZWxmQ2xvc2luZ0hUTUxFbGVtZW50
KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7Cisg
ICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVu
ZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Nyw3ICsxMjI0LDcgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8
fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5F
bGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAg
ICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KQEAgLTEyMDIsNyArMTI0OSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHx8IGlz
Q2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAgICAgICAgICAgIHx8IGlz
VGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgaWYgKCFw
cm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5
TW9kZSk7CkBAIC0xMjgwLDYgKzEzMjcsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRl
bXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZToK
QEAgLTEzNTksNiArMTQxMiwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGRp
ZFByb2Nlc3MsIGRpZFByb2Nlc3MpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVt
cGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQo
KTsKQEAgLTEzNjcsMTIgKzE0MjYsNTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgVGV4dE1vZGU6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBs
YXRlQ29udGVudHNNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxh
dGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBsaW5rVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+
bmFtZSgpID09IHNjcmlwdFRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzdHls
ZVRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBtZXRhVGFnKSB7CisgICAgICAg
ICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCisg
ICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgZWxz
ZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBjb2xUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JD
b2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4t
Pm5hbWUoKSkpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKKyAg
ICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRhZykKKyAgICAgICAgICAgIHNldElu
c2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNUYWJsZUNl
bGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShJblJvd01vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEluQm9keU1vZGUpOworCisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisjZWxzZQor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5C
b2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5o
YXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkpIHsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ1RlbXBs
YXRlQ29udGVudHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3Ry
ZWUuaW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0luQm9keSh0b2tlbik7CiB9CiAKQEAgLTE1NDIsOCAr
MTY0MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9w
cmlhdGVseSgpCiAgICAgICAgICAgICBsYXN0ID0gdHJ1ZTsKICAgICAgICAgICAgIGl0ZW0gPSBI
VE1MU3RhY2tJdGVtOjpjcmVhdGUobV9mcmFnbWVudENvbnRleHQuY29udGV4dEVsZW1lbnQoKSwg
SFRNTFN0YWNrSXRlbTo6SXRlbUZvckNvbnRleHRFbGVtZW50KTsKICAgICAgICAgfQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTMwIChzaG91bGQgPHRlbXBsYXRlPiBjbGVh
ciB0aGUgImltcGxpZWQgY29udGV4dCBlbGVtZW50Ii4KKyAgICAgICAgaWYgKGl0ZW0tPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUo
VGVtcGxhdGVDb250ZW50c01vZGUpOworI2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdO
YW1lKHNlbGVjdFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgp
KTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRUYWcpIHx8IGl0ZW0tPmhh
c1RhZ05hbWUodGhUYWcpKQpAQCAtMTU1NSwxOSArMTY1NywyMCBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgIGlmIChpdGVt
LT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlv
bk1vZGUoSW5DYXB0aW9uTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNvbGdy
b3VwVGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0
ZW0tPmhhc1RhZ05hbWUoaGVhZFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgaWYgKCFt
X2ZyYWdtZW50Q29udGV4dC5mcmFnbWVudCgpIHx8IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRF
bGVtZW50KCkgIT0gaXRlbS0+bm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluSGVhZE1vZGUpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5z
ZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZShib2R5VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
Qm9keU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShmcmFtZXNldFRhZykpIHsK
LSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKSkgewpAQCAtMTU5OCw3ICsxNzAxLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgIGlmICghbV90cmVlLm9wZW5F
bGVtZW50cygpLT5pblRhYmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkg
ewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTE2MjgsNyArMTczMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5Sb3coQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygp
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9
PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTY4MSw3ICsxNzg0LDExIEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gdHJUYWcKICAgICAgICAgfHwgaXNUYWJsZUJvZHlD
b250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5pblRhYmxlU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyNpZiBFTkFCTEUoVEVNUExB
VEVfVEFHKQorICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+
bmFtZSgpKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0ZW1wbGF0ZVRh
ZykgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZWxzZQogICAgICAgICAgICAgQVNTRVJUKGlz
VGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1BhcnNpbmdGcmFnbWVudCgp
KTsKKyNlbmRpZgogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTE4MjEsNiArMTkyOCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKGJyVGFnKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwcm9jZXNzQW55T3RoZXJFbmRUYWdGb3JJbkJv
ZHkodG9rZW4pOwogfQogCkBAIC0xODQyLDcgKzE5NTUsNyBAQCBib29sIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0NhcHRpb25FbmRUYWdGb3JJbkNhcHRpb24oKQogYm9vbCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIHsKICAgICBpZiAoIW1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRyVGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xODU2LDcgKzE5NjksNyBAQCBib29sIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogYm9vbCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUoKQogewogICAgIGlmICghbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7Ci0gICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IuCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xOTEzLDYgKzIwMjYsMTUgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAg
ICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgY2FzZSBzaG91bGQgYmUgYnJva2VuIG91dCBpbnRvIHByb2Nlc3NFbmRUYWdGb3JJbkhlYWQs
CisgICAgICAgIC8vIGJlY2F1c2Ugb3RoZXIgZW5kIHRhZyBjYXNlcyBub3cgcmVmZXIgdG8gaXQg
KCJwcm9jZXNzIHRoZSB0b2tlbiBmb3IgdXNpbmcgdGhlIHJ1bGVzIG9mIHRoZSAiaW4gaGVhZCIg
aW5zZXJ0aW9uIG1vZGUiKS4KKyAgICAgICAgLy8gYnV0IGJlY2F1c2UgdGhlIGxvZ2ljIGZhbGxz
IHRocm91Z2ggdG8gQWZ0ZXJIZWFkTW9kZSwgdGhhdCBnZXRzIGEgbGl0dGxlIG1lc3N5LgorI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRva2VuLT5u
YW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5w
b3BIVE1MSGVhZEVsZW1lbnQoKTsKICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJI
ZWFkTW9kZSk7CkBAIC0xOTc3LDYgKzIwOTksMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVu
ZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjA1Miw3ICsyMTgwLDEyIEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgY2FzZSBJbkZyYW1lc2V0TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUo
KSA9PSBJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1l
c2V0VGFnKSB7Ci0gICAgICAgICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgICAgICAgICBib29sIGlnbm9yZUZy
YW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nICA9IG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpOwor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBpZ25vcmVGcmFtZXNldEZvckZy
YWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nIHx8IG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisgICAg
ICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAg
ICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTk0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICAg
ICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9r
ZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRl
RW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAtMjExOSwxMSArMjI1
OCwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVUZXh0TW9k
ZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NFbmRU
YWcodG9rZW4pOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2Rl
OgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3
dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTE5OTY2CisgICAgICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBBU1NFUlQobV90cmVl
LmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICAg
ICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworICAgICAgICBwcm9jZXNzRW5k
VGFnKHRva2VuKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlm
CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMjIyNCw4ICsyMzg0LDE0IEBAIFJlcHJv
Y2Vzc0J1ZmZlcjoKICAgICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0
aW9uTW9kZToKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgogICAgIGNhc2UgSW5DZWxs
TW9kZTogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0g
VGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1v
ZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25N
b2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7CisjZW5kaWYKICAgICAgICAgcHJvY2Vz
c0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZmZXIpOwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC0yMzYwLDcgKzI1MjYsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRP
ZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluQ2VsbE1vZGU6CiAgICAg
Y2FzZSBJbkNhcHRpb25Nb2RlOgogICAgIGNhc2UgSW5Sb3dNb2RlOgorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5D
YXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZWxzZQorICAgICAgICBBU1NFUlQoaW5z
ZXJ0aW9uTW9kZSgpICE9IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNlbGxN
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUo
KSA9PSBJblJvd01vZGUpOworI2VuZGlmCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIEVt
aXQgcGFyc2UgZXJyb3IgYmFzZWQgb24gd2hhdCBlbGVtZW50cyBhcmUgc3RpbGwgb3Blbi4KICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckJvZHlNb2RlOgpAQCAtMjM4Niw3ICsyNTU3LDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEluQ29sdW1uR3JvdXBNb2RlOgotICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRO
b2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgICAgIGlm
IChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOyAvLyBGSVhNRTogU2hvdWxkIHdl
IGJyZWFrIGhlcmUgaW5zdGVhZCBvZiByZXR1cm5pbmc/CiAgICAgICAgIH0KQEAgLTI0MDksNiAr
MjU4MCwxNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJbnNl
cnRpb25Nb2RlKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorICAgICAgICBpZiAobV90cmVl
LmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOworICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOworICAgICAg
ICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgICAgIHByb2Nlc3NFbmRP
ZkZpbGUodG9rZW4pOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3RyZWUu
Y3VycmVudE5vZGUoKSk7CiAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BBbGwoKTsKQEAg
LTI1MTIsNiArMjY5MywxMiBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFn
Rm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwcm9jZXNzRmFr
ZUVuZFRhZyhzY3JpcHRUYWcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykg
eworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcp
IHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA4ZmYwZjU4
YjM0NWZmZjNlNDU1YjVhZmZlZjY1ZTEwMmY2ZDViZmZhLi5lZWRiYjkyZDBmNDJmYzUxNWVkNzkw
ZmVmMjAxODk2ODE3YWNhNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuaApAQCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIH5IVE1MVHJlZUJ1
aWxkZXIoKTsKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiAh
IW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CisgICAgYm9v
bCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGlz
UGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpOyB9CisjZWxz
ZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7
IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgZGV0YWNo
KCk7CiAKQEAgLTk3LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIEluSGVhZE1vZGUsCiAg
ICAgICAgIEluSGVhZE5vc2NyaXB0TW9kZSwKICAgICAgICAgQWZ0ZXJIZWFkTW9kZSwKKyAgICAg
ICAgVGVtcGxhdGVDb250ZW50c01vZGUsCiAgICAgICAgIEluQm9keU1vZGUsCiAgICAgICAgIFRl
eHRNb2RlLAogICAgICAgICBJblRhYmxlTW9kZSwKQEAgLTE5MCw2ICsxOTcsMTEgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiopOworICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKEF0b21pY0hU
TUxUb2tlbiopOworI2VuZGlmCisKICAgICBjbGFzcyBGcmFnbWVudFBhcnNpbmdDb250ZXh0IHsK
ICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQYXJzaW5nQ29udGV4dCk7CiAg
ICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDRhM2E1ZjRkZWYwN2Rm
Mjg2YmU0MTZhYTI5YjUwMjhkMWQ5ZGY1NDguLjllNmIwN2NmOWY3NGY0MDA4ODY3ODJhZmRjYWE2
MjIwNjYxZmM3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ3Miw2ICs0NzIs
NyBAQAogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxl
RWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0cnVjdG9yIEhU
TUxUYWJsZVJvd0VsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q29uc3RydWN0b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7CisgICAgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
VGVtcGxhdGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFyZWFFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRpdGxlRWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxVTGlzdEVs
ZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpCmluZGV4IGE3YmY2MzY3YTE0ZjE2OWY4MGE4YTQ5ZjZlMjEwYzJmMTY1ZDliMTUu
LjkyYmNiMzFiNWE1YmQzMTk5ODFlNTA4MmI4YTc3YjBlMDA4NThjMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTExMSw2ICsxMTEsNyBAQAogICAgICAgJ0VOQUJMRV9T
VkdfRk9OVFM9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxFX1RFWFRfQVVUT1NJWklORz0x
JywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKKyAgICAgICdFTkFCTEVfVEVN
UExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVOVFM9PChlbmFibGVfdG91Y2hf
ZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORz08KGVuYWJsZV90b3Vj
aF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfU0xJREVSPTEnLApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDc5YTVmZjZmMTI2YTY1ZjhhMzNkZWY5ZWM3N2E5N2Q5MTllY2QyOTcuLmU0NWY5ZDYwMzk4YjM2
MDNmNTFjNDY4MTVmZTkxOGJkNmExMDFhM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0x
MS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9u
ZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2lubmVySFRNTC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRkZWQuCisgICAgICAgICog
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9kdW1w
LWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5f
Z2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTExLTI4ICBEYW5pZWwgQmF0ZXMgIDxkYmF0
ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIExheW91dFRlc3RzL2Zhc3QvanMv
c3RyaW5nLXJlcGxhY2VtZW50LW91dG9mbWVtb3J5Lmh0bWwgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5v
ZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzU5OTk5YTQ1MTc4M2E3MDJiYzNhMDE3MGIw
NmMzMWM5YTBmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitU
ZXN0IHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxh
dGUgZWxlbWVudCBpcyBjbG9uZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgMSBpcyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoCitQQVNTIDAgaXMgY2xv
bmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MjE2MmVlYzY3NTA0NTgwZGY2NWE2NWZhMjA0N2MzYTdkNDQxNmQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRt
bApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxh
dGUiPkNvbnRlbnRzPC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBl
bGVtZW50IGlzIGNsb25lZCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQor
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScp
OworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsK
K3Nob3VsZEJlKCcxJywgJ3RlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKK3Zh
ciBjbG9uZSA9IHRlbXBsYXRlLmNsb25lTm9kZSh0cnVlKTsKK3Nob3VsZEJlKCcwJywgJ2Nsb25l
LmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVy
dENvbnRlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUx
MzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKK2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJM
UmVxdWVzdCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5l
cnRDb250ZW50cy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwp
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZwor
aHR0cDovL2Jhei5jb20vYmF0LmpwZyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJv
ciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwp
Ij4KK1RoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVu
dHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMg
bm90IHJ1bi4KKworcGFzcyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2Mw
NWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2NjZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7Cisg
ICAgfQorCisgICAgaWYgKHRlc3RWYWwgIT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IHRlbXBsYXRlQ29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNv
bnRlbnQ7CisgICAgdmFyIGltZyA9IHRlbXBsYXRlQ29udGVudC5jaGlsZE5vZGVzWzFdOworICAg
IGltZy5zcmMgPSAiaHR0cDovL2Jhei5jb20vYmF0LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRlbnQpOworCisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlu
bmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhl
IHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1lbnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUg
ImluZXJ0IiwgZS5nLiByZXNvdXJjZXMgZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVu
LjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAy
Ozwvc2NyaXB0PjxpbWcgc3JjPSJodHRwOi8vZm9vLmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+
Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxh
dGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJl
biBhcmUgaWdub3JlZC4KKworPGRpdj5Db250ZW50cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwv
dGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NjJjYTNiZWYxZDNk
ODI3OWZhYjE5MTc4OTkyYzJjNWY2MWMzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEs
MzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOworICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2Vy
aWFsaXplJzsKKyAgICB2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RD
aGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBpbm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2Vy
aWFsaXplIGVpdGhlcic7CisKKyAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5l
ckhUTUw7CisgICAgaWYgKHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBv
bmx5IGNoaWxkIHNob3VsZCBiZSB0aGUgc3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAg
ICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVy
VGV4dCA9IHRlbXBsYXRlLmlubmVySFRNTDsKKyAgICB2YXIgdGVtcGxhdGUyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZTIuaW5uZXJIVE1MID0gJzx0
ZW1wbGF0ZT48L3RlbXBsYXRlPic7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdp
dGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuPC9wPgorPHRlbXBsYXRl
IGlkPSJ0ZW1wbGF0ZSI+PGRpdj5Db250ZW50cyAxCisgIDx0ZW1wbGF0ZT5Db250ZW50cyAyPC90
ZW1wbGF0ZT4KKzwvZGl2PjwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3du
ZXJEb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5NzM1YWZlNjFkZjI2ODZkZjUw
Y2M0MWY4Y2I3NDBiZDhmZTUxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyOCBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVu
dAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudCBpcyB0ZW1w
bGF0ZS5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5z
dGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudCBpcyBub3QgdGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
IGlzIHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50CitQQVNTIHRlbXBs
YXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50CitQ
QVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgaW5uZXJUZW1wbGF0ZS5jb250ZW50
Lm93bmVyRG9jdW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNl
b2YgSFRNTERvY3VtZW50IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQgaXMgdGVtcGxhdGUyLm93bmVy
RG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZTIu
Y29udGVudC5vd25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIGRmLm93bmVyRG9jdW1lbnQK
K1BBU1MgZG9jdW1lbnQgaXMgc3Bhbi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQgaXMgZGYub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50IGlzIHNwYW4ub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6
IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250
ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUu
Y29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgZG9jdW1lbnQgaXMg
dGVtcGxhdGUzLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVu
dCBpcyB0ZW1wbGF0ZTMuY29udGVudC5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3Vt
ZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25l
ckRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L293bmVyRG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTdkYTI2ODRkYzZiNDIxODlmZTkzZGJj
MzU3MjE5Zjk3YzI5MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c3Bhbj48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUyIj48
c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUzIj48c3ZnPjwv
c3ZnPjwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1w
bGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50Jyk7CisKK2lmICghd2luZG93LkhUTUxU
ZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJM
RShURU1QTEFURV9UQUcpJyk7CisKK3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZW1wbGF0ZScpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlLm93bmVyRG9j
dW1lbnQnKTsKKwordmFyIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgPSB0ZW1wbGF0ZS5j
b250ZW50Lm93bmVyRG9jdW1lbnQ7CitzaG91bGRCZVRydWUoJ3RlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQnKTsKK3Nob3VsZE5vdEJlKCdkb2N1bWVu
dCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJE
b2N1bWVudCcpOworCit2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RD
aGlsZC5maXJzdENoaWxkOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQn
LCAnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250
ZW50T3duZXJEb2N1bWVudCcsICdpbm5lclRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCcp
Oworc2hvdWxkQmVUcnVlKCdpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBI
VE1MRG9jdW1lbnQnKTsKKwordmFyIHRlbXBsYXRlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZW1wbGF0ZTInKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZTIub3duZXJEb2N1
bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxh
dGUyLmNvbnRlbnQub3duZXJEb2N1bWVudCcpOworCit2YXIgZGYgPSBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7Cit2YXIgc3BhbiA9IGRmLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAnZGYub3duZXJEb2N1
bWVudCcpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ3NwYW4ub3duZXJEb2N1bWVudCcpOworCit0
ZW1wbGF0ZS5jb250ZW50ID0gZGY7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudCcsICdkZi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCcsICdzcGFuLm93bmVyRG9jdW1lbnQnKTsKKworc2hvdWxkVGhyb3coJ3RlbXBs
YXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Jyk7CitzaG91bGRU
aHJvdygndGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7
Jyk7CitpZiAod2luZG93LldlYktpdFNoYWRvd1Jvb3QpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgc2hvdWxkVGhyb3coJ3RlbXBsYXRlLmNvbnRl
bnQgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpJyk7Cit9CisKK3ZhciB0ZW1wbGF0ZTMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUyJyk7CitzaG91bGRCZSgnZG9jdW1lbnQn
LCAndGVtcGxhdGUzLm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50JywgJ3RlbXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1lbnQnKTsKK3Nob3Vs
ZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3RlbXBsYXRlMy5jb250ZW50LmZp
cnN0Q2hpbGQub3duZXJEb2N1bWVudCcpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1M
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
b3duZXJEb2N1bWVudFhIVE1MLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjY5YmZmZDkxZDFl
Zjk3ZjYxZGY2ZWUzYTY5NzAwOWNjYTA3NWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50
IG93bmVyRG9jdW1lbnQgaW4gWEhUTUwgRG9jdW1lbnQKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgZG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgZmFsc2UK
K1BBU1MgZG9jdW1lbnQgaXMgbm90IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1Mg
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3du
ZXJEb2N1bWVudFhIVE1MLnhodG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE3YjRiYThmZjc1
ZDg3OWNkMTAyMDJmMWI4NTZkNWJkNThmMTcwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1s
CkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCBI
VE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCBpbiBYSFRNTCBEb2N1bWVu
dCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQo
J1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCitzaG91bGRCZUZh
bHNlKCdkb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOwordmFyIHRlbXBsYXRlNCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7Cit2YXIgdGVtcGxhdGVDb250ZW50
T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlNC5jb250ZW50Lm93bmVyRG9jdW1lbnQ7CitzaG91bGRO
b3RCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxk
QmVGYWxzZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1
bWVudCcpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
ZXNvdXJjZXMvdGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYWU4MWVmZGRmZGM0ZDhmODY3NzFj
NjJjNGExMzk3MjQwMmJhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsODQzIEBACisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPHRlbXBsYXRlPkhlbGxv
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhl
bGxvIgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rp
dj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2
PgorCisjZGF0YQorPGh0bWw+PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhlbGxvIgorfCAgIDxib2R5PgorCisjZGF0
YQorPGhlYWQ+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PC90ZW1wbGF0ZT48L2hlYWQ+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgPGJvZHk+CisKKyNk
YXRhCis8ZGl2Pjx0ZW1wbGF0ZT48ZGl2PjxzcGFuPjwvdGVtcGxhdGU+PGI+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2Pgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICA8ZGl2PgorfCAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPGI+CisKKyNkYXRhCis8
ZGl2Pjx0ZW1wbGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0
YQorPGRpdj48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVt
cGxhdGU+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48ZGl2Pjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPHRhYmxlPjx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjxkaXY+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgPHRhYmxlPgorfCAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8
dGFibGU+ICAgPHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAg
ICAgIiAgICIKK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0
ZT48L3Rib2R5PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEK
Kzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvdGhlYWQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0
YWJsZT48dGZvb3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Zm9vdD4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRmb290PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVj
dD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC90
ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8
dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3NlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxvcHRpb24+
Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBs
YXRlPjwvdGVtcGxhdGU+PG9wdGlvbj48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgPG9wdGlvbj4K
KworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRl
bXBsYXRlPjxvcHRpb24+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8b3B0
aW9uPgorCisjZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90
YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48dGVtcGxhdGU+PHRkPjwv
dHI+PGRpdj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0ZD4KK3wgICAg
ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxh
dGU+PC90aGVhZD48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8
dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KKworI2RhdGEKKzx0YWJsZT48dGVt
cGxhdGU+PHRyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorCisj
ZGF0YQorPHRhYmxlPjx0cj48dGVtcGxhdGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJv
ZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFi
bGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90cj48L3RlbXBsYXRl
PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgICAg
PHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RkPjwv
dGVtcGxhdGU+PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4K
K3wgICAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48
dGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRl
bXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48
dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPGNvbD4KKworI2RhdGEK
KzxmcmFtZXNldD48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC90ZW1wbGF0ZT48L2ZyYW1lc2V0
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNl
dD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPGZyYW1lPgorCisjZGF0YQorPHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvZnJhbWVzZXQ+
PGZyYW1lPjwvZnJhbWU+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2Rh
dGEKKzx0ZW1wbGF0ZT48ZGl2PjxmcmFtZXNldD48c3Bhbj48L3NwYW4+PC9kaXY+PHNwYW4+PC9z
cGFuPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48ZGl2PjxmcmFtZXNldD48c3Bhbj48L3NwYW4+PC9k
aXY+PHNwYW4+PC9zcGFuPjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+
Cit8ICAgICAgICAgPHNwYW4+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHNjcmlwdD52YXIg
aSA9IDE7PC9zY3JpcHQ+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHNjcmlwdD4KK3wgICAgICAgICAgICJ2
YXIgaSA9IDE7IgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+
PGRpdj48L2Rpdj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAg
ICA8dHI+Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwv
dGQ+PC90cj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisKKyNkYXRh
Cis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PHRib2R5Pjx0ZD48L3RkPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4K
K3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PGNhcHRp
b24+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PGNvbGdyb3VwPjwvY2FwdGlvbj48dGQ+PC90
ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
Pjx0ZD48L3RkPjwvdGFibGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGJvZHk+PHRyPjwvdHI+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPHRyPgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90
cj48Y2FwdGlvbj48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGFibGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRy
PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGhlYWQ+PC90aGVh
ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRoZWFkPgorfCAg
ICAgICAgIDxjYXB0aW9uPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48dGhlYWQ+PC90aGVhZD48L3RhYmxlPjx0Ym9keT48L3Rib2R5PjwvdGVtcGxhdGU+PC9i
b2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8dGhlYWQ+Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxk
aXY+PHRyPjwvdHI+PC9kaXY+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0
ZT48ZW0+SGVsbG88L2VtPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxlbT4KK3wgICAgICAgICAgICJIZWxsbyIKKworI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT48IS0tY29tbWVudC0tPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDwhLS0gY29tbWVudCAt
LT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c3R5bGU+PC9zdHlsZT48dGQ+PC90ZD48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8c3R5bGU+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxt
ZXRhPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxtZXRhPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48bGluaz48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8bGluaz4KK3wgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGVtcGxh
dGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9k
eT48dGFibGU+PGNvbGdyb3VwPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjwvdGVtcGxhdGU+PC9jb2xn
cm91cD48L3RhYmxlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAg
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHkgYT1iPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2Pjxi
b2R5IGM9ZD48ZGl2PjwvZGl2PjwvYm9keT48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIGE9ImIiCit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxk
aXY+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGRpdj48
aHRtbCBiPWM+PHNwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICBhPSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgPGJv
ZHk+CisKKyNkYXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PGh0bWwgYj1jPjxj
b2w+PC9jb2w+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBh
PSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8Y29sPgorfCAgICAgICAgIDxjb2w+Cit8ICAgPGJvZHk+CisKKyNk
YXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjxodG1sIGI9Yz48ZnJhbWU+
PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9
ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDxmcmFtZT4KK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgPGJvZHk+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PHRk
PjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZmUzMjRiMDEyOWU2MWM5
MTI0ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK3Jlc291cmNl
cy90ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bi10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVhYzQ0NDliM2U5MTdhYzRkNDE5Y2I2NGZlNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0PgordmFyIHRlc3RfZmlsZXMg
PSBbCisgICdyZXNvdXJjZXMvdGVtcGxhdGUuZGF0JywKK10KKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiOWRm
MzYxZGYxNjc3MTk4OTI3MDA2YzZiM2QwYjc2NjhhZThlZDYyLi5kMzgyNDg5NjQ3OTk5NWQ2MTZi
OWRmNzU1MmE5YTFlYzQyNGZkNTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzEwLDYgKzMxMCwxMCBAQCBmYXN0L3RleHQvdW5pY29kZS12YXJpYXRp
b24tc2VsZWN0b3IuaHRtbAogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1s
CiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVy
bHMtbWF0Y2gtc2VsZi5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMgZGlzYWJsZWQu
CitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRt
bAorCiAjIFRyYW5zcGFyZW50IGltYWdlIGJlaW5nIHByb2R1Y2VkCiBmYXN0L2ZyYW1lcy90cmFu
c3BhcmVudC1zY3JvbGxiYXIuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDAwMTY5NDJmMDgzNjQyZmZkNjE2OGFmZGUyNzRhNDE0ZGJkZGZlNGYu
LjQwYjM1YmNlNTY3NzllMDEwZTA4NGYzYzg3OGI5OWI5YWQyOGJiNWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03Nyw2ICs3NywxMCBAQCBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQtY29udGVudC10eXBlLWRhc2hib2FyZC5odG1sIFsg
V29udEZpeCBdCiAjIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKSBpcyBkaXNhYmxlZAogZmFzdC9j
c3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdvbnRGaXggXQogCisjIEVOQUJMRShU
RU1QTEFURV9UQUcpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAor
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBUaGVzZSB0ZXN0IC1hcHBsZS0gYW5kIC1r
aHRtbC0gcHJlZml4ZWQgQ1NTIHByb3BlcnRpZXMsIHdoaWNoIHdlIGRvbid0IHN1cHBvcnQuCiBp
bnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sIFsgV29udEZpeCBdCiBmYXN0L2Nz
cy9hcHBsZS1wcmVmaXguaHRtbCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYmJkZDNiZWUxNzNkYzFhN2RkOTk4MzRlOGVkZTRiNzZj
ZmEyNjcwLi4xMTVmOTBhY2UyMGViM2ZiN2Y5YjhhYTM3Njc2Y2RkNzY3ZjVlMjdkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDMyLDYgKzQzMiwxMCBA
QCBmYXN0L2RvbS9zaGFkb3cKIGVkaXRpbmcvc2hhZG93CiBpbnNwZWN0b3IvZWxlbWVudHMvdXBk
YXRlLXNoYWRvd2RvbS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMgZGlzYWJsZWQu
CitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRt
bAorCiAjIEpTQyBkb2VzIG5vdCBzdXBwb3J0IHNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdp
biAoaHR0cDovL3dlYmtpdC5vcmcvYi82MTU0MCkKIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0
ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYzJmYzAwNjBmNjIwNDlkZTQzNjhmY2UwMDNkN2MzZGQ3Yzll
YzZkYi4uNzFiYWFmM2QyZDk2ZWJkOWJkMjQ1OWFjNzRlNDgxN2YwOWI5YmQ2MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODgsNiArMTg4LDEwIEBAIGZh
c3QvZG9tL3NoYWRvdwogZmFzdC9mcmFtZXMvZGV0YWNoZWQtc2hhZG93LWZyYW1lLmh0bWwKIGlu
c3BlY3Rvci9lbGVtZW50cy91cGRhdGUtc2hhZG93ZG9tLmh0bWwKIAorIyBFTkFCTEUoVEVNUExB
VEVfVEFHKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1
bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgRmFpbCB1bnRpbCBTVUJQSVhFTF9MQVlPVVQgaXMg
ZW5hYmxlZAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1MzIK
IGZhc3Qvc3ViLXBpeGVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDk2ZGViMjFkNzA2OTYwNzUyOWUyN2RhNzk0ZGMzZjI1Y2QyNGQxYzkuLmQ5M2NhZTIy
NzI1YTQyZmZjY2IwYjY1M2MyNzBjNTI2MzgxMzM5NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTI2LDYgKzE1MjYsMTAgQEAgZmFzdC9yZWdpb25z
L3N0eWxlLXNjb3BlZC1pbi1mbG93Lmh0bWwKIGVkaXRpbmcvc2hhZG93CiBmYXN0L2RvbS9zaGFk
b3cKIAorIyBFTkFCTEUoVEVNUExBVEVfVEFHKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lv
bnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZh
c3QvcmVnaW9ucwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA3MTMzYjg1ZmYxYjI4NzAyZWQxYTRkNTNiMzk0ZjM2YTEyYjQ3OTdjLi4w
Njg5YjU2NGI0OTVmZDk1NDM0OGVmYzNmNWEyZjcwNzg2MDc2NzE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNjEsNiArMjA2MSwx
MCBAQCBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9zaGFk
b3cKIGZhc3QvZG9tL3NoYWRvdwogCisjIEVOQUJMRShURU1QTEFURV9UQUcpIGlzIGRpc2FibGVk
LgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0
bWwKKwogIyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtp
dC5vcmcvYi81NzMxMgogZmFzdC9yZWdpb25zCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jl
c291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcwppbmRleCA1M2EwMDFmZWZkZTI4ODFhZWY2MWNkMDY5MDI3MmZjNmUxNWIxZTkx
Li5jN2ZkZjE3ZjIwYTQyOWMxMGM2ZDhiM2ExOTZkZmI5MDk0NDYyYjBjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKKysrIGIvTGF5b3V0VGVzdHMv
cmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCkBAIC0yMjAsMTYgKzIyMCwyNCBAQCBNYXJrdXAu
X2dldCA9IGZ1bmN0aW9uKG5vZGUsIGRlcHRoKQogICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9GUkFH
TUVOVF9OT0RFOgogICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PSAiI3NoYWRvdy1yb290IikK
ICAgICAgICAgICBzdHIgKz0gIjxzaGFkb3c6cm9vdD4iOworICAgICAgICBlbHNlCisgICAgICAg
ICAgc3RyICs9ICIjZG9jdW1lbnQtZnJhZ21lbnQiOwogICAgIH0KLQotICAgIGZvciAodmFyIGkg
PSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKLSAgICAg
ICAgdmFyIHNlbGVjdGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKG5vZGUsIGkpOwot
ICAgICAgICBpZiAoc2VsZWN0aW9uKQotICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50
KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247Ci0KLSAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5v
ZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAKKyAgICAKKyAgICAvLyBIVE1MIFRl
bXBsYXRlIGVsZW1lbnRzIHNlcmlhbGl6ZSB0aGVpciBjb250ZW50IERvY3VtZW50RnJhZ21lbnQs
IGFuZCBOT1QgdGhlaXIgY2hpbGRyZW4uCisgICAgaWYgKG5vZGUubmFtZXNwYWNlVVJJID0gJ2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnICYmIG5vZGUudGFnTmFtZSA9PSAnVEVNUExBVEUn
KSB7CisgICAgICAgIHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNvbnRlbnQsIGRlcHRoICsgMSk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGRO
b2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9
IE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKG5vZGUsIGkpOworICAgICAgICAgICAgaWYgKHNl
bGVjdGlvbikKKyAgICAgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQoZGVwdGggKyAx
KSArIHNlbGVjdGlvbjsKKyAgICAKKyAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2dldChub2Rl
LmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgICAgIH0KICAgICB9Ci0KKyAgICAKICAg
ICBzdHIgKz0gTWFya3VwLl9nZXRTaGFkb3dIb3N0SWZQb3NzaWJsZShub2RlLCBkZXB0aCk7CiAg
ICAgCiAgICAgdmFyIHNlbGVjdGlvbiA9IE1hcmt1cC5fZ2V0U2VsZWN0aW9uTWFya2VyKG5vZGUs
IGkpOwpAQCAtMjg0LDcgKzI5Miw3IEBAIE1hcmt1cC5fTkFNRVNQQUNFX1VSSV9NQVAgPSB7CiAK
IE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUgPSBmdW5jdGlvbihub2RlKQogewotICAgIHJl
dHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCk7CisgICAg
cmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/IG5vZGUub3duZXJEb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKSA6IG51bGw7CiB9CiAKIE1hcmt1cC5fU0VMRUNU
SU9OX0ZPQ1VTID0gJzwjc2VsZWN0aW9uLWZvY3VzPic7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176791</attachid>
            <date>2012-11-29 12:44:30 -0800</date>
            <delta_ts>2012-11-29 13:51:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121129124204.patch</filename>
            <type>text/plain</type>
            <size>98244</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY1Njc5ODkwMjgzMWEw
ZjRiYTg3MDA5OGUwNmU2ZDRkNzZkNjRhYS4uZDgwM2Y2ZDc5ZDBhNjkyNzcyODAxYTMyNTg5OGVj
ZTAxZTJkNWJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTI3NzE4ODU+IFN1cHBvcnQgcnVieS1wb3NpdGlvbjoge2Jl
Zm9yZSwgYWZ0ZXJ9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGRmMzYxMzkxYzkwZjhh
NDdiZDZiYWRiZTc0ZDY1ZWQyNWRiYmIzNTAuLmJiYmQyZDAzMzAxY2RjOTQ0ZDNjZDQ3MzdjMGIz
MzJlMTM5YzhiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuaW5nIG9uIEhUTUxUZW1wbGF0ZUVsZW1l
bnQgZm9yIGNocm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEy
LTExLTI5ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBBZGQgY29kZSBzdXBwcHJlc3Npb24gZmxhZ3MgZm9yIHNraWEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYz
MS4uYzE1MmFmZmY1M2U2MDAzZmU1NGFhYjdmODBlM2Y1NTZmMzM0ZDBhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTQ4OCw2ICs0ODgsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBo
dG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50Lmlk
bAogICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKICAgICBo
dG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbApA
QCAtMTQzMCw2ICsxNDMxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcAog
ICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCisgICAgaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKICAgICBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGU1MzZmZDEzYTk0YTdkMGE1
ZTQ1Yjc1Nzk5ZmI4ZGNkNjY2MjA0YTEuLjdiYWE1Zjg3ODZjNmQyODA2ZTE0NTczNmE3YzI2ODc5
OTdlYTVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzQ4LDYgKzM0OCw3
IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGl0
bGVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhmYjYzNzg3MDNlNjRjY2JiMGU2
Y2RhZjI3NWVlYTNmODc5Mjg3NWQuLjMwZWNlY2IyZmQ0NjExYzE3M2VmZDFhNGQzYjQ2YmEwYjNl
ZTJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDMxLDYgKzQzMSw4IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxUYWJsZVJvd0VsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGVtcGxh
dGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRleHRBcmVhRWxlbWVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRpdGxlRWxlbWVudC5jcHAgXApAQCAtMTQ4
OSw2ICsxNDkxLDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwgXAor
CSQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRpdGxl
RWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCBcCkBA
IC0zNDM1LDYgKzM0MzgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjNTdk
NThiMjBjYzVmNWU3MmVjODk1MWFiNjE2MmIzMTcwYWZmYTVlLi4xMmU5MWYyMWY3MDYzZTA0Yzkw
MTE0NjIyN2IzZTZhYzQ4ODEwYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTY1OCw2ICs2NTgsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKICAgICBodG1s
L0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBcCiAgICAgaHRtbC9IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5jcHAgXAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgXAogICAgIGh0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwIFwKQEAgLTE4MjIs
NiArMTgyMyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5o
IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAogICAgIGh0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCBcCisgICAgaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggXAog
ICAgIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBkOTVhMTdkOGRkYjA0YjhmNmEyYzA1MjViYzk3M2QzZmU5ODYwZjQzLi45ZDg2
OTI0ZTBmNThmNWQzYTBiMGExNDJiNGYyYzAyYzk5OTg2ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xMTI4LDYgKzExMjgsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsJywKKyAgICAgICAgICAg
ICdodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
aXRsZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRs
JywKICAgICAgICAgICAgICdodG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsJywKQEAgLTQxODAsNiAr
NDE4MSw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1s
L0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMWQzYTIyMzMwZmI4MWE3YzBhYmMy
YWE2MzEwMWEwMWZmOWFhYjI0Li4yMzMyMjQwYzU2ZDVjOTc2NzY1Yzk3Njk3YTE5MzRmYWE4NDI0
MzljIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtOTYyMiw3ICs5NjIyLDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KIAkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC05Njc0LDkgKzk2NzQsNjUgQEAKIAkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
SFRNTFRlbXBsYXRlRWxlbWVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxG
aWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJh
dGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiIKKyAgICAgICAgICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4K
KyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4K
KyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
ICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAg
ICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxl
Q29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAg
ICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVi
dWdfQWxsfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAg
ICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAg
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAor
ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAg
ICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAg
ICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICBSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisgICAgICAgICAgICAgICAgPgor
ICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1M
VGl0bGVFbGVtZW50LmNwcCIKIAkJCQk+CkBAIC02MzQ1OCw3ICs2MzUxNCw3IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0ZUVs
ZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCkBAIC02MzUxMCw5ICs2MzU2Niw2NSBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
VGV4dEFyZWFFbGVtZW50LmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0
ZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorICAgICAg
ICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIK
KyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIgorICAgICAgICAgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAg
ICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIgorICAgICAgICAgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAg
ICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAg
ICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAg
ICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1
cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAg
ICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAg
ICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAg
Lz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAg
ICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAg
ICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
ICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAg
ICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAg
ICA8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0
aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisgICAgICAgICAgICAgICAgPgorICAg
ICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMmQ1NzU2Y2M1YTYwMDVk
NGRmOWNlZTc1MWZhOWQ4MmQ2YWZmZWNjLi45NWJjMWUzYTk2MTEzZjEyN2UwYTI5ODNmY2NiN2U4
ZDJlZWMzNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMzQ1Niw2ICsxMzQ1Niw5IEBACiAJCUQ2RTI3NkFFMTQ2Mzc0NTUw
MDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZFNTI4QTExNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2Jz
ZXJ2ZXJJbnRlcmVzdEdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQ2RUZDMEJCMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENkVGQzBCQzE2NjZERjdBMDAzRDI5
MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIVE1MVGVtcGxhdGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQ2RUZDMEJEMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVGVtcGxhdGVFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUxIC8qIEhpc3RvZ3JhbVN1
cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlzdG9ncmFt
U3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2
MTkwMDM3QjFFMiAvKiBTdGF0c0NvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3RhdHNDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUzIC8qIE1lbW9yeVVzYWdlU3VwcG9ydC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlVc2FnZVN1cHBvcnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4MDAsNiArMTc4MDMsOSBAQAogCQkJ
CUE4NzFEQjE3MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oICov
LAogCQkJCTg1NTU0MjVDMEFBNDhCMUUwMEJBODlGMiAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5pZGwgKi8sCiAJCQkJNTE5RkUwQTIwREFENDQ2RTAwQTA4RjIxIC8qIEhUTUxUYWdOYW1lcy5p
biAqLywKKwkJCQlENkVGQzBCQjE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAgKi8sCisJCQkJRDZFRkMwQkMxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCAqLywKKwkJCQlENkVGQzBCRDE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QkIwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUJBMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1M
VGV4dEFyZWFFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdFMTYwQTFBN0NDQjAwN0ZCOEM1IC8qIEhU
TUxUZXh0QXJlYUVsZW1lbnQuaWRsICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4IDRhMWUzMzU2OGNi
MTU3YTcyM2YwYzdhZmE2OTdjMzQwOTI2NjYxNjguLmNmZTg3MDUzZGM3MjBhNGUzNDc5MjVhZTY5
OTM5MjU4MjM5Y2E1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTEyNjIsNiArMTI2MiwxMCBAQCBz
dW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsKICAgICBtYXJnaW4tcmlnaHQ6IDAuNGVt
OwogfQogCit0ZW1wbGF0ZSB7CisgICAgZGlzcGxheTogbm9uZQorfQorCiBiZGksIG91dHB1dCB7
CiAgICAgdW5pY29kZS1iaWRpOiAtd2Via2l0LWlzb2xhdGU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKaW5kZXggZjNjNmFiZDM4YTc3NTg2ODkyYTJmMTVkOWQzY2Y2ZDFmMGI0
MTFjYS4uM2Y0MjVjNTY2NGY1NThjNDMzZmJjYWIxMGIyYzA3OTBkYWQzNDI2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMjkzLDYgKzI5Myw3IEBAIHZvaWQgQ29udGFp
bmVyTm9kZTo6cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIG5leHRDaGlsCiAgICAgQVNTRVJUKG5ld0NoaWxkKTsKICAgICBBU1NFUlQobmV4dENoaWxk
KTsKICAgICBBU1NFUlQobmV4dENoaWxkLT5wYXJlbnROb2RlKCkgPT0gdGhpcyk7CisgICAgQVNT
RVJUKGRvY3VtZW50KCkgPT0gbmV3Q2hpbGQtPmRvY3VtZW50KCkpOwogCiAgICAgTm9kZVZlY3Rv
ciB0YXJnZXRzOwogICAgIGNvbGxlY3RUYXJnZXROb2RlcyhuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0
cyk7CkBAIC02NzQsNiArNjc1LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJBcHBlbmRD
aGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkKQogewogICAgIEFTU0VSVChuZXdDaGlsZCk7
CiAgICAgQVNTRVJUKCFuZXdDaGlsZC0+cGFyZW50Tm9kZSgpKTsgLy8gVXNlIGFwcGVuZENoaWxk
IGlmIHlvdSBuZWVkIHRvIGhhbmRsZSByZXBhcmVudGluZyAoYW5kIHdhbnQgRE9NIG11dGF0aW9u
IGV2ZW50cykuCisgICAgQVNTRVJUKGRvY3VtZW50KCkgPT0gbmV3Q2hpbGQtPmRvY3VtZW50KCkp
OwogCiAgICAgTm9kZSogbGFzdCA9IG1fbGFzdENoaWxkOwogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IGRiNzRkNTVkZTVjMTBmMDZkNTUyMTYxMzMwYWNmNjcyNTdlMjE5YjIuLjli
MjRlYTFhYTNmZTU4NjBhODY1MWJkM2I0ZjAwODljZTAzZTA4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtNTkzNSw0ICs1OTM1LDIyIEBAIExvY2FsZSYgRG9jdW1lbnQ6OmdldENhY2hl
ZExvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKICAgICByZXR1cm4gKihyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCitEb2N1bWVu
dCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkKK3sKKyAgICAvLyBJ
ZiBET0NVTUVOVCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCwgTGV0IFRFTVBMQVRF
IENPTlRFTlRTIE9XTkVSIGJlIERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBp
ZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlzOworCisgICAgaWYgKCFtX3RlbXBsYXRl
Q29udGVudHNPd25lckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQor
ICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1bWVu
dDo6Y3JlYXRlKDAsIGJsYW5rVVJMKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3Rl
bXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFua1VS
TCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVu
dC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDRlMjY3MTYxMTIyMGQzZmJmNzcyMGEwOGRjNGQ3OTUzZGExZTUwZWUuLjRh
M2YxODNiYThhYzkwNjhjYTViNzQ2NTA5MWQ0OTYzNmQwMGQyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMTcxLDYgKzExNzEsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8RWxlbWVudD4gPiYgdG9wTGF5ZXJFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGF5
ZXJFbGVtZW50czsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIERv
Y3VtZW50KiB0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpOworI2VuZGlmCisKIHByb3Rl
Y3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJv
b2wgaXNIVE1MKTsKIApAQCAtMTUyMyw2ICsxNTI3LDEwIEBAIHByaXZhdGU6CiAKICAgICB0eXBl
ZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBPd25QdHI8TG9jYWxlPiA+IExvY2FsZUlkZW50aWZp
ZXJUb0xvY2FsZU1hcDsKICAgICBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXAgbV9sb2NhbGVD
YWNoZTsKKworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgUmVmUHRyPERvY3VtZW50PiBt
X3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50OworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9p
ZCBEb2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCBiZWI4MzJmN2Y1MDA5
YjZhYzYxM2MzM2NkOGI0NzFlYTIyNDcyZTYyLi44YzY3YzEyNzdmNGY2NGU3NGQyZjhkNDQwOWE0
YWUwNGYwNjk2ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxh
dG9yLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFRl
bXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCkBAIC0xNDEsNyArMTQyLDEy
IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMo
Tm9kZSogdGFyZ2V0Tm9kZSwgTm9kZSogbm9kCiAgICAgICAgIGFwcGVuZFN0YXJ0VGFnKHRhcmdl
dE5vZGUsICZuYW1lc3BhY2VIYXNoKTsKIAogICAgIGlmICghKHRhcmdldE5vZGUtPmRvY3VtZW50
KCktPmlzSFRNTERvY3VtZW50KCkgJiYgZWxlbWVudENhbm5vdEhhdmVFbmRUYWcodGFyZ2V0Tm9k
ZSkpKSB7Ci0gICAgICAgIGZvciAoTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmZpcnN0Q2hp
bGQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhh
c1RhZ05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUp
LT5jb250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNl
bHNlCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7Cisj
ZW5kaWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVu
dCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tp
cCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDg3YjdlMjYy
OTVmYjc0ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkxMWQuLjY3NGYxZWRkNDNkZGIxODNmMzU5MGRl
MjVhYjNmYTA2ZTYzMTEyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxU
ZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlz
dGVuZXIuaCIKQEAgLTM0Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhU
TUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5n
JiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0
aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgIGlmIChSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0
ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKSB7CisgICAgICAg
IENvbnRhaW5lck5vZGUqIGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgaWYgKGhhc0xvY2FsTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICBj
b250YWluZXIgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGhpcyktPmNvbnRlbnQoKTsKKyNlbmRp
ZgorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoY29udGFpbmVyLCBmcmFnbWVu
dC5yZWxlYXNlKCksIGVjKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIG1lcmdlV2l0aE5leHRU
ZXh0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAppbmRleCBkNTE3Yzg0NTg2
ODdmODI5MTA0ZTUyMDFmODU0ZWY4OGQzY2JkZTQ0Li43ZjNiM2Y0N2MwMGI4NTE5NzIwNGEyY2Ri
NThkODY0MGVkOTllMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50c0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0Fs
bEluT25lLmNwcApAQCAtMTA2LDYgKzEwNiw3IEBACiAjaW5jbHVkZSAiSFRNTFRhYmxlUGFydEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKICNpbmNsdWRlICJI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVu
dC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDg1YTFlNjFhNWE5NTgy
YjEzZTYzNDI4OWNkYzUzYTIyYzc2YjNlMDEuLmM0MzZmOGRmODg4MzM0ZmQzNmIxZmQ0YzNmYTdk
NjU2MWQ3ZDMwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0xMjQsNiAr
MTI0LDcgQEAgc3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxlCiB0Ym9keSBpbnRl
cmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0ZCBpbnRlcmZhY2VOYW1lPUhUTUxU
YWJsZUNlbGxFbGVtZW50Cit0ZW1wbGF0ZSBpbnRlcmZhY2VOYW1lPUhUTUxUZW1wbGF0ZUVsZW1l
bnQsIGNvbmRpdGlvbmFsPVRFTVBMQVRFX1RBRwogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1M
VGV4dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290IGludGVy
ZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlQ2VsbEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNhOWE0MzFiNzc5OGFjNjYwZjU4NmY4NjA4ZWEzMDNhOTAwMmE4ZmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
VEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgorCisjaW5j
bHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAibWFya3VwLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworaW5saW5lIEhU
TUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCit7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVtcGxhdGVF
bGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBIVE1MVGVt
cGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRlbXBsYXRlRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZyYWdtZW50KiBIVE1MVGVt
cGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29udGVudCkKKyAg
ICAgICAgbV9jb250ZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnQo
KS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKSk7CisKKyAgICByZXR1cm4gbV9jb250
ZW50LmdldCgpOworfQorCisKKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJs
aWMvc2hvd19idWcuY2dpP2lkPTIwMTI3IChwcmV2ZW50IERPTSBoaWVyYXJjaHkgY3ljbGVzKS4K
Ky8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lk
PTIwMTI5IChleHRlbmRlZCBhZG9wdE5vZGUgdG8gY29uc2lkZXIgdGVtcGxhdGUuY29udGVudCku
Cit2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQoUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBwcnBDb250ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gY29udGVudCA9IHBycENvbnRlbnQ7CisKKyAgICBpZiAoIWNvbnRl
bnQgfHwgY29udGVudC0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgZWMgPSBUWVBFX01JU01B
VENIX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2NvbnRlbnQuZ2V0
KCkgPT0gY29udGVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNvbnRlbnQt
Pm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25l
ckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093
bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwor
CisgICAgbV9jb250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBOREVCVUcKK2NvbnN0IEhU
TUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKiBub2Rl
KQoreworICAgIEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIG5vZGUt
Pmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjEzYzQyMTgzZDFkOGNk
ODcwZTU0OTUzZmZlNzkwYjE3NWI0ODIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhU
TUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKworI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBI
VE1MVGVtcGxhdGVFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRlbXBsYXRlRWxlbWVudCgp
OworCisgICAgRG9jdW1lbnRGcmFnbWVudCogY29udGVudCgpIGNvbnN0OworCisgICAgdm9pZCBz
ZXRDb250ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsK
KworcHJpdmF0ZToKKyAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworCisgICAgbXV0YWJsZSBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9j
b250ZW50OworfTsKKworY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVF
bGVtZW50KGNvbnN0IE5vZGUqKTsKKworaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRN
TFRlbXBsYXRlRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIHJldHVybiBjb25zdF9jYXN0PEhU
TUxUZW1wbGF0ZUVsZW1lbnQqPih0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8Y29u
c3QgTm9kZSo+KG5vZGUpKSk7Cit9CisKKyNpZmRlZiBOREVCVUcKKworLy8gVGhlIGRlYnVnIHZl
cnNpb24gb2YgdGhpcywgd2l0aCBhc3NlcnRpb25zLCBpcyBub3QgaW5saW5lZC4KK2lubGluZSBj
b25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9k
ZSogbm9kZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTFRlbXBsYXRlRWxl
bWVudCo+KG5vZGUpOworfQorI2VuZGlmIC8vIE5ERUJVRworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisjZW5kaWYgLy8gSFRNTFRl
bXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1w
bGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNDg3NjUzNjVmZjQyOTAxYTFhNzQ3NjdkNTY3ZmRhMjY1NDE2Yzgx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1URU1QTEFURV9UQUcK
K10gaW50ZXJmYWNlIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgYXR0
cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudCBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRp
b24pOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCmluZGV4IDljMTgyYmEyMzQzYjRlNTEzOWEzMjAyMjYwODE0ZWQwNDk1
OTE5ZDguLjc3MDViMTQ3YTA2NDk5MjMyZjQ4Njk0YzBhMWM3ZmQyMTBmZGI3OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5j
bHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2lu
Y2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBA
IC03Nyw2ICs3OCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBbGxXaGl0ZXNwYWNlKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRNTENv
bnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisg
ICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFz
ay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250
ZW50KCk7CisjZW5kaWYKKwogICAgIGlmICh0YXNrLm5leHRDaGlsZCkKICAgICAgICAgdGFzay5w
YXJlbnQtPnBhcnNlckluc2VydEJlZm9yZSh0YXNrLmNoaWxkLmdldCgpLCB0YXNrLm5leHRDaGls
ZC5nZXQoKSk7CiAgICAgZWxzZQpAQCAtMjQ3LDcgKzI1Myw3IEBAIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6Omluc2VydERvY3R5cGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHZvaWQgSFRN
TENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikK
IHsKICAgICBBU1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6Q29tbWVudCk7
Ci0gICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6Y3JlYXRlKGN1cnJlbnRO
b2RlKCktPmRvY3VtZW50KCksIHRva2VuLT5jb21tZW50KCkpKTsKKyAgICBhdHRhY2hMYXRlcihj
dXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUob3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KCksIHRva2VuLT5jb21tZW50KCkpKTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
aW5zZXJ0Q29tbWVudE9uRG9jdW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKQEAgLTMyNSw3
ICszMzEsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRTY3JpcHRFbGVtZW50
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgLy8gdGhvc2UgZmxhZ3Mgb3IgZWZmZWN0cyB0
aGVyZW9mLgogICAgIGNvbnN0IGJvb2wgcGFyc2VySW5zZXJ0ZWQgPSBtX2ZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiAhPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnRBbmREb05vdE1hcmtBbHJlYWR5
U3RhcnRlZDsKICAgICBjb25zdCBib29sIGFscmVhZHlTdGFydGVkID0gbV9pc1BhcnNpbmdGcmFn
bWVudCAmJiBwYXJzZXJJbnNlcnRlZDsKLSAgICBSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGVs
ZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRlKHNjcmlwdFRhZywgY3VycmVudE5vZGUo
KS0+ZG9jdW1lbnQoKSwgcGFyc2VySW5zZXJ0ZWQsIGFscmVhZHlTdGFydGVkKTsKKyAgICBSZWZQ
dHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRl
KHNjcmlwdFRhZywgb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCksIHBhcnNlckluc2VydGVk
LCBhbHJlYWR5U3RhcnRlZCk7CiAgICAgaWYgKG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
ICE9IERpc2FsbG93U2NyaXB0aW5nQ29udGVudCkKICAgICAgICAgZWxlbWVudC0+cGFyc2VyU2V0
QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbik7CiAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgZWxlbWVudCk7CkBAIC0zNTEs
NiArMzU3LDExIEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNv
bnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiAgICAgaWYgKHNob3VsZEZvc3Rl
clBhcmVudCgpKQogICAgICAgICBmaW5kRm9zdGVyU2l0ZSh0YXNrKTsKIAorI2lmIEVOQUJMRShU
RU1QTEFURV9UQUcpCisgICAgaWYgKHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFn
KSkKKyAgICAgICAgdGFzay5wYXJlbnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJl
bnQuZ2V0KCkpLT5jb250ZW50KCk7CisjZW5kaWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQg
ZW50aXJlbHkgb2Ygd2hpdGVzcGFjZSBhcmUgbGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8v
IFR1cm4gdGhlbSBpbnRvIEF0b21pY1N0cmluZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcg
Zm9yIGVhY2guCiAgICAgYm9vbCBzaG91bGRVc2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9k
ZSA9PSBBbGxXaGl0ZXNwYWNlCkBAIC0zODcsMTggKzM5OCwyNyBAQCB2b2lkIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRl
c3BhY2VNbwogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRl
RWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVVSSSkKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5u
YW1lKCksIG5hbWVzcGFjZVVSSSk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJy
ZW50Tm9kZSgpLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAg
IFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCkt
PmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0
cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
bik7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQq
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQorewor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKGN1cnJlbnROb2RlKCktPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpKQorICAgICAgICByZXR1cm4gdG9IVE1MVGVtcGxhdGVFbGVtZW50KGN1
cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7CisjZW5kaWYKKyAgICByZXR1
cm4gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKTsKK30KKwogUGFzc1JlZlB0cjxFbGVtZW50PiBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1l
KCksIHhodG1sTmFtZXNwYWNlVVJJKTsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2UgSFRN
TENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3ZQogICAgIC8vIGhhdmUg
dG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBzaG91bGQgcmV3b3JrIGZvcm0g
YXNzb2NpYXRpb24KICAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cg
YmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
SFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50Tm9k
ZSgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgZm9ybSgpLCB0cnVlKTsKICAgICBlbGVtZW50LT5w
YXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsKICAg
ICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBAIC00NjIsNiArNDgyLDE1IEBAIHZvaWQgSFRN
TENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogCiB2b2lkIEhUTUxD
b25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2sm
IHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAvLyBXaGVuIGEgbm9kZSBp
cyB0byBiZSBmb3N0ZXIgcGFyZW50ZWQsIHRoZSBsYXN0IHRlbXBsYXRlIGVsZW1lbnQgd2l0aCBu
byB0YWJsZSBlbGVtZW50IGlzIGJlbG93IGl0IGluIHRoZSBzdGFjayBvZiBvcGVuIGVsZW1lbnRz
IGlzIHRoZSBmb3N0ZXIgcGFyZW50IGVsZW1lbnQgKE5PVCB0aGUgdGVtcGxhdGUncyBwYXJlbnQh
KQorICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUZW1wbGF0ZUVsZW1l
bnQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRlbXBsYXRlVGFnLmxvY2FsTmFtZSgpKTsKKyAg
ICBpZiAobGFzdFRlbXBsYXRlRWxlbWVudCAmJiAhbV9vcGVuRWxlbWVudHMuaW5UYWJsZVNjb3Bl
KHRhYmxlVGFnKSkgeworICAgICAgICB0YXNrLnBhcmVudCA9IGxhc3RUZW1wbGF0ZUVsZW1lbnQt
PmVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgSFRNTEVs
ZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRhYmxlRWxlbWVudFJlY29yZCA9IG1fb3Bl
bkVsZW1lbnRzLnRvcG1vc3QodGFibGVUYWcubG9jYWxOYW1lKCkpOwogICAgIGlmIChsYXN0VGFi
bGVFbGVtZW50UmVjb3JkKSB7CiAgICAgICAgIEVsZW1lbnQqIGxhc3RUYWJsZUVsZW1lbnQgPSBs
YXN0VGFibGVFbGVtZW50UmVjb3JkLT5lbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAppbmRleCA2MDU3MmJkZDg1NjI3NDQ1
Y2JkODY1YTk2NzlkMmZlYmE1ZjZhOGRjLi5kZjMyNTkwYTc5MzcxN2JlN2E5MWRhNzZiOTE1YzRh
OTE1NWI1MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmgKQEAgLTExNCw5ICsxMTQsMTAgQEAgcHVibGljOgogICAgIENvbnRhaW5l
ck5vZGUqIGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9k
ZSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogY3VycmVudFN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0
dXJuIG1fb3BlbkVsZW1lbnRzLnRvcFN0YWNrSXRlbSgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSog
b25lQmVsb3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy5vbmVCZWxvd1RvcCgp
OyB9Ci0KKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCk7CiAgICAg
SFRNTEVsZW1lbnRTdGFjayogb3BlbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fb3BlbkVs
ZW1lbnRzOyB9CiAgICAgSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdCogYWN0aXZlRm9ybWF0dGlu
Z0VsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gJm1fYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzOyB9
CisgICAgYm9vbCBjdXJyZW50SXNSb290Tm9kZSgpIHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRv
cE5vZGUoKSA9PSBtX29wZW5FbGVtZW50cy5yb290Tm9kZSgpOyB9CiAKICAgICBFbGVtZW50KiBo
ZWFkKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkLT5lbGVtZW50KCk7IH0KICAgICBIVE1MU3RhY2tJ
dGVtKiBoZWFkU3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkLmdldCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCmluZGV4IDZj
MjIwYzk3MzlhNjQwMjBlZDBmMjdjYzMyMDFiMmM0ZTAxNjE1NzguLjNkMmE4Yzk2OGM4MGRhMThm
NDQxMzg5ZjMzOTgzMDI4ZDA2ZjFjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCkBAIC0zOCwxNCArMzgsMTUgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgaW5saW5lIGJv
b2wgaXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQorCituYW1lc3BhY2UgeworCitpbmxp
bmUgYm9vbCBpc1Jvb3ROb2RlKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0
ZW0tPmlzRG9jdW1lbnRGcmFnbWVudE5vZGUoKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KGh0bWxUYWcpOwogfQogCi1uYW1lc3BhY2UgewotCiBpbmxpbmUgYm9vbCBpc1Njb3BlTWFya2Vy
KEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUoYXBw
bGV0VGFnKQpAQCAtNjQsNiArNjUsOSBAQCBpbmxpbmUgYm9vbCBpc1Njb3BlTWFya2VyKEhUTUxT
dGFja0l0ZW0qIGl0ZW0pCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZv
cmVpZ25PYmplY3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmRl
c2NUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFnKQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAt
NzcsNiArODEsOSBAQCBpbmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVNYXJrZXIoSFRNTFN0YWNr
SXRlbSogaXRlbSkKIGlubGluZSBib29sIGlzVGFibGVTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVt
KiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtODUsMTIg
KzkyLDE4IEBAIGlubGluZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRl
bSogaXRlbSkKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0Ym9keVRhZykKICAgICAgICAg
fHwgaXRlbS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFt
ZSh0aGVhZFRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5o
YXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRl
bSk7CiB9CiAKIGlubGluZSBib29sIGlzVGFibGVSb3dTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVt
KiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRyVGFnKQorI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcp
CisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtNTI3LDYgKzU0
MCwxMyBAQCBib29sIEhUTUxFbGVtZW50U3RhY2s6OmluU2VsZWN0U2NvcGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSkgY29uc3QKICAgICByZXR1cm4gaW5TZWxlY3RTY29wZSh0YWdOYW1l
LmxvY2FsTmFtZSgpKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCitib29sIEhUTUxF
bGVtZW50U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdAoreworICAgIHJldHVy
biBpblNjb3BlQ29tbW9uPGlzUm9vdE5vZGU+KG1fdG9wLmdldCgpLCB0ZW1wbGF0ZVRhZy5sb2Nh
bE5hbWUoKSk7Cit9CisjZW5kaWYKKwogRWxlbWVudCogSFRNTEVsZW1lbnRTdGFjazo6aHRtbEVs
ZW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAppbmRleCA4NzNjYmRlYjk1YjhlZGEw
NmIzYmU4MGJkOTVjYTdkMjM4OTExYmEzLi5kOTZjY2NkODA5NDdkYWI2MTkxMWEyNmIzOGIzZmFl
MzM5Njc5ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5oCkBAIC0xNTAsNyArMTUwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNPbmx5T25l
RWxlbWVudCgpIGNvbnN0OwogICAgIGJvb2wgc2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50
KCkgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGJvb2wgaGFzVGVtcGxh
dGVJbkhUTUxTY29wZSgpIGNvbnN0OworI2VuZGlmCiAgICAgRWxlbWVudCogaHRtbEVsZW1lbnQo
KSBjb25zdDsKICAgICBFbGVtZW50KiBoZWFkRWxlbWVudCgpIGNvbnN0OwogICAgIEVsZW1lbnQq
IGJvZHlFbGVtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAppbmRleCBjNzg1NjJiMzNjMTliZDJjNTcxZDU5YmE1NWM2YTNkMDdl
MjJjOGQ3Li4zNTBhNzczNTY1MDM5YTgxMDViMjYwNzYzNWY4ZmZhZjM3YjFmZTFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNj
cmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5jbHVkZSAiSFRN
TFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhU
TUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC0zNjAsNyAr
MzYxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRN
TFRva2VuJiByYXdUb2tlbikKICAgICAvLyBzeW5jaHJvbm91c2x5IHJlLWVudGVycyB0aGUgcGFy
c2VyLiBXZSBkb24ndCBjbGVhciB0aGUgdG9rZW4gaW1tZWRhdGVseQogICAgIC8vIGZvciBDaGFy
YWN0ZXIgdG9rZW5zIGJlY2F1c2UgdGhlIEF0b21pY0hUTUxUb2tlbiBhdm9pZHMgY29weWluZyB0
aGUKICAgICAvLyBjaGFyYWN0ZXJzIGJ5IGtlZXBpbmcgYSBwb2ludGVyIHRvIHRoZSB1bmRlcmx5
aW5nIGJ1ZmZlciBpbiB0aGUKLSAgICAvLyBIVE1MVG9rZW4uIEZvcnR1YW50ZWx5LCBDaGFyYWN0
ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgorICAgIC8vIEhUTUxUb2tlbi4g
Rm9ydHVuYXRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNlIHRvIHJlLWVudGVy
CiAgICAgLy8gdGhlIHBhcnNlci4KICAgICAvLwogICAgIC8vIEZJWE1FOiBTdG9wIGNsZWFyaW5n
IHRoZSByYXdUb2tlbiBvbmNlIHdlIHN0YXJ0IHJ1bm5pbmcgdGhlIHBhcnNlciBvZmYKQEAgLTY3
Miw4ICs2NzMsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zvcklu
Qm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIH0KICAgICBpZiAodG9rZW4tPm5hbWUo
KSA9PSBib2R5VGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICBpZiAo
IW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkg
fHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIGJvb2wgZnJhZ21lbnRP
clRlbXBsYXRlQ2FzZSA9ICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hU
TUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1l
bnQoKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBmcmFnbWVudE9yVGVtcGxh
dGVDYXNlID0gZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
Pmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsKKyNlbmRpZgorICAgICAgICBpZiAoZnJhZ21lbnRP
clRlbXBsYXRlQ2FzZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JU
ZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgzLDcgKzY4OCw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewogICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29u
ZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFz
T25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICghbV9m
cmFtZXNldE9rKQpAQCAtOTQ0LDEzICs5NDksNDMgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBw
YXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVt
ZW50cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiB9CiAKKyNpZiBF
TkFCTEUoVEVNUExBVEVfVEFHKQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBs
YXRlU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICBtX3RyZWUuYWN0aXZl
Rm9ybWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigpOworICAgIG1fdHJlZS5pbnNlcnRI
VE1MRWxlbWVudCh0b2tlbik7CisgICAgc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRz
TW9kZSk7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVFbmRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+aW5TY29wZSh0b2tlbi0+bmFtZSgpKSkgeworICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFn
cygpOworICAgIGlmICghbV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzTG9jYWxOYW1lKHRv
a2VuLT5uYW1lKCkpKQorICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKHRva2VuLT5uYW1lKCkpOworICAgIG1fdHJlZS5h
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+Y2xlYXJUb0xhc3RNYXJrZXIoKTsKKyAgICByZXNl
dEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Cit9CisjZW5kaWYKKwogYm9vbCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKQogewotICAg
IGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3RO
b2RlKCkpIHsKKyAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJy
b3IKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAxMiw3ICsxMDQ3LDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRhYmxl
KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4p
OwpAQCAtMTAzOSw2ICsxMDc0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+cG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewor
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisjZW5kaWYKICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICBIVE1MQ29uc3RydWN0
aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsK
ICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTE1Myw2ICsxMTk0LDEy
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRTZWxmQ2xvc2luZ0hUTUxFbGVtZW50
KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7Cisg
ICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVu
ZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Nyw3ICsxMjI0LDcgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8
fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5F
bGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAg
ICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KQEAgLTEyMDIsNyArMTI0OSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHx8IGlz
Q2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAgICAgICAgICAgIHx8IGlz
VGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgaWYgKCFw
cm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5
TW9kZSk7CkBAIC0xMjgwLDYgKzEzMjcsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRl
bXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckZyYW1lc2V0TW9kZToK
QEAgLTEzNTksNiArMTQxMiwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGRp
ZFByb2Nlc3MsIGRpZFByb2Nlc3MpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVt
cGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQo
KTsKQEAgLTEzNjcsMTIgKzE0MjYsNTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgVGV4dE1vZGU6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBs
YXRlQ29udGVudHNNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxh
dGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBsaW5rVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+
bmFtZSgpID09IHNjcmlwdFRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzdHls
ZVRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBtZXRhVGFnKSB7CisgICAgICAg
ICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCisg
ICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgZWxz
ZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBjb2xUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JD
b2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4t
Pm5hbWUoKSkpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKKyAg
ICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRhZykKKyAgICAgICAgICAgIHNldElu
c2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNUYWJsZUNl
bGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShJblJvd01vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEluQm9keU1vZGUpOworCisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisjZWxzZQor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5C
b2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5o
YXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkpIHsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ1RlbXBs
YXRlQ29udGVudHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3Ry
ZWUuaW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0luQm9keSh0b2tlbik7CiB9CiAKQEAgLTE1NDIsOCAr
MTY0MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9w
cmlhdGVseSgpCiAgICAgICAgICAgICBsYXN0ID0gdHJ1ZTsKICAgICAgICAgICAgIGl0ZW0gPSBI
VE1MU3RhY2tJdGVtOjpjcmVhdGUobV9mcmFnbWVudENvbnRleHQuY29udGV4dEVsZW1lbnQoKSwg
SFRNTFN0YWNrSXRlbTo6SXRlbUZvckNvbnRleHRFbGVtZW50KTsKICAgICAgICAgfQorI2lmIEVO
QUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTMwIChzaG91bGQgPHRlbXBsYXRlPiBjbGVh
ciB0aGUgImltcGxpZWQgY29udGV4dCBlbGVtZW50Ii4KKyAgICAgICAgaWYgKGl0ZW0tPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUo
VGVtcGxhdGVDb250ZW50c01vZGUpOworI2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdO
YW1lKHNlbGVjdFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgp
KTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRUYWcpIHx8IGl0ZW0tPmhh
c1RhZ05hbWUodGhUYWcpKQpAQCAtMTU1NSwxOSArMTY1NywyMCBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgIGlmIChpdGVt
LT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlv
bk1vZGUoSW5DYXB0aW9uTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNvbGdy
b3VwVGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0
ZW0tPmhhc1RhZ05hbWUoaGVhZFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgaWYgKCFt
X2ZyYWdtZW50Q29udGV4dC5mcmFnbWVudCgpIHx8IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRF
bGVtZW50KCkgIT0gaXRlbS0+bm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluSGVhZE1vZGUpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5z
ZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZShib2R5VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
Qm9keU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShmcmFtZXNldFRhZykpIHsK
LSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKSkgewpAQCAtMTU5OCw3ICsxNzAxLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgIGlmICghbV90cmVlLm9wZW5F
bGVtZW50cygpLT5pblRhYmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkg
ewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTE2MjgsNyArMTczMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5Sb3coQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygp
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9
PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTY4MSw3ICsxNzg0LDExIEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gdHJUYWcKICAgICAgICAgfHwgaXNUYWJsZUJvZHlD
b250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5pblRhYmxlU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyNpZiBFTkFCTEUoVEVNUExB
VEVfVEFHKQorICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+
bmFtZSgpKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0ZW1wbGF0ZVRh
ZykgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZWxzZQogICAgICAgICAgICAgQVNTRVJUKGlz
VGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1BhcnNpbmdGcmFnbWVudCgp
KTsKKyNlbmRpZgogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTE4MjEsNiArMTkyOCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKGJyVGFnKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwcm9jZXNzQW55T3RoZXJFbmRUYWdGb3JJbkJv
ZHkodG9rZW4pOwogfQogCkBAIC0xODQyLDcgKzE5NTUsNyBAQCBib29sIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0NhcHRpb25FbmRUYWdGb3JJbkNhcHRpb24oKQogYm9vbCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIHsKICAgICBpZiAoIW1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRyVGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xODU2LDcgKzE5NjksNyBAQCBib29sIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogYm9vbCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUoKQogewogICAgIGlmICghbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7Ci0gICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IuCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xOTEzLDYgKzIwMjYsMTUgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAg
ICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgY2FzZSBzaG91bGQgYmUgYnJva2VuIG91dCBpbnRvIHByb2Nlc3NFbmRUYWdGb3JJbkhlYWQs
CisgICAgICAgIC8vIGJlY2F1c2Ugb3RoZXIgZW5kIHRhZyBjYXNlcyBub3cgcmVmZXIgdG8gaXQg
KCJwcm9jZXNzIHRoZSB0b2tlbiBmb3IgdXNpbmcgdGhlIHJ1bGVzIG9mIHRoZSAiaW4gaGVhZCIg
aW5zZXJ0aW9uIG1vZGUiKS4KKyAgICAgICAgLy8gYnV0IGJlY2F1c2UgdGhlIGxvZ2ljIGZhbGxz
IHRocm91Z2ggdG8gQWZ0ZXJIZWFkTW9kZSwgdGhhdCBnZXRzIGEgbGl0dGxlIG1lc3N5LgorI2lm
IEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRva2VuLT5u
YW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5w
b3BIVE1MSGVhZEVsZW1lbnQoKTsKICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJI
ZWFkTW9kZSk7CkBAIC0xOTc3LDYgKzIwOTksMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRF
TVBMQVRFX1RBRykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsK
KyAgICAgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVu
ZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjA1Miw3ICsyMTgwLDEyIEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgY2FzZSBJbkZyYW1lc2V0TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUo
KSA9PSBJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1l
c2V0VGFnKSB7Ci0gICAgICAgICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgICAgICAgICBib29sIGlnbm9yZUZy
YW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nICA9IG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpOwor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgICAgICBpZ25vcmVGcmFtZXNldEZvckZy
YWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nIHx8IG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisgICAg
ICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAg
ICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTk0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICAg
ICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9r
ZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRl
RW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAtMjExOSwxMSArMjI1
OCwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RB
RykKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVUZXh0TW9k
ZToKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NFbmRU
YWcodG9rZW4pOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2Rl
OgorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3
dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTE5OTY2CisgICAgICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBBU1NFUlQobV90cmVl
LmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICAg
ICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworICAgICAgICBwcm9jZXNzRW5k
VGFnKHRva2VuKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlm
CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMjIyNCw4ICsyMzg0LDE0IEBAIFJlcHJv
Y2Vzc0J1ZmZlcjoKICAgICB9CiAgICAgY2FzZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0
aW9uTW9kZToKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgogICAgIGNhc2UgSW5DZWxs
TW9kZTogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0g
VGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1v
ZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25N
b2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7CisjZW5kaWYKICAgICAgICAgcHJvY2Vz
c0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZmZXIpOwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC0yMzYwLDcgKzI1MjYsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRP
ZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluQ2VsbE1vZGU6CiAgICAg
Y2FzZSBJbkNhcHRpb25Nb2RlOgogICAgIGNhc2UgSW5Sb3dNb2RlOgorI2lmIEVOQUJMRShURU1Q
TEFURV9UQUcpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5D
YXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZWxzZQorICAgICAgICBBU1NFUlQoaW5z
ZXJ0aW9uTW9kZSgpICE9IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNlbGxN
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUo
KSA9PSBJblJvd01vZGUpOworI2VuZGlmCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIEVt
aXQgcGFyc2UgZXJyb3IgYmFzZWQgb24gd2hhdCBlbGVtZW50cyBhcmUgc3RpbGwgb3Blbi4KICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBZnRlckJvZHlNb2RlOgpAQCAtMjM4Niw3ICsyNTU3LDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEluQ29sdW1uR3JvdXBNb2RlOgotICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRO
b2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgICAgIGlm
IChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOyAvLyBGSVhNRTogU2hvdWxkIHdl
IGJyZWFrIGhlcmUgaW5zdGVhZCBvZiByZXR1cm5pbmc/CiAgICAgICAgIH0KQEAgLTI0MDksNiAr
MjU4MCwxNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJbnNl
cnRpb25Nb2RlKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorICAgICAgICBpZiAobV90cmVl
LmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOworICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOworICAgICAg
ICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgICAgIHByb2Nlc3NFbmRP
ZkZpbGUodG9rZW4pOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3RyZWUu
Y3VycmVudE5vZGUoKSk7CiAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BBbGwoKTsKQEAg
LTI1MTIsNiArMjY5MywxMiBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFn
Rm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwcm9jZXNzRmFr
ZUVuZFRhZyhzY3JpcHRUYWcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYgRU5B
QkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykg
eworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcp
IHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA4ZmYwZjU4
YjM0NWZmZjNlNDU1YjVhZmZlZjY1ZTEwMmY2ZDViZmZhLi5lZWRiYjkyZDBmNDJmYzUxNWVkNzkw
ZmVmMjAxODk2ODE3YWNhNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuaApAQCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIH5IVE1MVHJlZUJ1
aWxkZXIoKTsKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiAh
IW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CisgICAgYm9v
bCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGlz
UGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpOyB9CisjZWxz
ZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7
IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgZGV0YWNo
KCk7CiAKQEAgLTk3LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIEluSGVhZE1vZGUsCiAg
ICAgICAgIEluSGVhZE5vc2NyaXB0TW9kZSwKICAgICAgICAgQWZ0ZXJIZWFkTW9kZSwKKyAgICAg
ICAgVGVtcGxhdGVDb250ZW50c01vZGUsCiAgICAgICAgIEluQm9keU1vZGUsCiAgICAgICAgIFRl
eHRNb2RlLAogICAgICAgICBJblRhYmxlTW9kZSwKQEAgLTE5MCw2ICsxOTcsMTEgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiopOworICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKEF0b21pY0hU
TUxUb2tlbiopOworI2VuZGlmCisKICAgICBjbGFzcyBGcmFnbWVudFBhcnNpbmdDb250ZXh0IHsK
ICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQYXJzaW5nQ29udGV4dCk7CiAg
ICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDRhM2E1ZjRkZWYwN2Rm
Mjg2YmU0MTZhYTI5YjUwMjhkMWQ5ZGY1NDguLjllNmIwN2NmOWY3NGY0MDA4ODY3ODJhZmRjYWE2
MjIwNjYxZmM3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ3Miw2ICs0NzIs
NyBAQAogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxl
RWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0cnVjdG9yIEhU
TUxUYWJsZVJvd0VsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q29uc3RydWN0b3IgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7CisgICAgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1URU1QTEFURV9UQUddIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
VGVtcGxhdGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFyZWFFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRpdGxlRWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxVTGlzdEVs
ZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpCmluZGV4IGE3YmY2MzY3YTE0ZjE2OWY4MGE4YTQ5ZjZlMjEwYzJmMTY1ZDliMTUu
LjkyYmNiMzFiNWE1YmQzMTk5ODFlNTA4MmI4YTc3YjBlMDA4NThjMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTExMSw2ICsxMTEsNyBAQAogICAgICAgJ0VOQUJMRV9T
VkdfRk9OVFM9PChlbmFibGVfc3ZnKScsCiAgICAgICAnRU5BQkxFX1RFWFRfQVVUT1NJWklORz0x
JywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKKyAgICAgICdFTkFCTEVfVEVN
UExBVEVfVEFHPTEnLAogICAgICAgJ0VOQUJMRV9UT1VDSF9FVkVOVFM9PChlbmFibGVfdG91Y2hf
ZXZlbnRzKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORz08KGVuYWJsZV90b3Vj
aF9pY29uX2xvYWRpbmcpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfU0xJREVSPTEnLApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDc5YTVmZjZmMTI2YTY1ZjhhMzNkZWY5ZWM3N2E5N2Q5MTllY2QyOTcuLmU0NWY5ZDYwMzk4YjM2
MDNmNTFjNDY4MTVmZTkxOGJkNmExMDFhM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0x
MS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9u
ZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2lubmVySFRNTC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRkZWQuCisgICAgICAgICog
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9kdW1w
LWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5f
Z2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTExLTI4ICBEYW5pZWwgQmF0ZXMgIDxkYmF0
ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIExheW91dFRlc3RzL2Zhc3QvanMv
c3RyaW5nLXJlcGxhY2VtZW50LW91dG9mbWVtb3J5Lmh0bWwgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5v
ZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzU5OTk5YTQ1MTc4M2E3MDJiYzNhMDE3MGIw
NmMzMWM5YTBmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitU
ZXN0IHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxh
dGUgZWxlbWVudCBpcyBjbG9uZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgMSBpcyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoCitQQVNTIDAgaXMgY2xv
bmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MjE2MmVlYzY3NTA0NTgwZGY2NWE2NWZhMjA0N2MzYTdkNDQxNmQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRt
bApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxh
dGUiPkNvbnRlbnRzPC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBl
bGVtZW50IGlzIGNsb25lZCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQor
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScp
OworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsK
K3Nob3VsZEJlKCcxJywgJ3RlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKK3Zh
ciBjbG9uZSA9IHRlbXBsYXRlLmNsb25lTm9kZSh0cnVlKTsKK3Nob3VsZEJlKCcwJywgJ2Nsb25l
LmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVy
dENvbnRlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUx
MzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKK2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJM
UmVxdWVzdCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5l
cnRDb250ZW50cy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwp
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZwor
aHR0cDovL2Jhei5jb20vYmF0LmpwZyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJv
ciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwp
Ij4KK1RoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVu
dHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMg
bm90IHJ1bi4KKworcGFzcyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2Mw
NWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2NjZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7Cisg
ICAgfQorCisgICAgaWYgKHRlc3RWYWwgIT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IHRlbXBsYXRlQ29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNv
bnRlbnQ7CisgICAgdmFyIGltZyA9IHRlbXBsYXRlQ29udGVudC5jaGlsZE5vZGVzWzFdOworICAg
IGltZy5zcmMgPSAiaHR0cDovL2Jhei5jb20vYmF0LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRlbnQpOworCisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlu
bmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhl
IHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1lbnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUg
ImluZXJ0IiwgZS5nLiByZXNvdXJjZXMgZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVu
LjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAy
Ozwvc2NyaXB0PjxpbWcgc3JjPSJodHRwOi8vZm9vLmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+
Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxh
dGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJl
biBhcmUgaWdub3JlZC4KKworPGRpdj5Db250ZW50cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwv
dGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NjJjYTNiZWYxZDNk
ODI3OWZhYjE5MTc4OTkyYzJjNWY2MWMzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEs
MzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOworICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2Vy
aWFsaXplJzsKKyAgICB2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RD
aGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBpbm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2Vy
aWFsaXplIGVpdGhlcic7CisKKyAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5l
ckhUTUw7CisgICAgaWYgKHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBv
bmx5IGNoaWxkIHNob3VsZCBiZSB0aGUgc3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAg
ICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVy
VGV4dCA9IHRlbXBsYXRlLmlubmVySFRNTDsKKyAgICB2YXIgdGVtcGxhdGUyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZTIuaW5uZXJIVE1MID0gJzx0
ZW1wbGF0ZT48L3RlbXBsYXRlPic7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdp
dGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuPC9wPgorPHRlbXBsYXRl
IGlkPSJ0ZW1wbGF0ZSI+PGRpdj5Db250ZW50cyAxCisgIDx0ZW1wbGF0ZT5Db250ZW50cyAyPC90
ZW1wbGF0ZT4KKzwvZGl2PjwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3du
ZXJEb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5NzM1YWZlNjFkZjI2ODZkZjUw
Y2M0MWY4Y2I3NDBiZDhmZTUxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyOCBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVu
dAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudCBpcyB0ZW1w
bGF0ZS5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5z
dGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudCBpcyBub3QgdGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
IGlzIHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50CitQQVNTIHRlbXBs
YXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50CitQ
QVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaXMgaW5uZXJUZW1wbGF0ZS5jb250ZW50
Lm93bmVyRG9jdW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNl
b2YgSFRNTERvY3VtZW50IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQgaXMgdGVtcGxhdGUyLm93bmVy
RG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZTIu
Y29udGVudC5vd25lckRvY3VtZW50CitQQVNTIGRvY3VtZW50IGlzIGRmLm93bmVyRG9jdW1lbnQK
K1BBU1MgZG9jdW1lbnQgaXMgc3Bhbi5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQgaXMgZGYub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50IGlzIHNwYW4ub3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6
IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250
ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUu
Y29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgZG9jdW1lbnQgaXMg
dGVtcGxhdGUzLm93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVu
dCBpcyB0ZW1wbGF0ZTMuY29udGVudC5vd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3Vt
ZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25l
ckRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L293bmVyRG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTdkYTI2ODRkYzZiNDIxODlmZTkzZGJj
MzU3MjE5Zjk3YzI5MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c3Bhbj48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUyIj48
c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUzIj48c3ZnPjwv
c3ZnPjwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1w
bGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50Jyk7CisKK2lmICghd2luZG93LkhUTUxU
ZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJM
RShURU1QTEFURV9UQUcpJyk7CisKK3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZW1wbGF0ZScpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlLm93bmVyRG9j
dW1lbnQnKTsKKwordmFyIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgPSB0ZW1wbGF0ZS5j
b250ZW50Lm93bmVyRG9jdW1lbnQ7CitzaG91bGRCZVRydWUoJ3RlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQnKTsKK3Nob3VsZE5vdEJlKCdkb2N1bWVu
dCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJE
b2N1bWVudCcpOworCit2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RD
aGlsZC5maXJzdENoaWxkOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQn
LCAnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250
ZW50T3duZXJEb2N1bWVudCcsICdpbm5lclRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCcp
Oworc2hvdWxkQmVUcnVlKCdpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBI
VE1MRG9jdW1lbnQnKTsKKwordmFyIHRlbXBsYXRlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZW1wbGF0ZTInKTsKK3Nob3VsZEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZTIub3duZXJEb2N1
bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnLCAndGVtcGxh
dGUyLmNvbnRlbnQub3duZXJEb2N1bWVudCcpOworCit2YXIgZGYgPSBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7Cit2YXIgc3BhbiA9IGRmLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CitzaG91bGRCZSgnZG9jdW1lbnQnLCAnZGYub3duZXJEb2N1
bWVudCcpOworc2hvdWxkQmUoJ2RvY3VtZW50JywgJ3NwYW4ub3duZXJEb2N1bWVudCcpOworCit0
ZW1wbGF0ZS5jb250ZW50ID0gZGY7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudCcsICdkZi5vd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCcsICdzcGFuLm93bmVyRG9jdW1lbnQnKTsKKworc2hvdWxkVGhyb3coJ3RlbXBs
YXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Jyk7CitzaG91bGRU
aHJvdygndGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7
Jyk7CitpZiAod2luZG93LldlYktpdFNoYWRvd1Jvb3QpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgc2hvdWxkVGhyb3coJ3RlbXBsYXRlLmNvbnRl
bnQgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpJyk7Cit9CisKK3ZhciB0ZW1wbGF0ZTMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUyJyk7CitzaG91bGRCZSgnZG9jdW1lbnQn
LCAndGVtcGxhdGUzLm93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50JywgJ3RlbXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1lbnQnKTsKK3Nob3Vs
ZEJlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50JywgJ3RlbXBsYXRlMy5jb250ZW50LmZp
cnN0Q2hpbGQub3duZXJEb2N1bWVudCcpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1M
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
b3duZXJEb2N1bWVudFhIVE1MLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjY5YmZmZDkxZDFl
Zjk3ZjYxZGY2ZWUzYTY5NzAwOWNjYTA3NWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50
IG93bmVyRG9jdW1lbnQgaW4gWEhUTUwgRG9jdW1lbnQKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgZG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgZmFsc2UK
K1BBU1MgZG9jdW1lbnQgaXMgbm90IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1Mg
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3du
ZXJEb2N1bWVudFhIVE1MLnhodG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE3YjRiYThmZjc1
ZDg3OWNkMTAyMDJmMWI4NTZkNWJkNThmMTcwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1s
CkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCBI
VE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCBpbiBYSFRNTCBEb2N1bWVu
dCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQo
J1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfVEFHKScpOworCitzaG91bGRCZUZh
bHNlKCdkb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOwordmFyIHRlbXBsYXRlNCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7Cit2YXIgdGVtcGxhdGVDb250ZW50
T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlNC5jb250ZW50Lm93bmVyRG9jdW1lbnQ7CitzaG91bGRO
b3RCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxk
QmVGYWxzZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1
bWVudCcpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
ZXNvdXJjZXMvdGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYWU4MWVmZGRmZGM0ZDhmODY3NzFj
NjJjNGExMzk3MjQwMmJhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsODQzIEBACisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPHRlbXBsYXRlPkhlbGxv
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhl
bGxvIgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rp
dj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2
PgorCisjZGF0YQorPGh0bWw+PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhlbGxvIgorfCAgIDxib2R5PgorCisjZGF0
YQorPGhlYWQ+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PC90ZW1wbGF0ZT48L2hlYWQ+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgPGJvZHk+CisKKyNk
YXRhCis8ZGl2Pjx0ZW1wbGF0ZT48ZGl2PjxzcGFuPjwvdGVtcGxhdGU+PGI+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2Pgor
fCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICA8ZGl2PgorfCAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPGI+CisKKyNkYXRhCis8
ZGl2Pjx0ZW1wbGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0
YQorPGRpdj48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVt
cGxhdGU+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48ZGl2Pjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPHRhYmxlPjx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjxkaXY+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgPHRhYmxlPgorfCAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8
dGFibGU+ICAgPHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAg
ICAgIiAgICIKK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0
ZT48L3Rib2R5PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEK
Kzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvdGhlYWQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0
YWJsZT48dGZvb3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Zm9vdD4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRmb290PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVj
dD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC90
ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8
dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3NlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxvcHRpb24+
Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBs
YXRlPjwvdGVtcGxhdGU+PG9wdGlvbj48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgPG9wdGlvbj4K
KworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRl
bXBsYXRlPjxvcHRpb24+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8b3B0
aW9uPgorCisjZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90
YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48dGVtcGxhdGU+PHRkPjwv
dHI+PGRpdj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0ZD4KK3wgICAg
ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxh
dGU+PC90aGVhZD48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8
dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KKworI2RhdGEKKzx0YWJsZT48dGVt
cGxhdGU+PHRyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorCisj
ZGF0YQorPHRhYmxlPjx0cj48dGVtcGxhdGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJv
ZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFi
bGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90cj48L3RlbXBsYXRl
PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgICAg
PHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RkPjwv
dGVtcGxhdGU+PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4K
K3wgICAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48
dGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRl
bXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48
dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPGNvbD4KKworI2RhdGEK
KzxmcmFtZXNldD48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC90ZW1wbGF0ZT48L2ZyYW1lc2V0
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNl
dD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPGZyYW1lPgorCisjZGF0YQorPHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvZnJhbWVzZXQ+
PGZyYW1lPjwvZnJhbWU+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2Rh
dGEKKzx0ZW1wbGF0ZT48ZGl2PjxmcmFtZXNldD48c3Bhbj48L3NwYW4+PC9kaXY+PHNwYW4+PC9z
cGFuPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48ZGl2PjxmcmFtZXNldD48c3Bhbj48L3NwYW4+PC9k
aXY+PHNwYW4+PC9zcGFuPjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+
Cit8ICAgICAgICAgPHNwYW4+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHNjcmlwdD52YXIg
aSA9IDE7PC9zY3JpcHQ+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHNjcmlwdD4KK3wgICAgICAgICAgICJ2
YXIgaSA9IDE7IgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+
PGRpdj48L2Rpdj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAg
ICA8dHI+Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwv
dGQ+PC90cj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisKKyNkYXRh
Cis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PHRib2R5Pjx0ZD48L3RkPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4K
K3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PGNhcHRp
b24+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PGNvbGdyb3VwPjwvY2FwdGlvbj48dGQ+PC90
ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
Pjx0ZD48L3RkPjwvdGFibGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGJvZHk+PHRyPjwvdHI+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPHRyPgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90
cj48Y2FwdGlvbj48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGFibGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRy
PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGhlYWQ+PC90aGVh
ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRoZWFkPgorfCAg
ICAgICAgIDxjYXB0aW9uPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48dGhlYWQ+PC90aGVhZD48L3RhYmxlPjx0Ym9keT48L3Rib2R5PjwvdGVtcGxhdGU+PC9i
b2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8dGhlYWQ+Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxk
aXY+PHRyPjwvdHI+PC9kaXY+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0
ZT48ZW0+SGVsbG88L2VtPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxlbT4KK3wgICAgICAgICAgICJIZWxsbyIKKworI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT48IS0tY29tbWVudC0tPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDwhLS0gY29tbWVudCAt
LT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c3R5bGU+PC9zdHlsZT48dGQ+PC90ZD48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8c3R5bGU+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxt
ZXRhPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxtZXRhPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48bGluaz48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8bGluaz4KK3wgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGVtcGxh
dGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9k
eT48dGFibGU+PGNvbGdyb3VwPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjwvdGVtcGxhdGU+PC9jb2xn
cm91cD48L3RhYmxlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAg
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHkgYT1iPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2Pjxi
b2R5IGM9ZD48ZGl2PjwvZGl2PjwvYm9keT48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIGE9ImIiCit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxk
aXY+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGRpdj48
aHRtbCBiPWM+PHNwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICBhPSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgPGJv
ZHk+CisKKyNkYXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PGh0bWwgYj1jPjxj
b2w+PC9jb2w+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBh
PSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8Y29sPgorfCAgICAgICAgIDxjb2w+Cit8ICAgPGJvZHk+CisKKyNk
YXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjxodG1sIGI9Yz48ZnJhbWU+
PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9
ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDxmcmFtZT4KK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgPGJvZHk+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PHRk
PjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxp
Yi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZmUzMjRiMDEyOWU2MWM5
MTI0ZTU1ODA5MjgyYTk1ZDBiYWFhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9ydW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK3Jlc291cmNl
cy90ZW1wbGF0ZS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1
bi10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjgxMTI5YTBlMTZmZmVhYzQ0NDliM2U5MTdhYzRkNDE5Y2I2NGZlNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0PgordmFyIHRlc3RfZmlsZXMg
PSBbCisgICdyZXNvdXJjZXMvdGVtcGxhdGUuZGF0JywKK10KKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiOWRm
MzYxZGYxNjc3MTk4OTI3MDA2YzZiM2QwYjc2NjhhZThlZDYyLi5kMzgyNDg5NjQ3OTk5NWQ2MTZi
OWRmNzU1MmE5YTFlYzQyNGZkNTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzEwLDYgKzMxMCwxMCBAQCBmYXN0L3RleHQvdW5pY29kZS12YXJpYXRp
b24tc2VsZWN0b3IuaHRtbAogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1s
CiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVy
bHMtbWF0Y2gtc2VsZi5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMgZGlzYWJsZWQu
CitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRt
bAorCiAjIFRyYW5zcGFyZW50IGltYWdlIGJlaW5nIHByb2R1Y2VkCiBmYXN0L2ZyYW1lcy90cmFu
c3BhcmVudC1zY3JvbGxiYXIuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDAwMTY5NDJmMDgzNjQyZmZkNjE2OGFmZGUyNzRhNDE0ZGJkZGZlNGYu
LjQ2YTc4MDQ3YTYzYzZkNWYzZjhkZWU2YmY0OGMxYWM4MTNkOTc2NzYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03Nyw2ICs3NywxMCBAQCBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQtY29udGVudC10eXBlLWRhc2hib2FyZC5odG1sIFsg
V29udEZpeCBdCiAjIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKSBpcyBkaXNhYmxlZAogZmFzdC9j
c3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdvbnRGaXggXQogCisjIEVOQUJMRShU
RU1QTEFURV9UQUcpIGlzIGRpc2FibGVkLgord2Via2l0Lm9yZy9iLzEwMzU3IGZhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM1NyBodG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbCBbIFNraXAgXQorCiAjIFRoZXNlIHRlc3QgLWFwcGxlLSBhbmQgLWto
dG1sLSBwcmVmaXhlZCBDU1MgcHJvcGVydGllcywgd2hpY2ggd2UgZG9uJ3Qgc3VwcG9ydC4KIGlu
c3BlY3Rvci9zdHlsZXMvdmVuZG9yLXByZWZpeGVzLmh0bWwgWyBXb250Rml4IF0KIGZhc3QvY3Nz
L2FwcGxlLXByZWZpeC5odG1sIFsgV29udEZpeCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGNiYmRkM2JlZTE3M2RjMWE3ZGQ5OTgzNGU4ZWRlNGI3NmNm
YTI2NzAuLjExNWY5MGFjZTIwZWIzZmI3ZjliOGFhMzc2NzZjZGQ3NjdmNWUyN2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC00MzIsNiArNDMyLDEwIEBA
IGZhc3QvZG9tL3NoYWRvdwogZWRpdGluZy9zaGFkb3cKIGluc3BlY3Rvci9lbGVtZW50cy91cGRh
dGUtc2hhZG93ZG9tLmh0bWwKIAorIyBFTkFCTEUoVEVNUExBVEVfVEFHKSBpcyBkaXNhYmxlZC4K
K2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1s
CisKICMgSlNDIGRvZXMgbm90IHN1cHBvcnQgc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lu
IChodHRwOi8vd2Via2l0Lm9yZy9iLzYxNTQwKQogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRl
ZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBjMmZjMDA2MGY2MjA0OWRlNDM2OGZjZTAwM2Q3YzNkZDdjOWVj
NmRiLi43MWJhYWYzZDJkOTZlYmQ5YmQyNDU5YWM3NGU0ODE3ZjA5YjliZDYxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OCw2ICsxODgsMTAgQEAgZmFz
dC9kb20vc2hhZG93CiBmYXN0L2ZyYW1lcy9kZXRhY2hlZC1zaGFkb3ctZnJhbWUuaHRtbAogaW5z
cGVjdG9yL2VsZW1lbnRzL3VwZGF0ZS1zaGFkb3dkb20uaHRtbAogCisjIEVOQUJMRShURU1QTEFU
RV9UQUcpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVs
aWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBGYWlsIHVudGlsIFNVQlBJWEVMX0xBWU9VVCBpcyBl
bmFibGVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTUzMgog
ZmFzdC9zdWItcGl4ZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggOTZkZWIyMWQ3MDY5NjA3NTI5ZTI3ZGE3OTRkYzNmMjVjZDI0ZDFjOS4uZDkzY2FlMjI3
MjVhNDJmZmNjYjBiNjUzYzI3MGM1MjYzODEzMzk0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MjYsNiArMTUyNiwxMCBAQCBmYXN0L3JlZ2lvbnMv
c3R5bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3NoYWRv
dwogCisjIEVOQUJMRShURU1QTEFURV9UQUcpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBDU1MgUmVnaW9u
cyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81NzMxMgogZmFz
dC9yZWdpb25zCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDcxMzNiODVmZjFiMjg3MDJlZDFhNGQ1M2IzOTRmMzZhMTJiNDc5N2MuLjA2
ODliNTY0YjQ5NWZkOTU0MzQ4ZWZjM2Y1YTJmNzA3ODYwNzY3MTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA2MSw2ICsyMDYxLDEw
IEBAIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy5odG1sCiBlZGl0aW5nL3NoYWRv
dwogZmFzdC9kb20vc2hhZG93CiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMgZGlzYWJsZWQu
CitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRt
bAorCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0
Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzCmluZGV4IDUzYTAwMWZlZmRlMjg4MWFlZjYxY2QwNjkwMjcyZmM2ZTE1YjFlOTEu
LmM3ZmRmMTdmMjBhNDI5YzEwYzZkOGIzYTE5NmRmYjkwOTQ0NjJiMGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcworKysgYi9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKQEAgLTIyMCwxNiArMjIwLDI0IEBAIE1hcmt1cC5f
Z2V0ID0gZnVuY3Rpb24obm9kZSwgZGVwdGgpCiAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdN
RU5UX05PREU6CiAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09ICIjc2hhZG93LXJvb3QiKQog
ICAgICAgICAgIHN0ciArPSAiPHNoYWRvdzpyb290PiI7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICBzdHIgKz0gIiNkb2N1bWVudC1mcmFnbWVudCI7CiAgICAgfQotCi0gICAgZm9yICh2YXIgaSA9
IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewotICAgICAg
ICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7Ci0g
ICAgICAgIGlmIChzZWxlY3Rpb24pCi0gICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9pbmRlbnQo
ZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKLQotICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9k
ZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgIAorICAgIAorICAgIC8vIEhUTUwgVGVt
cGxhdGUgZWxlbWVudHMgc2VyaWFsaXplIHRoZWlyIGNvbnRlbnQgRG9jdW1lbnRGcmFnbWVudCwg
YW5kIE5PVCB0aGVpciBjaGlsZHJlbi4KKyAgICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPSAnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgJiYgbm9kZS50YWdOYW1lID09ICdURU1QTEFURScp
IHsKKyAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY29udGVudCwgZGVwdGggKyAxKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5v
ZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0g
TWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CisgICAgICAgICAgICBpZiAoc2Vs
ZWN0aW9uKQorICAgICAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEp
ICsgc2VsZWN0aW9uOworICAgIAorICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUu
Y2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAgICAgfQogICAgIH0KLQorICAgIAogICAg
IHN0ciArPSBNYXJrdXAuX2dldFNoYWRvd0hvc3RJZlBvc3NpYmxlKG5vZGUsIGRlcHRoKTsKICAg
ICAKICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwg
aSk7CkBAIC0yODQsNyArMjkyLDcgQEAgTWFya3VwLl9OQU1FU1BBQ0VfVVJJX01BUCA9IHsKIAog
TWFya3VwLl9nZXRTZWxlY3Rpb25Gcm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCiB7Ci0gICAgcmV0
dXJuIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKTsKKyAgICBy
ZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3ID8gbm9kZS5vd25lckRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpIDogbnVsbDsKIH0KIAogTWFya3VwLl9TRUxFQ1RJ
T05fRk9DVVMgPSAnPCNzZWxlY3Rpb24tZm9jdXM+JzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176811</attachid>
            <date>2012-11-29 13:51:52 -0800</date>
            <delta_ts>2012-11-29 17:55:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121129134925.patch</filename>
            <type>text/plain</type>
            <size>98270</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkZTdkOTIxMWU3YjYw
MTZiODUyMWQ4ZDRiMjk4MWNlYmQwZGU2OS4uY2U2ZGRjOGUyNjgyNTZhOGFkMjg1Nzk5NzE5NWMx
N2FiZDljYjE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBFbWJlZCB0aGUgSFRUUCBhdXRoZW50aWNhdGlv
biBkaWFsb2cgaW50byB0aGUgV2ViVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBk
ZjM2MTM5MWM5MGY4YTQ3YmQ2YmFkYmU3NGQ2NWVkMjVkYmJiMzUwLi5iYmJkMmQwMzMwMWNkYzk0
NGQzY2Q0NzM3YzBiMzMyZTEzOWM4YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTExLTEzICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHVybmluZyBvbiBIVE1M
VGVtcGxhdGVFbGVtZW50IGZvciBjaHJvbWl1bSBwb3J0LgorCisgICAgICAgICogZmVhdHVyZXMu
Z3lwaToKKwogMjAxMi0xMS0yOSAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNvZGUgc3VwcHByZXNzaW9uIGZsYWdzIGZv
ciBza2lhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI0MGI0YWQ1ZmQzMDdkZDc1MzcyMTkwNzQw
M2Q0YWY3M2I2YzU2MzEuLmMxNTJhZmZmNTNlNjAwM2ZlNTRhYWI3ZjgwZTNmNTU2ZjMzNGQwYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODgsNiArNDg4LDcgQEAgU0VUKFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorICAg
IGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaWRsCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRyYWNr
RWxlbWVudC5pZGwKQEAgLTE0MzAsNiArMTQzMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29s
bGVjdGlvbi5jcHAKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAorICAgIGh0
bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwCiAgICAgaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKICAgICBodG1sL0hU
TUxUaXRsZUVsZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlNTM2
ZmQxM2E5NGE3ZDBhNWU0NWI3NTc5OWZiOGRjZDY2NjIwNGExLi43YmFhNWY4Nzg2YzZkMjgwNmUx
NDU3MzZhN2MyNjg3OTk3ZWE1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTM0OCw2ICszNDgsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlUm93RWxl
bWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5p
ZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwNjdjNzFj
NWQwODM0MWJmZmQxNTk4N2IwMjZjMDgyNGVlYTIyNGI0Li5jNWMyN2Q2MzZlNjJhZGQ5YjJjZjAz
ZDY1NzFmYTJlYTFkN2ZlNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQz
MSw2ICs0MzEsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVGFibGVSb3dFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MVGVtcGxhdGVFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGV4
dEFyZWFFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZXh0QXJl
YUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUaXRsZUVsZW1lbnQu
Y3BwIFwKQEAgLTE0ODksNiArMTQ5MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2Vi
Q29yZSkvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL0hUTUxU
YWJsZVJvd0VsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgXAog
CSQoV2ViQ29yZSkvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRyYWNrRWxl
bWVudC5pZGwgXApAQCAtMzQzNSw2ICszNDM4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggMmQ0MGFkMGJkMjY1ZDg3NzVjYWY2ZmM4OGQ1NTMzZDQxNmUzMTc5Mi4uMWQ0ZDZi
NjVlNzhmYWRjY2NiZWM5NzcyYmQ5NzJjM2JiNzY5NDE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02NTgs
NiArNjU4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNw
cCBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgXAogICAgIGh0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwIFwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNw
cCBcCkBAIC0xODIyLDYgKzE4MjMsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oIFwKICAg
ICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorICAgIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAgICAgaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzNhN2FiNmVkZDNmM2U4NDk3ZTUzZjZkNjhmMmYzMTZl
YzY2MzgwOS4uODhiOWZiYjRhNzdjM2QwMzc2NWQyMjI0ODMxNGI0NjJmMGM2ZDNjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMTEyOSw2ICsxMTI5LDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxU
YWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCcs
CisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCcs
CkBAIC00MTgxLDYgKzQxODIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCcsCisgICAg
ICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTA2YmExNjEx
NjJhMGM4ZmNkYzc3YjVhNmQ4YzNiOGQ1ZWMyOGNlYS4uNzkwZmYyZWNkMzI2NjUxYjA2MTYzN2I4
M2FlZmM2MTkyZmViZmJjZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTk2MjIsNyArOTYyMiw3IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtOTY3NCw5ICs5
Njc0LDY1IEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
Ci0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRleHRBcmVhRWxlbWVudC5oIgorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cisg
ICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICA8
RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIi
CisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAg
ICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgor
ICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZp
bGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIi
CisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAg
ICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgor
ICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZp
bGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAg
ICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVs
ZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAg
IDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
ICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRp
b24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAg
ICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAg
ICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJh
dGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAg
ICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmln
dXJhdGlvbj4KKyAgICAgICAgICAgIDwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisgICAgICAg
ICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRleHRBcmVhRWxlbWVudC5oIgorICAgICAg
ICAgICAgICAgID4KKyAgICAgICAgICAgIDwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTSFRNTFRpdGxlRWxlbWVudC5jcHAiCiAJCQkJPgpAQCAtNjM0NjIsNyArNjM1MTgs
NyBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxo
dG1sXEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxI
VE1MVGVtcGxhdGVFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjM1MTQsOSArNjM1NzAsNjUgQEAKIAkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcSFRNTFRleHRBcmVhRWxlbWVudC5oIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAg
PEZpbGUKKyAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiIKKyAgICAg
ICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAg
ICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZp
Z3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAg
ICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAg
ICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZp
Z3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAg
ICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAg
ICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAg
Lz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wK
KyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAg
ICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAg
ICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9v
bAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAg
ICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgor
ICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBO
YW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8
VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAg
ICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
PgorICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAg
ICBSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRleHRBcmVhRWxlbWVudC5oIgorICAgICAgICAg
ICAgICAgID4KKyAgICAgICAgICAgIDwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCIKIAkJCQk+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODQy
Nzg4YThlMmJmMTJhZTZhNDVkZjY4MjgwNjFhMDJmYmEyOTlkMi4uM2RmN2VmN2FkMDU0NTQ5YTcz
YmVlZWIxMzc0NGY0MTFiNTdiMjg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM0NjIsNiArMTM0NjIsOSBAQAogCQlENkUy
NzZBRTE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RTUyOEExMTQ5QTkyNkQwMEVG
RTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RTUyOEEyMTQ5QTkyNkQwMEVGRTFGMyAv
KiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlENkVGQzBCQjE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRl
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGVt
cGxhdGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkMx
NjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlENkVGQzBCRDE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAv
KiBIaXN0b2dyYW1TdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhpc3RvZ3JhbVN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
NkZEQUVGMjE0OUMwNjE5MDAzN0IxRTIgLyogU3RhdHNDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRzQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMyAvKiBNZW1vcnlVc2FnZVN1
cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5VXNh
Z2VTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODA4LDYgKzE3
ODExLDkgQEAKIAkJCQlBODcxREIxNzBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCAqLywKIAkJCQk4NTU1NDI1QzBBQTQ4QjFFMDBCQTg5RjIgLyogSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaWRsICovLAogCQkJCTUxOUZFMEEyMERBRDQ0NkUwMEEwOEYyMSAvKiBI
VE1MVGFnTmFtZXMuaW4gKi8sCisJCQkJRDZFRkMwQkIxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxU
ZW1wbGF0ZUVsZW1lbnQuY3BwICovLAorCQkJCUQ2RUZDMEJDMTY2NkRGN0EwMDNEMjkxRSAvKiBI
VE1MVGVtcGxhdGVFbGVtZW50LmggKi8sCisJCQkJRDZFRkMwQkQxNjY2REY3QTAwM0QyOTFFIC8q
IEhUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUJCMDk3Mzc0RjUwMEQ3NDQ2
MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCQTA5NzM3NEY1MDBE
NzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVudC5oICovLAogCQkJCUE4MEU3RTE2MEExQTdDQ0Iw
MDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRl
eCA0YTFlMzM1NjhjYjE1N2E3MjNmMGM3YWZhNjk3YzM0MDkyNjY2MTY4Li5jZmU4NzA1M2RjNzIw
YTRlMzQ3OTI1YWU2OTkzOTI1ODIzOWNhNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0xMjYyLDYg
KzEyNjIsMTAgQEAgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7CiAgICAgbWFyZ2lu
LXJpZ2h0OiAwLjRlbTsKIH0KIAordGVtcGxhdGUgeworICAgIGRpc3BsYXk6IG5vbmUKK30KKwog
YmRpLCBvdXRwdXQgewogICAgIHVuaWNvZGUtYmlkaTogLXdlYmtpdC1pc29sYXRlOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGYzYzZhYmQzOGE3NzU4Njg5MmEyZjE1
ZDlkM2NmNmQxZjBiNDExY2EuLjNmNDI1YzU2NjRmNTU4YzQzM2ZiY2FiMTBiMmMwNzkwZGFkMzQy
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTI5Myw2ICsyOTMsNyBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hpbAogICAgIEFTU0VSVChuZXdDaGlsZCk7CiAgICAgQVNT
RVJUKG5leHRDaGlsZCk7CiAgICAgQVNTRVJUKG5leHRDaGlsZC0+cGFyZW50Tm9kZSgpID09IHRo
aXMpOworICAgIEFTU0VSVChkb2N1bWVudCgpID09IG5ld0NoaWxkLT5kb2N1bWVudCgpKTsKIAog
ICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKICAgICBjb2xsZWN0VGFyZ2V0Tm9kZXMobmV3Q2hpbGQu
Z2V0KCksIHRhcmdldHMpOwpAQCAtNjc0LDYgKzY3NSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cGFyc2VyQXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkKIHsKICAgICBBU1NF
UlQobmV3Q2hpbGQpOwogICAgIEFTU0VSVCghbmV3Q2hpbGQtPnBhcmVudE5vZGUoKSk7IC8vIFVz
ZSBhcHBlbmRDaGlsZCBpZiB5b3UgbmVlZCB0byBoYW5kbGUgcmVwYXJlbnRpbmcgKGFuZCB3YW50
IERPTSBtdXRhdGlvbiBldmVudHMpLgorICAgIEFTU0VSVChkb2N1bWVudCgpID09IG5ld0NoaWxk
LT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkYjc0ZDU1ZGU1YzEwZjA2ZDU1MjE2MTMzMGFjZjY3
MjU3ZTIxOWIyLi45YjI0ZWExYWEzZmU1ODYwYTg2NTFiZDNiNGYwMDg5Y2UwM2UwODljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU5MzUsNCArNTkzNSwyMiBAQCBMb2NhbGUmIERvY3Vt
ZW50OjpnZXRDYWNoZWRMb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpCiAgICAgcmV0
dXJuICoocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVf
VEFHKQorRG9jdW1lbnQqIERvY3VtZW50Ojp0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgp
Cit7CisgICAgLy8gSWYgRE9DVU1FTlQgZG9lcyBub3QgaGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQs
IExldCBURU1QTEFURSBDT05URU5UUyBPV05FUiBiZSBET0NVTUVOVCBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gdGhpczsKKworICAgIGlm
ICghbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCkgeworICAgICAgICBpZiAoaXNIVE1M
RG9jdW1lbnQoKSkKKyAgICAgICAgICAgIG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQg
PSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFua1VSTCgpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IERvY3VtZW50OjpjcmVh
dGUoMCwgYmxhbmtVUkwoKSk7CisgICAgfQorCisgICAgcmV0dXJuIG1fdGVtcGxhdGVDb250ZW50
c093bmVyRG9jdW1lbnQuZ2V0KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0ZTI2NzE2MTEyMjBkM2ZiZjc3MjBhMDhkYzRkNzk1
M2RhMWU1MGVlLi40YTNmMTgzYmE4YWM5MDY4Y2E1Yjc0NjUwOTFkNDk2MzZkMDBkMjYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMTE3MSw2ICsxMTcxLDEwIEBAIHB1YmxpYzoKICAgICBjb25z
dCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+ID4mIHRvcExheWVyRWxlbWVudHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvcExheWVyRWxlbWVudHM7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRFTVBMQVRF
X1RBRykKKyAgICBEb2N1bWVudCogdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKTsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9v
bCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1MjMsNiArMTUyNywxMCBAQCBwcml2YXRl
OgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgT3duUHRyPExvY2FsZT4gPiBM
b2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXA7CiAgICAgTG9jYWxlSWRlbnRpZmllclRvTG9jYWxl
TWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIFJlZlB0
cjxEb2N1bWVudD4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudDsKKyNlbmRpZgogfTsK
IAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXgg
YmViODMyZjdmNTAwOWI2YWM2MTNjMzNjZDhiNDcxZWEyMjQ3MmU2Mi4uOGM2N2MxMjc3ZjRmNjRl
NzRkMmY4ZDQ0MDlhNGFlMDRmMDY5NmYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9N
YXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJFZGl0b3Iu
aCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVk
ZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgpAQCAt
MTQxLDcgKzE0MiwxMiBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dp
dGhOYW1lc3BhY2VzKE5vZGUqIHRhcmdldE5vZGUsIE5vZGUqIG5vZAogICAgICAgICBhcHBlbmRT
dGFydFRhZyh0YXJnZXROb2RlLCAmbmFtZXNwYWNlSGFzaCk7CiAKICAgICBpZiAoISh0YXJnZXRO
b2RlLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5k
VGFnKHRhcmdldE5vZGUpKSkgewotICAgICAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSB0YXJnZXRO
b2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGlu
ZygpKQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0
YXJnZXROb2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSA/IHRvSFRNTFRlbXBsYXRlRWxlbWVu
dCh0YXJnZXROb2RlKS0+Y29udGVudCgpLT5maXJzdENoaWxkKCkgOiB0YXJnZXROb2RlLT5maXJz
dENoaWxkKCk7CisjZWxzZQorICAgICAgICBOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmly
c3RDaGlsZCgpOworI2VuZGlmCisgICAgICAgIGZvciAoIDsgY3VycmVudDsgY3VycmVudCA9IGN1
cnJlbnQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICBzZXJpYWxpemVOb2Rlc1dpdGhOYW1l
c3BhY2VzKGN1cnJlbnQsIG5vZGVUb1NraXAsIEluY2x1ZGVOb2RlLCAmbmFtZXNwYWNlSGFzaCwg
dGFnTmFtZXNUb1NraXApOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApp
bmRleCA4N2I3ZTI2Mjk1ZmI3NGYzYTAwMWFlNDJlY2UxNGY3YTM5ZWM5MTFkLi42NzRmMWVkZDQz
ZGRiMTgzZjM1OTBkZTI1YWIzZmEwNmU2MzExMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNp
bmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJXb3JkQnJlYWsuaCIKICNpbmNsdWRlICJT
Y3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0zNDMsOCArMzQ0LDE0IEBAIFN0cmluZyBIVE1MRWxl
bWVudDo6b3V0ZXJIVE1MKCkgY29uc3QKIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJIVE1M
KGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRl
ckhUTUwoaHRtbCwgdGhpcywgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykpCi0gICAgICAgIHJl
cGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCh0aGlzLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsK
KyAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21l
bnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVj
KSkgeworICAgICAgICBDb250YWluZXJOb2RlKiBjb250YWluZXIgPSB0aGlzOworI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgICAgIGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVUYWcpKQor
ICAgICAgICAgICAgY29udGFpbmVyID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMpLT5jb250
ZW50KCk7CisjZW5kaWYKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRh
aW5lciwgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBt
ZXJnZVdpdGhOZXh0VGV4dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5P
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5k
ZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNmNDdjMDBi
ODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhU
TUxUYWJsZVBhcnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRN
TFRlbXBsYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhU
TUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4
NWExZTYxYTVhOTU4MmIxM2U2MzQyODljZGM1M2EyMmM3NmIzZTAxLi5jNDM2ZjhkZjg4ODMzNGZk
MzZiMWZkNGMzZmE3ZDY1NjFkN2QzMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5p
bgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJs
ZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJm
YWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAordGVtcGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1M
VGVtcGxhdGVFbGVtZW50LCBjb25kaXRpb25hbD1URU1QTEFURV9UQUcKIHRleHRhcmVhIGludGVy
ZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50
CiB0Zm9vdCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0aCBpbnRlcmZh
Y2VOYW1lPUhUTUxUYWJsZUNlbGxFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTlhNDMxYjc3OThhYzY2MGY1ODZmODYwOGVh
MzAzYTkwMDJhOGZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKworI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1l
bnQuaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIm1hcmt1
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoreworfQorCitIVE1MVGVtcGxhdGVFbGVtZW50Ojp+
SFRNTFRlbXBsYXRlRWxlbWVudCgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxl
bWVudD4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxUZW1wbGF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1lbnRGcmFn
bWVudCogSFRNTFRlbXBsYXRlRWxlbWVudDo6Y29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X2NvbnRlbnQpCisgICAgICAgIG1fY29udGVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShv
d25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpOworCisgICAg
cmV0dXJuIG1fY29udGVudC5nZXQoKTsKK30KKworCisvLyBGSVhNRTogaHR0cHM6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMDEyNyAocHJldmVudCBET00gaGllcmFy
Y2h5IGN5Y2xlcykuCisvLyBGSVhNRTogaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3No
b3dfYnVnLmNnaT9pZD0yMDEyOSAoZXh0ZW5kZWQgYWRvcHROb2RlIHRvIGNvbnNpZGVyIHRlbXBs
YXRlLmNvbnRlbnQpLgordm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50OjpzZXRDb250ZW50KFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcHJwQ29udGVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNvbnRlbnQgPSBwcnBDb250ZW50OworCisg
ICAgaWYgKCFjb250ZW50IHx8IGNvbnRlbnQtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGVj
ID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
bV9jb250ZW50LmdldCgpID09IGNvbnRlbnQuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChjb250ZW50LT5vd25lckRvY3VtZW50KCkgIT0gb3duZXJEb2N1bWVudCgpLT50ZW1wbGF0
ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpKQorICAgICAgICBvd25lckRvY3VtZW50KCktPnRlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KCktPmFkb3B0Tm9kZShjb250ZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKworICAgIG1fY29udGVudCA9IGNvbnRlbnQ7Cit9CisKKyNpZm5kZWYgTkRF
QlVHCitjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29u
c3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgKG5vZGUtPmlzSFRNTEVsZW1l
bnQoKSAmJiBub2RlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7Cit9CisjZW5kaWYKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIx
M2M0MjE4M2QxZDhjZDg3MGU1NDk1M2ZmZTc5MGIxNzViNDgyMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC0wLDAgKzEsNzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFRlbXBsYXRlRWxl
bWVudF9oCisKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSFRNTFRlbXBsYXRlRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxUZW1w
bGF0ZUVsZW1lbnQoKTsKKworICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRlbnQoKSBjb25zdDsK
KworICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNl
cHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworICAgIG11dGFibGUgUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IG1fY29udGVudDsKK307CisKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRv
SFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKik7CisKK2lubGluZSBIVE1MVGVtcGxhdGVF
bGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4g
Y29uc3RfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4odG9IVE1MVGVtcGxhdGVFbGVtZW50KHN0
YXRpY19jYXN0PGNvbnN0IE5vZGUqPihub2RlKSkpOworfQorCisjaWZkZWYgTkRFQlVHCisKKy8v
IFRoZSBkZWJ1ZyB2ZXJzaW9uIG9mIHRoaXMsIHdpdGggYXNzZXJ0aW9ucywgaXMgbm90IGlubGlu
ZWQuCitpbmxpbmUgY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVt
ZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhU
TUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX1RBRykKKworI2Vu
ZGlmIC8vIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
bXBsYXRlRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ4NzY1MzY1ZmY0MjkwMWExYTc0NzY3ZDU2
N2ZkYTI2NTQxNmM4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9
VEVNUExBVEVfVEFHCitdIGludGVyZmFjZSBIVE1MVGVtcGxhdGVFbGVtZW50IDogSFRNTEVsZW1l
bnQgeworICAgIGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50IGNvbnRlbnQgc2V0dGVyIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKK307CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA5YzE4MmJhMjM0M2I0ZTUxMzlhMzIw
MjI2MDgxNGVkMDQ5NTkxOWQ4Li43NzA1YjE0N2EwNjQ5OTIzMmY0ODY5NGMwYTFjN2ZkMjEwZmRi
NzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNr
SXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
VG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgpAQCAtNzcsNiArNzgsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzQWxsV2hp
dGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIAogc3RhdGljIGlubGluZSB2b2lkIGV4ZWN1
dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIHsKKyNpZiBFTkFCTEUoVEVN
UExBVEVfVEFHKQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykp
CisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhc2sucGFyZW50
LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAgICBpZiAodGFzay5uZXh0Q2hpbGQpCiAg
ICAgICAgIHRhc2sucGFyZW50LT5wYXJzZXJJbnNlcnRCZWZvcmUodGFzay5jaGlsZC5nZXQoKSwg
dGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwogICAgIGVsc2UKQEAgLTI0Nyw3ICsyNTMsNyBAQCB2b2lk
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuVHlw
ZXM6OkNvbW1lbnQpOwotICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNy
ZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CisgICAg
YXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnRG
b3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3VtZW50KEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCkBAIC0zMjUsNyArMzMxLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0
U2NyaXB0RWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIC8vIHRob3NlIGZsYWdz
IG9yIGVmZmVjdHMgdGhlcmVvZi4KICAgICBjb25zdCBib29sIHBhcnNlckluc2VydGVkID0gbV9m
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gQWxsb3dTY3JpcHRpbmdDb250ZW50QW5kRG9O
b3RNYXJrQWxyZWFkeVN0YXJ0ZWQ7CiAgICAgY29uc3QgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IG1f
aXNQYXJzaW5nRnJhZ21lbnQgJiYgcGFyc2VySW5zZXJ0ZWQ7Ci0gICAgUmVmUHRyPEhUTUxTY3Jp
cHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcs
IGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCksIHBhcnNlckluc2VydGVkLCBhbHJlYWR5U3RhcnRl
ZCk7CisgICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVs
ZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCBw
YXJzZXJJbnNlcnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOwogICAgIGlmIChtX2ZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiAhPSBEaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQpCiAgICAgICAgIGVsZW1l
bnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24pOwogICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIGVsZW1l
bnQpOwpAQCAtMzUxLDYgKzM1NywxMSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNl
cnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogICAgIGlm
IChzaG91bGRGb3N0ZXJQYXJlbnQoKSkKICAgICAgICAgZmluZEZvc3RlclNpdGUodGFzayk7CiAK
KyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFzVGFnTmFt
ZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxhdGVFbGVt
ZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAgICAvLyBTdHJp
bmdzIGNvbXBvc2VkIGVudGlyZWx5IG9mIHdoaXRlc3BhY2UgYXJlIGxpa2VseSB0byBiZSByZXBl
YXRlZC4KICAgICAvLyBUdXJuIHRoZW0gaW50byBBdG9taWNTdHJpbmcgc28gd2Ugc2hhcmUgYSBz
aW5nbGUgc3RyaW5nIGZvciBlYWNoLgogICAgIGJvb2wgc2hvdWxkVXNlQXRvbWljU3RyaW5nID0g
d2hpdGVzcGFjZU1vZGUgPT0gQWxsV2hpdGVzcGFjZQpAQCAtMzg3LDE4ICszOTgsMjcgQEAgdm9p
ZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5nJiBjaGFy
YWN0ZXJzLCBXaGl0ZXNwYWNlTW8KIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbiwgY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lc3BhY2VVUkkpCiB7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxB
dG9tLCB0b2tlbi0+bmFtZSgpLCBuYW1lc3BhY2VVUkkpOwotICAgIFJlZlB0cjxFbGVtZW50PiBl
bGVtZW50ID0gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWdOYW1l
LCB0cnVlKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IG93bmVyRG9jdW1lbnRGb3JD
dXJyZW50Tm9kZSgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOwogICAgIGVsZW1lbnQt
PnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24pOwogICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKIH0KIAoraW5s
aW5lIERvY3VtZW50KiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJl
bnROb2RlKCkKK3sKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgIGlmIChjdXJyZW50Tm9k
ZSgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTFRlbXBs
YXRlRWxlbWVudChjdXJyZW50RWxlbWVudCgpKS0+Y29udGVudCgpLT5kb2N1bWVudCgpOworI2Vu
ZGlmCisgICAgcmV0dXJuIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCk7Cit9CisKIFBhc3NSZWZQ
dHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21p
Y0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9t
LCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5hbWVzcGFjZVVSSSk7CiAgICAgLy8gRklYTUU6IFRoaXMg
Y2FuJ3QgdXNlIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50IGJlY2F1c2Ugd2UK
ICAgICAvLyBoYXZlIHRvIHBhc3MgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50LiAgV2Ugc2hvdWxk
IHJld29yayBmb3JtIGFzc29jaWF0aW9uCiAgICAgLy8gdG8gb2NjdXIgYWZ0ZXIgY29uc3RydWN0
aW9uIHRvIGFsbG93IGJldHRlciBjb2RlIHNoYXJpbmcgaGVyZS4KLSAgICBSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFt
ZSwgY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgZm9ybSgpLCB0cnVlKTsKKyAgICBSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQo
dGFnTmFtZSwgb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAg
ICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2Zy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRNTEVs
ZW1lbnQoKSk7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwpAQCAtNDYyLDYgKzQ4Miwx
NSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkK
IAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZvc3RlclNpdGUoSFRNTENvbnN0cnVj
dGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgLy8g
V2hlbiBhIG5vZGUgaXMgdG8gYmUgZm9zdGVyIHBhcmVudGVkLCB0aGUgbGFzdCB0ZW1wbGF0ZSBl
bGVtZW50IHdpdGggbm8gdGFibGUgZWxlbWVudCBpcyBiZWxvdyBpdCBpbiB0aGUgc3RhY2sgb2Yg
b3BlbiBlbGVtZW50cyBpcyB0aGUgZm9zdGVyIHBhcmVudCBlbGVtZW50IChOT1QgdGhlIHRlbXBs
YXRlJ3MgcGFyZW50ISkKKyAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBsYXN0
VGVtcGxhdGVFbGVtZW50ID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0ZW1wbGF0ZVRhZy5sb2Nh
bE5hbWUoKSk7CisgICAgaWYgKGxhc3RUZW1wbGF0ZUVsZW1lbnQgJiYgIW1fb3BlbkVsZW1lbnRz
LmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKKyAgICAgICAgdGFzay5wYXJlbnQgPSBsYXN0VGVt
cGxhdGVFbGVtZW50LT5lbGVtZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
KwogICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRS
ZWNvcmQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAg
ICBpZiAobGFzdFRhYmxlRWxlbWVudFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFi
bGVFbGVtZW50ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggNjA1
NzJiZGQ4NTYyNzQ0NWNiZDg2NWE5Njc5ZDJmZWJhNWY2YThkYy4uZGYzMjU5MGE3OTM3MTdiZTdh
OTFkYTc2YjkxNWM0YTkxNTViNTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCkBAIC0xMTQsOSArMTE0LDEwIEBAIHB1YmxpYzoK
ICAgICBDb250YWluZXJOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVs
ZW1lbnRzLnRvcE5vZGUoKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIGN1cnJlbnRTdGFja0l0ZW0o
KSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BTdGFja0l0ZW0oKTsgfQogICAgIEhU
TUxTdGFja0l0ZW0qIG9uZUJlbG93VG9wKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMu
b25lQmVsb3dUb3AoKTsgfQotCisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50
Tm9kZSgpOwogICAgIEhUTUxFbGVtZW50U3RhY2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0
dXJuICZtX29wZW5FbGVtZW50czsgfQogICAgIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QqIGFj
dGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRp
bmdFbGVtZW50czsgfQorICAgIGJvb2wgY3VycmVudElzUm9vdE5vZGUoKSB7IHJldHVybiBtX29w
ZW5FbGVtZW50cy50b3BOb2RlKCkgPT0gbV9vcGVuRWxlbWVudHMucm9vdE5vZGUoKTsgfQogCiAg
ICAgRWxlbWVudCogaGVhZCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhZC0+ZWxlbWVudCgpOyB9CiAg
ICAgSFRNTFN0YWNrSXRlbSogaGVhZFN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1faGVhZC5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNr
LmNwcAppbmRleCA2YzIyMGM5NzM5YTY0MDIwZWQwZjI3Y2MzMjAxYjJjNGUwMTYxNTc4Li4zZDJh
OGM5NjhjODBkYTE4ZjQ0MTM4OWYzMzk4MzAyOGQwNmYxY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcApAQCAtMzgsMTQgKzM4LDE1IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotc3Rh
dGljIGlubGluZSBib29sIGlzUm9vdE5vZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKKworbmFtZXNw
YWNlIHsKKworaW5saW5lIGJvb2wgaXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQogewog
ICAgIHJldHVybiBpdGVtLT5pc0RvY3VtZW50RnJhZ21lbnROb2RlKCkKICAgICAgICAgfHwgaXRl
bS0+aGFzVGFnTmFtZShodG1sVGFnKTsKIH0KIAotbmFtZXNwYWNlIHsKLQogaW5saW5lIGJvb2wg
aXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5o
YXNUYWdOYW1lKGFwcGxldFRhZykKQEAgLTY0LDYgKzY1LDkgQEAgaW5saW5lIGJvb2wgaXNTY29w
ZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjpkZXNjVGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVz
Ojp0aXRsZVRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5o
YXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRl
bSk7CiB9CiAKQEAgLTc3LDYgKzgxLDkgQEAgaW5saW5lIGJvb2wgaXNMaXN0SXRlbVNjb3BlTWFy
a2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiBpbmxpbmUgYm9vbCBpc1RhYmxlU2NvcGVNYXJrZXIo
SFRNTFN0YWNrSXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0YWJs
ZVRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdO
YW1lKHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9
CiAKQEAgLTg1LDEyICs5MiwxOCBAQCBpbmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2Vy
KEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGJvZHlU
YWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IGl0
ZW0tPmhhc1RhZ05hbWUodGhlYWRUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAg
ICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBp
c1Jvb3ROb2RlKGl0ZW0pOwogfQogCiBpbmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIo
SFRNTFN0YWNrSXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0clRh
ZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KHRlbXBsYXRlVGFnKQorI2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAK
QEAgLTUyNyw2ICs1NDAsMTMgQEAgYm9vbCBIVE1MRWxlbWVudFN0YWNrOjppblNlbGVjdFNjb3Bl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGluU2VsZWN0
U2NvcGUodGFnTmFtZS5sb2NhbE5hbWUoKSk7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFH
KQorYm9vbCBIVE1MRWxlbWVudFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaW5TY29wZUNvbW1vbjxpc1Jvb3ROb2RlPihtX3RvcC5nZXQoKSwgdGVt
cGxhdGVUYWcubG9jYWxOYW1lKCkpOworfQorI2VuZGlmCisKIEVsZW1lbnQqIEhUTUxFbGVtZW50
U3RhY2s6Omh0bWxFbGVtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9yb290Tm9kZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggODcz
Y2JkZWI5NWI4ZWRhMDZiM2JlODBiZDk1Y2E3ZDIzODkxMWJhMy4uZDk2Y2NjZDgwOTQ3ZGFiNjE5
MTFhMjZiMzhiM2ZhZTMzOTY3OWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxFbGVtZW50U3RhY2suaApAQCAtMTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzT25seU9uZUVsZW1lbnQoKSBjb25zdDsKICAgICBib29sIHNlY29uZEVsZW1lbnRJc0hU
TUxCb2R5RWxlbWVudCgpIGNvbnN0OwotCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBi
b29sIGhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1lbnQq
IGh0bWxFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25zdDsK
ICAgICBFbGVtZW50KiBib2R5RWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggYzc4NTYyYjMzYzE5YmQyYzU3MWQ1
OWJhNTVjNmEzZDA3ZTIyYzhkNy4uMzUwYTc3MzU2NTAzOWE4MTA1YjI2MDc2MzVmOGZmYWYzN2Ix
ZmUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgor
I2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIK
ICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgpAQCAtMzYwLDcgKzM2MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVl
RnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3VG9rZW4pCiAgICAgLy8gc3luY2hyb25vdXNseSByZS1l
bnRlcnMgdGhlIHBhcnNlci4gV2UgZG9uJ3QgY2xlYXIgdGhlIHRva2VuIGltbWVkYXRlbHkKICAg
ICAvLyBmb3IgQ2hhcmFjdGVyIHRva2VucyBiZWNhdXNlIHRoZSBBdG9taWNIVE1MVG9rZW4gYXZv
aWRzIGNvcHlpbmcgdGhlCiAgICAgLy8gY2hhcmFjdGVycyBieSBrZWVwaW5nIGEgcG9pbnRlciB0
byB0aGUgdW5kZXJseWluZyBidWZmZXIgaW4gdGhlCi0gICAgLy8gSFRNTFRva2VuLiBGb3J0dWFu
dGVseSwgQ2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKKyAgICAv
LyBIVE1MVG9rZW4uIEZvcnR1bmF0ZWx5LCBDaGFyYWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVz
ZSB0byByZS1lbnRlcgogICAgIC8vIHRoZSBwYXJzZXIuCiAgICAgLy8KICAgICAvLyBGSVhNRTog
U3RvcCBjbGVhcmluZyB0aGUgcmF3VG9rZW4gb25jZSB3ZSBzdGFydCBydW5uaW5nIHRoZSBwYXJz
ZXIgb2ZmCkBAIC02NzIsOCArNjczLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYg
KHRva2VuLT5uYW1lKCkgPT0gYm9keVRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
LSAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxC
b2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQo
KSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBi
b29sIGZyYWdtZW50T3JUZW1wbGF0ZUNhc2UgPSAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5zZWNv
bmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhh
c09ubHlPbmVFbGVtZW50KCk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgZnJh
Z21lbnRPclRlbXBsYXRlQ2FzZSA9IGZyYWdtZW50T3JUZW1wbGF0ZUNhc2UgfHwgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7CisjZW5kaWYKKyAgICAgICAg
aWYgKGZyYWdtZW50T3JUZW1wbGF0ZUNhc2UpIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKQEAgLTY4Myw3ICs2ODgsNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hU
TUxUb2tlbiogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVzZXRUYWcpIHsK
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5zZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmhhc09ubHlPbmVFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9y
VGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBpZiAoIW1fZnJhbWVzZXRPaykKQEAgLTk0NCwxMyArOTQ5LDQzIEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0
ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVG
b3JtYXR0aW5nRWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4p
OwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAg
bV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5hcHBlbmRNYXJrZXIoKTsKKyAgICBt
X3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOworICAgIHNldEluc2VydGlvbk1vZGUoVGVt
cGxhdGVDb250ZW50c01vZGUpOworfQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rl
bXBsYXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgaWYgKCFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyAgICAgICAgcGFyc2VF
cnJvcih0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV90cmVlLmdlbmVyYXRl
SW1wbGllZEVuZFRhZ3MoKTsKKyAgICBpZiAoIW1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhh
c0xvY2FsTmFtZSh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi0+bmFtZSgpKTsK
KyAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0TWFya2Vy
KCk7CisgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworfQorI2VuZGlmCisK
IGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdy
b3VwKCkKIHsKLSAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgp
KSB7CiAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgLy8gRklY
TUU6IHBhcnNlIGVycm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTIsNyArMTA0Nyw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21p
Y0hUTUxUb2tlbiogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsK
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghcHJvY2Vzc1RhYmxlRW5k
VGFnRm9ySW5UYWJsZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQo
KSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVu
dHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKQEAgLTEwMzksNiArMTA3NCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVt
cGxhdGVUYWcpIHsKKyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAg
SFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFyZCByZWRpcmVj
dGVyKG1fdHJlZSk7CiAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KHRva2VuKTsKQEAgLTEx
NTMsNiArMTE5NCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBtX3RyZWUuaW5zZXJ0U2VsZkNsb3Np
bmdIVE1MRWxlbWVudCh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKCFwcm9j
ZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNzcsNyAr
MTIyNCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICAgICAgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9r
ZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICAgICAgaWYgKCFtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Ym9keVRhZy5sb2NhbE5hbWUoKSkgJiYg
IW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRoZWFkVGFnLmxvY2FsTmFtZSgp
KSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGZvb3RUYWcubG9jYWxO
YW1lKCkpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwor
ICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50
cygpKTsKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0xMjAyLDcgKzEyNDksNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAg
ICAgICAgICB8fCBpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5uYW1lKCkpCiAgICAg
ICAgICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAg
ICAgICAgIGlmICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkgewotICAgICAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQ
YXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9
PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTI4MCw2ICsxMzI3LDEyIEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAg
ICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4t
Pm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3Rh
cnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJG
cmFtZXNldE1vZGU6CkBAIC0xMzU5LDYgKzE0MTIsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgQVNT
RVJUX1VOVVNFRChkaWRQcm9jZXNzLCBkaWRQcm9jZXNzKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFy
dFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVUZXh0TW9kZToKICAgICAgICAgZGVmYXVsdEZv
ckluVGFibGVUZXh0KCk7CkBAIC0xMzY3LDEyICsxNDI2LDUxIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIFRl
eHRNb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQor
ICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAg
cHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gbGlua1RhZworICAgICAgICAg
ICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzY3JpcHRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5u
YW1lKCkgPT0gc3R5bGVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gbWV0YVRh
ZykgeworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IGZyYW1lVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7
CisgICAgICAgIGVsc2UgaWYgKHRva2VuLT5uYW1lKCkgPT0gY29sVGFnKQorICAgICAgICAgICAg
c2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlz
Q2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250
ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRh
YmxlTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRva2VuLT5uYW1lKCkgPT0gdHJUYWcpCisgICAg
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVCb2R5TW9kZSk7CisgICAgICAgIGVsc2Ug
aWYgKGlzVGFibGVDZWxsQ29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgICAgIHNl
dEluc2VydGlvbk1vZGUoSW5Sb3dNb2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKworICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9r
ZW4pOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxT
dGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIHBhcnNlRXJy
b3IodG9rZW4pOworI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpKSB7CisgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vu
ZGlmCiAgICAgbV90cmVlLmluc2VydEhUTUxIdG1sU3RhcnRUYWdJbkJvZHkodG9rZW4pOwogfQog
CkBAIC0xNTQyLDggKzE2NDAsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAgICAgICAgbGFzdCA9IHRydWU7CiAgICAgICAg
ICAgICBpdGVtID0gSFRNTFN0YWNrSXRlbTo6Y3JlYXRlKG1fZnJhZ21lbnRDb250ZXh0LmNvbnRl
eHRFbGVtZW50KCksIEhUTUxTdGFja0l0ZW06Okl0ZW1Gb3JDb250ZXh0RWxlbWVudCk7CiAgICAg
ICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAvLyBGSVhNRTogaHR0cHM6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMDEzMCAoc2hvdWxkIDx0
ZW1wbGF0ZT4gY2xlYXIgdGhlICJpbXBsaWVkIGNvbnRleHQgZWxlbWVudCIuCisgICAgICAgIGlm
IChpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbmRpZgogICAgICAgICBpZiAo
aXRlbS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblNl
bGVjdE1vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRkVGFn
KSB8fCBpdGVtLT5oYXNUYWdOYW1lKHRoVGFnKSkKQEAgLTE1NTUsMTkgKzE2NTcsMjAgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAg
ICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKICAgICAgICAgICAgIHJldHVy
biBzZXRJbnNlcnRpb25Nb2RlKEluQ2FwdGlvbk1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZShjb2xncm91cFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3Jv
dXBNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0YWJsZVRh
ZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CiAg
ICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGhlYWRUYWcpKSB7Ci0gICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAg
ICAgICAgIGlmICghbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKSB8fCBtX2ZyYWdtZW50Q29u
dGV4dC5jb250ZXh0RWxlbWVudCgpICE9IGl0ZW0tPm5vZGUoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkhlYWRNb2RlKTsKKyNlbmRpZgogICAgICAgICAgICAg
cmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGl0ZW0tPmhhc1RhZ05hbWUoYm9keVRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5z
ZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoZnJh
bWVzZXRUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZykpIHsKQEAgLTE1OTgs
NyArMTcwMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJs
ZUJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
YWJsZVRhZykgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICBpZiAo
IW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgp
KSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxO
YW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5s
b2NhbE5hbWUoKSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsK
KyAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygp
KTsKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CkBAIC0xNjI4LDcgKzE3MzEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc0VuZFRhZ0ZvckluUm93KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlm
ICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIGlmICghcHJvY2Vzc1RyRW5k
VGFnRm9ySW5Sb3coKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRz
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVChpbnNl
cnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKQEAgLTE2ODEsNyArMTc4NCwxMSBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHRyVGFnCiAgICAgICAgIHx8
IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICBpZiAoIW1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisjaWYg
RU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRl
eHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2Nv
cGUodGVtcGxhdGVUYWcpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2Vsc2UKICAgICAgICAg
ICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CisjZW5kaWYKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODIxLDYgKzE5MjgsMTIgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhiclRhZyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAgICBpZiAodG9rZW4tPm5h
bWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9r
ZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgcHJvY2Vzc0FueU90aGVy
RW5kVGFnRm9ySW5Cb2R5KHRva2VuKTsKIH0KIApAQCAtMTg0Miw3ICsxOTU1LDcgQEAgYm9vbCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDYXB0aW9uRW5kVGFnRm9ySW5DYXB0aW9uKCkKIGJvb2wg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiB7CiAgICAgaWYgKCFt
X3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0clRhZy5sb2NhbE5hbWUoKSkpIHsK
LSAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBBU1NFUlQoaXNQ
YXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBw
YXJzZSBlcnJvcgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTg1Niw3ICsxOTY5
LDcgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIGJv
b2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGFibGVFbmRUYWdGb3JJblRhYmxlKCkKIHsKICAg
ICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRhYmxlVGFnKSkgewot
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBh
cnNlIGVycm9yLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTkxMyw2ICsyMDI2
LDE1IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tl
biogdG9rZW4pCiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEluSGVhZE1vZGU6
CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTW9kZSk7CisgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGNhc2Ugc2hvdWxkIGJlIGJyb2tlbiBvdXQgaW50byBwcm9jZXNzRW5k
VGFnRm9ySW5IZWFkLAorICAgICAgICAvLyBiZWNhdXNlIG90aGVyIGVuZCB0YWcgY2FzZXMgbm93
IHJlZmVyIHRvIGl0ICgicHJvY2VzcyB0aGUgdG9rZW4gZm9yIHVzaW5nIHRoZSBydWxlcyBvZiB0
aGUgImluIGhlYWQiIGluc2VydGlvbiBtb2RlIikuCisgICAgICAgIC8vIGJ1dCBiZWNhdXNlIHRo
ZSBsb2dpYyBmYWxscyB0aHJvdWdoIHRvIEFmdGVySGVhZE1vZGUsIHRoYXQgZ2V0cyBhIGxpdHRs
ZSBtZXNzeS4KKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBpZiAodG9rZW4tPm5h
bWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFn
KHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAg
IGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgICAgIG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+cG9wSFRNTEhlYWRFbGVtZW50KCk7CiAgICAgICAgICAgICBzZXRJbnNlcnRp
b25Nb2RlKEFmdGVySGVhZE1vZGUpOwpAQCAtMTk3Nyw2ICsyMDk5LDEyIEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
I2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRl
bXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKCFwcm9j
ZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwNTIsNyAr
MjE4MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgIGNhc2UgSW5GcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChp
bnNlcnRpb25Nb2RlKCkgPT0gSW5GcmFtZXNldE1vZGUpOwogICAgICAgICBpZiAodG9rZW4tPm5h
bWUoKSA9PSBmcmFtZXNldFRhZykgewotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9k
ZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAgICAgICAg
Ym9vbCBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyAgPSBtX3RyZWUuY3VycmVudElz
Um9vdE5vZGUoKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAgICAgaWdub3Jl
RnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcgPSBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFy
c2luZyB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsK
KyNlbmRpZgorICAgICAgICAgICAgaWYgKGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5n
KSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNv
bnRlbnRzKCkpOwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTIwNjEsNiArMjE5NCwxMiBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQog
ICAgICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJGcmFtZXNldE1vZGUpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX1RBRykKKyAg
ICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHBy
b2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyRnJhbWVzZXRNb2RlOgog
ICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyRnJhbWVzZXRNb2RlKTsKQEAg
LTIxMTksMTEgKzIyNTgsMzIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFw
cHJvcHJpYXRlbHkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9UQUcpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
blRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwogICAgICAg
ICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZW1wbGF0
ZUNvbnRlbnRzTW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICAvLyBGSVhN
RTogaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0xOTk2Ngor
ICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAg
QVNTRVJUKG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcp
KTsKKyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgICAg
ICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKyAgICAg
ICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTIyMjQsOCArMjM4
NCwxNCBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgfQogICAgIGNhc2UgSW5Cb2R5TW9kZToKICAg
ICBjYXNlIEluQ2FwdGlvbk1vZGU6CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKICAg
ICBjYXNlIEluQ2VsbE1vZGU6IHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09
IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0
aW9uTW9kZSgpID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlKCkgIT0gVGVtcGxhdGVDb250ZW50c01vZGUpOwogICAgICAgICBBU1NF
UlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IElu
Q2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUpOworI2VuZGlmCiAg
ICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJGb3JJbkJvZHkoYnVmZmVyKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQpAQCAtMjM2MCw3ICsyNTI2LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBJbkNl
bGxNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKICAgICBjYXNlIEluUm93TW9kZToKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfVEFHKQorICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9u
TW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAg
ICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2Rl
KCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBp
bnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsKKyNlbmRpZgogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOyAvLyBFbWl0IHBhcnNlIGVycm9yIGJhc2VkIG9uIHdoYXQgZWxlbWVudHMgYXJlIHN0
aWxsIG9wZW4uCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJCb2R5TW9kZToKQEAgLTIz
ODYsNyArMjU1Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkNvbHVtbkdyb3VwTW9kZToKLSAgICAgICAgaWYgKG1f
dHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkg
eworICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKICAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsgLy8gRklY
TUU6IFNob3VsZCB3ZSBicmVhayBoZXJlIGluc3RlYWQgb2YgcmV0dXJuaW5nPwogICAgICAgICB9
CkBAIC0yNDA5LDYgKzI1ODAsMTYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRP
ZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZSht
X29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4p
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyAgICAg
ICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5w
b3AoKTsKKyAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworICAgICAg
ICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBB
U1NFUlQobV90cmVlLmN1cnJlbnROb2RlKCkpOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cG9wQWxsKCk7CkBAIC0yNTEyLDYgKzI2OTMsMTIgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAg
ICAgcHJvY2Vzc0Zha2VFbmRUYWcoc2NyaXB0VGFnKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0g
dGVtcGxhdGVUYWcpIHsKKyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKICAgICBpZiAodG9rZW4tPm5hbWUo
KSA9PSBoZWFkVGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgK
aW5kZXggOGZmMGY1OGIzNDVmZmYzZTQ1NWI1YWZmZWY2NWUxMDJmNmQ1YmZmYS4uZWVkYmI5MmQw
ZjQyZmM1MTVlZDc5MGZlZjIwMTg5NjgxN2FjYTczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTY3LDYgKzY3LDEyIEBAIHB1YmxpYzoKICAg
ICB+SFRNTFRyZWVCdWlsZGVyKCk7CiAKICAgICBib29sIGlzUGFyc2luZ0ZyYWdtZW50KCkgY29u
c3QgeyByZXR1cm4gISFtX2ZyYWdtZW50Q29udGV4dC5mcmFnbWVudCgpOyB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX1RBRykKKyAgICBib29sIGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25z
dCB7IHJldHVybiBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUo
KTsgfQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25z
dCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpIHx8IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVu
dHMoKTsgfQorI2Vsc2UKKyAgICBib29sIGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRl
bnRzKCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5nRnJhZ21lbnQoKTsgfQorI2VuZGlmCiAKICAg
ICB2b2lkIGRldGFjaCgpOwogCkBAIC05Nyw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgICAgICBJ
bkhlYWRNb2RlLAogICAgICAgICBJbkhlYWROb3NjcmlwdE1vZGUsCiAgICAgICAgIEFmdGVySGVh
ZE1vZGUsCisgICAgICAgIFRlbXBsYXRlQ29udGVudHNNb2RlLAogICAgICAgICBJbkJvZHlNb2Rl
LAogICAgICAgICBUZXh0TW9kZSwKICAgICAgICAgSW5UYWJsZU1vZGUsCkBAIC0xOTAsNiArMTk3
LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRl
bHkoKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9UQUcpCisgICAgdm9pZCBwcm9jZXNzVGVtcGxh
dGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qKTsKKyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZUVu
ZFRhZyhBdG9taWNIVE1MVG9rZW4qKTsKKyNlbmRpZgorCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJz
aW5nQ29udGV4dCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZyYWdtZW50UGFyc2lu
Z0NvbnRleHQpOwogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0
YTNhNWY0ZGVmMDdkZjI4NmJlNDE2YWEyOWI1MDI4ZDFkOWRmNTQ4Li45ZTZiMDdjZjlmNzRmNDAw
ODg2NzgyYWZkY2FhNjIyMDY2MWZjNzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBA
IC00NzIsNiArNDcyLDcgQEAKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVj
dG9yIEhUTUxUYWJsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVJvd0VsZW1lbnRD
b25zdHJ1Y3RvciBIVE1MVGFibGVSb3dFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OworICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VEVNUExBVEVfVEFHXSBIVE1MVGVtcGxhdGVFbGVtZW50Q29u
c3RydWN0b3IgSFRNTFRlbXBsYXRlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRleHRBcmVh
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZXh0QXJlYUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhU
TUxUaXRsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGl0bGVFbGVtZW50OwogICAgIGF0dHJpYnV0
ZSBIVE1MVUxpc3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTFVMaXN0RWxlbWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBhN2JmNjM2N2ExNGYxNjlmODBhOGE0OWY2ZTIx
MGMyZjE2NWQ5YjE1Li45MmJjYjMxYjVhNWJkMzE5OTgxZTUwODJiOGE3N2IwZTAwODU4YzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xMTEsNiArMTExLDcgQEAKICAg
ICAgICdFTkFCTEVfU1ZHX0ZPTlRTPTwoZW5hYmxlX3N2ZyknLAogICAgICAgJ0VOQUJMRV9URVhU
X0FVVE9TSVpJTkc9MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQ9MScsCisgICAg
ICAnRU5BQkxFX1RFTVBMQVRFX1RBRz0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfRVZFTlRTPTwo
ZW5hYmxlX3RvdWNoX2V2ZW50cyknLAogICAgICAgJ0VOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkc9
PChlbmFibGVfdG91Y2hfaWNvbl9sb2FkaW5nKScsCiAgICAgICAnRU5BQkxFX1RPVUNIX1NMSURF
Uj0xJywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA3NzdjYjc1OWQ4YWQ4OWY0MWQ3MmRkM2UzNGJkNWI1MTQ4ZTU0MzRhLi5h
MzdhNjAyOWE4MmRiYzczNjNlNzcxODU4NzJmOTA4YTJhYWZkNDEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRl
bnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
aW5uZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQ6IEFkZGVk
LgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBy
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanM6CisgICAgICAgIChNYXJrdXAuX2dldCk6CisgICAg
ICAgIChNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlKToKKwogMjAxMi0xMS0yOSAgU3RlcGhl
biBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0g
UmViYXNlbGluZSBhZnRlciByZW1vdmVkIGRvdWJsZSBkcmF3aW5nIG9mIGNsaXBwZWQgaGFpcmxp
bmVzIGF0IGVkZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJi
NjFjZDhmNTYyZjJiYjA2ZmEwN2ExNTc0YTVhZGQzNjFlMzU5OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUg
bm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMu
bGVuZ3RoIGlzIDEKK1BBU1MgY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCBpcyAwCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xv
bmVOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Ns
b25lTm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4NWMwNDUxZmRmYjU3ZTRhYjdjZmQwZTIzMDE1NWE5
NDczNWZlYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+Q29udGVudHM8L3RlbXBsYXRlPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBub3Qg
Y2xvbmVkIHdoZW4gdGhlIHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xvbmVkJyk7CisKK2lmICghd2lu
ZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVp
cmVzIEVOQUJMRShURU1QTEFURV9UQUcpJyk7CisKK3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOworc2hvdWxkQmUoJ3RlbXBsYXRlLmNvbnRlbnQuY2hp
bGROb2Rlcy5sZW5ndGgnLCAnMScpOwordmFyIGNsb25lID0gdGVtcGxhdGUuY2xvbmVOb2RlKHRy
dWUpOworc2hvdWxkQmUoJ2Nsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgnLCAnMCcpOwor
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ1ZmYxMTUxNWFhODY5ZTVkZmE4NTEzOGFhMWFmY2QyZGVjOTM3ZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29u
dGVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAoraHR0cDovL2Jhei5jb20vYmF0Lmpw
ZyAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vYmF6LmNvbS9iYXQu
anBnLCBtYWluIGRvY3VtZW50IFVSTCBpbmVydENvbnRlbnRzLmh0bWwsIGh0dHAgbWV0aG9kIEdF
VD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vYmF6LmNvbS9iYXQuanBnCitodHRwOi8vYmF6LmNvbS9iYXQuanBnIC0gZGlkRmFp
bExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWluLCBjb2Rl
IC05OTksIGZhaWxpbmcgVVJMICIobnVsbCkiPgorVGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1l
bnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJjZXMg
ZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLgorCitwYXNzIQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250
ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYzA1ZWNiOTA3OTc1ZDUwMTQ0Nzk1MGMzY2NlNzVhMWNl
OTZkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgordmFyIHRlc3RWYWwgPSAxOworCit3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBS
ZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKKyAgICB9CisKKyAgICBpZiAodGVzdFZhbCAhPSAxKQor
ICAgICAgICByZXR1cm47CisKKyAgICB2YXIgdGVtcGxhdGVDb250ZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJykuY29udGVudDsKKyAgICB2YXIgaW1nID0gdGVtcGxhdGVD
b250ZW50LmNoaWxkTm9kZXNbMV07CisgICAgaW1nLnNyYyA9ICJodHRwOi8vYmF6LmNvbS9iYXQu
anBnIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBsYXRlQ29udGVudCk7CisK
KyAgICBpZiAodGVzdFZhbCAhPSAyKQorICAgICAgICByZXR1cm47CisKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJUZXh0ID0gJ3Bhc3MhJzsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgdGVzdCBhc3NlcnRzIHRoYXQgZWxlbWVudHMgd2l0
aGluIHRlbXBsYXRlIGNvbnRlbnRzIGFyZSAiaW5lcnQiLCBlLmcuIHJlc291cmNlcyBkbyBub3Qg
ZmV0Y2gsIHNjcmlwdCBkb2VzIG5vdCBydW4uPC9wPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+
PHNjcmlwdD53aW5kb3cudGVzdFZhbCA9IDI7PC9zY3JpcHQ+PGltZyBzcmM9Imh0dHA6Ly9mb28u
Y29tL2Jhci5qcGciPgorPC90ZW1wbGF0ZT4KKzxkaXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRN
TC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY5NzI3MDg3YTNlNjcxMjMwMTJmODZiZTdlNGJl
YzgyMzI1ODY2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Ro
ZSB0ZXN0IGFzc2VydHMgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgc2VyaWFsaXplZCB3aXRo
IGlubmVySFRNTCBhbmQgaXRzIGNoaWxkcmVuIGFyZSBpZ25vcmVkLgorCis8ZGl2PkNvbnRlbnRz
IDEKKzx0ZW1wbGF0ZT5Db250ZW50cyAyPC90ZW1wbGF0ZT4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzc2MmNhM2JlZjFkM2Q4Mjc5ZmFiMTkxNzg5OTJjMmM1ZjYxYzNjNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
aW5uZXJIVE1MLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgdmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyk7Cisg
ICAgdGVtcGxhdGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKS5p
bm5lclRleHQgPSAnc2hvdWxkIG5vdCBzZXJpYWxpemUnOworICAgIHZhciBpbm5lclRlbXBsYXRl
ID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLmZpcnN0RWxlbWVudENoaWxkOworICAgIGlu
bmVyVGVtcGxhdGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKS5p
bm5lclRleHQgPSAnc2hvdWxkIG5vdCBzZXJpYWxpemUgZWl0aGVyJzsKKworICAgIHRlbXBsYXRl
LmlubmVySFRNTCA9IHRlbXBsYXRlLmlubmVySFRNTDsKKyAgICBpZiAodGVtcGxhdGUuY2hpbGRO
b2Rlcy5sZW5ndGggIT0gMSkgLy8gVGhlIG9ubHkgY2hpbGQgc2hvdWxkIGJlIHRoZSBzcGFuIHRo
YXQgd2FzIGFkZGVkIGFib3ZlLgorICAgICAgICByZXR1cm47CisKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJUZXh0ID0gdGVtcGxhdGUuaW5uZXJIVE1MOworICAg
IHZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpOworICAg
IHRlbXBsYXRlMi5pbm5lckhUTUwgPSAnPHRlbXBsYXRlPjwvdGVtcGxhdGU+JzsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUg
Y29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBh
cmUgaWdub3JlZC48L3A+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48ZGl2PkNvbnRlbnRzIDEK
KyAgPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+PC90ZW1wbGF0ZT4KKzxk
aXYgaWQ9Im91dHB1dCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNzAyYWVhZWUzOTBmODE2ZTZhNTFlOWNiMmVjMjE0MmMxNzY3Y2U2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRv
Y3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUZXN0IEhUTUxUZW1wbGF0ZUVs
ZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHRlbXBsYXRlLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxh
dGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyB0cnVlCitQ
QVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRl
bXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29udGVu
dE93bmVyRG9jdW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGlzIHRlbXBs
YXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5jb250ZW50Lm93bmVy
RG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBpbm5lclRlbXBs
YXRlLm93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyB0
ZW1wbGF0ZTIub3duZXJEb2N1bWVudCBpcyBkb2N1bWVudAorUEFTUyB0ZW1wbGF0ZTIuY29udGVu
dC5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgZGYu
b3duZXJEb2N1bWVudCBpcyBkb2N1bWVudAorUEFTUyBzcGFuLm93bmVyRG9jdW1lbnQgaXMgZG9j
dW1lbnQKK1BBU1MgZGYub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50CitQQVNTIHNwYW4ub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50CitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNlcHRp
b24gMTcuCitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
dGV4dCIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250ZW50ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3Qo
ZGl2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0
aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZTMub3duZXJEb2N1bWVudCBpcyBkb2N1bWVudAorUEFTUyB0
ZW1wbGF0ZTMuY29udGVudC5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQKK1BBU1MgdGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50IGlz
IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZkOWU0ZjhkMGVmOTg4ODQwZTUzYTMzN2UwZDc0NTFiODNlYmE3ZmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1l
bnQuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0i
dGVtcGxhdGUiPjxzcGFuPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc3Bhbj48L3RlbXBsYXRlPgor
PHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZTIiPjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPgorPHRlbXBs
YXRlIGlkPSJ0ZW1wbGF0ZTMiPjxzdmc+PC9zdmc+PC90ZW1wbGF0ZT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
ZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1l
bnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0ZXN0RmFpbGVk
KCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX1RBRyknKTsKKwordmFyIHRlbXBs
YXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyk7CitzaG91bGRCZSgndGVt
cGxhdGUub3duZXJEb2N1bWVudCcsICdkb2N1bWVudCcpOworCit2YXIgdGVtcGxhdGVDb250ZW50
T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3VsZEJl
VHJ1ZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVu
dCcpOworc2hvdWxkTm90QmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1l
bnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVu
dCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisKK3ZhciBpbm5lclRlbXBsYXRl
ID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CitzaG91bGRCZSgnaW5u
ZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQn
KTsKK3Nob3VsZEJlKCdpbm5lclRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudCcsICd0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZVRydWUoJ2lubmVyVGVtcGxhdGUu
b3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOworCit2YXIgdGVtcGxhdGUy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ3RlbXBs
YXRlMi5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGUyLmNv
bnRlbnQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisK
K3ZhciBkZiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKK3ZhciBzcGFuID0g
ZGYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKK3Nob3VsZEJl
KCdkZi5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91bGRCZSgnc3Bhbi5vd25lckRv
Y3VtZW50JywgJ2RvY3VtZW50Jyk7CisKK3RlbXBsYXRlLmNvbnRlbnQgPSBkZjsKK3Nob3VsZEJl
KCdkZi5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKK3No
b3VsZEJlKCdzcGFuLm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVu
dCcpOworCitzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKTsnKTsKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsnKTsKK2lmICh3aW5kb3cuV2ViS2l0U2hhZG93Um9v
dCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBz
aG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdikn
KTsKK30KKwordmFyIHRlbXBsYXRlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0
ZTInKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZTMub3duZXJEb2N1bWVudCcsICdkb2N1bWVudCcpOwor
c2hvdWxkQmUoJ3RlbXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250
ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlMy5jb250ZW50LmZpcnN0Q2hp
bGQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJmNjliZmZkOTFkMWVmOTdmNjFkZjZlZTNhNjk3MDA5Y2NhMDc1YjcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBI
VE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudCBpbiBYSFRNTCBEb2N1bWVu
dAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudCBpbnN0YW5j
ZW9mIEhUTUxEb2N1bWVudCBpcyBmYWxzZQorUEFTUyBkb2N1bWVudCBpcyBub3QgdGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlu
c3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYTdiNGJhOGZmNzVkODc5Y2QxMDIwMmYxYjg1NmQ1YmQ1OGYxNzA4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVu
dC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25l
ckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50Jyk7CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0
ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1Q
TEFURV9UQUcpJyk7CisKK3Nob3VsZEJlRmFsc2UoJ2RvY3VtZW50IGluc3RhbmNlb2YgSFRNTERv
Y3VtZW50Jyk7Cit2YXIgdGVtcGxhdGU0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxh
dGUnKTsKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGU0LmNvbnRl
bnQub3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRl
bnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZUZhbHNlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRh
dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWJhZTgxZWZkZGZkYzRkOGY4Njc3MWM2MmM0YTEzOTcyNDAyYmE4YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKQEAgLTAs
MCArMSw4NDMgQEAKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8i
CisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVt
cGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbD48dGVtcGxhdGU+SGVs
bG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAi
SGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rpdj48
L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+
PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgIDxzcGFu
PgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
KworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0
YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICA8dGFi
bGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT48
L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAiICAgIgorfCAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wg
ICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2Rh
dGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJs
ZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1w
bGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEK
Kzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0
ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0
ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVt
cGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvc2Vs
ZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgIDxib2R5
PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4K
K3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKwor
I2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9u
Pjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxz
ZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8
ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0
ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhl
YWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwv
dGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0YQorPGJv
ZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxl
Pjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+
Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3Rl
bXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAg
PHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+
PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRy
PgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRl
Pjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJs
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
ICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0
ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxj
b2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgor
fCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICAgICA8Y29sPgorCisjZGF0YQorPGZyYW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+PC9m
cmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxhdGU+
PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAg
PGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0Pjxz
cGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAg
ICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+
PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48L2Jv
ZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0gMTs8L3NjcmlwdD48dGQ+PC90ZD48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAgICAgICAgPHRkPgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgor
fCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRkPjwv
dGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4K
K3wgICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJv
ZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5
Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48
Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+
CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48
L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0
cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PC90
YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJv
ZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+PC90
Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHRi
b2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjwvdGFibGU+PHRi
b2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGJvZHk+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48dHI+PC90cj48L2Rpdj48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxlbT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGVtPgor
fCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50
LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxz
dHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzdHlsZT4KK3wgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG1ldGE+Cit8
ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48
dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxj
b2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8Ym9keSBh
PWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkgYz1kPjxkaXY+PC9kaXY+PC9ib2R5PjwvdGVt
cGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQor
PGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1sIGI9Yz48c3Bhbj48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8
ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxh
dGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48L2NvbD48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAg
ICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1l
PjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAg
ICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90
cj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0
OWIzZTkxN2FjNGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxzY3JpcHQ+Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQn
LAorXQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3Vw
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3Njcmlw
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGI5ZGYzNjFkZjE2NzcxOTg5MjcwMDZjNmIzZDBiNzY2OGFl
OGVkNjIuLmQzODI0ODk2NDc5OTk1ZDYxNmI5ZGY3NTUyYTlhMWVjNDI0ZmQ1MTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMTAsNiArMzEwLDEwIEBA
IGZhc3QvdGV4dC91bmljb2RlLXZhcmlhdGlvbi1zZWxlY3Rvci5odG1sCiBmYXN0L2Zvcm1zL2Zp
bGUvaW5wdXQtZmlsZS1lbnRyaWVzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKIAorIyBFTkFCTEUo
VEVNUExBVEVfVEFHKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQK
K2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgVHJhbnNwYXJlbnQgaW1hZ2UgYmVpbmcg
cHJvZHVjZWQKIGZhc3QvZnJhbWVzL3RyYW5zcGFyZW50LXNjcm9sbGJhci5odG1sCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDAxNjk0MmYwODM2NDJm
ZmQ2MTY4YWZkZTI3NGE0MTRkYmRkZmU0Zi4uNDZhNzgwNDdhNjNjNmQ1ZjNmOGRlZTZiZjQ4YzFh
YzgxM2Q5NzY3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTc3LDYgKzc3LDEwIEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZGVmYXVsdC1jb250
ZW50LXR5cGUtZGFzaGJvYXJkLmh0bWwgWyBXb250Rml4IF0KICMgRU5BQkxFKERSQUdHQUJMRV9S
RUdJT04pIGlzIGRpc2FibGVkCiBmYXN0L2Nzcy9kcmFnZ2FibGUtcmVnaW9uLXBhcnNlci5odG1s
IFsgV29udEZpeCBdCiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMgZGlzYWJsZWQuCit3ZWJr
aXQub3JnL2IvMTAzNTcgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudCBbIFNraXAgXQord2Vi
a2l0Lm9yZy9iLzEwMzU3IGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sIFsgU2tpcCBdCisKICMg
VGhlc2UgdGVzdCAtYXBwbGUtIGFuZCAta2h0bWwtIHByZWZpeGVkIENTUyBwcm9wZXJ0aWVzLCB3
aGljaCB3ZSBkb24ndCBzdXBwb3J0LgogaW5zcGVjdG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMu
aHRtbCBbIFdvbnRGaXggXQogZmFzdC9jc3MvYXBwbGUtcHJlZml4Lmh0bWwgWyBXb250Rml4IF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggY2JiZGQzYmVl
MTczZGMxYTdkZDk5ODM0ZThlZGU0Yjc2Y2ZhMjY3MC4uMTE1ZjkwYWNlMjBlYjNmYjdmOWI4YWEz
NzY3NmNkZDc2N2Y1ZTI3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTQzMiw2ICs0MzIsMTAgQEAgZmFzdC9kb20vc2hhZG93CiBlZGl0aW5nL3NoYWRv
dwogaW5zcGVjdG9yL2VsZW1lbnRzL3VwZGF0ZS1zaGFkb3dkb20uaHRtbAogCisjIEVOQUJMRShU
RU1QTEFURV9UQUcpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAor
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBKU0MgZG9lcyBub3Qgc3VwcG9ydCBzZXRJ
c29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4gKGh0dHA6Ly93ZWJraXQub3JnL2IvNjE1NDApCiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMyZmMwMDYwZjYy
MDQ5ZGU0MzY4ZmNlMDAzZDdjM2RkN2M5ZWM2ZGIuLjcxYmFhZjNkMmQ5NmViZDliZDI0NTlhYzc0
ZTQ4MTdmMDliOWJkNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTg4LDYgKzE4OCwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGZhc3QvZnJhbWVzL2RldGFj
aGVkLXNoYWRvdy1mcmFtZS5odG1sCiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2Rv
bS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMgZGlzYWJsZWQuCitmYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorCiAjIEZhaWwg
dW50aWwgU1VCUElYRUxfTEFZT1VUIGlzIGVuYWJsZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1NTMyCiBmYXN0L3N1Yi1waXhlbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NmRlYjIxZDcwNjk2MDc1MjllMjdkYTc5
NGRjM2YyNWNkMjRkMWM5Li5kOTNjYWUyMjcyNWE0MmZmY2NiMGI2NTNjMjcwYzUyNjM4MTMzOTQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUyNiw2
ICsxNTI2LDEwIEBAIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy5odG1sCiBlZGl0
aW5nL3NoYWRvdwogZmFzdC9kb20vc2hhZG93CiAKKyMgRU5BQkxFKFRFTVBMQVRFX1RBRykgaXMg
ZGlzYWJsZWQuCitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVt
cGxhdGUuaHRtbAorCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRw
Oi8vd2Via2l0Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzEzM2I4NWZmMWIyODcwMmVk
MWE0ZDUzYjM5NGYzNmExMmI0Nzk3Yy4uMDY4OWI1NjRiNDk1ZmQ5NTQzNDhlZmMzZjVhMmY3MDc4
NjA3NjcxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMDYxLDYgKzIwNjEsMTAgQEAgZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1p
bi1mbG93Lmh0bWwKIGVkaXRpbmcvc2hhZG93CiBmYXN0L2RvbS9zaGFkb3cKIAorIyBFTkFCTEUo
VEVNUExBVEVfVEFHKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQK
K2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3Qg
eWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKaW5kZXggNTNhMDAxZmVmZGUyODgx
YWVmNjFjZDA2OTAyNzJmYzZlMTViMWU5MS4uYzdmZGYxN2YyMGE0MjljMTBjNmQ4YjNhMTk2ZGZi
OTA5NDQ2MmIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFy
a3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAt
MjIwLDE2ICsyMjAsMjQgQEAgTWFya3VwLl9nZXQgPSBmdW5jdGlvbihub2RlLCBkZXB0aCkKICAg
ICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaWYgKG5vZGUubm9k
ZU5hbWUgPT0gIiNzaGFkb3ctcm9vdCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+
IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHN0ciArPSAiI2RvY3VtZW50LWZyYWdtZW50IjsK
ICAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0
aDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNl
bGVjdGlvbk1hcmtlcihub2RlLCBpKTsKLSAgICAgICAgaWYgKHNlbGVjdGlvbikKLSAgICAgICAg
ICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOwotCi0gICAg
ICAgIHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7Cisg
ICAgCisgICAgCisgICAgLy8gSFRNTCBUZW1wbGF0ZSBlbGVtZW50cyBzZXJpYWxpemUgdGhlaXIg
Y29udGVudCBEb2N1bWVudEZyYWdtZW50LCBhbmQgTk9UIHRoZWlyIGNoaWxkcmVuLgorICAgIGlm
IChub2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAmJiBu
b2RlLnRhZ05hbWUgPT0gJ1RFTVBMQVRFJykgeworICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQo
bm9kZS5jb250ZW50LCBkZXB0aCArIDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAodmFy
IGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAg
ICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2Rl
LCBpKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24pCisgICAgICAgICAgICAgICAgc3RyICs9
IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247CisgICAgCisgICAgICAgICAg
ICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAg
ICAgICB9CiAgICAgfQotCisgICAgCiAgICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElm
UG9zc2libGUobm9kZSwgZGVwdGgpOwogICAgIAogICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAu
X2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKQEAgLTI4NCw3ICsyOTIsNyBAQCBNYXJrdXAu
X05BTUVTUEFDRV9VUklfTUFQID0gewogCiBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlID0g
ZnVuY3Rpb24obm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldFNlbGVjdGlvbigpOworICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVs
dFZpZXcgPyBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCkgOiBu
dWxsOwogfQogCiBNYXJrdXAuX1NFTEVDVElPTl9GT0NVUyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4n
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176870</attachid>
            <date>2012-11-29 17:55:45 -0800</date>
            <delta_ts>2012-11-30 10:32:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121129175318.patch</filename>
            <type>text/plain</type>
            <size>98366</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyZDQ0ZTU3YTk3OTY5
ZmMxYTVkMWE3ZWY4NDUxYmRkNTQ3NGE4Zi4uMTMzZGQxNGViZGFiYjcyOTk3NDcyZDExNzFlYTcz
YjQ5MjE4MmFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgQXZvaWQgcGFpbnRpbmcgbG90cyBvZiBzbWFsbCByZWN0cyBpbiBXZWJMYXll
ciBwYWludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxZWY5YmJlYTliYjI2Y2Rh
MTc2NTA5OThlYjU5OTZkODZlY2UwYzgwLi5lZTA1OGVkZGVkYmM3MTM5Yzg5MDkxNzllNGQ2Yzlj
MDdkNWVlZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTExLTEzICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSW1wbGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHVybmluZyBvbiBIVE1MVGVtcGxhdGVFbGVtZW50
IGZvciBjaHJvbWl1bSBwb3J0LgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0x
MS0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiNDBi
NGFkNWZkMzA3ZGQ3NTM3MjE5MDc0MDNkNGFmNzNiNmM1NjMxLi5jMTUyYWZmZjUzZTYwMDNmZTU0
YWFiN2Y4MGUzZjU1NmYzMzRkMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg4LDYgKzQ4
OCw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5p
ZGwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5pZGwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCiAgICAg
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5p
ZGwKICAgICBodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsCkBAIC0xNDMwLDYgKzE0MzEsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAogICAg
IGh0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCiAgICAgaHRtbC9IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCiAgICAgaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggZTUzNmZkMTNhOTRhN2QwYTVlNDViNzU3OTlmYjhkY2Q2NjYyMDRh
MS4uN2JhYTVmODc4NmM2ZDI4MDZlMTQ1NzM2YTdjMjY4Nzk5N2VhNWFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNDgsNiArMzQ4LDcgQEAgQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggMDY3YzcxYzVkMDgzNDFiZmZkMTU5ODdiMDI2YzA4MjRlZWEyMjRiNC4u
YzVjMjdkNjM2ZTYyYWRkOWIyY2YwM2Q2NTcxZmEyZWExZDdmZTQxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC00MzEsNiArNDMxLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRhYmxlUm93RWxlbWVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRlbXBsYXRlRWxlbWVudC5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MVGl0bGVFbGVtZW50LmNwcCBcCkBAIC0xNDg5LDYgKzE0OTEsNyBAQCBkb21fYmlu
ZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwgXAog
CSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCBcCiAJJChXZWJD
b3JlKS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsIFwKQEAgLTM0MzUsNiArMzQzOCw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dzQ29s
bGVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDJkNDBhZDBiZDI2NWQ4Nzc1Y2FmNmZjODhk
NTUzM2Q0MTZlMzE3OTIuLjFkNGQ2YjY1ZTc4ZmFkY2NjYmVjOTc3MmJkOTcyYzNiYjc2OTQxODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQpAQCAtNjU4LDYgKzY1OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwv
SFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rp
b24uY3BwIFwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisgICAgaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcCBcCiAgICAgaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgXAogICAgIGh0
bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAgXApAQCAtMTgyMiw2ICsxODIzLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24uaCBcCiAgICAgaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwK
KyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBcCiAgICAg
aHRtbC9IVE1MVGl0bGVFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ2MjVjMWVmYTFm
OWJhNTkxMmZmOTcxODQzNzNiMGFhMjAyNmI4YzMuLjU3ZWY3MzM1NmQ4M2VmNDA2NjQwMjA5MjRk
ZDcyZjUwMDJlMDRjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExMjksNiArMTEyOSw3IEBACiAg
ICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAn
aHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwv
SFRNTFVMaXN0RWxlbWVudC5pZGwnLApAQCAtNDE4MSw2ICs0MTgyLDggQEAKICAgICAgICAgICAg
ICdodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5j
cHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0
bGVFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDkwNmJhMTYxMTYyYTBjOGZjZGM3N2I1YTZkOGMzYjhkNWVjMjhjZWEuLjc5
MGZmMmVjZDMyNjY1MWIwNjE2MzdiODNhZWZjNjE5MmZlYmZiY2YgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC05NjIyLDcgKzk2MjIsNyBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRlbXBsYXRlRWxl
bWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKQEAgLTk2NzQsOSArOTY3NCw2NSBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxUZXh0QXJl
YUVsZW1lbnQuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGVtcGxhdGVFbGVtZW50Lmgi
CiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICBS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKKyAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAg
ICAgIE5hbWU9IkRlYnVnfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8
VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAg
ICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
PgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAg
ICBOYW1lPSJSZWxlYXNlfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8
VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAg
ICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
PgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAg
ICBOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAg
ICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNv
bmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAg
ICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorICAgICAgICAg
ICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAg
PgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAg
ICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJh
dGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisgICAgICAg
ICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAg
ICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1
cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisgICAg
ICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAg
ICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAg
ICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAg
ICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICA8L0ZpbGU+CisgICAg
ICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxUZXh0
QXJlYUVsZW1lbnQuaCIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICA8L0ZpbGU+CiAJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxUaXRsZUVsZW1lbnQuY3BwIgogCQkJ
CT4KQEAgLTYzNDYyLDcgKzYzNTE4LDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAJCQkJPgogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTYzNTE0LDkg
KzYzNTcwLDY1IEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogCQkJCT4KIAkJ
CTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRo
PSIuLlxodG1sXEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgorICAgICAgICAgICAgICAgID4KKyAg
ICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFt
ZT0iRGVidWd8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisg
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAg
ICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAg
ICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlJlbGVhc2V8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisg
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAg
ICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAg
ICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9
IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAg
ICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJh
dGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAgICAgICAgICAg
ICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAg
ICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKyAgICAgICAgICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAg
ICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAg
PC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24K
KyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKyAgICAgICAgICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4K
KyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDwvRmlsZT4KKyAgICAgICAgICAg
IDxGaWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZXh0QXJl
YUVsZW1lbnQuaCIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDg0Mjc4OGE4ZTJiZjEyYWU2YTQ1ZGY2ODI4MDYxYTAyZmJhMjk5
ZDIuLjNkZjdlZjdhZDA1NDU0OWE3M2JlZWViMTM3NDRmNDExYjU3YjI4OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDYy
LDYgKzEzNDYyLDkgQEAKIAkJRDZFMjc2QUUxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlENkU1MjhBMTE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkU1
MjhBMjE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkIxNjY2REY3QTAw
M0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQ2RUZDMEJDMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxUZW1wbGF0ZUVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkQxNjY2REY3QTAwM0Qy
OTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhU
TUxUZW1wbGF0ZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkZE
QUVGMjE0OUMwNjE5MDAzN0IxRTEgLyogSGlzdG9ncmFtU3VwcG9ydC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXN0b2dyYW1TdXBwb3J0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUyIC8qIFN0YXRzQ291
bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGF0c0NvdW50
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkZEQUVGMjE0OUMwNjE5MDAz
N0IxRTMgLyogTWVtb3J5VXNhZ2VTdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lbW9yeVVzYWdlU3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzgwOCw2ICsxNzgxMSw5IEBACiAJCQkJQTg3MURCMTcwQTE1MEJENjAwQjEy
QTY4IC8qIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggKi8sCiAJCQkJODU1NTQyNUMwQUE0OEIx
RTAwQkE4OUYyIC8qIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCAqLywKIAkJCQk1MTlGRTBB
MjBEQUQ0NDZFMDBBMDhGMjEgLyogSFRNTFRhZ05hbWVzLmluICovLAorCQkJCUQ2RUZDMEJCMTY2
NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCAqLywKKwkJCQlENkVGQzBC
QzE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5oICovLAorCQkJCUQ2RUZD
MEJEMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmlkbCAqLywKIAkJCQlB
ODEzNjlCQjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgKi8sCiAJ
CQkJQTgxMzY5QkEwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaCAqLywK
IAkJCQlBODBFN0UxNjBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTFRleHRBcmVhRWxlbWVudC5pZGwg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvaHRtbC5jc3MKaW5kZXggNGExZTMzNTY4Y2IxNTdhNzIzZjBjN2FmYTY5N2MzNDA5
MjY2NjE2OC4uY2ZlODcwNTNkYzcyMGE0ZTM0NzkyNWFlNjk5MzkyNTgyMzljYTUxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9odG1sLmNzcwpAQCAtMTI2Miw2ICsxMjYyLDEwIEBAIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWls
cy1tYXJrZXIgewogICAgIG1hcmdpbi1yaWdodDogMC40ZW07CiB9CiAKK3RlbXBsYXRlIHsKKyAg
ICBkaXNwbGF5OiBub25lCit9CisKIGJkaSwgb3V0cHV0IHsKICAgICB1bmljb2RlLWJpZGk6IC13
ZWJraXQtaXNvbGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBm
M2M2YWJkMzhhNzc1ODY4OTJhMmYxNWQ5ZDNjZjZkMWYwYjQxMWNhLi4zZjQyNWM1NjY0ZjU1OGM0
MzNmYmNhYjEwYjJjMDc5MGRhZDM0MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCkBAIC0yOTMsNiArMjkzLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJbnNlcnRC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAgICBBU1NF
UlQobmV3Q2hpbGQpOwogICAgIEFTU0VSVChuZXh0Q2hpbGQpOwogICAgIEFTU0VSVChuZXh0Q2hp
bGQtPnBhcmVudE5vZGUoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKSA9PSBuZXdD
aGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7CiAgICAgY29sbGVj
dFRhcmdldE5vZGVzKG5ld0NoaWxkLmdldCgpLCB0YXJnZXRzKTsKQEAgLTY3NCw2ICs2NzUsNyBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4g
bmV3Q2hpbGQpCiB7CiAgICAgQVNTRVJUKG5ld0NoaWxkKTsKICAgICBBU1NFUlQoIW5ld0NoaWxk
LT5wYXJlbnROb2RlKCkpOyAvLyBVc2UgYXBwZW5kQ2hpbGQgaWYgeW91IG5lZWQgdG8gaGFuZGxl
IHJlcGFyZW50aW5nIChhbmQgd2FudCBET00gbXV0YXRpb24gZXZlbnRzKS4KKyAgICBBU1NFUlQo
ZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiBsYXN0ID0g
bV9sYXN0Q2hpbGQ7CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZGI3NGQ1NWRl
NWMxMGYwNmQ1NTIxNjEzMzBhY2Y2NzI1N2UyMTliMi4uMzM1Y2FhYTBiMGFhODQ2Mzg4NDFjYjIy
MGIzOWZjMGNlYjhiNzAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01OTM1LDQgKzU5
MzUsMjIgQEAgTG9jYWxlJiBEb2N1bWVudDo6Z2V0Q2FjaGVkTG9jYWxlKGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxlKQogICAgIHJldHVybiAqKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogfQog
CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCitEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KCkKK3sKKyAgICAvLyBJZiBET0NVTUVOVCBkb2VzIG5v
dCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCwgTGV0IFRFTVBMQVRFIENPTlRFTlRTIE9XTkVSIGJl
IERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIW1fZnJhbWUpCisgICAg
ICAgIHJldHVybiB0aGlzOworCisgICAgaWYgKCFtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3Vt
ZW50KSB7CisgICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQorICAgICAgICAgICAgbV90ZW1w
bGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKDAsIGJsYW5r
VVJMKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3RlbXBsYXRlQ29udGVudHNPd25l
ckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFua1VSTCgpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudC5nZXQoKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDRlMjY3
MTYxMTIyMGQzZmJmNzcyMGEwOGRjNGQ3OTUzZGExZTUwZWUuLjZhYjg5MWY2NWYyMjgwNDRkZjdk
NzI2YmUzMDE2NTczMDdiYWU4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTcxLDYgKzEx
NzEsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYgdG9w
TGF5ZXJFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGF5ZXJFbGVtZW50czsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBEb2N1bWVudCogdGVtcGxh
dGVDb250ZW50c093bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9j
dW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAK
QEAgLTE1MjMsNiArMTUyNywxMCBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0
b21pY1N0cmluZywgT3duUHRyPExvY2FsZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXA7
CiAgICAgTG9jYWxlSWRlbnRpZmllclRvTG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNpZiBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVD
b250ZW50c093bmVyRG9jdW1lbnQ7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50
Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGJlYjgzMmY3ZjUwMDliNmFjNjEzYzMz
Y2Q4YjQ3MWVhMjI0NzJlNjIuLmM3NjZmZmYwOWVjYjA2MTkzM2EzM2NhMjhhODU3ODA4MzFhYWI4
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKQEAgLTE0MSw3ICsxNDIsMTIgQEAgdm9pZCBN
YXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlKiB0YXJn
ZXROb2RlLCBOb2RlKiBub2QKICAgICAgICAgYXBwZW5kU3RhcnRUYWcodGFyZ2V0Tm9kZSwgJm5h
bWVzcGFjZUhhc2gpOwogCiAgICAgaWYgKCEodGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1M
RG9jdW1lbnQoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyh0YXJnZXROb2RlKSkpIHsKLSAg
ICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJy
ZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKKyNpZiBFTkFCTEUoVEVNUExB
VEVfRUxFTUVOVCkKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUpLT5jb250
ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNlbHNlCisg
ICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZW5kaWYK
KyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmco
KSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwgbm9k
ZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tpcCk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDg3YjdlMjYyOTVmYjc0
ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkxMWQuLmJjZDRmMWRlM2ExNWM3ZjMzNjI0M2I2Y2JlZmNm
Y2UxN2U0OTE2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00NCw2ICs0
NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIu
aCIKQEAgLTM0Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhUTUwoKSBj
b25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1s
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0aGlzLCBB
bGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZy
YWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgIGlmIChSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1M
KGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKSB7CisgICAgICAgIENvbnRh
aW5lck5vZGUqIGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
CisgICAgICAgIGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgY29u
dGFpbmVyID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMpLT5jb250ZW50KCk7CisjZW5kaWYK
KyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRhaW5lciwgZnJhZ21lbnQu
cmVsZWFzZSgpLCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBtZXJnZVdpdGhOZXh0VGV4
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggZDUxN2M4NDU4Njg3
ZjgyOTEwNGU1MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNmNDdjMDBiODUxOTcyMDRhMmNkYjU4
ZDg2NDBlZDk5ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJ
bk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJI
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQu
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4NWExZTYxYTVhOTU4MmIx
M2U2MzQyODljZGM1M2EyMmM3NmIzZTAxLi5iODZhMjQ3MmVlNGY1ZTVkYWE1ZmE1YWE1YjcyNWFl
M2Y2NzkyMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTI0LDYgKzEy
NCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkgaW50ZXJm
YWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFi
bGVDZWxsRWxlbWVudAordGVtcGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1MVGVtcGxhdGVFbGVtZW50
LCBjb25kaXRpb25hbD1URU1QTEFURV9FTEVNRU5UCiB0ZXh0YXJlYSBpbnRlcmZhY2VOYW1lPUhU
TUxUZXh0QXJlYUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogdGZvb3QgaW50
ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGggaW50ZXJmYWNlTmFtZT1IVE1M
VGFibGVDZWxsRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjk1ODZiZDk5ZmI0NGM4YzhjNTIwZjllOWQ2YTc5OWM2MGM3MWEw
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQorCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgor
CisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAibWFya3VwLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworaW5s
aW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpCit7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6On5IVE1MVGVt
cGxhdGVFbGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50PiBI
VE1MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRlbXBs
YXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZyYWdtZW50KiBI
VE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29udGVu
dCkKKyAgICAgICAgbV9jb250ZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG93bmVyRG9j
dW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKSk7CisKKyAgICByZXR1cm4g
bV9jb250ZW50LmdldCgpOworfQorCisKKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVn
cy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTI3IChwcmV2ZW50IERPTSBoaWVyYXJjaHkgY3lj
bGVzKS4KKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcu
Y2dpP2lkPTIwMTI5IChleHRlbmRlZCBhZG9wdE5vZGUgdG8gY29uc2lkZXIgdGVtcGxhdGUuY29u
dGVudCkuCit2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQoUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBwcnBDb250ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY29udGVudCA9IHBycENvbnRlbnQ7CisKKyAgICBpZiAo
IWNvbnRlbnQgfHwgY29udGVudC0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgZWMgPSBUWVBF
X01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2NvbnRl
bnQuZ2V0KCkgPT0gY29udGVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNv
bnRlbnQtPm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVu
dHNPd25lckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250
ZW50c093bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJ
T04pOworCisgICAgbV9jb250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBOREVCVUcKK2Nv
bnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2Rl
KiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYm
IG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVmOTEz
ZTQ0YWI2YjhmNjYzNTllZTA4OTk4NzI1ZTc0NWU5NTk2NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFRlbXBsYXRlRWxlbWVu
dF9oCisKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5IVE1MVGVt
cGxhdGVFbGVtZW50KCk7CisKKyAgICBEb2N1bWVudEZyYWdtZW50KiBjb250ZW50KCkgY29uc3Q7
CisKKyAgICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgRXhj
ZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBtX2NvbnRlbnQ7Cit9OworCitjb25zdCBIVE1MVGVtcGxhdGVFbGVtZW50KiB0
b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9kZSopOworCitpbmxpbmUgSFRNTFRlbXBsYXRl
RWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudCo+KHRvSFRNTFRlbXBsYXRlRWxlbWVudChz
dGF0aWNfY2FzdDxjb25zdCBOb2RlKj4obm9kZSkpKTsKK30KKworI2lmZGVmIE5ERUJVRworCisv
LyBUaGUgZGVidWcgdmVyc2lvbiBvZiB0aGlzLCB3aXRoIGFzc2VydGlvbnMsIGlzIG5vdCBpbmxp
bmVkLgoraW5saW5lIGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxl
bWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBI
VE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7Cit9CisjZW5kaWYgLy8gTkRFQlVHCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQor
CisjZW5kaWYgLy8gSFRNTFRlbXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTU4MzZkOTc4MWZkNmIzZTZmYzZl
NjFmYzdmNTRhMDBjN2QwMmJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1URU1QTEFURV9FTEVNRU5UCitdIGludGVyZmFjZSBIVE1MVGVtcGxhdGVFbGVtZW50IDog
SFRNTEVsZW1lbnQgeworICAgIGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50IGNvbnRlbnQgc2V0
dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKK307CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA5YzE4MmJhMjM0M2I0
ZTUxMzlhMzIwMjI2MDgxNGVkMDQ5NTkxOWQ4Li42MjI2OWRlY2I3NWY1MThjY2M4OTE0MzJkOWQw
ZTM3MjM0Yjk3OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSFRNTFBh
cnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNzcsNiArNzgsMTEgQEAgc3RhdGljIGlubGluZSBib29s
IGlzQWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIAogc3RhdGljIGlubGluZSB2
b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIHsKKyNpZiBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodGFzay5wYXJlbnQtPmhhc1RhZ05hbWUo
dGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNrLnBhcmVudCA9IHRvSFRNTFRlbXBsYXRlRWxlbWVu
dCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRlbnQoKTsKKyNlbmRpZgorCiAgICAgaWYgKHRhc2su
bmV4dENoaWxkKQogICAgICAgICB0YXNrLnBhcmVudC0+cGFyc2VySW5zZXJ0QmVmb3JlKHRhc2su
Y2hpbGQuZ2V0KCksIHRhc2submV4dENoaWxkLmdldCgpKTsKICAgICBlbHNlCkBAIC0yNDcsNyAr
MjUzLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0RG9jdHlwZShBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0Q29tbWVu
dChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIEFTU0VSVCh0b2tlbi0+dHlwZSgpID09
IEhUTUxUb2tlblR5cGVzOjpDb21tZW50KTsKLSAgICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgp
LCBDb21tZW50OjpjcmVhdGUoY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgdG9rZW4tPmNvbW1l
bnQoKSkpOworICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNyZWF0ZShv
d25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgdG9rZW4tPmNvbW1lbnQoKSkpOwogfQogCiB2
b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50T25Eb2N1bWVudChBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQpAQCAtMzI1LDcgKzMzMSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlv
blNpdGU6Omluc2VydFNjcmlwdEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAv
LyB0aG9zZSBmbGFncyBvciBlZmZlY3RzIHRoZXJlb2YuCiAgICAgY29uc3QgYm9vbCBwYXJzZXJJ
bnNlcnRlZCA9IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uICE9IEFsbG93U2NyaXB0aW5n
Q29udGVudEFuZERvTm90TWFya0FscmVhZHlTdGFydGVkOwogICAgIGNvbnN0IGJvb2wgYWxyZWFk
eVN0YXJ0ZWQgPSBtX2lzUGFyc2luZ0ZyYWdtZW50ICYmIHBhcnNlckluc2VydGVkOwotICAgIFJl
ZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gZWxlbWVudCA9IEhUTUxTY3JpcHRFbGVtZW50OjpjcmVh
dGUoc2NyaXB0VGFnLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCBwYXJzZXJJbnNlcnRlZCwg
YWxyZWFkeVN0YXJ0ZWQpOworICAgIFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gZWxlbWVudCA9
IEhUTUxTY3JpcHRFbGVtZW50OjpjcmVhdGUoc2NyaXB0VGFnLCBvd25lckRvY3VtZW50Rm9yQ3Vy
cmVudE5vZGUoKSwgcGFyc2VySW5zZXJ0ZWQsIGFscmVhZHlTdGFydGVkKTsKICAgICBpZiAobV9m
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gRGlzYWxsb3dTY3JpcHRpbmdDb250ZW50KQog
ICAgICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCks
IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBhdHRhY2hMYXRlcihjdXJyZW50
Tm9kZSgpLCBlbGVtZW50KTsKQEAgLTM1MSw2ICszNTcsMTEgQEAgdm9pZCBIVE1MQ29uc3RydWN0
aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5nJiBjaGFyYWN0ZXJzLCBXaGl0ZXNw
YWNlTW8KICAgICBpZiAoc2hvdWxkRm9zdGVyUGFyZW50KCkpCiAgICAgICAgIGZpbmRGb3N0ZXJT
aXRlKHRhc2spOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKHRhc2su
cGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFzay5wYXJlbnQgPSB0
b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250ZW50KCk7CisjZW5k
aWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQgZW50aXJlbHkgb2Ygd2hpdGVzcGFjZSBhcmUg
bGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8vIFR1cm4gdGhlbSBpbnRvIEF0b21pY1N0cmlu
ZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcgZm9yIGVhY2guCiAgICAgYm9vbCBzaG91bGRV
c2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9kZSA9PSBBbGxXaGl0ZXNwYWNlCkBAIC0zODcs
MTggKzM5OCwyNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShj
b25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogUGFzc1JlZlB0cjxFbGVtZW50
PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRv
a2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkKIHsKICAgICBRdWFsaWZpZWRO
YW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVzcGFjZVVSSSk7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCktPmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1
ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygp
LCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVs
ZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQqIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQoreworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5U
KQorICAgIGlmIChjdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAg
ICAgcmV0dXJuIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVudCgpKS0+Y29udGVu
dCgpLT5kb2N1bWVudCgpOworI2VuZGlmCisgICAgcmV0dXJuIGN1cnJlbnROb2RlKCktPmRvY3Vt
ZW50KCk7Cit9CisKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNy
ZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgUXVhbGlmaWVk
TmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5hbWVzcGFjZVVSSSk7
CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgdXNlIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVh
dGVFbGVtZW50IGJlY2F1c2Ugd2UKICAgICAvLyBoYXZlIHRvIHBhc3MgdGhlIGN1cnJlbnQgZm9y
bSBlbGVtZW50LiAgV2Ugc2hvdWxkIHJld29yayBmb3JtIGFzc29jaWF0aW9uCiAgICAgLy8gdG8g
b2NjdXIgYWZ0ZXIgY29uc3RydWN0aW9uIHRvIGFsbG93IGJldHRlciBjb2RlIHNoYXJpbmcgaGVy
ZS4KLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3Jl
YXRlSFRNTEVsZW1lbnQodGFnTmFtZSwgY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgZm9ybSgp
LCB0cnVlKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9y
eTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwgb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tl
bi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgQVNT
RVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFz
ZSgpOwpAQCAtNDYyLDYgKzQ4MiwxNSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpnZW5l
cmF0ZUltcGxpZWRFbmRUYWdzKCkKIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6ZmluZEZv
c3RlclNpdGUoSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQorICAgIC8vIFdoZW4gYSBub2RlIGlzIHRvIGJlIGZvc3RlciBwYXJl
bnRlZCwgdGhlIGxhc3QgdGVtcGxhdGUgZWxlbWVudCB3aXRoIG5vIHRhYmxlIGVsZW1lbnQgaXMg
YmVsb3cgaXQgaW4gdGhlIHN0YWNrIG9mIG9wZW4gZWxlbWVudHMgaXMgdGhlIGZvc3RlciBwYXJl
bnQgZWxlbWVudCAoTk9UIHRoZSB0ZW1wbGF0ZSdzIHBhcmVudCEpCisgICAgSFRNTEVsZW1lbnRT
dGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRlbXBsYXRlRWxlbWVudCA9IG1fb3BlbkVsZW1lbnRz
LnRvcG1vc3QodGVtcGxhdGVUYWcubG9jYWxOYW1lKCkpOworICAgIGlmIChsYXN0VGVtcGxhdGVF
bGVtZW50ICYmICFtX29wZW5FbGVtZW50cy5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7CisgICAg
ICAgIHRhc2sucGFyZW50ID0gbGFzdFRlbXBsYXRlRWxlbWVudC0+ZWxlbWVudCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50
UmVjb3JkKiBsYXN0VGFibGVFbGVtZW50UmVjb3JkID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0
YWJsZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgaWYgKGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQpIHsK
ICAgICAgICAgRWxlbWVudCogbGFzdFRhYmxlRWxlbWVudCA9IGxhc3RUYWJsZUVsZW1lbnRSZWNv
cmQtPmVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5oCmluZGV4IDYwNTcyYmRkODU2Mjc0NDVjYmQ4NjVhOTY3OWQyZmViYTVm
NmE4ZGMuLmRmMzI1OTBhNzkzNzE3YmU3YTkxZGE3NmI5MTVjNGE5MTU1YjUxZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaApAQCAt
MTE0LDkgKzExNCwxMCBAQCBwdWJsaWM6CiAgICAgQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUo
KSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCk7IH0KICAgICBIVE1MU3Rh
Y2tJdGVtKiBjdXJyZW50U3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMu
dG9wU3RhY2tJdGVtKCk7IH0KICAgICBIVE1MU3RhY2tJdGVtKiBvbmVCZWxvd1RvcCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLm9uZUJlbG93VG9wKCk7IH0KLQorICAgIERvY3VtZW50
KiBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKTsKICAgICBIVE1MRWxlbWVudFN0YWNrKiBv
cGVuRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiAmbV9vcGVuRWxlbWVudHM7IH0KICAgICBIVE1M
Rm9ybWF0dGluZ0VsZW1lbnRMaXN0KiBhY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSBjb25zdCB7
IHJldHVybiAmbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHM7IH0KKyAgICBib29sIGN1cnJlbnRJ
c1Jvb3ROb2RlKCkgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9kZSgpID09IG1fb3BlbkVs
ZW1lbnRzLnJvb3ROb2RlKCk7IH0KIAogICAgIEVsZW1lbnQqIGhlYWQoKSBjb25zdCB7IHJldHVy
biBtX2hlYWQtPmVsZW1lbnQoKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIGhlYWRTdGFja0l0ZW0o
KSBjb25zdCB7IHJldHVybiBtX2hlYWQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKaW5kZXggNmMyMjBjOTczOWE2NDAyMGVkMGYy
N2NjMzIwMWIyYzRlMDE2MTU3OC4uYjgwNDY3N2M5OGI3NjU1ODhmYTBlZjBjOWExNmY0NDEyYjQ1
NzQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRT
dGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFj
ay5jcHAKQEAgLTM4LDE0ICszOCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1Jvb3ROb2RlKEhUTUxT
dGFja0l0ZW0qIGl0ZW0pCisKK25hbWVzcGFjZSB7CisKK2lubGluZSBib29sIGlzUm9vdE5vZGUo
SFRNTFN0YWNrSXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aXNEb2N1bWVudEZyYWdt
ZW50Tm9kZSgpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZyk7CiB9CiAKLW5h
bWVzcGFjZSB7Ci0KIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZShhcHBsZXRUYWcpCkBAIC02NCw2ICs2
NSw5IEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKICAg
ICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykKICAg
ICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKICAgICAgICAgfHwg
aXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRF
X0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCisjZW5k
aWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtNzcsNiArODEsOSBAQCBp
bmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIGlu
bGluZSBib29sIGlzVGFibGVTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAg
IHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKQorI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQorI2VuZGlm
CiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTg1LDEyICs5MiwxOCBAQCBp
bmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiAg
ICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGJvZHlUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhh
c1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhlYWRUYWcp
CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0K
IAogaW5saW5lIGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0p
CiB7CiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodHJUYWcpCisjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCisj
ZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtNTI3LDYgKzU0MCwx
MyBAQCBib29sIEhUTUxFbGVtZW50U3RhY2s6OmluU2VsZWN0U2NvcGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSkgY29uc3QKICAgICByZXR1cm4gaW5TZWxlY3RTY29wZSh0YWdOYW1lLmxv
Y2FsTmFtZSgpKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorYm9vbCBIVE1M
RWxlbWVudFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaW5TY29wZUNvbW1vbjxpc1Jvb3ROb2RlPihtX3RvcC5nZXQoKSwgdGVtcGxhdGVUYWcubG9j
YWxOYW1lKCkpOworfQorI2VuZGlmCisKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6Omh0bWxF
bGVtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9yb290Tm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggODczY2JkZWI5NWI4ZWRh
MDZiM2JlODBiZDk1Y2E3ZDIzODkxMWJhMy4uMmMwZGIxMzRhMGQyNTUzOTc2ZjBkZjlhZWVmM2Ew
ZGJkODYwYzljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVs
ZW1lbnRTdGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50
U3RhY2suaApAQCAtMTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzT25seU9u
ZUVsZW1lbnQoKSBjb25zdDsKICAgICBib29sIHNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVu
dCgpIGNvbnN0OwotCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgYm9vbCBoYXNU
ZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3Q7CisjZW5kaWYKICAgICBFbGVtZW50KiBodG1sRWxl
bWVudCgpIGNvbnN0OwogICAgIEVsZW1lbnQqIGhlYWRFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxl
bWVudCogYm9keUVsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGM3ODU2MmIzM2MxOWJkMmM1NzFkNTliYTU1YzZh
M2QwN2UyMmM4ZDcuLjY5NzRjNjRiZDUxNmZlOTc0MjhjNTRmYzlmMjVlODk4Y2E3OGFlMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJI
VE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdGFja0l0ZW0uaCIKKyNpbmNsdWRl
ICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVk
ZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTM2
MCw3ICszNjEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tl
bihIVE1MVG9rZW4mIHJhd1Rva2VuKQogICAgIC8vIHN5bmNocm9ub3VzbHkgcmUtZW50ZXJzIHRo
ZSBwYXJzZXIuIFdlIGRvbid0IGNsZWFyIHRoZSB0b2tlbiBpbW1lZGF0ZWx5CiAgICAgLy8gZm9y
IENoYXJhY3RlciB0b2tlbnMgYmVjYXVzZSB0aGUgQXRvbWljSFRNTFRva2VuIGF2b2lkcyBjb3B5
aW5nIHRoZQogICAgIC8vIGNoYXJhY3RlcnMgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHVu
ZGVybHlpbmcgYnVmZmVyIGluIHRoZQotICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVhbnRlbHksIENo
YXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNlIHRvIHJlLWVudGVyCisgICAgLy8gSFRNTFRv
a2VuLiBGb3J0dW5hdGVseSwgQ2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUt
ZW50ZXIKICAgICAvLyB0aGUgcGFyc2VyLgogICAgIC8vCiAgICAgLy8gRklYTUU6IFN0b3AgY2xl
YXJpbmcgdGhlIHJhd1Rva2VuIG9uY2Ugd2Ugc3RhcnQgcnVubmluZyB0aGUgcGFyc2VyIG9mZgpA
QCAtNjcyLDggKzY3MywxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFn
Rm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IGJvZHlUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAgICAg
IGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5zZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1l
bnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlPbmVFbGVtZW50KCkpIHsKLSAg
ICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgYm9vbCBmcmFn
bWVudE9yVGVtcGxhdGVDYXNlID0gIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25kRWxlbWVu
dElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5T25l
RWxlbWVudCgpOworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBmcmFnbWVu
dE9yVGVtcGxhdGVDYXNlID0gZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSB8fCBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsKKyNlbmRpZgorICAgICAgICBpZiAo
ZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgzLDcgKzY4OCw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewogICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRz
KCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1w
bGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IGlmICghbV9mcmFtZXNldE9rKQpAQCAtOTQ0LDEzICs5NDksNDMgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQog
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0
ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVG
b3JtYXR0aW5nRWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4p
OwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisKK3ZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQorewor
ICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5kTWFya2VyKCk7Cisg
ICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKKyAgICBzZXRJbnNlcnRpb25Nb2Rl
KFRlbXBsYXRlQ29udGVudHNNb2RlKTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIGlmICghbV90
cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisgICAgICAgIHBh
cnNlRXJyb3IodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdHJlZS5nZW5l
cmF0ZUltcGxpZWRFbmRUYWdzKCk7CisgICAgaWYgKCFtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgp
LT5oYXNMb2NhbE5hbWUodG9rZW4tPm5hbWUoKSkpCisgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OworICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4tPm5hbWUo
KSk7CisgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1h
cmtlcigpOworICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKK30KKyNlbmRp
ZgorCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1
bW5Hcm91cCgpCiB7Ci0gICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgIGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5v
ZGUoKSkgewogICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgIC8v
IEZJWE1FOiBwYXJzZSBlcnJvcgogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDEyLDcgKzEw
NDcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFn
KSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIXByb2Nlc3NUYWJs
ZUVuZFRhZ0ZvckluVGFibGUoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdt
ZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNv
bnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHByb2Nl
c3NTdGFydFRhZyh0b2tlbik7CkBAIC0xMDM5LDYgKzEwNzQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikK
ICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodG9rZW4tPm5hbWUo
KSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tl
bik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKICAgICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJk
IHJlZGlyZWN0ZXIobV90cmVlKTsKICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4p
OwpAQCAtMTE1Myw2ICsxMTk0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIG1fdHJlZS5pbnNlcnRT
ZWxmQ2xvc2luZ0hUTUxFbGVtZW50KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5h
bWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRU
YWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgaWYgKCFwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTExNzcsNyArMTIyNCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRU
YWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgaWYgKGlzQ2FwdGlvbkNvbE9yQ29s
Z3JvdXBUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5u
YW1lKCkpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICAg
ICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Ym9keVRhZy5sb2Nh
bE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRoZWFkVGFn
LmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGZv
b3RUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVt
cGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0xMjAyLDcgKzEyNDksNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgICAgICAgICB8fCBpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5u
YW1lKCkpCiAgICAgICAgICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUo
KSkpIHsKICAgICAgICAgICAgIGlmICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkgewotICAg
ICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUKGluc2Vy
dGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTI4MCw2ICsxMzI3LDEyIEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAg
ICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIHBy
b2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorI2VuZGlmCiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEFmdGVyRnJhbWVzZXRNb2RlOgpAQCAtMTM1OSw2ICsxNDEyLDEyIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikK
ICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoZGlkUHJvY2VzcywgZGlkUHJvY2Vzcyk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkK
KyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAg
IHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5UYWJsZVRleHRNb2Rl
OgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKQEAgLTEzNjcsMTIgKzE0MjYsNTEg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgIGNhc2UgVGV4dE1vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgorI2lmIEVO
QUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gbGlua1RhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzY3JpcHRUYWcK
KyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gc3R5bGVUYWcKKyAgICAgICAgICAgIHx8
IHRva2VuLT5uYW1lKCkgPT0gbWV0YVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFn
Rm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0
aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRva2VuLT5uYW1lKCkg
PT0gY29sVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9k
ZSk7CisgICAgICAgIGVsc2UgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5h
bWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAgICAg
ICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRva2Vu
LT5uYW1lKCkgPT0gdHJUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVC
b2R5TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzVGFibGVDZWxsQ29udGV4dFRhZyh0b2tlbi0+
bmFtZSgpKSkKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Sb3dNb2RlKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKKworICAg
ICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogewogICAgIHBhcnNlRXJyb3IodG9rZW4pOworI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIGlmIChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1M
U2NvcGUoKSkgeworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fdHJlZS5pbnNlcnRIVE1MSHRt
bFN0YXJ0VGFnSW5Cb2R5KHRva2VuKTsKIH0KIApAQCAtMTU0Miw4ICsxNjQwLDEyIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAgICAg
ICAgICAgIGxhc3QgPSB0cnVlOwogICAgICAgICAgICAgaXRlbSA9IEhUTUxTdGFja0l0ZW06OmNy
ZWF0ZShtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxlbWVudCgpLCBIVE1MU3RhY2tJdGVtOjpJ
dGVtRm9yQ29udGV4dEVsZW1lbnQpOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMv
c2hvd19idWcuY2dpP2lkPTIwMTMwIChzaG91bGQgPHRlbXBsYXRlPiBjbGVhciB0aGUgImltcGxp
ZWQgY29udGV4dCBlbGVtZW50Ii4KKyAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxh
dGVUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoVGVtcGxhdGVDb250
ZW50c01vZGUpOworI2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRh
ZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRUYWcpIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhU
YWcpKQpAQCAtMTU1NSwxOSArMTY1NywyMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJ
bnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1l
KGNhcHRpb25UYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5DYXB0
aW9uTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkgewot
ICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0
dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAgICAgIHJldHVybiBz
ZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05h
bWUoaGVhZFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsK
KyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAgIGlmICghbV9mcmFnbWVu
dENvbnRleHQuZnJhZ21lbnQoKSB8fCBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxlbWVudCgp
ICE9IGl0ZW0tPm5vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9k
ZShJbkhlYWRNb2RlKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1v
ZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUo
Ym9keVRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2Rl
KTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoZnJhbWVzZXRUYWcpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0
SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0
ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZykpIHsKQEAgLTE1OTgsNyArMTcwMSw3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJsZUJvZHkoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAgICAgICAv
LyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNjI4LDcg
KzE3MzEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluUm93KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRh
YmxlVGFnKSB7CiAgICAgICAgIGlmICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkgewotICAg
ICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJs
ZUJvZHlNb2RlKTsKQEAgLTE2ODEsNyArMTc4NCwxMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICB8
fCB0b2tlbi0+bmFtZSgpID09IHRyVGFnCiAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRh
Zyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
aW5UYWJsZVNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCisgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1l
KCkpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRlbXBsYXRlVGFnKSB8
fCBpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNlbHNlCiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJs
ZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOwor
I2VuZGlmCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpAQCAtMTgyMSw2ICsxOTI4LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAg
IHByb2Nlc3NGYWtlU3RhcnRUYWcoYnJUYWcpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwcm9jZXNzQW55T3RoZXJFbmRUYWdGb3JJbkJv
ZHkodG9rZW4pOwogfQogCkBAIC0xODQyLDcgKzE5NTUsNyBAQCBib29sIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0NhcHRpb25FbmRUYWdGb3JJbkNhcHRpb24oKQogYm9vbCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIHsKICAgICBpZiAoIW1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRyVGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xODU2LDcgKzE5NjksNyBAQCBib29sIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogYm9vbCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUoKQogewogICAgIGlmICghbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7Ci0gICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IuCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xOTEzLDYgKzIwMjYsMTUgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAg
ICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgY2FzZSBzaG91bGQgYmUgYnJva2VuIG91dCBpbnRvIHByb2Nlc3NFbmRUYWdGb3JJbkhlYWQs
CisgICAgICAgIC8vIGJlY2F1c2Ugb3RoZXIgZW5kIHRhZyBjYXNlcyBub3cgcmVmZXIgdG8gaXQg
KCJwcm9jZXNzIHRoZSB0b2tlbiBmb3IgdXNpbmcgdGhlIHJ1bGVzIG9mIHRoZSAiaW4gaGVhZCIg
aW5zZXJ0aW9uIG1vZGUiKS4KKyAgICAgICAgLy8gYnV0IGJlY2F1c2UgdGhlIGxvZ2ljIGZhbGxz
IHRocm91Z2ggdG8gQWZ0ZXJIZWFkTW9kZSwgdGhhdCBnZXRzIGEgbGl0dGxlIG1lc3N5LgorI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICh0b2tl
bi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+cG9wSFRNTEhlYWRFbGVtZW50KCk7CiAgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEFm
dGVySGVhZE1vZGUpOwpAQCAtMTk3Nyw2ICsyMDk5LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0
ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICghcHJvY2Vzc0Nv
bGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQ
YXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDUyLDcgKzIxODAs
MTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICBjYXNlIEluRnJhbWVzZXRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkg
PT0gZnJhbWVzZXRUYWcpIHsKLSAgICAgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9
PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgICAgIGJvb2wg
aWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcgID0gbV90cmVlLmN1cnJlbnRJc1Jvb3RO
b2RlKCk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgICAgICBpZ25vcmVG
cmFtZXNldEZvckZyYWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJz
aW5nIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOwor
I2VuZGlmCisgICAgICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcp
IHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29u
dGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTk0LDEyIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkK
KyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAg
IHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyRnJhbWVzZXRNb2Rl
OgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyRnJhbWVzZXRNb2RlKTsK
QEAgLTIxMTksMTEgKzIyNTgsMzIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRU
YWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9k
ZUFwcHJvcHJpYXRlbHkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVO
QUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1w
bGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsK
ICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VGVtcGxhdGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAg
ICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dp
P2lkPTE5OTY2CisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7Cisg
ICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFnTmFtZSh0
ZW1wbGF0ZVRhZykpOworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsK
KyAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1v
ZGUpOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyNlbHNlCisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAt
MjIyNCw4ICsyMzg0LDE0IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICB9CiAgICAgY2FzZSBJbkJv
ZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVu
dHNNb2RlOgogICAgIGNhc2UgSW5DZWxsTW9kZTogeworI2lmIEVOQUJMRShURU1QTEFURV9FTEVN
RU5UKQorICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5z
ZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2Vs
bE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbHNl
CisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgIT0gVGVtcGxhdGVDb250ZW50c01vZGUp
OwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0
aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1v
ZGUpOworI2VuZGlmCiAgICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJGb3JJbkJvZHkoYnVm
ZmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjM2MCw3ICsyNTI2LDEyIEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgY2FzZSBJbkNlbGxNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKICAgICBjYXNl
IEluUm93TW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNl
bGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1v
ZGUoKSA9PSBJblJvd01vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IFRlbXBsYXRlQ29udGVudHNN
b2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgIT0gVGVtcGxhdGVD
b250ZW50c01vZGUpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1v
ZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09
IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSk7CisjZW5kaWYK
ICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8gRW1pdCBwYXJzZSBlcnJvciBiYXNlZCBvbiB3
aGF0IGVsZW1lbnRzIGFyZSBzdGlsbCBvcGVuLgogICAgICAgICBicmVhazsKICAgICBjYXNlIEFm
dGVyQm9keU1vZGU6CkBAIC0yMzg2LDcgKzI1NTcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5Db2x1bW5Hcm91cE1v
ZGU6Ci0gICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1l
bnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9k
ZSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAg
ICAgICByZXR1cm47IC8vIEZJWE1FOiBTaG91bGQgd2UgYnJlYWsgaGVyZSBpbnN0ZWFkIG9mIHJl
dHVybmluZz8KICAgICAgICAgfQpAQCAtMjQwOSw2ICsyNTgwLDE2IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAg
IHNldEluc2VydGlvbk1vZGUobV9vcmlnaW5hbEluc2VydGlvbk1vZGUpOwogICAgICAgICBwcm9j
ZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVGVtcGxhdGVD
b250ZW50c01vZGU6CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKSkgewor
ICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgIG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJv
cHJpYXRlbHkoKTsKKyAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CisgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50Tm9kZSgpKTsKICAgICBtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPnBvcEFsbCgpOwpAQCAtMjUxMiw2ICsyNjkzLDEyIEBAIGJvb2wg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKHNjcmlwdFRhZyk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAg
ICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVt
cGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRp
ZgogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgcGFyc2VFcnJv
cih0b2tlbik7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA4ZmYwZjU4YjM0NWZmZjNlNDU1YjVhZmZlZjY1
ZTEwMmY2ZDViZmZhLi4yMTNlN2UwYmUzNmYzNDVkODM0YWNiZTc0ZjJlZTFiZTYwYzYyYjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtNjcs
NiArNjcsMTIgQEAgcHVibGljOgogICAgIH5IVE1MVHJlZUJ1aWxkZXIoKTsKIAogICAgIGJvb2wg
aXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiAhIW1fZnJhZ21lbnRDb250ZXh0LmZy
YWdtZW50KCk7IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBib29sIGlzUGFy
c2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyZWUub3BlbkVsZW1lbnRz
KCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsgfQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21l
bnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgp
IHx8IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKTsgfQorI2Vsc2UKKyAgICBib29sIGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQYXJzaW5n
RnJhZ21lbnQoKTsgfQorI2VuZGlmCiAKICAgICB2b2lkIGRldGFjaCgpOwogCkBAIC05Nyw2ICsx
MDMsNyBAQCBwcml2YXRlOgogICAgICAgICBJbkhlYWRNb2RlLAogICAgICAgICBJbkhlYWROb3Nj
cmlwdE1vZGUsCiAgICAgICAgIEFmdGVySGVhZE1vZGUsCisgICAgICAgIFRlbXBsYXRlQ29udGVu
dHNNb2RlLAogICAgICAgICBJbkJvZHlNb2RlLAogICAgICAgICBUZXh0TW9kZSwKICAgICAgICAg
SW5UYWJsZU1vZGUsCkBAIC0xOTAsNiArMTk3LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJl
c2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcoQXRvbWljSFRNTFRva2Vu
Kik7CisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVFbmRUYWcoQXRvbWljSFRNTFRva2VuKik7Cisj
ZW5kaWYKKwogICAgIGNsYXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNGEzYTVmNGRlZjA3ZGYyODZiZTQxNmFhMjli
NTAyOGQxZDlkZjU0OC4uOTE4ZjQ4MDc1MDA3YmE3MDQzYTk5MjI4NzFmMWRhNTJkMDQyZmY4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDcyLDYgKzQ3Miw3IEBACiAgICAgYXR0
cmlidXRlIEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVFbGVtZW50OwogICAg
IGF0dHJpYnV0ZSBIVE1MVGFibGVSb3dFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxlUm93RWxl
bWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDb25zdHJ1Y3RvciBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudDsKKyAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVRFTVBM
QVRFX0VMRU1FTlRdIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGVtcGxhdGVF
bGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFyZWFFbGVtZW50Q29uc3RydWN0b3IgSFRN
TFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRpdGxlRWxlbWVudENvbnN0cnVj
dG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxVTGlzdEVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
CmluZGV4IGE3YmY2MzY3YTE0ZjE2OWY4MGE4YTQ5ZjZlMjEwYzJmMTY1ZDliMTUuLjIwZmI4ZDEx
N2Y4YzUzZjA5OGZjNmNiNTVkNDNkZmZiZDQzMDBhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2Zl
YXR1cmVzLmd5cGkKQEAgLTEwOSw2ICsxMDksNyBAQAogICAgICAgJ0VOQUJMRV9TVFlMRV9TQ09Q
RUQ9MScsCiAgICAgICAnRU5BQkxFX1NWRz08KGVuYWJsZV9zdmcpJywKICAgICAgICdFTkFCTEVf
U1ZHX0ZPTlRTPTwoZW5hYmxlX3N2ZyknLAorICAgICAgJ0VOQUJMRV9URU1QTEFURV9FTEVNRU5U
PTEnLAogICAgICAgJ0VOQUJMRV9URVhUX0FVVE9TSVpJTkc9MScsCiAgICAgICAnRU5BQkxFX1RP
VUNIX0FESlVTVE1FTlQ9MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0VWRU5UUz08KGVuYWJsZV90
b3VjaF9ldmVudHMpJywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMzdjNzg1NDY3OWZiZmYxMWMyYTVhYjA4ZjkzMTI4NmY5
YjA2YmM4Li40ZjhkZDY4MGJhOGRiOGJiMmIzZmE0NDQzZDE1MjNhOTQ2NDM2MDk4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bmVydENvbnRlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0
ZUVsZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3Vt
ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5k
YXQ6IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiByZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanM6CisgICAgICAgIChNYXJrdXAuX2dl
dCk6CisgICAgICAgIChNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlKToKKwogMjAxMi0xMS0y
OSAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIFdl
YktpdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGJiNjFjZDhmNTYyZjJiYjA2ZmEwN2ExNTc0YTVhZGQzNjFlMzU5OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBh
cmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9k
ZXMubGVuZ3RoIGlzIDEKK1BBU1MgY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCBpcyAw
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
Y2xvbmVOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2Nsb25lTm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYTVmNzVlY2ZlYTAzZGI5OTgxYjlhZWY4NjVl
YjRjZTRlMTMxNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+Q29udGVudHM8L3RlbXBsYXRlPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBu
b3QgY2xvbmVkIHdoZW4gdGhlIHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xvbmVkJyk7CisKK2lmICgh
d2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJl
cXVpcmVzIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5jb250
ZW50LmNoaWxkTm9kZXMubGVuZ3RoJywgJzEnKTsKK3ZhciBjbG9uZSA9IHRlbXBsYXRlLmNsb25l
Tm9kZSh0cnVlKTsKK3Nob3VsZEJlKCdjbG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJywg
JzAnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUxMzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly9iYXouY29t
L2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL2Jhei5j
b20vYmF0LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5lcnRDb250ZW50cy5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZworaHR0cDovL2Jhei5jb20vYmF0LmpwZyAt
IGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFp
biwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KK1RoZSB0ZXN0IGFzc2VydHMgdGhh
dCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVz
b3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi4KKworcGFzcyEKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENv
bnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lu
ZXJ0Q29udGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2MwNWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2Nj
ZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsK
Kword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgfQorCisgICAgaWYgKHRlc3RWYWwg
IT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIHRlbXBsYXRlQ29udGVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNvbnRlbnQ7CisgICAgdmFyIGltZyA9IHRl
bXBsYXRlQ29udGVudC5jaGlsZE5vZGVzWzFdOworICAgIGltZy5zcmMgPSAiaHR0cDovL2Jhei5j
b20vYmF0LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRl
bnQpOworCisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1l
bnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJjZXMg
ZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVt
cGxhdGUiPjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAyOzwvc2NyaXB0PjxpbWcgc3JjPSJodHRw
Oi8vZm9vLmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2
YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6
ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdub3JlZC4KKworPGRpdj5D
b250ZW50cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRN
TC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM3NjJjYTNiZWYxZDNkODI3OWZhYjE5MTc4OTkyYzJjNWY2MWMz
YzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0
ZScpOworICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplJzsKKyAgICB2YXIgaW5uZXJU
ZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsK
KyAgICBpbm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplIGVpdGhlcic7CisKKyAgICB0
ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7CisgICAgaWYgKHRlbXBsYXRl
LmNoaWxkTm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBvbmx5IGNoaWxkIHNob3VsZCBiZSB0aGUg
c3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9IHRlbXBsYXRlLmlubmVySFRN
TDsKKyAgICB2YXIgdGVtcGxhdGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUn
KTsKKyAgICB0ZW1wbGF0ZTIuaW5uZXJIVE1MID0gJzx0ZW1wbGF0ZT48L3RlbXBsYXRlPic7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRl
bXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMgY2hp
bGRyZW4gYXJlIGlnbm9yZWQuPC9wPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PGRpdj5Db250
ZW50cyAxCisgIDx0ZW1wbGF0ZT5Db250ZW50cyAyPC90ZW1wbGF0ZT4KKzwvZGl2PjwvdGVtcGxh
dGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjcwMmFlYWVlMzkwZjgxNmU2YTUxZTljYjJlYzIxNDJjMTc2N2NlNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
b3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdCBIVE1MVGVt
cGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyB0ZW1wbGF0ZS5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNT
IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMg
dHJ1ZQorUEFTUyBkb2N1bWVudCBpcyBub3QgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAor
UEFTUyB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0
ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBp
cyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUuY29udGVu
dC5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgaW5u
ZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIHRydWUK
K1BBU1MgdGVtcGxhdGUyLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUy
LmNvbnRlbnQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQ
QVNTIGRmLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1Mgc3Bhbi5vd25lckRvY3VtZW50
IGlzIGRvY3VtZW50CitQQVNTIGRmLm93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudAorUEFTUyBzcGFuLm93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00g
RXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoInRleHQiKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9N
IEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUzLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQK
K1BBU1MgdGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlMy5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1
bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDUxOTJiMWZiNDliY2I3NjM2N2JhNWQ1MTM5Y2Y1NDg2NWJjZGNhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25l
ckRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGVtcGxh
dGUgaWQ9InRlbXBsYXRlIj48c3Bhbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NwYW4+PC90ZW1w
bGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUyIj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4K
Kzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUzIj48c3ZnPjwvc3ZnPjwvdGVtcGxhdGU+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25l
ckRvY3VtZW50Jyk7CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVz
dEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKScpOwor
Cit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3No
b3VsZEJlKCd0ZW1wbGF0ZS5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CisKK3ZhciB0ZW1w
bGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50
Oworc2hvdWxkQmVUcnVlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2Yg
SFRNTERvY3VtZW50Jyk7CitzaG91bGROb3RCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50
T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5v
d25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKKwordmFyIGlu
bmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKK3No
b3VsZEJlKCdpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3du
ZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ2lubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3Vt
ZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlVHJ1ZSgnaW5u
ZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKK3Zh
ciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUyJyk7CitzaG91
bGRCZSgndGVtcGxhdGUyLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0
ZW1wbGF0ZTIuY29udGVudC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQnKTsKKwordmFyIGRmID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwor
dmFyIHNwYW4gPSBkZi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykp
Oworc2hvdWxkQmUoJ2RmLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQnKTsKK3Nob3VsZEJlKCdz
cGFuLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQnKTsKKwordGVtcGxhdGUuY29udGVudCA9IGRm
Oworc2hvdWxkQmUoJ2RmLm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudCcpOworc2hvdWxkQmUoJ3NwYW4ub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50Jyk7CisKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOycpOworc2hvdWxkVGhyb3coJ3RlbXBsYXRlLmNvbnRl
bnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOycpOworaWYgKHdpbmRvdy5XZWJL
aXRTaGFkb3dSb290KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIHNob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gbmV3IFdlYktpdFNoYWRv
d1Jvb3QoZGl2KScpOworfQorCit2YXIgdGVtcGxhdGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ3RlbXBsYXRlMy5vd25lckRvY3VtZW50JywgJ2Rv
Y3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudCcsICd0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGUzLmNvbnRl
bnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1l
bnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY2OWJmZmQ5MWQxZWY5N2Y2MWRmNmVlM2E2OTcwMDlj
Y2EwNzViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1w
bGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACitUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50IGluIFhI
VE1MIERvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3Vt
ZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNlCitQQVNTIGRvY3VtZW50IGlzIG5v
dCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVu
dFhIVE1MLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NTgzOGE2OTg5MTdiNWM3ZDEwM2I2OTg0Y2VlNzYw
NjIzOTU3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbApAQCAtMCwwICsxLDE5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBj
b250ZW50IG93bmVyRG9jdW1lbnQgaW4gWEhUTUwgRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cu
SFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMg
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpJyk7CisKK3Nob3VsZEJlRmFsc2UoJ2RvY3VtZW50IGlu
c3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7Cit2YXIgdGVtcGxhdGU0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgndGVtcGxhdGUnKTsKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0g
dGVtcGxhdGU0LmNvbnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcs
ICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZUZhbHNlKCd0ZW1wbGF0
ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3Vy
Y2VzL3RlbXBsYXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0
ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWJhZTgxZWZkZGZkYzRkOGY4Njc3MWM2MmM0YTEzOTcyNDAyYmE4
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1w
bGF0ZS5kYXQKQEAgLTAsMCArMSw4NDMgQEAKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+SGVsbG88
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+
CisKKyNkYXRhCis8dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8aHRt
bD48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48dGVtcGxh
dGU+PGRpdj48L2Rpdj48L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBs
YXRlPjxkaXY+PHNwYW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxkaXY+Cit8ICAg
ICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjwv
ZGl2PkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PjwvdGVtcGxh
dGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRl
PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rp
dj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorCisjZGF0YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+
PGRpdj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT4gICA8dGVtcGxh
dGU+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAiICAgIgorfCAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFi
bGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48
dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAg
IDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVh
ZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4K
K3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVt
cGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGZvb3Q+Cit8
ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNk
YXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0
YQorPHNlbGVjdD48dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1wbGF0ZT48b3B0aW9u
Pjwvb3B0aW9uPjwvc2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8b3B0
aW9uPgorfCAgIDxib2R5PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48
b3B0aW9uPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNlbGVj
dD48b3B0aW9uPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wg
ICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQor
PHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAg
IDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8
dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVt
cGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFk
PgorCisjZGF0YQorPGJvZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48ZGl2PjwvdGVtcGxh
dGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8ZGl2Pgor
CisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFi
bGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRl
bXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVh
ZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICAgICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1w
bGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRy
Pjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRy
Pjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8
dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT48L3RyPjwv
dGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
ICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90
cj48L3RlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisj
ZGF0YQorPHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAg
ICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICAgICA8Y29sPgorCisjZGF0YQorPGZyYW1lc2V0Pjx0ZW1w
bGF0ZT48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+CisKKyNk
YXRhCis8dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJhbWU+PC9mcmFtZT48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJh
bWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxk
aXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAg
ICAgIDxzcGFuPgorfCAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+
PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bh
bj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0gMTs8L3NjcmlwdD48
dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAg
ICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPHRyPgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+
PHRyPjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAg
ICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RyPjx0ZD48L3Rk
PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0
ZT48dGQ+PC90ZD48dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4K
KworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRk
PjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48dGQ+PC90ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4K
K3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90YWJs
ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjx0cj48L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAg
ICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48
L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxh
dGU+PHRyPjwvdHI+PC90YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRy
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxjYXB0aW9uPjwvY2Fw
dGlvbj48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPGNhcHRpb24+
Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3Ro
ZWFkPjwvdGFibGU+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAg
ICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48dHI+PC90cj48L2Rp
dj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxlbT5IZWxsbzwvZW0+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPGVtPgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBs
YXRlPjwhLS1jb21tZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgorCisjZGF0YQorPGJv
ZHk+PHRlbXBsYXRlPjxzdHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzdHlsZT4KK3wg
ICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+PHRkPjwvdGQ+PC90
ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgPG1ldGE+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxs
aW5rPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxi
b2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAgICAgPHRyPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3Jv
dXA+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9i
b2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisK
KyNkYXRhCis8Ym9keSBhPWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkgYz1kPjxkaXY+PC9k
aXY+PC9ib2R5PjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICA8
ZGl2PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1sIGI9Yz48c3Bhbj48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAg
PGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxo
dG1sIGE9Yj48dGVtcGxhdGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48L2NvbD48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDxjb2w+Cit8ICAgICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48
dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxh
dGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0
ZW1wbGF0ZT48dHI+PC90cj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
dHI+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPHRkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRl
bXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVk
MGJhYWFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1w
bGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDog
UEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODEx
MjlhMGUxNmZmZWFjNDQ0OWIzZTkxN2FjNGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQ+Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNl
cy90ZW1wbGF0ZS5kYXQnLAorXQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVu
bmVyLmpzIj48L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI5ZGYzNjFkZjE2NzcxOTg5Mjcw
MDZjNmIzZDBiNzY2OGFlOGVkNjIuLmVhNmY5MDNiZDI5ZDA2ZmE0MDlkMDY5ZGQ0NDc5YWVjYzVj
NzhmZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
MTAsNiArMzEwLDEwIEBAIGZhc3QvdGV4dC91bmljb2RlLXZhcmlhdGlvbi1zZWxlY3Rvci5odG1s
CiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1lbnRyaWVzLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0
bWwKIAorIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCitmYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorCiAjIFRyYW5z
cGFyZW50IGltYWdlIGJlaW5nIHByb2R1Y2VkCiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3Jv
bGxiYXIuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDAwMTY5NDJmMDgzNjQyZmZkNjE2OGFmZGUyNzRhNDE0ZGJkZGZlNGYuLmM5MzVlOGVmNGYw
NDI3MmFiNzIzMjY0YTkxOTMzZmU3ZmNiNTA4OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03Nyw2ICs3NywxMCBAQCBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2RlZmF1bHQtY29udGVudC10eXBlLWRhc2hib2FyZC5odG1sIFsgV29udEZpeCBdCiAj
IEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKSBpcyBkaXNhYmxlZAogZmFzdC9jc3MvZHJhZ2dhYmxl
LXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdvbnRGaXggXQogCisjIEVOQUJMRShURU1QTEFURV9FTEVN
RU5UKSBpcyBkaXNhYmxlZC4KK3dlYmtpdC5vcmcvYi8xMDM1NyBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTAzNTcgaHRtbDVsaWIvcnVuLXRlbXBs
YXRlLmh0bWwgWyBTa2lwIF0KKwogIyBUaGVzZSB0ZXN0IC1hcHBsZS0gYW5kIC1raHRtbC0gcHJl
Zml4ZWQgQ1NTIHByb3BlcnRpZXMsIHdoaWNoIHdlIGRvbid0IHN1cHBvcnQuCiBpbnNwZWN0b3Iv
c3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sIFsgV29udEZpeCBdCiBmYXN0L2Nzcy9hcHBsZS1w
cmVmaXguaHRtbCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjYmJkZDNiZWUxNzNkYzFhN2RkOTk4MzRlOGVkZTRiNzZjZmEyNjcwLi42
MjM0ZWM0Mjc4MmY3Njg5YmZiNTE1MWRkYWQ0ZmI4OGVkYWE5YTUxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDMyLDYgKzQzMiwxMCBAQCBmYXN0L2Rv
bS9zaGFkb3cKIGVkaXRpbmcvc2hhZG93CiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRv
d2RvbS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgorZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwog
IyBKU0MgZG9lcyBub3Qgc3VwcG9ydCBzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4gKGh0
dHA6Ly93ZWJraXQub3JnL2IvNjE1NDApCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29y
bGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGMyZmMwMDYwZjYyMDQ5ZGU0MzY4ZmNlMDAzZDdjM2RkN2M5ZWM2ZGIu
LjJhZDI2MTViZmM0NjhlZWM5YWFhZjZmMzc2NzRjNDc1ODM0ZDc4NTEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg4LDYgKzE4OCwxMCBAQCBmYXN0L2Rv
bS9zaGFkb3cKIGZhc3QvZnJhbWVzL2RldGFjaGVkLXNoYWRvdy1mcmFtZS5odG1sCiBpbnNwZWN0
b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVs
aWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBGYWlsIHVudGlsIFNVQlBJWEVMX0xBWU9VVCBpcyBl
bmFibGVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTUzMgog
ZmFzdC9zdWItcGl4ZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggOTZkZWIyMWQ3MDY5NjA3NTI5ZTI3ZGE3OTRkYzNmMjVjZDI0ZDFjOS4uODJmMTc2OTll
M2RiNTgzNzI4ZjBkZWQ4OGU4NTFjMDBhMjlhYTZmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MjYsNiArMTUyNiwxMCBAQCBmYXN0L3JlZ2lvbnMv
c3R5bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3NoYWRv
dwogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hU
TUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJl
Z2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIK
IGZhc3QvcmVnaW9ucwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWly
by9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA3MTMzYjg1ZmYxYjI4NzAyZWQxYTRkNTNiMzk0ZjM2YTEyYjQ3OTdj
Li41MWQ3Y2YxMjdkYWZhMGFkYTU3NjEyMGEyMmFjZWFhYmZkNDc2NzZhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNjEsNiArMjA2
MSwxMCBAQCBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9z
aGFkb3cKIGZhc3QvZG9tL3NoYWRvdwogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBk
aXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1w
bGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6
Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
ZHVtcC1hcy1tYXJrdXAuanMKaW5kZXggNTNhMDAxZmVmZGUyODgxYWVmNjFjZDA2OTAyNzJmYzZl
MTViMWU5MS4uYzdmZGYxN2YyMGE0MjljMTBjNmQ4YjNhMTk2ZGZiOTA5NDQ2MmIwYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91
dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIwLDE2ICsyMjAsMjQgQEAg
TWFya3VwLl9nZXQgPSBmdW5jdGlvbihub2RlLCBkZXB0aCkKICAgICBjYXNlIE5vZGUuRE9DVU1F
TlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ct
cm9vdCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgIHN0ciArPSAiI2RvY3VtZW50LWZyYWdtZW50IjsKICAgICB9Ci0KLSAgICBmb3Ig
KHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7
Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2Rl
LCBpKTsKLSAgICAgICAgaWYgKHNlbGVjdGlvbikKLSAgICAgICAgICAgIHN0ciArPSBNYXJrdXAu
X2luZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOwotCi0gICAgICAgIHN0ciArPSBNYXJrdXAu
X2dldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAgCisgICAgCisgICAgLy8g
SFRNTCBUZW1wbGF0ZSBlbGVtZW50cyBzZXJpYWxpemUgdGhlaXIgY29udGVudCBEb2N1bWVudEZy
YWdtZW50LCBhbmQgTk9UIHRoZWlyIGNoaWxkcmVuLgorICAgIGlmIChub2RlLm5hbWVzcGFjZVVS
SSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RF
TVBMQVRFJykgeworICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jb250ZW50LCBkZXB0
aCArIDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2Rl
LmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzZWxl
Y3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICAgICAgICAg
IGlmIChzZWxlY3Rpb24pCisgICAgICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRl
cHRoICsgMSkgKyBzZWxlY3Rpb247CisgICAgCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9n
ZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAgICB9CiAgICAgfQotCisg
ICAgCiAgICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVw
dGgpOwogICAgIAogICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtl
cihub2RlLCBpKTsKQEAgLTI4NCw3ICsyOTIsNyBAQCBNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQ
ID0gewogCiBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKIHsK
LSAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigp
OworICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPyBub2RlLm93bmVy
RG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCkgOiBudWxsOwogfQogCiBNYXJrdXAu
X1NFTEVDVElPTl9GT0NVUyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176990</attachid>
            <date>2012-11-30 10:32:53 -0800</date>
            <delta_ts>2012-12-01 08:58:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121130103025.patch</filename>
            <type>text/plain</type>
            <size>98513</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI2MGQzYzNkYTQ1ZDNi
NjgyNmQzYjY2NGEyYTNlNDhlMTdiYmI1MC4uMDBiYTIzOWI1NDY1Y2NhZGNjMTIwMTE5YmUxM2Ix
NzUyOGUyZWFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTEtMzAgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBDcmFzaCBkdWUgdG8gaW50cnVkaW5nIGZsb2F0IG5vdCByZW1vdmVkIGFmdGVy
IHdyaXRpbmcgbW9kZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlNTk3
ZDMxM2ZjNTIxOGZmOGY0OGY1MDgxYjY3MTFkODk5OWNiMjRkLi5lMWRiNWY4NTBiNzRjODA3ODFj
Mzk2MGEyYjRjOWM1OTg1ODI0NGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTExLTEzICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHVybmluZyBvbiBIVE1MVGVt
cGxhdGVFbGVtZW50IGZvciBjaHJvbWl1bSBwb3J0LgorCisgICAgICAgICogZmVhdHVyZXMuZ3lw
aToKKwogMjAxMi0xMS0yOSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBTcGVlY2ggUmVjb2duaXRpb24gQVBJOiBVcGRhdGUgU3BlZWNoUmVjb2duaXRp
b25FdmVudCB0byBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA5NjFjNWQ1NTkzOGNjNDgwYjdlMmE4NTI1NmUwZjUyNzMyMDM5NmRiLi40ZjA5YTM5Y2QxMDAx
N2ZhZjc2MWVkMDljMTU0ZTcxMGE5ODE5OTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg4
LDYgKzQ4OCw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvSFRNTFRhYmxlRWxl
bWVudC5pZGwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5pZGwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRs
CiAgICAgaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRpdGxlRWxl
bWVudC5pZGwKICAgICBodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsCkBAIC0xNDMwLDYgKzE0MzEs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNw
cAogICAgIGh0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCiAgICAgaHRtbC9IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5jcHAKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCiAg
ICAgaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZTUzNmZkMTNhOTRhN2QwYTVlNDViNzU3OTlmYjhkY2Q2
NjYyMDRhMS4uN2JhYTVmODc4NmM2ZDI4MDZlMTQ1NzM2YTdjMjY4Nzk5N2VhNWFjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNDgsNiArMzQ4LDcgQEAgQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggZTUyYTE2OGZmNjc5ZWMxMGI3ZmVlYWQ0OTkzZmI2YmRjYmNh
MWIwNC4uNjhjOTE5ODA4MzY5NjA1ZTdhOTNhYjJjZDFjOGQxMjY1OTY4MzQ3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MzEsNiArNDMxLDggQEAgd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRhYmxlUm93RWxlbWVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRlbXBsYXRlRWxlbWVudC5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVGl0bGVFbGVtZW50LmNwcCBcCkBAIC0xNDg5LDYgKzE0OTEsNyBAQCBk
b21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5p
ZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCBcCiAJJChXZWJD
b3JlKS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCBcCisJJChXZWJDb3JlKS9odG1s
L0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsIFwKQEAgLTM0MzUsNiArMzQzOCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVS
b3dzQ29sbGVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDQ1MzVhNDZiZjc5ZWE2MzVjNjY3
YmY4YjdjMzVmMTNmMTdmYzI0MDUuLmYyNzVmZTAzMWRlNzkxMjg0NTA3NTU5NjcyMWE0MjA2ZmE1
ZjM5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNjU4LDYgKzY1OCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24uY3BwIFwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisg
ICAgaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgXAog
ICAgIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAgXApAQCAtMTgyMyw2ICsxODI0LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmggXAogICAgIGh0bWwvSFRN
TFRhYmxlUm93c0NvbGxlY3Rpb24uaCBcCiAgICAgaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5oIFwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBc
CiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDU5NjM4
NDZhMmZkODhmMzY5NWMxZTBhZjVhZmExOTYzZTc1ZDRmOGQuLjc1ZDFhOTI3M2Y4ZTVjZmQxODQy
ZThlMjViNDlmYzhmNjM5MjMzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExMjksNiArMTEyOSw3
IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwn
LAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwnLApAQCAtNDE4MSw2ICs0MTgyLDggQEAKICAgICAg
ICAgICAgICdodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgnLAogICAgICAgICAgICAgJ2h0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGl0bGVFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDlkOTJiODA5YzgyYTBjZmI5MzcxOTY5YTQ1YjQ5OWVjZWY2NjU5
NDIuLjExYTViYzkzNDA2YTk1MTBlODAwOTI0YmI3N2JmNjUwMDMxYzAxNjkgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC05NjIyLDcgKzk2MjIs
NyBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRlbXBs
YXRlRWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKQEAgLTk2NzQsOSArOTY3NCw2NSBAQAogCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGVtcGxhdGVFbGVt
ZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAg
ICAgICBSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKKyAgICAgICAg
ICAgICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAg
ICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAg
ICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1
cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAg
ICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1
cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAgICAgICAgICAg
ICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAg
ICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorICAg
ICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAg
ICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAg
ICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisg
ICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAg
ICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAg
ICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAg
ICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVD
b25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAg
ICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgor
ICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICA8L0ZpbGU+
CisgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hU
TUxUZXh0QXJlYUVsZW1lbnQuaCIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICA8L0Zp
bGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxUaXRsZUVsZW1lbnQuY3Bw
IgogCQkJCT4KQEAgLTYzNDYyLDcgKzYzNTE4LDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAJCQkJ
PgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTYz
NTE0LDkgKzYzNTcwLDY1IEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZXh0QXJlYUVsZW1lbnQu
aCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlxodG1sXEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIgorICAgICAgICAgICAgICAg
ID4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAg
ICAgTmFtZT0iRGVidWd8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxU
b29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAg
ICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlJlbGVhc2V8V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxU
b29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAg
ICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAg
IE5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAg
ICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAg
ICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisgICAgICAgICAg
ICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+
CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAg
ICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0
aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKyAgICAgICAg
ICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAg
ID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3Vy
YXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKyAgICAg
ICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAg
ICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDwvRmlsZT4KKyAgICAg
ICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxU
ZXh0QXJlYUVsZW1lbnQuaCIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICA8L0ZpbGU+
CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM0MDRjYzE1ZWViNWRhNzM3OWEyMGNjYzg1ZmU5Yjc2
NzgxYTAxMWUuLmQzNGEwOTIwMjk4MjU5MTQ0ZDUzZDhhMjY2NWI5NzdhMTBiZjEwYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEzNDY2LDYgKzEzNDY2LDkgQEAKIAkJRDZFMjc2QUUxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlENkU1MjhBMTE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVy
ZXN0R3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlENkU1MjhBMjE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTXV0YXRpb25PYnNlcnZlcklu
dGVyZXN0R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkIxNjY2
REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQ2RUZDMEJDMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxh
dGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxUZW1wbGF0
ZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkQxNjY2REY3
QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEhUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlENkZEQUVGMjE0OUMwNjE5MDAzN0IxRTEgLyogSGlzdG9ncmFtU3VwcG9ydC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXN0b2dyYW1TdXBwb3J0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUyIC8qIFN0
YXRzQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGF0
c0NvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkZEQUVGMjE0OUMw
NjE5MDAzN0IxRTMgLyogTWVtb3J5VXNhZ2VTdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeVVzYWdlU3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzgxMiw2ICsxNzgxNSw5IEBACiAJCQkJQTg3MURCMTcwQTE1MEJE
NjAwQjEyQTY4IC8qIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggKi8sCiAJCQkJODU1NTQyNUMw
QUE0OEIxRTAwQkE4OUYyIC8qIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCAqLywKIAkJCQk1
MTlGRTBBMjBEQUQ0NDZFMDBBMDhGMjEgLyogSFRNTFRhZ05hbWVzLmluICovLAorCQkJCUQ2RUZD
MEJCMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmNwcCAqLywKKwkJCQlE
NkVGQzBCQzE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5oICovLAorCQkJ
CUQ2RUZDMEJEMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmlkbCAqLywK
IAkJCQlBODEzNjlCQjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
Ki8sCiAJCQkJQTgxMzY5QkEwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQu
aCAqLywKIAkJCQlBODBFN0UxNjBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGwgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5kZXggNGExZTMzNTY4Y2IxNTdhNzIzZjBjN2FmYTY5
N2MzNDA5MjY2NjE2OC4uY2ZlODcwNTNkYzcyMGE0ZTM0NzkyNWFlNjk5MzkyNTgyMzljYTUxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcwpAQCAtMTI2Miw2ICsxMjYyLDEwIEBAIHN1bW1hcnk6Oi13ZWJraXQt
ZGV0YWlscy1tYXJrZXIgewogICAgIG1hcmdpbi1yaWdodDogMC40ZW07CiB9CiAKK3RlbXBsYXRl
IHsKKyAgICBkaXNwbGF5OiBub25lCit9CisKIGJkaSwgb3V0cHV0IHsKICAgICB1bmljb2RlLWJp
ZGk6IC13ZWJraXQtaXNvbGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApp
bmRleCBmM2M2YWJkMzhhNzc1ODY4OTJhMmYxNWQ5ZDNjZjZkMWYwYjQxMWNhLi4zZjQyNWM1NjY0
ZjU1OGM0MzNmYmNhYjEwYjJjMDc5MGRhZDM0MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCkBAIC0yOTMsNiArMjkzLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJ
bnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAg
ICBBU1NFUlQobmV3Q2hpbGQpOwogICAgIEFTU0VSVChuZXh0Q2hpbGQpOwogICAgIEFTU0VSVChu
ZXh0Q2hpbGQtPnBhcmVudE5vZGUoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKSA9
PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7CiAgICAg
Y29sbGVjdFRhcmdldE5vZGVzKG5ld0NoaWxkLmdldCgpLCB0YXJnZXRzKTsKQEAgLTY3NCw2ICs2
NzUsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFwcGVuZENoaWxkKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Q2hpbGQpCiB7CiAgICAgQVNTRVJUKG5ld0NoaWxkKTsKICAgICBBU1NFUlQoIW5l
d0NoaWxkLT5wYXJlbnROb2RlKCkpOyAvLyBVc2UgYXBwZW5kQ2hpbGQgaWYgeW91IG5lZWQgdG8g
aGFuZGxlIHJlcGFyZW50aW5nIChhbmQgd2FudCBET00gbXV0YXRpb24gZXZlbnRzKS4KKyAgICBB
U1NFUlQoZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiBs
YXN0ID0gbV9sYXN0Q2hpbGQ7CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzU2
OTY3NDQxODBlZmZhZmRkZGY5NzFmZmM5MzUyMWVmMjJhZWJlZC4uY2VkZTlmYjVjMWViMTZkMWU5
ZmNmZDNlNzE0NjBkMzQ5MzIxYzU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01OTM1
LDQgKzU5MzUsMjIgQEAgTG9jYWxlJiBEb2N1bWVudDo6Z2V0Q2FjaGVkTG9jYWxlKGNvbnN0IEF0
b21pY1N0cmluZyYgbG9jYWxlKQogICAgIHJldHVybiAqKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUp
OwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCitEb2N1bWVudCogRG9jdW1lbnQ6
OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkKK3sKKyAgICAvLyBJZiBET0NVTUVOVCBk
b2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCwgTGV0IFRFTVBMQVRFIENPTlRFTlRTIE9X
TkVSIGJlIERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIW1fZnJhbWUp
CisgICAgICAgIHJldHVybiB0aGlzOworCisgICAgaWYgKCFtX3RlbXBsYXRlQ29udGVudHNPd25l
ckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQorICAgICAgICAgICAg
bV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKDAs
IGJsYW5rVVJMKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3RlbXBsYXRlQ29udGVu
dHNPd25lckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFua1VSTCgpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudC5nZXQoKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDRlMjY3MTYxMTIyMGQzZmJmNzcyMGEwOGRjNGQ3OTUzZGExZTUwZWUuLjZhYjg5MWY2NWYyMjgw
NDRkZjdkNzI2YmUzMDE2NTczMDdiYWU4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTcx
LDYgKzExNzEsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4g
PiYgdG9wTGF5ZXJFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGF5ZXJFbGVtZW50czsg
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBEb2N1bWVudCog
dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRN
TCk7CiAKQEAgLTE1MjMsNiArMTUyNywxMCBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNo
TWFwPEF0b21pY1N0cmluZywgT3duUHRyPExvY2FsZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2Nh
bGVNYXA7CiAgICAgTG9jYWxlSWRlbnRpZmllclRvTG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisK
KyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fdGVt
cGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQ7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERv
Y3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGJlYjgzMmY3ZjUwMDliNmFj
NjEzYzMzY2Q4YjQ3MWVhMjI0NzJlNjIuLmM3NjZmZmYwOWVjYjA2MTkzM2EzM2NhMjhhODU3ODA4
MzFhYWI4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11
bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3Iu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxh
dGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKQEAgLTE0MSw3ICsxNDIsMTIgQEAg
dm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2Rl
KiB0YXJnZXROb2RlLCBOb2RlKiBub2QKICAgICAgICAgYXBwZW5kU3RhcnRUYWcodGFyZ2V0Tm9k
ZSwgJm5hbWVzcGFjZUhhc2gpOwogCiAgICAgaWYgKCEodGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS0+
aXNIVE1MRG9jdW1lbnQoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyh0YXJnZXROb2RlKSkp
IHsKLSAgICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgp
OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKKyNpZiBFTkFCTEUo
VEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhh
c1RhZ05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUp
LT5jb250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNl
bHNlCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7Cisj
ZW5kaWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVu
dCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tp
cCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDg3YjdlMjYy
OTVmYjc0ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkxMWQuLmJjZDRmMWRlM2ExNWM3ZjMzNjI0M2I2
Y2JlZmNmY2UxN2U0OTE2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00
NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxU
ZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlz
dGVuZXIuaCIKQEAgLTM0Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhU
TUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5n
JiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0
aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgIGlmIChSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0
ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKSB7CisgICAgICAg
IENvbnRhaW5lck5vZGUqIGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpCisgICAgICAgIGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAg
ICAgY29udGFpbmVyID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMpLT5jb250ZW50KCk7Cisj
ZW5kaWYKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRhaW5lciwgZnJh
Z21lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBtZXJnZVdpdGhO
ZXh0VGV4dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggZDUxN2M4
NDU4Njg3ZjgyOTEwNGU1MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNmNDdjMDBiODUxOTcyMDRh
MmNkYjU4ZDg2NDBlZDk5ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dHNBbGxJbk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBh
cnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRl
RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVk
ZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVs
ZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4NWExZTYxYTVh
OTU4MmIxM2U2MzQyODljZGM1M2EyMmM3NmIzZTAxLi5iODZhMjQ3MmVlNGY1ZTVkYWE1ZmE1YWE1
YjcyNWFlM2Y2NzkyMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdO
YW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTI0
LDYgKzEyNCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkg
aW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1I
VE1MVGFibGVDZWxsRWxlbWVudAordGVtcGxhdGUgaW50ZXJmYWNlTmFtZT1IVE1MVGVtcGxhdGVF
bGVtZW50LCBjb25kaXRpb25hbD1URU1QTEFURV9FTEVNRU5UCiB0ZXh0YXJlYSBpbnRlcmZhY2VO
YW1lPUhUTUxUZXh0QXJlYUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogdGZv
b3QgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGggaW50ZXJmYWNlTmFt
ZT1IVE1MVGFibGVDZWxsRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk1ODZiZDk5ZmI0NGM4YzhjNTIwZjllOWQ2YTc5OWM2
MGM3MWEwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVu
dC5oIgorCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAibWFya3Vw
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
KworaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCit7Cit9CisKK0hUTUxUZW1wbGF0ZUVsZW1lbnQ6On5I
VE1MVGVtcGxhdGVFbGVtZW50KCkKK3sKK30KKworUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVt
ZW50PiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TFRlbXBsYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitEb2N1bWVudEZyYWdt
ZW50KiBIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
Y29udGVudCkKKyAgICAgICAgbV9jb250ZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG93
bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKSk7CisKKyAgICBy
ZXR1cm4gbV9jb250ZW50LmdldCgpOworfQorCisKKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5v
cmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTI3IChwcmV2ZW50IERPTSBoaWVyYXJj
aHkgY3ljbGVzKS4KKy8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hv
d19idWcuY2dpP2lkPTIwMTI5IChleHRlbmRlZCBhZG9wdE5vZGUgdG8gY29uc2lkZXIgdGVtcGxh
dGUuY29udGVudCkuCit2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OnNldENvbnRlbnQoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBwcnBDb250ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY29udGVudCA9IHBycENvbnRlbnQ7CisKKyAg
ICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgZWMg
PSBUWVBFX01JU01BVENIX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICht
X2NvbnRlbnQuZ2V0KCkgPT0gY29udGVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGNvbnRlbnQtPm93bmVyRG9jdW1lbnQoKSAhPSBvd25lckRvY3VtZW50KCktPnRlbXBsYXRl
Q29udGVudHNPd25lckRvY3VtZW50KCkpCisgICAgICAgIG93bmVyRG9jdW1lbnQoKS0+dGVtcGxh
dGVDb250ZW50c093bmVyRG9jdW1lbnQoKS0+YWRvcHROb2RlKGNvbnRlbnQsIEFTU0VSVF9OT19F
WENFUFRJT04pOworCisgICAgbV9jb250ZW50ID0gY29udGVudDsKK30KKworI2lmbmRlZiBOREVC
VUcKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25z
dCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCAobm9kZS0+aXNIVE1MRWxlbWVu
dCgpICYmIG5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZgorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmVmOTEzZTQ0YWI2YjhmNjYzNTllZTA4OTk4NzI1ZTc0NWU5NTk2NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC0wLDAgKzEs
NzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFRlbXBsYXRl
RWxlbWVudF9oCisKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1l
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5I
VE1MVGVtcGxhdGVFbGVtZW50KCk7CisKKyAgICBEb2N1bWVudEZyYWdtZW50KiBjb250ZW50KCkg
Y29uc3Q7CisKKyAgICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKKyAgICBtdXRhYmxlIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7Cit9OworCitjb25zdCBIVE1MVGVtcGxhdGVFbGVt
ZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgTm9kZSopOworCitpbmxpbmUgSFRNTFRl
bXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudCo+KHRvSFRNTFRlbXBsYXRlRWxl
bWVudChzdGF0aWNfY2FzdDxjb25zdCBOb2RlKj4obm9kZSkpKTsKK30KKworI2lmZGVmIE5ERUJV
RworCisvLyBUaGUgZGVidWcgdmVyc2lvbiBvZiB0aGlzLCB3aXRoIGFzc2VydGlvbnMsIGlzIG5v
dCBpbmxpbmVkLgoraW5saW5lIGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBs
YXRlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBIVE1MVGVtcGxhdGVFbGVtZW50Kj4obm9kZSk7Cit9CisjZW5kaWYgLy8gTkRFQlVHCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9FTEVN
RU5UKQorCisjZW5kaWYgLy8gSFRNTFRlbXBsYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTU4MzZkOTc4MWZkNmIz
ZTZmYzZlNjFmYzdmNTRhMDBjN2QwMmJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1URU1QTEFURV9FTEVNRU5UCitdIGludGVyZmFjZSBIVE1MVGVtcGxhdGVFbGVt
ZW50IDogSFRNTEVsZW1lbnQgeworICAgIGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50IGNvbnRl
bnQgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKK307CisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA5YzE4MmJh
MjM0M2I0ZTUxMzlhMzIwMjI2MDgxNGVkMDQ5NTkxOWQ4Li42MjI2OWRlY2I3NWY1MThjY2M4OTE0
MzJkOWQwZTM3MjM0Yjk3OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5j
bHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNzcsNiArNzgsMTEgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzQWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIAogc3RhdGljIGlu
bGluZSB2b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIHsK
KyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodGFzay5wYXJlbnQtPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNrLnBhcmVudCA9IHRvSFRNTFRlbXBsYXRl
RWxlbWVudCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRlbnQoKTsKKyNlbmRpZgorCiAgICAgaWYg
KHRhc2submV4dENoaWxkKQogICAgICAgICB0YXNrLnBhcmVudC0+cGFyc2VySW5zZXJ0QmVmb3Jl
KHRhc2suY2hpbGQuZ2V0KCksIHRhc2submV4dENoaWxkLmdldCgpKTsKICAgICBlbHNlCkBAIC0y
NDcsNyArMjUzLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0RG9jdHlwZShB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0
Q29tbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewogICAgIEFTU0VSVCh0b2tlbi0+dHlw
ZSgpID09IEhUTUxUb2tlblR5cGVzOjpDb21tZW50KTsKLSAgICBhdHRhY2hMYXRlcihjdXJyZW50
Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUoY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwgdG9rZW4t
PmNvbW1lbnQoKSkpOworICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNy
ZWF0ZShvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgdG9rZW4tPmNvbW1lbnQoKSkpOwog
fQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50T25Eb2N1bWVudChB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQpAQCAtMzI1LDcgKzMzMSw3IEBAIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6Omluc2VydFNjcmlwdEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikK
ICAgICAvLyB0aG9zZSBmbGFncyBvciBlZmZlY3RzIHRoZXJlb2YuCiAgICAgY29uc3QgYm9vbCBw
YXJzZXJJbnNlcnRlZCA9IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uICE9IEFsbG93U2Ny
aXB0aW5nQ29udGVudEFuZERvTm90TWFya0FscmVhZHlTdGFydGVkOwogICAgIGNvbnN0IGJvb2wg
YWxyZWFkeVN0YXJ0ZWQgPSBtX2lzUGFyc2luZ0ZyYWdtZW50ICYmIHBhcnNlckluc2VydGVkOwot
ICAgIFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gZWxlbWVudCA9IEhUTUxTY3JpcHRFbGVtZW50
OjpjcmVhdGUoc2NyaXB0VGFnLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCBwYXJzZXJJbnNl
cnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOworICAgIFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gZWxl
bWVudCA9IEhUTUxTY3JpcHRFbGVtZW50OjpjcmVhdGUoc2NyaXB0VGFnLCBvd25lckRvY3VtZW50
Rm9yQ3VycmVudE5vZGUoKSwgcGFyc2VySW5zZXJ0ZWQsIGFscmVhZHlTdGFydGVkKTsKICAgICBp
ZiAobV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gRGlzYWxsb3dTY3JpcHRpbmdDb250
ZW50KQogICAgICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1
dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBhdHRhY2hMYXRlcihj
dXJyZW50Tm9kZSgpLCBlbGVtZW50KTsKQEAgLTM1MSw2ICszNTcsMTEgQEAgdm9pZCBIVE1MQ29u
c3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5nJiBjaGFyYWN0ZXJzLCBX
aGl0ZXNwYWNlTW8KICAgICBpZiAoc2hvdWxkRm9zdGVyUGFyZW50KCkpCiAgICAgICAgIGZpbmRG
b3N0ZXJTaXRlKHRhc2spOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYg
KHRhc2sucGFyZW50LT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKKyAgICAgICAgdGFzay5wYXJl
bnQgPSB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQodGFzay5wYXJlbnQuZ2V0KCkpLT5jb250ZW50KCk7
CisjZW5kaWYKKwogICAgIC8vIFN0cmluZ3MgY29tcG9zZWQgZW50aXJlbHkgb2Ygd2hpdGVzcGFj
ZSBhcmUgbGlrZWx5IHRvIGJlIHJlcGVhdGVkLgogICAgIC8vIFR1cm4gdGhlbSBpbnRvIEF0b21p
Y1N0cmluZyBzbyB3ZSBzaGFyZSBhIHNpbmdsZSBzdHJpbmcgZm9yIGVhY2guCiAgICAgYm9vbCBz
aG91bGRVc2VBdG9taWNTdHJpbmcgPSB3aGl0ZXNwYWNlTW9kZSA9PSBBbGxXaGl0ZXNwYWNlCkBA
IC0zODcsMTggKzM5OCwyNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0
Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogUGFzc1JlZlB0cjxF
bGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9r
ZW4qIHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkKIHsKICAgICBRdWFs
aWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVzcGFjZVVSSSk7
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCktPmNyZWF0ZUVsZW1lbnQodGFnTmFt
ZSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmli
dXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgcmV0dXJuIGVsZW1l
bnQucmVsZWFzZSgpOwogfQogCitpbmxpbmUgRG9jdW1lbnQqIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
Ojpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKQoreworI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIGlmIChjdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkK
KyAgICAgICAgcmV0dXJuIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVudCgpKS0+
Y29udGVudCgpLT5kb2N1bWVudCgpOworI2VuZGlmCisgICAgcmV0dXJuIGN1cnJlbnROb2RlKCkt
PmRvY3VtZW50KCk7Cit9CisKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNp
dGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgUXVh
bGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCB4aHRtbE5hbWVzcGFj
ZVVSSSk7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgdXNlIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjpjcmVhdGVFbGVtZW50IGJlY2F1c2Ugd2UKICAgICAvLyBoYXZlIHRvIHBhc3MgdGhlIGN1cnJl
bnQgZm9ybSBlbGVtZW50LiAgV2Ugc2hvdWxkIHJld29yayBmb3JtIGFzc29jaWF0aW9uCiAgICAg
Ly8gdG8gb2NjdXIgYWZ0ZXIgY29uc3RydWN0aW9uIHRvIGFsbG93IGJldHRlciBjb2RlIHNoYXJp
bmcgaGVyZS4KLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50RmFjdG9y
eTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwgY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKSwg
Zm9ybSgpLCB0cnVlKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IEhUTUxFbGVtZW50
RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQodGFnTmFtZSwgb3duZXJEb2N1bWVudEZvckN1cnJl
bnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRl
cyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAg
ICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgcmV0dXJuIGVsZW1lbnQu
cmVsZWFzZSgpOwpAQCAtNDYyLDYgKzQ4MiwxNSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkKIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
ZmluZEZvc3RlclNpdGUoSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVO
QUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIC8vIFdoZW4gYSBub2RlIGlzIHRvIGJlIGZvc3Rl
ciBwYXJlbnRlZCwgdGhlIGxhc3QgdGVtcGxhdGUgZWxlbWVudCB3aXRoIG5vIHRhYmxlIGVsZW1l
bnQgaXMgYmVsb3cgaXQgaW4gdGhlIHN0YWNrIG9mIG9wZW4gZWxlbWVudHMgaXMgdGhlIGZvc3Rl
ciBwYXJlbnQgZWxlbWVudCAoTk9UIHRoZSB0ZW1wbGF0ZSdzIHBhcmVudCEpCisgICAgSFRNTEVs
ZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbGFzdFRlbXBsYXRlRWxlbWVudCA9IG1fb3BlbkVs
ZW1lbnRzLnRvcG1vc3QodGVtcGxhdGVUYWcubG9jYWxOYW1lKCkpOworICAgIGlmIChsYXN0VGVt
cGxhdGVFbGVtZW50ICYmICFtX29wZW5FbGVtZW50cy5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7
CisgICAgICAgIHRhc2sucGFyZW50ID0gbGFzdFRlbXBsYXRlRWxlbWVudC0+ZWxlbWVudCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBIVE1MRWxlbWVudFN0YWNrOjpF
bGVtZW50UmVjb3JkKiBsYXN0VGFibGVFbGVtZW50UmVjb3JkID0gbV9vcGVuRWxlbWVudHMudG9w
bW9zdCh0YWJsZVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgaWYgKGxhc3RUYWJsZUVsZW1lbnRSZWNv
cmQpIHsKICAgICAgICAgRWxlbWVudCogbGFzdFRhYmxlRWxlbWVudCA9IGxhc3RUYWJsZUVsZW1l
bnRSZWNvcmQtPmVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IDYwNTcyYmRkODU2Mjc0NDVjYmQ4NjVhOTY3OWQy
ZmViYTVmNmE4ZGMuLmRmMzI1OTBhNzkzNzE3YmU3YTkxZGE3NmI5MTVjNGE5MTU1YjUxZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUu
aApAQCAtMTE0LDkgKzExNCwxMCBAQCBwdWJsaWM6CiAgICAgQ29udGFpbmVyTm9kZSogY3VycmVu
dE5vZGUoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCk7IH0KICAgICBI
VE1MU3RhY2tJdGVtKiBjdXJyZW50U3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxl
bWVudHMudG9wU3RhY2tJdGVtKCk7IH0KICAgICBIVE1MU3RhY2tJdGVtKiBvbmVCZWxvd1RvcCgp
IGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLm9uZUJlbG93VG9wKCk7IH0KLQorICAgIERv
Y3VtZW50KiBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKTsKICAgICBIVE1MRWxlbWVudFN0
YWNrKiBvcGVuRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiAmbV9vcGVuRWxlbWVudHM7IH0KICAg
ICBIVE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0KiBhY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSBj
b25zdCB7IHJldHVybiAmbV9hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHM7IH0KKyAgICBib29sIGN1
cnJlbnRJc1Jvb3ROb2RlKCkgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9kZSgpID09IG1f
b3BlbkVsZW1lbnRzLnJvb3ROb2RlKCk7IH0KIAogICAgIEVsZW1lbnQqIGhlYWQoKSBjb25zdCB7
IHJldHVybiBtX2hlYWQtPmVsZW1lbnQoKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIGhlYWRTdGFj
a0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX2hlYWQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKaW5kZXggNmMyMjBjOTczOWE2NDAy
MGVkMGYyN2NjMzIwMWIyYzRlMDE2MTU3OC4uYjgwNDY3N2M5OGI3NjU1ODhmYTBlZjBjOWExNmY0
NDEyYjQ1NzQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVs
ZW1lbnRTdGFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5jcHAKQEAgLTM4LDE0ICszOCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1Jvb3ROb2Rl
KEhUTUxTdGFja0l0ZW0qIGl0ZW0pCisKK25hbWVzcGFjZSB7CisKK2lubGluZSBib29sIGlzUm9v
dE5vZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aXNEb2N1bWVu
dEZyYWdtZW50Tm9kZSgpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZyk7CiB9
CiAKLW5hbWVzcGFjZSB7Ci0KIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRl
bSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZShhcHBsZXRUYWcpCkBAIC02
NCw2ICs2NSw5IEBAIGlubGluZSBib29sIGlzU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRh
ZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKICAgICAg
ICAgfHwgaXRlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpCisjaWYgRU5BQkxFKFRF
TVBMQVRFX0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcp
CisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtNzcsNiArODEs
OSBAQCBpbmxpbmUgYm9vbCBpc0xpc3RJdGVtU2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRl
bSkKIGlubGluZSBib29sIGlzVGFibGVTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQog
ewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKQorI2lmIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKQorICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKQor
I2VuZGlmCiAgICAgICAgIHx8IGlzUm9vdE5vZGUoaXRlbSk7CiB9CiAKQEAgLTg1LDEyICs5Miwx
OCBAQCBpbmxpbmUgYm9vbCBpc1RhYmxlQm9keVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0
ZW0pCiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGJvZHlUYWcpCiAgICAgICAgIHx8IGl0
ZW0tPmhhc1RhZ05hbWUodGZvb3RUYWcpCiAgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGhl
YWRUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhh
c1RhZ05hbWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVt
KTsKIH0KIAogaW5saW5lIGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0q
IGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodHJUYWcpCisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtNTI3LDYg
KzU0MCwxMyBAQCBib29sIEhUTUxFbGVtZW50U3RhY2s6OmluU2VsZWN0U2NvcGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSkgY29uc3QKICAgICByZXR1cm4gaW5TZWxlY3RTY29wZSh0YWdO
YW1lLmxvY2FsTmFtZSgpKTsKIH0KIAorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorYm9v
bCBIVE1MRWxlbWVudFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaW5TY29wZUNvbW1vbjxpc1Jvb3ROb2RlPihtX3RvcC5nZXQoKSwgdGVtcGxhdGVU
YWcubG9jYWxOYW1lKCkpOworfQorI2VuZGlmCisKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6
Omh0bWxFbGVtZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9yb290Tm9kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKaW5kZXggODczY2JkZWI5
NWI4ZWRhMDZiM2JlODBiZDk1Y2E3ZDIzODkxMWJhMy4uMmMwZGIxMzRhMGQyNTUzOTc2ZjBkZjlh
ZWVmM2EwZGJkODYwYzljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVsZW1lbnRTdGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxF
bGVtZW50U3RhY2suaApAQCAtMTUwLDcgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFz
T25seU9uZUVsZW1lbnQoKSBjb25zdDsKICAgICBib29sIHNlY29uZEVsZW1lbnRJc0hUTUxCb2R5
RWxlbWVudCgpIGNvbnN0OwotCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgYm9v
bCBoYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCkgY29uc3Q7CisjZW5kaWYKICAgICBFbGVtZW50KiBo
dG1sRWxlbWVudCgpIGNvbnN0OwogICAgIEVsZW1lbnQqIGhlYWRFbGVtZW50KCkgY29uc3Q7CiAg
ICAgRWxlbWVudCogYm9keUVsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IGM3ODU2MmIzM2MxOWJkMmM1NzFkNTli
YTU1YzZhM2QwN2UyMmM4ZDcuLjY5NzRjNjRiZDUxNmZlOTc0MjhjNTRmYzlmMjVlODk4Y2E3OGFl
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNw
cApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNs
dWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdGFja0l0ZW0uaCIKKyNp
bmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAj
aW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
QEAgLTM2MCw3ICszNjEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZy
b21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2VuKQogICAgIC8vIHN5bmNocm9ub3VzbHkgcmUtZW50
ZXJzIHRoZSBwYXJzZXIuIFdlIGRvbid0IGNsZWFyIHRoZSB0b2tlbiBpbW1lZGF0ZWx5CiAgICAg
Ly8gZm9yIENoYXJhY3RlciB0b2tlbnMgYmVjYXVzZSB0aGUgQXRvbWljSFRNTFRva2VuIGF2b2lk
cyBjb3B5aW5nIHRoZQogICAgIC8vIGNoYXJhY3RlcnMgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8g
dGhlIHVuZGVybHlpbmcgYnVmZmVyIGluIHRoZQotICAgIC8vIEhUTUxUb2tlbi4gRm9ydHVhbnRl
bHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNlIHRvIHJlLWVudGVyCisgICAgLy8g
SFRNTFRva2VuLiBGb3J0dW5hdGVseSwgQ2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2Ug
dG8gcmUtZW50ZXIKICAgICAvLyB0aGUgcGFyc2VyLgogICAgIC8vCiAgICAgLy8gRklYTUU6IFN0
b3AgY2xlYXJpbmcgdGhlIHJhd1Rva2VuIG9uY2Ugd2Ugc3RhcnQgcnVubmluZyB0aGUgcGFyc2Vy
IG9mZgpAQCAtNjcyLDggKzY3MywxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IGJvZHlUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0g
ICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5zZWNvbmRFbGVtZW50SXNIVE1MQm9k
eUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlPbmVFbGVtZW50KCkp
IHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgYm9v
bCBmcmFnbWVudE9yVGVtcGxhdGVDYXNlID0gIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25k
RWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNP
bmx5T25lRWxlbWVudCgpOworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBm
cmFnbWVudE9yVGVtcGxhdGVDYXNlID0gZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSB8fCBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsKKyNlbmRpZgorICAgICAg
ICBpZiAoZnJhZ21lbnRPclRlbXBsYXRlQ2FzZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOwpAQCAtNjgzLDcgKzY4OCw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykg
ewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVu
RWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGlmICghbV9mcmFtZXNldE9rKQpAQCAtOTQ0LDEzICs5NDksNDMgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVB
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQo
dG9rZW4pOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisKK3ZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQoreworICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5kTWFya2Vy
KCk7CisgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKKyAgICBzZXRJbnNlcnRp
b25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAgIGlm
ICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisgICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdHJl
ZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7CisgICAgaWYgKCFtX3RyZWUuY3VycmVudFN0YWNr
SXRlbSgpLT5oYXNMb2NhbE5hbWUodG9rZW4tPm5hbWUoKSkpCisgICAgICAgIHBhcnNlRXJyb3Io
dG9rZW4pOworICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4t
Pm5hbWUoKSk7CisgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRv
TGFzdE1hcmtlcigpOworICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKK30K
KyNlbmRpZgorCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9y
SW5Db2x1bW5Hcm91cCgpCiB7Ci0gICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgIGlmIChtX3RyZWUuY3VycmVudElz
Um9vdE5vZGUoKSkgewogICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAg
ICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDEy
LDcgKzEwNDcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5U
YWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRh
YmxlVGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIXByb2Nl
c3NUYWJsZUVuZFRhZ0ZvckluVGFibGUoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1w
bGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CkBAIC0xMDM5LDYgKzEwNzQsMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodG9rZW4t
Pm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRh
Zyh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwYXJzZUVycm9y
KHRva2VuKTsKICAgICBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVu
dEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHko
dG9rZW4pOwpAQCAtMTE1Myw2ICsxMTk0LDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIG1fdHJlZS5p
bnNlcnRTZWxmQ2xvc2luZ0hUTUxFbGVtZW50KHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9r
ZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRl
U3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgaWYgKCFwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsK
ICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTExNzcsNyArMTIyNCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgaWYgKGlzQ2FwdGlvbkNv
bE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRv
a2VuLT5uYW1lKCkpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAg
ICAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Ym9keVRh
Zy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRo
ZWFkVGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2Nv
cGUodGZvb3RUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0xMjAyLDcgKzEy
NDksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiAgICAgICAgICAgICB8fCBpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRv
a2VuLT5uYW1lKCkpCiAgICAgICAgICAgICB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4t
Pm5hbWUoKSkpIHsKICAgICAgICAgICAgIGlmICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkg
ewotICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTI4MCw2ICsxMzI3LDEy
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCh0b2tlbik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAg
ICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEFmdGVyRnJhbWVzZXRNb2RlOgpAQCAtMTM1OSw2ICsxNDEyLDEyIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoZGlkUHJvY2VzcywgZGlkUHJvY2Vzcyk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxF
TUVOVCkKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5UYWJsZVRl
eHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKQEAgLTEzNjcsMTIgKzE0
MjYsNTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgIGNhc2UgVGV4dE1vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlbXBsYXRlQ29udGVudHNNb2RlOgor
I2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9
PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9r
ZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRva2Vu
LT5uYW1lKCkgPT0gbGlua1RhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzY3Jp
cHRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gc3R5bGVUYWcKKyAgICAgICAg
ICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gbWV0YVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lVGFnKQorICAgICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKHRva2VuLT5u
YW1lKCkgPT0gY29sVGFnKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdy
b3VwTW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9r
ZW4tPm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAg
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7CisgICAgICAgIGVsc2UgaWYg
KHRva2VuLT5uYW1lKCkgPT0gdHJUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKElu
VGFibGVCb2R5TW9kZSk7CisgICAgICAgIGVsc2UgaWYgKGlzVGFibGVDZWxsQ29udGV4dFRhZyh0
b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Sb3dNb2RlKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsK
KworICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworI2Vsc2UKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogewogICAgIHBhcnNlRXJyb3IodG9rZW4pOworI2lmIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKQorICAgIGlmIChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRl
SW5IVE1MU2NvcGUoKSkgeworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50
cygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fdHJlZS5pbnNlcnRI
VE1MSHRtbFN0YXJ0VGFnSW5Cb2R5KHRva2VuKTsKIH0KIApAQCAtMTU0Miw4ICsxNjQwLDEyIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkK
ICAgICAgICAgICAgIGxhc3QgPSB0cnVlOwogICAgICAgICAgICAgaXRlbSA9IEhUTUxTdGFja0l0
ZW06OmNyZWF0ZShtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxlbWVudCgpLCBIVE1MU3RhY2tJ
dGVtOjpJdGVtRm9yQ29udGV4dEVsZW1lbnQpOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9Q
dWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTMwIChzaG91bGQgPHRlbXBsYXRlPiBjbGVhciB0aGUg
ImltcGxpZWQgY29udGV4dCBlbGVtZW50Ii4KKyAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUo
dGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoVGVtcGxh
dGVDb250ZW50c01vZGUpOworI2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNl
bGVjdFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAg
ICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGRUYWcpIHx8IGl0ZW0tPmhhc1RhZ05h
bWUodGhUYWcpKQpAQCAtMTU1NSwxOSArMTY1NywyMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgIGlmIChpdGVtLT5oYXNU
YWdOYW1lKGNhcHRpb25UYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUo
SW5DYXB0aW9uTW9kZSk7CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFn
KSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAg
ICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1vZGUpOwogICAgICAgICB9
CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKICAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhh
c1RhZ05hbWUoaGVhZFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVu
dCgpKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAgIGlmICghbV9m
cmFnbWVudENvbnRleHQuZnJhZ21lbnQoKSB8fCBtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxl
bWVudCgpICE9IGl0ZW0tPm5vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0
aW9uTW9kZShJbkhlYWRNb2RlKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIHNldEluc2Vy
dGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1Rh
Z05hbWUoYm9keVRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJv
ZHlNb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoZnJhbWVzZXRUYWcpKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1
cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkZyYW1lc2V0TW9kZSk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGl0ZW0tPmhhc1RhZ05hbWUoaHRtbFRhZykpIHsKQEAgLTE1OTgsNyArMTcwMSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5UYWJsZUJvZHkoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0YWJsZVRhZykgewogICAg
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBzbG93LgogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsK
LSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAg
IHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0x
NjI4LDcgKzE3MzEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0Zvcklu
Um93KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi0+bmFtZSgp
ID09IHRhYmxlVGFnKSB7CiAgICAgICAgIGlmICghcHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKSkg
ewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5UYWJsZUJvZHlNb2RlKTsKQEAgLTE2ODEsNyArMTc4NCwxMSBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHRyVGFnCiAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29u
dGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLT5uYW1lKCkpKSB7CisjaWYgRU5BQkxFKFRFTVBMQVRF
X0VMRU1FTlQpCisgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2Vu
LT5uYW1lKCkpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRlbXBsYXRl
VGFnKSB8fCBpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyNlbHNlCiAgICAgICAgICAgICBBU1NFUlQo
aXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpIHx8IGlzUGFyc2luZ0ZyYWdtZW50
KCkpOworI2VuZGlmCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMTgyMSw2ICsxOTI4LDEyIEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcoYnJUYWcpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBwcm9jZXNzQW55T3RoZXJFbmRUYWdG
b3JJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xODQyLDcgKzE5NTUsNyBAQCBib29sIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0NhcHRpb25FbmRUYWdGb3JJbkNhcHRpb24oKQogYm9vbCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KCkKIHsKICAgICBpZiAoIW1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRyVGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAg
ICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVy
cm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xODU2LDcgKzE5NjksNyBAQCBi
b29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogYm9vbCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUoKQogewogICAgIGlmICgh
bV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGFibGVUYWcpKSB7Ci0gICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJy
b3IuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xOTEzLDYgKzIwMjYsMTUgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKKyAgICAgICAgLy8gRklY
TUU6IFRoaXMgY2FzZSBzaG91bGQgYmUgYnJva2VuIG91dCBpbnRvIHByb2Nlc3NFbmRUYWdGb3JJ
bkhlYWQsCisgICAgICAgIC8vIGJlY2F1c2Ugb3RoZXIgZW5kIHRhZyBjYXNlcyBub3cgcmVmZXIg
dG8gaXQgKCJwcm9jZXNzIHRoZSB0b2tlbiBmb3IgdXNpbmcgdGhlIHJ1bGVzIG9mIHRoZSAiaW4g
aGVhZCIgaW5zZXJ0aW9uIG1vZGUiKS4KKyAgICAgICAgLy8gYnV0IGJlY2F1c2UgdGhlIGxvZ2lj
IGZhbGxzIHRocm91Z2ggdG8gQWZ0ZXJIZWFkTW9kZSwgdGhhdCBnZXRzIGEgbGl0dGxlIG1lc3N5
LgorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUo
KSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRv
a2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlm
ICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+cG9wSFRNTEhlYWRFbGVtZW50KCk7CiAgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEFmdGVySGVhZE1vZGUpOwpAQCAtMTk3Nyw2ICsyMDk5LDEyIEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAg
ICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0
ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmICghcHJv
Y2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCgpKSB7CiAgICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDUyLDcg
KzIxODAsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluRnJhbWVzZXRNb2RlOgogICAgICAgICBBU1NFUlQo
aW5zZXJ0aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgaWYgKHRva2VuLT5u
YW1lKCkgPT0gZnJhbWVzZXRUYWcpIHsKLSAgICAgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5v
ZGUoKSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgICAg
IGJvb2wgaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcgID0gbV90cmVlLmN1cnJlbnRJ
c1Jvb3ROb2RlKCk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgICAgICBp
Z25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyA9IGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21l
bnRQYXJzaW5nIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29w
ZSgpOworI2VuZGlmCisgICAgICAgICAgICBpZiAoaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBh
cnNpbmcpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBs
YXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMjA2MSw2ICsyMTk0LDEyIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiAgICAgICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckZyYW1lc2V0TW9kZSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxF
TUVOVCkKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgICAgIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyRnJhbWVz
ZXRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyRnJhbWVzZXRN
b2RlKTsKQEAgLTIxMTksMTEgKzIyNTgsMzIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHJlc2V0SW5zZXJ0
aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
I2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9
PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2Vu
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRl
eHQoKTsKICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgVGVtcGxhdGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
CisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19i
dWcuY2dpP2lkPTE5OTY2CisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0ZW0oKS0+aGFzVGFn
TmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5w
b3AoKTsKKyAgICAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKElu
Qm9keU1vZGUpOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyNlbHNlCisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IApAQCAtMjIyNCw4ICsyMzg0LDE0IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICB9CiAgICAgY2Fz
ZSBJbkJvZHlNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKKyAgICBjYXNlIFRlbXBsYXRl
Q29udGVudHNNb2RlOgogICAgIGNhc2UgSW5DZWxsTW9kZTogeworI2lmIEVOQUJMRShURU1QTEFU
RV9FTEVNRU5UKQorICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUg
fHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09
IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsK
KyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgIT0gVGVtcGxhdGVDb250ZW50
c01vZGUpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwg
aW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IElu
Q2VsbE1vZGUpOworI2VuZGlmCiAgICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJGb3JJbkJv
ZHkoYnVmZmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjM2MCw3ICsyNTI2LDEyIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgY2FzZSBJbkNlbGxNb2RlOgogICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKICAg
ICBjYXNlIEluUm93TW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAg
QVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9
PSBJbkNlbGxNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNhcHRpb25Nb2RlIHx8IGluc2Vy
dGlvbk1vZGUoKSA9PSBJblJvd01vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IFRlbXBsYXRlQ29u
dGVudHNNb2RlKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgIT0gVGVt
cGxhdGVDb250ZW50c01vZGUpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IElu
Qm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9k
ZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSk7Cisj
ZW5kaWYKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8gRW1pdCBwYXJzZSBlcnJvciBiYXNl
ZCBvbiB3aGF0IGVsZW1lbnRzIGFyZSBzdGlsbCBvcGVuLgogICAgICAgICBicmVhazsKICAgICBj
YXNlIEFmdGVyQm9keU1vZGU6CkBAIC0yMzg2LDcgKzI1NTcsNyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5Db2x1bW5H
cm91cE1vZGU6Ci0gICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNS
b290Tm9kZSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAg
ICAgICAgICAgICByZXR1cm47IC8vIEZJWE1FOiBTaG91bGQgd2UgYnJlYWsgaGVyZSBpbnN0ZWFk
IG9mIHJldHVybmluZz8KICAgICAgICAgfQpAQCAtMjQwOSw2ICsyNTgwLDE2IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAg
ICAgICAgIHNldEluc2VydGlvbk1vZGUobV9vcmlnaW5hbEluc2VydGlvbk1vZGUpOwogICAgICAg
ICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVGVt
cGxhdGVDb250ZW50c01vZGU6CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudElzUm9vdE5vZGUo
KSkgeworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAg
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9k
ZUFwcHJvcHJpYXRlbHkoKTsKKyAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CisgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50Tm9kZSgpKTsKICAg
ICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcEFsbCgpOwpAQCAtMjUxMiw2ICsyNjkzLDEyIEBA
IGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQoQXRvbWljSFRN
TFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKHNjcmlwdFRhZyk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKKyAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICBwcm9j
ZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyNlbmRpZgogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGhlYWRUYWcpIHsKICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCA4ZmYwZjU4YjM0NWZmZjNlNDU1YjVh
ZmZlZjY1ZTEwMmY2ZDViZmZhLi4yMTNlN2UwYmUzNmYzNDVkODM0YWNiZTc0ZjJlZTFiZTYwYzYy
YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApA
QCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIH5IVE1MVHJlZUJ1aWxkZXIoKTsKIAogICAg
IGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiAhIW1fZnJhZ21lbnRDb250
ZXh0LmZyYWdtZW50KCk7IH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBib29s
IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKTsgfQorICAgIGJvb2wgaXNQYXJzaW5n
RnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFn
bWVudCgpIHx8IGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKTsgfQorI2Vsc2UKKyAgICBib29s
IGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gaXNQ
YXJzaW5nRnJhZ21lbnQoKTsgfQorI2VuZGlmCiAKICAgICB2b2lkIGRldGFjaCgpOwogCkBAIC05
Nyw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgICAgICBJbkhlYWRNb2RlLAogICAgICAgICBJbkhl
YWROb3NjcmlwdE1vZGUsCiAgICAgICAgIEFmdGVySGVhZE1vZGUsCisgICAgICAgIFRlbXBsYXRl
Q29udGVudHNNb2RlLAogICAgICAgICBJbkJvZHlNb2RlLAogICAgICAgICBUZXh0TW9kZSwKICAg
ICAgICAgSW5UYWJsZU1vZGUsCkBAIC0xOTAsNiArMTk3LDExIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKIAorI2lmIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKQorICAgIHZvaWQgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcoQXRvbWljSFRN
TFRva2VuKik7CisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVFbmRUYWcoQXRvbWljSFRNTFRva2Vu
Kik7CisjZW5kaWYKKwogICAgIGNsYXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQgewogICAgICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBwdWJs
aWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNGEzYTVmNGRlZjA3ZGYyODZiZTQx
NmFhMjliNTAyOGQxZDlkZjU0OC4uOTE4ZjQ4MDc1MDA3YmE3MDQzYTk5MjI4NzFmMWRhNTJkMDQy
ZmY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDcyLDYgKzQ3Miw3IEBACiAg
ICAgYXR0cmlidXRlIEhUTUxUYWJsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVFbGVtZW50
OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVSb3dFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRhYmxl
Um93RWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDb25zdHJ1
Y3RvciBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKKyAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PVRFTVBMQVRFX0VMRU1FTlRdIEhUTUxUZW1wbGF0ZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGVt
cGxhdGVFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGV4dEFyZWFFbGVtZW50Q29uc3RydWN0
b3IgSFRNTFRleHRBcmVhRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFRpdGxlRWxlbWVudENv
bnN0cnVjdG9yIEhUTUxUaXRsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxVTGlzdEVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpCmluZGV4IDYyMWQ0Y2U5NWY3MTZjZDUyYjZjZDU5YmE5MDE3NGFjZGY2MTQ3ZWMuLjIw
ZmI4ZDExN2Y4YzUzZjA5OGZjNmNiNTVkNDNkZmZiZDQzMDBhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTEwOSw3ICsxMDksNyBAQAogICAgICAgJ0VOQUJMRV9TVFlM
RV9TQ09QRUQ9MScsCiAgICAgICAnRU5BQkxFX1NWRz08KGVuYWJsZV9zdmcpJywKICAgICAgICdF
TkFCTEVfU1ZHX0ZPTlRTPTwoZW5hYmxlX3N2ZyknLAotICAgICAgJ0VOQUJMRV9URU1QTEFURV9F
TEVNRU5UPTAnLAorICAgICAgJ0VOQUJMRV9URU1QTEFURV9FTEVNRU5UPTEnLAogICAgICAgJ0VO
QUJMRV9URVhUX0FVVE9TSVpJTkc9MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQ9
MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0VWRU5UUz08KGVuYWJsZV90b3VjaF9ldmVudHMpJywK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYzgxMTg5NmYwY2U2MjJjNDFlMDk0M2RmMGIwNmE3OGM2MTI3ZGY3Li40YTYwMTUw
NGIwY2RiNDM5Y2ZhYjg2NzU4MWE3YjVmMzE3MDc0NTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJI
VE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9pbm5lckhUTUwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQ6IEFkZGVkLgorICAg
ICAgICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJj
ZXMvZHVtcC1hcy1tYXJrdXAuanM6CisgICAgICAgIChNYXJrdXAuX2dldCk6CisgICAgICAgIChN
YXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlKToKKwogMjAxMi0xMS0zMCAgQWJoaXNoZWsgQXJ5
YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENyYXNoIGR1ZSB0byBpbnRydWRp
bmcgZmxvYXQgbm90IHJlbW92ZWQgYWZ0ZXIgd3JpdGluZyBtb2RlIGNoYW5nZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Ns
b25lTm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiNjFjZDhmNTYyZjJiYjA2ZmEwN2Ex
NTc0YTVhZGQzNjFlMzU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgg
QEAKK1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgbm90IGNsb25lZCB3aGVuIHRoZSB0
ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoIGlzIDEKK1BBU1MgY2xv
bmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCBpcyAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVkYTVmNzVlY2ZlYTAzZGI5OTgxYjlhZWY4NjVlYjRjZTRlMTMxNTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9k
ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0
ZW1wbGF0ZSI+Q29udGVudHM8L3RlbXBsYXRlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbign
VGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBub3QgY2xvbmVkIHdoZW4gdGhlIHRlbXBs
YXRlIGVsZW1lbnQgaXMgY2xvbmVkJyk7CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1l
bnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVt
cGxhdGUnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJywg
JzEnKTsKK3ZhciBjbG9uZSA9IHRlbXBsYXRlLmNsb25lTm9kZSh0cnVlKTsKK3Nob3VsZEJlKCdj
bG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJywgJzAnKTsKKworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29u
dGVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2
OWU1ZGZhODUxMzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVl
c3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZywgbWFpbiBkb2N1bWVu
dCBVUkwgaW5lcnRDb250ZW50cy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9u
c2UgKG51bGwpCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Jhei5jb20v
YmF0LmpwZworaHR0cDovL2Jhei5jb20vYmF0LmpwZyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9y
OiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVS
TCAiKG51bGwpIj4KK1RoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxh
dGUgY29udGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2Ny
aXB0IGRvZXMgbm90IHJ1bi4KKworcGFzcyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jM2MwNWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2NjZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENv
bnRlbnRzLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCk7CisgICAgfQorCisgICAgaWYgKHRlc3RWYWwgIT0gMSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgdmFyIHRlbXBsYXRlQ29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1w
bGF0ZScpLmNvbnRlbnQ7CisgICAgdmFyIGltZyA9IHRlbXBsYXRlQ29udGVudC5jaGlsZE5vZGVz
WzFdOworICAgIGltZy5zcmMgPSAiaHR0cDovL2Jhei5jb20vYmF0LmpwZyI7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRlbnQpOworCisgICAgaWYgKHRlc3RWYWwg
IT0gMikKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291
dHB1dCcpLmlubmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1lbnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250
ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJjZXMgZG8gbm90IGZldGNoLCBzY3JpcHQgZG9l
cyBub3QgcnVuLjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzY3JpcHQ+d2luZG93LnRl
c3RWYWwgPSAyOzwvc2NyaXB0PjxpbWcgc3JjPSJodHRwOi8vZm9vLmNvbS9iYXIuanBnIj4KKzwv
dGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lu
bmVySFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGUgdGVzdCBhc3NlcnRzIHRo
YXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0
cyBjaGlsZHJlbiBhcmUgaWdub3JlZC4KKworPGRpdj5Db250ZW50cyAxCis8dGVtcGxhdGU+Q29u
dGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NjJj
YTNiZWYxZDNkODI3OWZhYjE5MTc4OTkyYzJjNWY2MWMzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCkBA
IC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZW1wbGF0ZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOworICAgIHRlbXBsYXRlLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3Vs
ZCBub3Qgc2VyaWFsaXplJzsKKyAgICB2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRl
bnQuZmlyc3RDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBpbm5lclRlbXBsYXRlLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3Vs
ZCBub3Qgc2VyaWFsaXplIGVpdGhlcic7CisKKyAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1w
bGF0ZS5pbm5lckhUTUw7CisgICAgaWYgKHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3RoICE9IDEp
IC8vIFRoZSBvbmx5IGNoaWxkIHNob3VsZCBiZSB0aGUgc3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92
ZS4KKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1
dCcpLmlubmVyVGV4dCA9IHRlbXBsYXRlLmlubmVySFRNTDsKKyAgICB2YXIgdGVtcGxhdGUyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZTIuaW5uZXJI
VE1MID0gJzx0ZW1wbGF0ZT48L3RlbXBsYXRlPic7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJp
YWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuPC9wPgor
PHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PGRpdj5Db250ZW50cyAxCisgIDx0ZW1wbGF0ZT5Db250
ZW50cyAyPC90ZW1wbGF0ZT4KKzwvZGl2PjwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRv
Y3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcwMmFlYWVlMzkw
ZjgxNmU2YTUxZTljYjJlYzIxNDJjMTc2N2NlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3du
ZXJEb2N1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZW1wbGF0
ZS5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudCBpcyBu
b3QgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250ZW50LmZp
cnN0Q2hpbGQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQ
QVNTIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50IGlzIHRlbXBs
YXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50
IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIHRydWUKK1BBU1MgdGVtcGxhdGUyLm93bmVyRG9j
dW1lbnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1bWVudCBp
cyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIGRmLm93bmVyRG9jdW1lbnQgaXMg
ZG9jdW1lbnQKK1BBU1Mgc3Bhbi5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNTIGRmLm93
bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBzcGFuLm93
bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0
ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOyB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1w
bGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1Mg
dGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVt
cGxhdGUzLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUzLmNvbnRlbnQu
b3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRlbXBs
YXRlMy5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9vd25lckRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDUxOTJiMWZiNDliY2I3
NjM2N2JhNWQ1MTM5Y2Y1NDg2NWJjZGNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c3Bhbj48
dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVt
cGxhdGUyIj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUz
Ij48c3ZnPjwvc3ZnPjwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0
IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50Jyk7CisKK2lmICghd2lu
ZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVp
cmVzIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5vd25lckRv
Y3VtZW50JywgJ2RvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50
ID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Oworc2hvdWxkQmVUcnVlKCd0ZW1wbGF0
ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CitzaG91bGRO
b3RCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxk
QmUoJ3RlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRl
Q29udGVudE93bmVyRG9jdW1lbnQnKTsKKwordmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5j
b250ZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKK3Nob3VsZEJlKCdpbm5lclRlbXBsYXRlLm93
bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUo
J2lubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93
bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlVHJ1ZSgnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50
IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVtcGxhdGUyJyk7CitzaG91bGRCZSgndGVtcGxhdGUyLm93bmVyRG9j
dW1lbnQnLCAnZG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZTIuY29udGVudC5vd25lckRv
Y3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKKwordmFyIGRmID0gZG9j
dW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwordmFyIHNwYW4gPSBkZi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworc2hvdWxkQmUoJ2RmLm93bmVyRG9j
dW1lbnQnLCAnZG9jdW1lbnQnKTsKK3Nob3VsZEJlKCdzcGFuLm93bmVyRG9jdW1lbnQnLCAnZG9j
dW1lbnQnKTsKKwordGVtcGxhdGUuY29udGVudCA9IGRmOworc2hvdWxkQmUoJ2RmLm93bmVyRG9j
dW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3NwYW4u
b3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisKK3Nob3Vs
ZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIp
OycpOworc2hvdWxkVGhyb3coJ3RlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgidGV4dCIpOycpOworaWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dSb290KSB7CisgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHNob3VsZFRocm93KCd0
ZW1wbGF0ZS5jb250ZW50ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KScpOworfQorCit2YXIg
dGVtcGxhdGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxk
QmUoJ3RlbXBsYXRlMy5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91bGRCZSgndGVt
cGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3Vt
ZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmY2OWJmZmQ5MWQxZWY5N2Y2MWRmNmVlM2E2OTcwMDljY2EwNzViNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVu
dFhIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IEhUTUxUZW1wbGF0ZUVs
ZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50CisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3Vt
ZW50IGlzIGZhbHNlCitQQVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1M
RG9jdW1lbnQgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI4NTgzOGE2OTg5MTdiNWM3ZDEwM2I2OTg0Y2VlNzYwNjIzOTU3MmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1l
bnRYSFRNTC54aHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQgaW4g
WEhUTUwgRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAg
ICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
Jyk7CisKK3Nob3VsZEJlRmFsc2UoJ2RvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7
Cit2YXIgdGVtcGxhdGU0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKK3Zh
ciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGU0LmNvbnRlbnQub3duZXJE
b2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50Jyk7CitzaG91bGRCZUZhbHNlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGlu
c3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdCBiL0xheW91
dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhZTgx
ZWZkZGZkYzRkOGY4Njc3MWM2MmM0YTEzOTcyNDAyYmE4YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKQEAgLTAsMCArMSw4NDMg
QEAKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCisKKyNkYXRh
Cis8dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PC90
ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICA8
Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbD48dGVtcGxhdGU+SGVsbG88L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8
ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rpdj48L3RlbXBsYXRl
PjwvaGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4K
K3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+PC90ZW1wbGF0
ZT48Yj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAg
ICA8Yj4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
ICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEK
Kzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxl
PjxkaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICA8dGFibGU+CisKKyNk
YXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8
ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKKworI2RhdGEKKzx0YWJsZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RhYmxlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRhYmxlPgorfCAgICAgICAiICAgIgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3Rl
bXBsYXRlPjwvdGJvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJs
ZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAg
ICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Ri
b2R5PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48
dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAg
PHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRhYmxlPgorfCAgICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48
L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PG9w
dGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPG9w
dGlvbj4KKworI2RhdGEKKzx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvc2VsZWN0PjxvcHRp
b24+PC9vcHRpb24+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgIDxib2R5PgorCisjZGF0
YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0PgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNl
bGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0ZW1wbGF0ZT48L3Rl
bXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxz
ZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9u
Pjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9w
dGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxv
cHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48
dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+
PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0YQorPGJvZHk+PHRhYmxl
Pjx0ZW1wbGF0ZT48dGQ+PC90cj48ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgPHRkPgorfCAgICAgICAgICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0
ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0
aGVhZD4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwv
dGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgIDx0
ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0
ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAg
ICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVt
cGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8
dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0ZD48L3RkPjwv
dGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48
dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAg
ICA8Y29sPgorCisjZGF0YQorPGZyYW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L3Rl
bXBsYXRlPjwvZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxhdGU+PGZyYW1lPjwv
ZnJhbWU+PC9mcmFtZXNldD48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgor
fCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bh
bj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgIDxz
cGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0
PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8
ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48c2NyaXB0PnZhciBpID0gMTs8L3NjcmlwdD48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8c2NyaXB0
PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJv
ZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAg
IDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRkPjwvdGQ+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPHRyPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5
Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAg
ICA8dGQ+CisKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJvZHk+PHRkPjwv
dGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0
ZT48dGQ+PC90ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAg
ICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y29sZ3JvdXA+
PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRh
Cis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+
Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0Ym9k
eT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAg
ICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PC90YWJsZT48dHI+
PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBs
YXRlPjx0aGVhZD48L3RoZWFkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+PC90Ym9keT48L3Rl
bXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAg
ICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHRib2R5PgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjwvdGFibGU+PHRib2R5PjwvdGJv
ZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PGRpdj48dHI+PC90cj48L2Rpdj48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjxlbT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGVtPgorfCAgICAgICAg
ICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50LS0+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPCEtLSBjb21tZW50IC0tPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzdHlsZT48L3N0
eWxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxzdHlsZT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PG1ldGE+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG1ldGE+Cit8ICAgICAgICAg
PHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwvdGVtcGxhdGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxs
aW5rPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+
PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0
ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+PC9jb2w+
PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8Ym9keSBhPWI+PHRlbXBs
YXRlPjxkaXY+PC9kaXY+PGJvZHkgYz1kPjxkaXY+PC9kaXY+PC9ib2R5PjwvdGVtcGxhdGU+PC9i
b2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGh0bWwgYT1i
Pjx0ZW1wbGF0ZT48ZGl2PjxodG1sIGI9Yz48c3Bhbj48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAg
ICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGNvbD48
L2NvbD48aHRtbCBiPWM+PGNvbD48L2NvbD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAgPGNvbD4K
K3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+
PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFt
ZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGVtcGxh
dGU+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0OWIzZTkxN2Fj
NGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVu
LXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQ+
Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQnLAorXQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDE2NDNhMDM0MjQxNmM2NjMzYTFiMTMzNjk2ZDUxZWZiZjY0M2RlMTEuLmU0
OTBkOTk3MWYwN2RkNmU3MjRhMGI2YmE0YjRmMmExM2JmMzlkNWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMTAsNiArMzEwLDEwIEBAIGZhc3QvdGV4
dC91bmljb2RlLXZhcmlhdGlvbi1zZWxlY3Rvci5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQt
ZmlsZS1lbnRyaWVzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKIAorIyBFTkFCTEUoVEVNUExBVEVf
RUxFTUVOVCkgaXMgZGlzYWJsZWQuCitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1s
NWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorCiAjIFRyYW5zcGFyZW50IGltYWdlIGJlaW5nIHByb2R1
Y2VkCiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDAwMTY5NDJmMDgzNjQyZmZkNjE2
OGFmZGUyNzRhNDE0ZGJkZGZlNGYuLmM5MzVlOGVmNGYwNDI3MmFiNzIzMjY0YTkxOTMzZmU3ZmNi
NTA4OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03
Nyw2ICs3NywxMCBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQtY29udGVudC10
eXBlLWRhc2hib2FyZC5odG1sIFsgV29udEZpeCBdCiAjIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9O
KSBpcyBkaXNhYmxlZAogZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdv
bnRGaXggXQogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK3dlYmtp
dC5vcmcvYi8xMDM1NyBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50IFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTAzNTcgaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgWyBTa2lwIF0KKwogIyBU
aGVzZSB0ZXN0IC1hcHBsZS0gYW5kIC1raHRtbC0gcHJlZml4ZWQgQ1NTIHByb3BlcnRpZXMsIHdo
aWNoIHdlIGRvbid0IHN1cHBvcnQuCiBpbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5o
dG1sIFsgV29udEZpeCBdCiBmYXN0L2Nzcy9hcHBsZS1wcmVmaXguaHRtbCBbIFdvbnRGaXggXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYmJkZDNiZWUx
NzNkYzFhN2RkOTk4MzRlOGVkZTRiNzZjZmEyNjcwLi42MjM0ZWM0Mjc4MmY3Njg5YmZiNTE1MWRk
YWQ0ZmI4OGVkYWE5YTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNDMyLDYgKzQzMiwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGVkaXRpbmcvc2hhZG93
CiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sCiAKKyMgRU5BQkxFKFRF
TVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVu
dAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBKU0MgZG9lcyBub3Qgc3VwcG9ydCBz
ZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4gKGh0dHA6Ly93ZWJraXQub3JnL2IvNjE1NDAp
CiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1s
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMyZmMwMDYw
ZjYyMDQ5ZGU0MzY4ZmNlMDAzZDdjM2RkN2M5ZWM2ZGIuLjJhZDI2MTViZmM0NjhlZWM5YWFhZjZm
Mzc2NzRjNDc1ODM0ZDc4NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTg4LDYgKzE4OCwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGZhc3QvZnJhbWVzL2Rl
dGFjaGVkLXNoYWRvdy1mcmFtZS5odG1sCiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRv
d2RvbS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgorZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwog
IyBGYWlsIHVudGlsIFNVQlBJWEVMX0xBWU9VVCBpcyBlbmFibGVkCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTUzMgogZmFzdC9zdWItcGl4ZWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTZkZWIyMWQ3MDY5NjA3NTI5
ZTI3ZGE3OTRkYzNmMjVjZDI0ZDFjOS4uODJmMTc2OTllM2RiNTgzNzI4ZjBkZWQ4OGU4NTFjMDBh
MjlhYTZmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTE1MjYsNiArMTUyNiwxMCBAQCBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3cuaHRt
bAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3NoYWRvdwogCisjIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1
bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVu
YWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MTMzYjg1
ZmYxYjI4NzAyZWQxYTRkNTNiMzk0ZjM2YTEyYjQ3OTdjLi41MWQ3Y2YxMjdkYWZhMGFkYTU3NjEy
MGEyMmFjZWFhYmZkNDc2NzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNjEsNiArMjA2MSwxMCBAQCBmYXN0L3JlZ2lvbnMvc3R5
bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3NoYWRvdwog
CisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lv
bnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZh
c3QvcmVnaW9ucwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1t
YXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKaW5kZXgg
NTNhMDAxZmVmZGUyODgxYWVmNjFjZDA2OTAyNzJmYzZlMTViMWU5MS4uYzdmZGYxN2YyMGE0Mjlj
MTBjNmQ4YjNhMTk2ZGZiOTA5NDQ2MmIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcwpAQCAtMjIwLDE2ICsyMjAsMjQgQEAgTWFya3VwLl9nZXQgPSBmdW5jdGlvbihu
b2RlLCBkZXB0aCkKICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAg
ICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ctcm9vdCIpCiAgICAgICAgICAgc3RyICs9
ICI8c2hhZG93OnJvb3Q+IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHN0ciArPSAiI2RvY3Vt
ZW50LWZyYWdtZW50IjsKICAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5j
aGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24g
PSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKLSAgICAgICAgaWYgKHNlbGVj
dGlvbikKLSAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2Vs
ZWN0aW9uOwotCi0gICAgICAgIHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9kZXNbaV0s
IGRlcHRoICsgMSk7CisgICAgCisgICAgCisgICAgLy8gSFRNTCBUZW1wbGF0ZSBlbGVtZW50cyBz
ZXJpYWxpemUgdGhlaXIgY29udGVudCBEb2N1bWVudEZyYWdtZW50LCBhbmQgTk9UIHRoZWlyIGNo
aWxkcmVuLgorICAgIGlmIChub2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RFTVBMQVRFJykgeworICAgICAgICBzdHIg
Kz0gTWFya3VwLl9nZXQobm9kZS5jb250ZW50LCBkZXB0aCArIDEpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwg
bGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVj
dGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24pCisgICAgICAg
ICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247Cisg
ICAgCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBk
ZXB0aCArIDEpOworICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgc3RyICs9IE1hcmt1cC5f
Z2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVwdGgpOwogICAgIAogICAgIHZhciBzZWxl
Y3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKQEAgLTI4NCw3ICsy
OTIsNyBAQCBNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQID0gewogCiBNYXJrdXAuX2dldFNlbGVj
dGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS5vd25lckRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpOworICAgIHJldHVybiBub2RlLm93bmVy
RG9jdW1lbnQuZGVmYXVsdFZpZXcgPyBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
U2VsZWN0aW9uKCkgOiBudWxsOwogfQogCiBNYXJrdXAuX1NFTEVDVElPTl9GT0NVUyA9ICc8I3Nl
bGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177109</attachid>
            <date>2012-12-01 08:57:00 -0800</date>
            <delta_ts>2012-12-03 14:27:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121201085430.patch</filename>
            <type>text/plain</type>
            <size>96044</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ3MTllM2UyYTdmMjNk
MjQwZjk5ODkwYTMzM2M2ZWFiY2EyZmI0NS4uMDQ2MzdmZTNlZTdlZjdkMDU0NjE0OTRjYjUyNzM1
MWNjN2IzNjg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBwYXRjaCBpbmNsdWRlcyB0
aGUgcGFyc2VyIGNoYW5nZXMsIG5ldyBJREwgYW5kIGVsZW1lbnQgaW1wbGVtZW50YXRpb24gZm9y
IDx0ZW1wbGF0ZT4uCisKKyAgICAgICAgU3BlYzogaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNv
bXBvbmVudHMvcmF3LWZpbGUvdGlwL3NwZWMvdGVtcGxhdGVzL2luZGV4Lmh0bWwKKworICAgICAg
ICBUZXN0czogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1M
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudC5odG1sCisgICAgICAgICAgICAgICBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAg
ICAgKHRlbXBsYXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVDb250ZW50c093bmVy
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQp
OgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRl
RWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBs
YXRlRWxlbWVudDo6fkhUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxlbWVu
dDo6c2V0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0hUTUxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVUYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJEb2N1bWVudEZvckN1cnJlbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6aGFzVGVtcGxhdGVJbkhUTUxT
Y29wZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoSFRNTEVsZW1lbnRTdGFjayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NIdG1sU3RhcnRUYWdGb3JJbkJvZHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluVGFibGVCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUYWJsZUVuZFRhZ0ZvckluVGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nVGVtcGxh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmlzUGFyc2lu
Z0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTItMDEgIFhpYW9ibyBXYW5nICA8eGlhb2JvLndhbmdAdG9yY2htb2JpbGUu
Y29tLmNuPgogCiAgICAgICAgIERSVCAtIGNyYXNoZWQgaW4gV2ViQ29yZTo6U2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGEyMzAzYTU1NThhMGIxYjRmNWQ5NGMxM2ViMzFkZDM1ZmQ0NjkzNzUuLmU2
YTBhNmU4MGYwNmUyY2JkNDY1MjJmMTMxMzE3NjMxMGQyMjJkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4g
IDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRl
RWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
dXJuaW5nIG9uIEhUTUxUZW1wbGF0ZUVsZW1lbnQgZm9yIGNocm9taXVtIHBvcnQuCisKKyAgICAg
ICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEyLTExLTMwICBNaWtlIFdlc3QgIDxta3dzdEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgQ1NQIDEuMTogTWFrZSB0aGUgQ1NQX05FWFQgZmxhZyBydW50
aW1lIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk2MWM1ZDU1OTM4Y2M0ODBiN2Uy
YTg1MjU2ZTBmNTI3MzIwMzk2ZGIuLjRmMDlhMzljZDEwMDE3ZmFmNzYxZWQwOWMxNTRlNzEwYTk4
MTk5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODgsNiArNDg4LDcgQEAgU0VUKFdlYkNv
cmVfSURMX0ZJTEVTCiAgICAgaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmlk
bAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRN
TFRyYWNrRWxlbWVudC5pZGwKQEAgLTE0MzAsNiArMTQzMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGFibGVS
b3dzQ29sbGVjdGlvbi5jcHAKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAor
ICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKICAgICBo
dG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBlNTM2ZmQxM2E5NGE3ZDBhNWU0NWI3NTc5OWZiOGRjZDY2NjIwNGExLi43YmFhNWY4Nzg2YzZk
MjgwNmUxNDU3MzZhN2MyNjg3OTk3ZWE1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTM0OCw2ICszNDgsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBl
NTJhMTY4ZmY2NzllYzEwYjdmZWVhZDQ5OTNmYjZiZGNiY2ExYjA0Li42OGM5MTk4MDgzNjk2MDVl
N2E5M2FiMmNkMWM4ZDEyNjU5NjgzNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTQzMSw2ICs0MzEsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIVE1MVGFibGVSb3dFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MVGVtcGxhdGVFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUaXRsZUVs
ZW1lbnQuY3BwIFwKQEAgLTE0ODksNiArMTQ5MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAog
CSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1s
L0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5p
ZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBcCiAJJChXZWJD
b3JlKS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRy
YWNrRWxlbWVudC5pZGwgXApAQCAtMzQzNSw2ICszNDM4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggNDUzNWE0NmJmNzllYTYzNWM2NjdiZjhiN2MzNWYxM2YxN2ZjMjQwNS4u
ZjI3NWZlMDMxZGU3OTEyODQ1MDc1NTk2NzIxYTQyMDZmYTVmMzkyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC02NTgsNiArNjU4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVt
ZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgXAogICAgIGh0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKICAgICBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVt
ZW50LmNwcCBcCkBAIC0xODIzLDYgKzE4MjQsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hU
TUxUYWJsZVJvd0VsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5o
IFwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorICAgIGh0bWwvSFRNTFRl
bXBsYXRlRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAgICAg
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUaXRsZUVs
ZW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTk2Mzg0NmEyZmQ4OGYzNjk1YzFlMGFmNWFm
YTE5NjNlNzVkNGY4ZC4uNzVkMWE5MjczZjhlNWNmZDE4NDJlOGUyNWI0OWZjOGY2MzkyMzM1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTEyOSw2ICsxMTI5LDcgQEAKICAgICAgICAgICAgICdodG1s
L0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVUxpc3RFbGVtZW50
LmlkbCcsCkBAIC00MTgxLDYgKzQxODIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCcs
CisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCcsCisgICAgICAgICAg
ICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOWQ5
MmI4MDljODJhMGNmYjkzNzE5NjlhNDViNDk5ZWNlZjY2NTk0Mi4uYzY3NjczZGQxYWVkMjE1YmRj
OWEzY2FjNzFjMzQzOTc1MWM2N2UxZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTk2MjIsNiArOTYyMiw2MiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRlbXBsYXRlRWxlbWVudC5j
cHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNIVE1MVGVtcGxhdGVFbGVtZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKIAkJCQk+
CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC02MzQ2Miw2ICs2MzUxOCw2MiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1w
bGF0ZUVsZW1lbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzQwNGNj
MTVlZWI1ZGE3Mzc5YTIwY2NjODVmZTliNzY3ODFhMDExZS4uZDM0YTA5MjAyOTgyNTkxNDRkNTNk
OGEyNjY1Yjk3N2ExMGJmMTBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM0NjYsNiArMTM0NjYsOSBAQAogCQlENkUyNzZB
RTE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RTUyOEExMTQ5QTkyNkQwMEVGRTFG
MyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RTUyOEEyMTQ5QTkyNkQwMEVGRTFGMyAvKiBN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlENkVGQzBCQjE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGVtcGxh
dGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkMxNjY2
REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlENkVGQzBCRDE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBI
aXN0b2dyYW1TdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhpc3RvZ3JhbVN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkZE
QUVGMjE0OUMwNjE5MDAzN0IxRTIgLyogU3RhdHNDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRzQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMyAvKiBNZW1vcnlVc2FnZVN1cHBv
cnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5VXNhZ2VT
dXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODEyLDYgKzE3ODE1
LDkgQEAKIAkJCQlBODcxREIxNzBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaCAqLywKIAkJCQk4NTU1NDI1QzBBQTQ4QjFFMDBCQTg5RjIgLyogSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaWRsICovLAogCQkJCTUxOUZFMEEyMERBRDQ0NkUwMEEwOEYyMSAvKiBIVE1M
VGFnTmFtZXMuaW4gKi8sCisJCQkJRDZFRkMwQkIxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1w
bGF0ZUVsZW1lbnQuY3BwICovLAorCQkJCUQ2RUZDMEJDMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1M
VGVtcGxhdGVFbGVtZW50LmggKi8sCisJCQkJRDZFRkMwQkQxNjY2REY3QTAwM0QyOTFFIC8qIEhU
TUxUZW1wbGF0ZUVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUJCMDk3Mzc0RjUwMEQ3NDQ2MyAv
KiBIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCQTA5NzM3NEY1MDBENzQ0
NjMgLyogSFRNTFRleHRBcmVhRWxlbWVudC5oICovLAogCQkJCUE4MEU3RTE2MEExQTdDQ0IwMDdG
QjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCA0
YTFlMzM1NjhjYjE1N2E3MjNmMGM3YWZhNjk3YzM0MDkyNjY2MTY4Li5mZWE3Yzg3YTlkMGYyMmE4
MmIzOWQ2NjdjYzcyNmUyOGNhOWFmMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
aHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0xMjYyLDYgKzEy
NjIsMTIgQEAgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7CiAgICAgbWFyZ2luLXJp
Z2h0OiAwLjRlbTsKIH0KIAorI2lmIGRlZmluZWQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICYm
IEVOQUJMRV9URU1QTEFURV9FTEVNRU5UCit0ZW1wbGF0ZSB7CisgICAgZGlzcGxheTogbm9uZQor
fQorI2VuZGlmCisKIGJkaSwgb3V0cHV0IHsKICAgICB1bmljb2RlLWJpZGk6IC13ZWJraXQtaXNv
bGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBmM2M2YWJkMzhh
Nzc1ODY4OTJhMmYxNWQ5ZDNjZjZkMWYwYjQxMWNhLi4zZjQyNWM1NjY0ZjU1OGM0MzNmYmNhYjEw
YjJjMDc5MGRhZDM0MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0y
OTMsNiArMjkzLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZvcmUoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAgICBBU1NFUlQobmV3Q2hp
bGQpOwogICAgIEFTU0VSVChuZXh0Q2hpbGQpOwogICAgIEFTU0VSVChuZXh0Q2hpbGQtPnBhcmVu
dE5vZGUoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+ZG9j
dW1lbnQoKSk7CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7CiAgICAgY29sbGVjdFRhcmdldE5v
ZGVzKG5ld0NoaWxkLmdldCgpLCB0YXJnZXRzKTsKQEAgLTY3NCw2ICs2NzUsNyBAQCB2b2lkIENv
bnRhaW5lck5vZGU6OnBhcnNlckFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQp
CiB7CiAgICAgQVNTRVJUKG5ld0NoaWxkKTsKICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnRO
b2RlKCkpOyAvLyBVc2UgYXBwZW5kQ2hpbGQgaWYgeW91IG5lZWQgdG8gaGFuZGxlIHJlcGFyZW50
aW5nIChhbmQgd2FudCBET00gbXV0YXRpb24gZXZlbnRzKS4KKyAgICBBU1NFUlQoZG9jdW1lbnQo
KSA9PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0Q2hp
bGQ7CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDJjZjc0MzliODA3ZmM2YTBh
ZGVhMmJjOGZjNDA0YTM4NGE0OGYzYy4uNzdjZWU4MGRlYzJlOWYxNjE2Mjk2NTAwOTgwOTQ4MmNm
MjIxMjc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01OTM1LDQgKzU5MzUsMjIgQEAg
TG9jYWxlJiBEb2N1bWVudDo6Z2V0Q2FjaGVkTG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYgbG9j
YWxlKQogICAgIHJldHVybiAqKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogfQogCisjaWYgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCitEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVu
dHNPd25lckRvY3VtZW50KCkKK3sKKyAgICAvLyBJZiBET0NVTUVOVCBkb2VzIG5vdCBoYXZlIGEg
YnJvd3NpbmcgY29udGV4dCwgTGV0IFRFTVBMQVRFIENPTlRFTlRTIE9XTkVSIGJlIERPQ1VNRU5U
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVy
biB0aGlzOworCisgICAgaWYgKCFtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KSB7Cisg
ICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRl
bnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKDAsIGJsYW5rVVJMKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50
ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFua1VSTCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4g
bV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDRlMjY3MTYxMTIyMGQz
ZmJmNzcyMGEwOGRjNGQ3OTUzZGExZTUwZWUuLjZhYjg5MWY2NWYyMjgwNDRkZjdkNzI2YmUzMDE2
NTczMDdiYWU4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTcxLDYgKzExNzEsMTAgQEAg
cHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYgdG9wTGF5ZXJFbGVt
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGF5ZXJFbGVtZW50czsgfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBEb2N1bWVudCogdGVtcGxhdGVDb250ZW50
c093bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJh
bWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1MjMs
NiArMTUyNywxMCBAQCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmlu
ZywgT3duUHRyPExvY2FsZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXA7CiAgICAgTG9j
YWxlSWRlbnRpZmllclRvTG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNpZiBFTkFCTEUoVEVN
UExBVEVfRUxFTUVOVCkKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVDb250ZW50c093
bmVyRG9jdW1lbnQ7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpub3RpZnlS
ZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGJlYjgzMmY3ZjUwMDliNmFjNjEzYzMzY2Q4YjQ3MWVh
MjI0NzJlNjIuLmM3NjZmZmYwOWVjYjA2MTkzM2EzM2NhMjhhODU3ODA4MzFhYWI4YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlhMaW5rTmFtZXMuaCIKQEAgLTE0MSw3ICsxNDIsMTIgQEAgdm9pZCBNYXJrdXBBY2N1
bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlKiB0YXJnZXROb2RlLCBO
b2RlKiBub2QKICAgICAgICAgYXBwZW5kU3RhcnRUYWcodGFyZ2V0Tm9kZSwgJm5hbWVzcGFjZUhh
c2gpOwogCiAgICAgaWYgKCEodGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQo
KSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyh0YXJnZXROb2RlKSkpIHsKLSAgICAgICAgZm9y
IChOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJy
ZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKKyAgICAgICAgTm9kZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhhc1RhZ05hbWUodGVtcGxh
dGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUpLT5jb250ZW50KCktPmZp
cnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNlbHNlCisgICAgICAgIE5v
ZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZW5kaWYKKyAgICAgICAg
Zm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAg
ICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwgbm9kZVRvU2tpcCwg
SW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tpcCk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDg3YjdlMjYyOTVmYjc0ZjNhMDAxYWU0
MmVjZTE0ZjdhMzllYzkxMWQuLmJjZDRmMWRlM2ExNWM3ZjMzNjI0M2I2Y2JlZmNmY2UxN2U0OTE2
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
bmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTM0
Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogCiB2
b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1Njcmlw
dGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRo
aXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKGh0bWwsIHRo
aXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKSB7CisgICAgICAgIENvbnRhaW5lck5vZGUq
IGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAg
IGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgY29udGFpbmVyID0g
dG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMpLT5jb250ZW50KCk7CisjZW5kaWYKKyAgICAgICAg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KGNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZSgp
LCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1
MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNmNDdjMDBiODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5
ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAK
QEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCA4NWExZTYxYTVhOTU4MmIxM2U2MzQyODlj
ZGM1M2EyMmM3NmIzZTAxLi5kNjIzZGQ5NjJlOTg1NTg2ZWU1MjJlMmMxM2EwNGMyYjAwNDIxMDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1
cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1I
VE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxl
bWVudAordGVtcGxhdGUgY29uZGl0aW9uYWw9VEVNUExBVEVfRUxFTUVOVAogdGV4dGFyZWEgaW50
ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQKIHRmb290IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVy
ZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZDMyOWVmZDRlZWEzMGMyZWViNzM5ZWY4
ZDg5OTVlNWM4YzhjMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKworI2luY2x1ZGUgIkhUTUxUZW1wbGF0
ZUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAi
RG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUg
Im1hcmt1cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6
IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoreworfQorCitIVE1MVGVtcGxhdGVFbGVt
ZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBs
YXRlRWxlbWVudD4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxUZW1wbGF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1l
bnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxlbWVudDo6Y29udGVudCgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2NvbnRlbnQpCisgICAgICAgIG1fY29udGVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNy
ZWF0ZShvd25lckRvY3VtZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpOwor
CisgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsKK30KKworLy8gRklYTUU6IGh0dHBzOi8vd3d3
LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjcgKHByZXZlbnQgRE9NIGhp
ZXJhcmNoeSBjeWNsZXMpLgorLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjkgKGV4dGVuZGVkIGFkb3B0Tm9kZSB0byBjb25zaWRlciB0
ZW1wbGF0ZS5jb250ZW50KS4KK3ZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0Q29udGVudChQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHBycENvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjb250ZW50ID0gcHJwQ29udGVudDsK
KworICAgIGlmICghY29udGVudCB8fCBjb250ZW50LT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAg
ICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKG1fY29udGVudC5nZXQoKSA9PSBjb250ZW50LmdldCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoY29udGVudC0+b3duZXJEb2N1bWVudCgpICE9IG93bmVyRG9jdW1lbnQoKS0+dGVt
cGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKSkKKyAgICAgICAgb3duZXJEb2N1bWVudCgpLT50
ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCgpLT5hZG9wdE5vZGUoY29udGVudCwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisKKyAgICBtX2NvbnRlbnQgPSBjb250ZW50OworfQorCisjaWZuZGVm
IE5ERUJVRworY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50
KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2RlIHx8IChub2RlLT5pc0hUTUxF
bGVtZW50KCkgJiYgbm9kZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCo+KG5vZGUpOworfQorI2VuZGlm
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZWY5MTNlNDRhYjZiOGY2NjM1OWVlMDg5OTg3MjVlNzQ1ZTk1OTY3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVt
cGxhdGVFbGVtZW50X2gKKworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorCisjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFRlbXBsYXRlRWxlbWVudCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1
YWwgfkhUTUxUZW1wbGF0ZUVsZW1lbnQoKTsKKworICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRl
bnQoKSBjb25zdDsKKworICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+LCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgSFRNTFRlbXBsYXRlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworICAgIG11dGFibGUgUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKK307CisKK2NvbnN0IEhUTUxUZW1wbGF0
ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKik7CisKK2lubGluZSBI
VE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sK
KyAgICByZXR1cm4gY29uc3RfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4odG9IVE1MVGVtcGxh
dGVFbGVtZW50KHN0YXRpY19jYXN0PGNvbnN0IE5vZGUqPihub2RlKSkpOworfQorCisjaWZkZWYg
TkRFQlVHCisKKy8vIFRoZSBkZWJ1ZyB2ZXJzaW9uIG9mIHRoaXMsIHdpdGggYXNzZXJ0aW9ucywg
aXMgbm90IGlubGluZWQuCitpbmxpbmUgY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1M
VGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVC
VUcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRF
X0VMRU1FTlQpCisKKyNlbmRpZiAvLyBIVE1MVGVtcGxhdGVFbGVtZW50X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNTgzNmQ5Nzgx
ZmQ2YjNlNmZjNmU2MWZjN2Y1NGEwMGM3ZDAyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIENvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQKK10gaW50ZXJmYWNlIEhUTUxUZW1wbGF0
ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnQg
Y29udGVudCBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworfTsKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDlj
MTgyYmEyMzQzYjRlNTEzOWEzMjAyMjYwODE0ZWQwNDk1OTE5ZDguLjYyMjY5ZGVjYjc1ZjUxOGNj
Yzg5MTQzMmQ5ZDBlMzcyMzRiOTc5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIK
ICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC03Nyw2ICs3OCwxMSBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaXNBbGxXaGl0ZXNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiBzdGF0
aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNr
KQogeworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0YXNrLnBhcmVudC0+
aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVt
cGxhdGVFbGVtZW50KHRhc2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAg
ICBpZiAodGFzay5uZXh0Q2hpbGQpCiAgICAgICAgIHRhc2sucGFyZW50LT5wYXJzZXJJbnNlcnRC
ZWZvcmUodGFzay5jaGlsZC5nZXQoKSwgdGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwogICAgIGVsc2UK
QEAgLTI0Nyw3ICsyNTMsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0
eXBlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpp
bnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2Vu
LT50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwotICAgIGF0dGFjaExhdGVyKGN1
cnJlbnROb2RlKCksIENvbW1lbnQ6OmNyZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0
b2tlbi0+Y29tbWVudCgpKSk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVu
dDo6Y3JlYXRlKG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+Y29tbWVudCgp
KSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3Vt
ZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC0zMjUsNyArMzMxLDcgQEAgdm9pZCBIVE1M
Q29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0U2NyaXB0RWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgIC8vIHRob3NlIGZsYWdzIG9yIGVmZmVjdHMgdGhlcmVvZi4KICAgICBjb25zdCBi
b29sIHBhcnNlckluc2VydGVkID0gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gQWxs
b3dTY3JpcHRpbmdDb250ZW50QW5kRG9Ob3RNYXJrQWxyZWFkeVN0YXJ0ZWQ7CiAgICAgY29uc3Qg
Ym9vbCBhbHJlYWR5U3RhcnRlZCA9IG1faXNQYXJzaW5nRnJhZ21lbnQgJiYgcGFyc2VySW5zZXJ0
ZWQ7Ci0gICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVs
ZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCksIHBhcnNl
ckluc2VydGVkLCBhbHJlYWR5U3RhcnRlZCk7CisgICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50
PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIG93bmVyRG9j
dW1lbnRGb3JDdXJyZW50Tm9kZSgpLCBwYXJzZXJJbnNlcnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOwog
ICAgIGlmIChtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiAhPSBEaXNhbGxvd1NjcmlwdGlu
Z0NvbnRlbnQpCiAgICAgICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0
dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIGF0dGFjaExh
dGVyKGN1cnJlbnROb2RlKCksIGVsZW1lbnQpOwpAQCAtMzUxLDYgKzM1NywxMSBAQCB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3Rl
cnMsIFdoaXRlc3BhY2VNbwogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkKICAgICAgICAg
ZmluZEZvc3RlclNpdGUodGFzayk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAg
ICBpZiAodGFzay5wYXJlbnQtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNr
LnBhcmVudCA9IHRvSFRNTFRlbXBsYXRlRWxlbWVudCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRl
bnQoKTsKKyNlbmRpZgorCiAgICAgLy8gU3RyaW5ncyBjb21wb3NlZCBlbnRpcmVseSBvZiB3aGl0
ZXNwYWNlIGFyZSBsaWtlbHkgdG8gYmUgcmVwZWF0ZWQuCiAgICAgLy8gVHVybiB0aGVtIGludG8g
QXRvbWljU3RyaW5nIHNvIHdlIHNoYXJlIGEgc2luZ2xlIHN0cmluZyBmb3IgZWFjaC4KICAgICBi
b29sIHNob3VsZFVzZUF0b21pY1N0cmluZyA9IHdoaXRlc3BhY2VNb2RlID09IEFsbFdoaXRlc3Bh
Y2UKQEAgLTM4NywxOCArMzk4LDI3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2Vy
dFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiBQYXNzUmVm
UHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0b21pY0hU
TUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKQogewogICAg
IFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFtZXNwYWNl
VVJJKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGN1cnJlbnROb2RlKCktPmRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1ZSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQgPSBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKS0+Y3JlYXRlRWxlbWVudCh0
YWdOYW1lLCB0cnVlKTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5h
dHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICByZXR1cm4g
ZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKK2lubGluZSBEb2N1bWVudCogSFRNTENvbnN0cnVjdGlv
blNpdGU6Om93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpCit7CisjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCisgICAgaWYgKGN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpKQorICAgICAgICByZXR1cm4gdG9IVE1MVGVtcGxhdGVFbGVtZW50KGN1cnJlbnRFbGVtZW50
KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7CisjZW5kaWYKKyAgICByZXR1cm4gY3VycmVudE5v
ZGUoKS0+ZG9jdW1lbnQoKTsKK30KKwogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0
aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAg
ICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIHhodG1sTmFt
ZXNwYWNlVVJJKTsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2UgSFRNTENvbnN0cnVjdGlv
blNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3ZQogICAgIC8vIGhhdmUgdG8gcGFzcyB0aGUg
Y3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBzaG91bGQgcmV3b3JrIGZvcm0gYXNzb2NpYXRpb24K
ICAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNvZGUg
c2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRG
YWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVu
dCgpLCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVs
ZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBvd25lckRvY3VtZW50Rm9y
Q3VycmVudE5vZGUoKSwgZm9ybSgpLCB0cnVlKTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRy
aWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
KTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxl
bWVudC5yZWxlYXNlKCk7CkBAIC00NjIsNiArNDgyLDE1IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlv
blNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7Cisj
aWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgLy8gV2hlbiBhIG5vZGUgaXMgdG8gYmUg
Zm9zdGVyIHBhcmVudGVkLCB0aGUgbGFzdCB0ZW1wbGF0ZSBlbGVtZW50IHdpdGggbm8gdGFibGUg
ZWxlbWVudCBpcyBiZWxvdyBpdCBpbiB0aGUgc3RhY2sgb2Ygb3BlbiBlbGVtZW50cyBpcyB0aGUg
Zm9zdGVyIHBhcmVudCBlbGVtZW50IChOT1QgdGhlIHRlbXBsYXRlJ3MgcGFyZW50ISkKKyAgICBI
VE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBsYXN0VGVtcGxhdGVFbGVtZW50ID0gbV9v
cGVuRWxlbWVudHMudG9wbW9zdCh0ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7CisgICAgaWYgKGxh
c3RUZW1wbGF0ZUVsZW1lbnQgJiYgIW1fb3BlbkVsZW1lbnRzLmluVGFibGVTY29wZSh0YWJsZVRh
ZykpIHsKKyAgICAgICAgdGFzay5wYXJlbnQgPSBsYXN0VGVtcGxhdGVFbGVtZW50LT5lbGVtZW50
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50U3Rh
Y2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQgPSBtX29wZW5FbGVtZW50
cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFtZSgpKTsKICAgICBpZiAobGFzdFRhYmxlRWxlbWVu
dFJlY29yZCkgewogICAgICAgICBFbGVtZW50KiBsYXN0VGFibGVFbGVtZW50ID0gbGFzdFRhYmxl
RWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggNjA1NzJiZGQ4NTYyNzQ0NWNiZDg2NWE5
Njc5ZDJmZWJhNWY2YThkYy4uZGYzMjU5MGE3OTM3MTdiZTdhOTFkYTc2YjkxNWM0YTkxNTViNTFm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlv
blNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9u
U2l0ZS5oCkBAIC0xMTQsOSArMTE0LDEwIEBAIHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKiBj
dXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcE5vZGUoKTsgfQog
ICAgIEhUTUxTdGFja0l0ZW0qIGN1cnJlbnRTdGFja0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX29w
ZW5FbGVtZW50cy50b3BTdGFja0l0ZW0oKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIG9uZUJlbG93
VG9wKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMub25lQmVsb3dUb3AoKTsgfQotCisg
ICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAgIEhUTUxFbGVt
ZW50U3RhY2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsg
fQogICAgIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50
cygpIGNvbnN0IHsgcmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsgfQorICAgIGJv
b2wgY3VycmVudElzUm9vdE5vZGUoKSB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCkg
PT0gbV9vcGVuRWxlbWVudHMucm9vdE5vZGUoKTsgfQogCiAgICAgRWxlbWVudCogaGVhZCgpIGNv
bnN0IHsgcmV0dXJuIG1faGVhZC0+ZWxlbWVudCgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogaGVh
ZFN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1faGVhZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRleCA2YzIyMGM5NzM5
YTY0MDIwZWQwZjI3Y2MzMjAxYjJjNGUwMTYxNTc4Li5iODA0Njc3Yzk4Yjc2NTU4OGZhMGVmMGM5
YTE2ZjQ0MTJiNDU3NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRWxlbWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RWxlbWVudFN0YWNrLmNwcApAQCAtMzgsMTQgKzM4LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotc3RhdGljIGlubGluZSBib29sIGlzUm9v
dE5vZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkKKworbmFtZXNwYWNlIHsKKworaW5saW5lIGJvb2wg
aXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5pc0Rv
Y3VtZW50RnJhZ21lbnROb2RlKCkKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShodG1sVGFn
KTsKIH0KIAotbmFtZXNwYWNlIHsKLQogaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3Rh
Y2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKGFwcGxldFRhZykK
QEAgLTY0LDYgKzY1LDkgQEAgaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVt
KiBpdGVtKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2Jq
ZWN0VGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQog
ICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyNpZiBFTkFC
TEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0
ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC03Nyw2
ICs4MSw5IEBAIGlubGluZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihIVE1MU3RhY2tJdGVt
KiBpdGVtKQogaW5saW5lIGJvb2wgaXNUYWJsZVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0
ZW0pCiB7CiAgICAgcmV0dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpCisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtODUsMTIg
KzkyLDE4IEBAIGlubGluZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRl
bSogaXRlbSkKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0Ym9keVRhZykKICAgICAgICAg
fHwgaXRlbS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFt
ZSh0aGVhZFRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgfHwgaXRl
bS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2Rl
KGl0ZW0pOwogfQogCiBpbmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoSFRNTFN0YWNr
SXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0clRhZykKKyNpZiBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1w
bGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC01
MjcsNiArNTQwLDEzIEBAIGJvb2wgSFRNTEVsZW1lbnRTdGFjazo6aW5TZWxlY3RTY29wZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKSBjb25zdAogICAgIHJldHVybiBpblNlbGVjdFNjb3Bl
KHRhZ05hbWUubG9jYWxOYW1lKCkpOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
Citib29sIEhUTUxFbGVtZW50U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdAor
eworICAgIHJldHVybiBpblNjb3BlQ29tbW9uPGlzUm9vdE5vZGU+KG1fdG9wLmdldCgpLCB0ZW1w
bGF0ZVRhZy5sb2NhbE5hbWUoKSk7Cit9CisjZW5kaWYKKwogRWxlbWVudCogSFRNTEVsZW1lbnRT
dGFjazo6aHRtbEVsZW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAppbmRleCA4NzNj
YmRlYjk1YjhlZGEwNmIzYmU4MGJkOTVjYTdkMjM4OTExYmEzLi4yYzBkYjEzNGEwZDI1NTM5NzZm
MGRmOWFlZWYzYTBkYmQ4NjBjOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRWxlbWVudFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVsZW1lbnRTdGFjay5oCkBAIC0xNTAsNyArMTUwLDkgQEAgcHVibGljOgogCiAgICAgYm9v
bCBoYXNPbmx5T25lRWxlbWVudCgpIGNvbnN0OwogICAgIGJvb2wgc2Vjb25kRWxlbWVudElzSFRN
TEJvZHlFbGVtZW50KCkgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAg
ICBib29sIGhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1l
bnQqIGh0bWxFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25z
dDsKICAgICBFbGVtZW50KiBib2R5RWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggYzc4NTYyYjMzYzE5YmQyYzU3
MWQ1OWJhNTVjNmEzZDA3ZTIyYzhkNy4uNjk3NGM2NGJkNTE2ZmU5NzQyOGM1NGZjOWYyNWU4OThj
YTc4YWUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5o
IgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4u
aCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgpAQCAtMzYwLDcgKzM2MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RU
cmVlRnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3VG9rZW4pCiAgICAgLy8gc3luY2hyb25vdXNseSBy
ZS1lbnRlcnMgdGhlIHBhcnNlci4gV2UgZG9uJ3QgY2xlYXIgdGhlIHRva2VuIGltbWVkYXRlbHkK
ICAgICAvLyBmb3IgQ2hhcmFjdGVyIHRva2VucyBiZWNhdXNlIHRoZSBBdG9taWNIVE1MVG9rZW4g
YXZvaWRzIGNvcHlpbmcgdGhlCiAgICAgLy8gY2hhcmFjdGVycyBieSBrZWVwaW5nIGEgcG9pbnRl
ciB0byB0aGUgdW5kZXJseWluZyBidWZmZXIgaW4gdGhlCi0gICAgLy8gSFRNTFRva2VuLiBGb3J0
dWFudGVseSwgQ2hhcmFjdGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKKyAg
ICAvLyBIVE1MVG9rZW4uIEZvcnR1bmF0ZWx5LCBDaGFyYWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNl
IHVzZSB0byByZS1lbnRlcgogICAgIC8vIHRoZSBwYXJzZXIuCiAgICAgLy8KICAgICAvLyBGSVhN
RTogU3RvcCBjbGVhcmluZyB0aGUgcmF3VG9rZW4gb25jZSB3ZSBzdGFydCBydW5uaW5nIHRoZSBw
YXJzZXIgb2ZmCkBAIC02NzIsOCArNjczLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAg
aWYgKHRva2VuLT5uYW1lKCkgPT0gYm9keVRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2Vu
KTsKLSAgICAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hU
TUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1l
bnQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAg
ICBib29sIGZyYWdtZW50T3JUZW1wbGF0ZUNhc2UgPSAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5z
ZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
Pmhhc09ubHlPbmVFbGVtZW50KCk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAg
ICAgIGZyYWdtZW50T3JUZW1wbGF0ZUNhc2UgPSBmcmFnbWVudE9yVGVtcGxhdGVDYXNlIHx8IG1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisg
ICAgICAgIGlmIChmcmFnbWVudE9yVGVtcGxhdGVDYXNlKSB7CisgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CkBAIC02ODMsNyAr
Njg4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0
VGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIW1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+c2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVl
Lm9wZW5FbGVtZW50cygpLT5oYXNPbmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgaWYgKCFtX2ZyYW1lc2V0T2spCkBAIC05NDQsMTMgKzk0OSw0MyBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tl
biogdG9rZW4pCiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgp
ID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2Vu
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVj
dFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxl
bWVudCh0b2tlbik7CiB9CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKwordm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCit7CisgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5hcHBlbmRN
YXJrZXIoKTsKKyAgICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOworICAgIHNldElu
c2VydGlvbk1vZGUoVGVtcGxhdGVDb250ZW50c01vZGUpOworfQorCit2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7Cisg
ICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsK
KyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV90cmVlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKyAgICBpZiAoIW1fdHJlZS5jdXJyZW50
U3RhY2tJdGVtKCktPmhhc0xvY2FsTmFtZSh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgcGFyc2VF
cnJvcih0b2tlbik7CisgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0
b2tlbi0+bmFtZSgpKTsKKyAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNs
ZWFyVG9MYXN0TWFya2VyKCk7CisgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgp
OworfQorI2VuZGlmCisKIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29sZ3JvdXBFbmRU
YWdGb3JJbkNvbHVtbkdyb3VwKCkKIHsKLSAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0g
bV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgaWYgKG1fdHJlZS5jdXJy
ZW50SXNSb290Tm9kZSgpKSB7CiAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsK
ICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTEwMTIsNyArMTA0Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdG
b3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkg
PT0gdGFibGVUYWcpIHsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICgh
cHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQ
YXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRP
clRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKQEAgLTEwMzksNiArMTA3NCwxMiBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0
b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0
YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVy
UGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3RyZWUpOwogICAgIHByb2Nlc3NTdGFydFRhZ0Zvcklu
Qm9keSh0b2tlbik7CkBAIC0xMTUzLDYgKzExOTQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgbV90
cmVlLmluc2VydFNlbGZDbG9zaW5nSFRNTEVsZW1lbnQodG9rZW4pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlm
ICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVt
cGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNl
bmRpZgogICAgICAgICBpZiAoIXByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAo
KSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTE3Nyw3ICsxMjI0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBpZiAoaXNDYXB0
aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRU
YWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cu
CiAgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRi
b2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2Nv
cGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFi
bGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUoKSkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3Io
dG9rZW4pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEyMDIs
NyArMTI0OSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHx8IGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBU
YWcodG9rZW4tPm5hbWUoKSkKICAgICAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0
b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJv
dygpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAg
ICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygp
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xMjgwLDYgKzEz
MjcsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2Vu
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAg
ICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CkBAIC0xMzU5LDYgKzE0MTIs
MTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChkaWRQcm9jZXNzLCBkaWRQcm9j
ZXNzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFU
RV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewor
ICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRh
YmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwpAQCAtMTM2Nywx
MiArMTQyNiw1MSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21p
Y0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2FzZSBUZXh0TW9kZToKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01v
ZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFt
ZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRh
Zyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAo
dG9rZW4tPm5hbWUoKSA9PSBsaW5rVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09
IHNjcmlwdFRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzdHlsZVRhZworICAg
ICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBtZXRhVGFnKSB7CisgICAgICAgICAgICBwcm9j
ZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCisgICAgICAgICAg
ICBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9r
ZW4tPm5hbWUoKSA9PSBjb2xUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29s
dW1uR3JvdXBNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRh
Zyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkp
CisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKKyAgICAgICAgZWxz
ZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRhZykKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1v
ZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNUYWJsZUNlbGxDb250ZXh0
VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblJvd01v
ZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1v
ZGUpOworCisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KEF0b21p
Y0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgcGFyc2VFcnJvcih0b2tlbik7CisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVt
cGxhdGVJbkhUTUxTY29wZSgpKSB7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdUZW1wbGF0ZUNv
bnRlbnRzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgbV90cmVlLmlu
c2VydEhUTUxIdG1sU3RhcnRUYWdJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xNTQyLDggKzE2NDAs
MTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRl
bHkoKQogICAgICAgICAgICAgbGFzdCA9IHRydWU7CiAgICAgICAgICAgICBpdGVtID0gSFRNTFN0
YWNrSXRlbTo6Y3JlYXRlKG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCksIEhUTUxT
dGFja0l0ZW06Okl0ZW1Gb3JDb250ZXh0RWxlbWVudCk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUo
VEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9C
dWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMzAgKHNob3VsZCA8dGVtcGxhdGU+IGNsZWFy
IHRoZSAiaW1wbGllZCBjb250ZXh0IGVsZW1lbnQiLgorICAgICAgICBpZiAoaXRlbS0+aGFzVGFn
TmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShU
ZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZW5kaWYKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05h
bWUoc2VsZWN0VGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkp
OwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5TZWxlY3RNb2RlKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0ZFRhZykgfHwgaXRlbS0+aGFz
VGFnTmFtZSh0aFRhZykpCkBAIC0xNTU1LDE5ICsxNjU3LDIwIEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAgICAgICAgaWYgKGl0ZW0t
Pmhhc1RhZ05hbWUoY2FwdGlvblRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9u
TW9kZShJbkNhcHRpb25Nb2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoY29sZ3Jv
dXBUYWcpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAg
ICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpKQogICAgICAgICAg
ICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZU1vZGUpOwogICAgICAgICBpZiAoaXRl
bS0+aGFzVGFnTmFtZShoZWFkVGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0Zy
YWdtZW50KCkpOworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICAgICAgaWYg
KCFtX2ZyYWdtZW50Q29udGV4dC5mcmFnbWVudCgpIHx8IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRl
eHRFbGVtZW50KCkgIT0gaXRlbS0+bm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzZXRJ
bnNlcnRpb25Nb2RlKEluSGVhZE1vZGUpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0
SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+
aGFzVGFnTmFtZShib2R5VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
KEluQm9keU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShmcmFtZXNldFRhZykp
IHsKLSAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKSkgewpAQCAtMTU5OCw3ICsxNzAxLDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgIGlmICghbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3Ry
ZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYg
IW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgp
KSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
QEAgLTE2MjgsNyArMTczMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
Rm9ySW5Sb3coQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5u
YW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJv
dygpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUo
KSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAtMTY4MSw3ICsxNzg0LDExIEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkgPT0gdHJUYWcKICAgICAgICAgfHwgaXNUYWJsZUJv
ZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5F
bGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyNpZiBFTkFCTEUoVEVN
UExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWco
dG9rZW4tPm5hbWUoKSkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGVt
cGxhdGVUYWcpIHx8IGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2Vsc2UKICAgICAgICAgICAgIEFT
U0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNQYXJzaW5nRnJh
Z21lbnQoKSk7CisjZW5kaWYKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODIxLDYgKzE5MjgsMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhiclRhZyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2Vu
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIHByb2Nlc3NBbnlPdGhlckVu
ZFRhZ0ZvckluQm9keSh0b2tlbik7CiB9CiAKQEAgLTE4NDIsNyArMTk1NSw3IEBAIGJvb2wgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2FwdGlvbkVuZFRhZ0ZvckluQ2FwdGlvbigpCiBib29sIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogewogICAgIGlmICghbV90
cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodHJUYWcubG9jYWxOYW1lKCkpKSB7Ci0g
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFy
c2UgZXJyb3IKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE4NTYsNyArMTk2OSw3
IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiBib29s
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSgpCiB7CiAgICAg
aWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKLSAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJz
ZSBlcnJvci4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE5MTMsNiArMjAyNiwx
NSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgog
ICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOworICAgICAgICAv
LyBGSVhNRTogVGhpcyBjYXNlIHNob3VsZCBiZSBicm9rZW4gb3V0IGludG8gcHJvY2Vzc0VuZFRh
Z0ZvckluSGVhZCwKKyAgICAgICAgLy8gYmVjYXVzZSBvdGhlciBlbmQgdGFnIGNhc2VzIG5vdyBy
ZWZlciB0byBpdCAoInByb2Nlc3MgdGhlIHRva2VuIGZvciB1c2luZyB0aGUgcnVsZXMgb2YgdGhl
ICJpbiBoZWFkIiBpbnNlcnRpb24gbW9kZSIpLgorICAgICAgICAvLyBidXQgYmVjYXVzZSB0aGUg
bG9naWMgZmFsbHMgdGhyb3VnaCB0byBBZnRlckhlYWRNb2RlLCB0aGF0IGdldHMgYSBsaXR0bGUg
bWVzc3kuCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+
bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRU
YWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5wb3BIVE1MSGVhZEVsZW1lbnQoKTsKICAgICAgICAgICAgIHNldEluc2Vy
dGlvbk1vZGUoQWZ0ZXJIZWFkTW9kZSk7CkBAIC0xOTc3LDYgKzIwOTksMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgp
ID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9r
ZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYg
KCFwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIw
NTIsNyArMjE4MCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNhc2UgSW5GcmFtZXNldE1vZGU6CiAgICAgICAgIEFT
U0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5GcmFtZXNldE1vZGUpOwogICAgICAgICBpZiAodG9r
ZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJy
ZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAg
ICAgICAgYm9vbCBpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyAgPSBtX3RyZWUuY3Vy
cmVudElzUm9vdE5vZGUoKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAg
ICAgIGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21lbnRQYXJzaW5nID0gaWdub3JlRnJhbWVzZXRGb3JG
cmFnbWVudFBhcnNpbmcgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRN
TFNjb3BlKCk7CisjZW5kaWYKKyAgICAgICAgICAgIGlmIChpZ25vcmVGcmFtZXNldEZvckZyYWdt
ZW50UGFyc2luZykgeworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9y
VGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0yMDYxLDYgKzIxOTQs
MTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2Vu
KiB0b2tlbikKICAgICAgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEFmdGVyRnJhbWVzZXRN
b2RlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFU
RV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewor
ICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJG
cmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFt
ZXNldE1vZGUpOwpAQCAtMjExOSwxMSArMjI1OCwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJ
bnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFt
ZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWco
dG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRh
YmxlVGV4dCgpOwogICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxF
TUVOVCkKKyAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9z
aG93X2J1Zy5jZ2k/aWQ9MTk5NjYKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxh
dGVUYWcpIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLT5o
YXNUYWdOYW1lKHRlbXBsYXRlVGFnKSk7CisgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRz
KCktPnBvcCgpOworICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNldEluc2VydGlvbk1v
ZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOworI2Vsc2UKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCkBAIC0yMjI0LDggKzIzODQsMTQgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAgIH0KICAg
ICBjYXNlIEluQm9keU1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgorICAgIGNhc2UgVGVt
cGxhdGVDb250ZW50c01vZGU6CiAgICAgY2FzZSBJbkNlbGxNb2RlOiB7CisjaWYgRU5BQkxFKFRF
TVBMQVRFX0VMRU1FTlQpCisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5
TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2Rl
KCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01v
ZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNv
bnRlbnRzTW9kZSk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkg
PT0gSW5DZWxsTW9kZSk7CisjZW5kaWYKICAgICAgICAgcHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZv
ckluQm9keShidWZmZXIpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0yMzYwLDcgKzI1MjYs
MTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRv
a2VuKiB0b2tlbikKICAgICBjYXNlIEluQ2VsbE1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2Rl
OgogICAgIGNhc2UgSW5Sb3dNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9k
ZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwg
aW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxh
dGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAh
PSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkg
PT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2Rl
KTsKKyNlbmRpZgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBFbWl0IHBhcnNlIGVycm9y
IGJhc2VkIG9uIHdoYXQgZWxlbWVudHMgYXJlIHN0aWxsIG9wZW4uCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQWZ0ZXJCb2R5TW9kZToKQEAgLTIzODYsNyArMjU1Nyw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAg
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkNv
bHVtbkdyb3VwTW9kZToKLSAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAgICBpZiAobV90cmVlLmN1cnJl
bnRJc1Jvb3ROb2RlKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgp
KTsKICAgICAgICAgICAgIHJldHVybjsgLy8gRklYTUU6IFNob3VsZCB3ZSBicmVhayBoZXJlIGlu
c3RlYWQgb2YgcmV0dXJuaW5nPwogICAgICAgICB9CkBAIC0yNDA5LDYgKzI1ODAsMTYgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CiAg
ICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290
Tm9kZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgcmVzZXRJbnNlcnRp
b25Nb2RlQXBwcm9wcmlhdGVseSgpOworICAgICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnROb2RlKCkp
OwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wQWxsKCk7CkBAIC0yNTEyLDYgKzI2OTMs
MTIgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9t
aWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcoc2NyaXB0
VGFnKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAg
IHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorI2VuZGlmCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAgICAg
ICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDhmZjBmNThiMzQ1ZmZmM2U0
NTViNWFmZmVmNjVlMTAyZjZkNWJmZmEuLjIxM2U3ZTBiZTM2ZjM0NWQ4MzRhY2JlNzRmMmVlMWJl
NjBjNjJiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oCkBAIC02Nyw2ICs2NywxMiBAQCBwdWJsaWM6CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwog
CiAgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVu
dENvbnRleHQuZnJhZ21lbnQoKTsgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAg
IGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CisgICAgYm9vbCBpc1Bh
cnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGlzUGFyc2lu
Z0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpOyB9CisjZWxzZQorICAg
IGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVy
biBpc1BhcnNpbmdGcmFnbWVudCgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgZGV0YWNoKCk7CiAK
QEAgLTk3LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIEluSGVhZE1vZGUsCiAgICAgICAg
IEluSGVhZE5vc2NyaXB0TW9kZSwKICAgICAgICAgQWZ0ZXJIZWFkTW9kZSwKKyAgICAgICAgVGVt
cGxhdGVDb250ZW50c01vZGUsCiAgICAgICAgIEluQm9keU1vZGUsCiAgICAgICAgIFRleHRNb2Rl
LAogICAgICAgICBJblRhYmxlTW9kZSwKQEAgLTE5MCw2ICsxOTcsMTEgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9t
aWNIVE1MVG9rZW4qKTsKKyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1M
VG9rZW4qKTsKKyNlbmRpZgorCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCB7CiAg
ICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZyYWdtZW50UGFyc2luZ0NvbnRleHQpOwogICAg
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0YTNhNWY0ZGVmMDdkZjI4
NmJlNDE2YWEyOWI1MDI4ZDFkOWRmNTQ4Li45MThmNDgwNzUwMDdiYTcwNDNhOTkyMjg3MWYxZGE1
MmQwNDJmZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00NzIsNiArNDcyLDcg
QEAKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZUVs
ZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVJvd0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
VGFibGVSb3dFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudENv
bnN0cnVjdG9yIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OworICAgIGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9VEVNUExBVEVfRUxFTUVOVF0gSFRNTFRlbXBsYXRlRWxlbWVudENvbnN0cnVjdG9yIEhU
TUxUZW1wbGF0ZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MVGV4dEFyZWFFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGl0bGVFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTFRpdGxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxVTGlzdEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2Zl
YXR1cmVzLmd5cGkKaW5kZXggNjIxZDRjZTk1ZjcxNmNkNTJiNmNkNTliYTkwMTc0YWNkZjYxNDdl
Yy4uMjBmYjhkMTE3ZjhjNTNmMDk4ZmM2Y2I1NWQ0M2RmZmJkNDMwMGEyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTA5LDcgKzEwOSw3IEBACiAgICAgICAnRU5BQkxF
X1NUWUxFX1NDT1BFRD0xJywKICAgICAgICdFTkFCTEVfU1ZHPTwoZW5hYmxlX3N2ZyknLAogICAg
ICAgJ0VOQUJMRV9TVkdfRk9OVFM9PChlbmFibGVfc3ZnKScsCi0gICAgICAnRU5BQkxFX1RFTVBM
QVRFX0VMRU1FTlQ9MCcsCisgICAgICAnRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQ9MScsCiAgICAg
ICAnRU5BQkxFX1RFWFRfQVVUT1NJWklORz0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNU
TUVOVD0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfRVZFTlRTPTwoZW5hYmxlX3RvdWNoX2V2ZW50
cyknLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGEzMDY5NWRjZmRmMzJhNDYwNWQyNDI2MTFlOTM4YmNmNWY2MGE2MWQuLjNj
NjdlOTAyZDRiZGU3M2FlZDFiZmM2OWVlYWJkZjkyYWI2N2Q3NjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAxMi0xMS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVu
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bm5lckhUTUwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRkZWQu
CisgICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJl
c291cmNlcy9kdW1wLWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAg
ICAgKE1hcmt1cC5fZ2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTEyLTAxICBNaWtlIFdl
c3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2d0a10gVW5yZXZpZXdlZCBnYXJk
ZW5pbmcuIFNraXBwaW5nIENTUCAxLjEgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGJiNjFjZDhmNTYyZjJiYjA2ZmEwN2ExNTc0YTVhZGQzNjFlMzU5OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCB0ZW1w
bGF0ZSBjb250ZW50cyBhcmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlz
IGNsb25lZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZW1wbGF0ZS5j
b250ZW50LmNoaWxkTm9kZXMubGVuZ3RoIGlzIDEKK1BBU1MgY2xvbmUuY29udGVudC5jaGlsZE5v
ZGVzLmxlbmd0aCBpcyAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYTVmNzVlY2ZlYTAz
ZGI5OTgxYjlhZWY4NjVlYjRjZTRlMTMxNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCkBAIC0wLDAgKzEs
MTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+Q29udGVudHM8
L3RlbXBsYXRlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHRlbXBsYXRl
IGNvbnRlbnRzIGFyZSBub3QgY2xvbmVkIHdoZW4gdGhlIHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xv
bmVkJyk7CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxl
ZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKScpOworCit2YXIg
dGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJl
KCd0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJywgJzEnKTsKK3ZhciBjbG9uZSA9
IHRlbXBsYXRlLmNsb25lTm9kZSh0cnVlKTsKK3Nob3VsZEJlKCdjbG9uZS5jb250ZW50LmNoaWxk
Tm9kZXMubGVuZ3RoJywgJzAnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmMTE1MTVhYTg2OWU1ZGZhODUxMzhhYTFhZmNk
MmRlYzkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBV
UkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZywgbWFpbiBkb2N1bWVudCBVUkwgaW5lcnRDb250ZW50
cy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZworaHR0cDovL2Jh
ei5jb20vYmF0LmpwZyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4g
TlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KK1RoZSB0
ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJp
bmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi4K
KworcGFzcyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2MwNWVjYjkwNzk3
NWQ1MDE0NDc5NTBjM2NjZTc1YTFjZTk2ZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3Zh
ciB0ZXN0VmFsID0gMTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgfQorCisg
ICAgaWYgKHRlc3RWYWwgIT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIHRlbXBsYXRl
Q29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpLmNvbnRlbnQ7Cisg
ICAgdmFyIGltZyA9IHRlbXBsYXRlQ29udGVudC5jaGlsZE5vZGVzWzFdOworICAgIGltZy5zcmMg
PSAiaHR0cDovL2Jhei5jb20vYmF0LmpwZyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh0ZW1wbGF0ZUNvbnRlbnQpOworCisgICAgaWYgKHRlc3RWYWwgIT0gMikKKyAgICAgICAgcmV0
dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9
ICdwYXNzISc7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNz
ZXJ0cyB0aGF0IGVsZW1lbnRzIHdpdGhpbiB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgImluZXJ0Iiwg
ZS5nLiByZXNvdXJjZXMgZG8gbm90IGZldGNoLCBzY3JpcHQgZG9lcyBub3QgcnVuLjwvcD4KKzx0
ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzY3JpcHQ+d2luZG93LnRlc3RWYWwgPSAyOzwvc2NyaXB0
PjxpbWcgc3JjPSJodHRwOi8vZm9vLmNvbS9iYXIuanBnIj4KKzwvdGVtcGxhdGU+Cis8ZGl2IGlk
PSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmOTcyNzA4
N2EzZTY3MTIzMDEyZjg2YmU3ZTRiZWM4MjMyNTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitUaGUgdGVzdCBhc3NlcnRzIHRoYXQgdGVtcGxhdGUgY29udGVu
dHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwgYW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdu
b3JlZC4KKworPGRpdj5Db250ZW50cyAxCis8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVtcGxhdGU+
Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvaW5uZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2lubmVySFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NjJjYTNiZWYxZDNkODI3OWZhYjE5
MTc4OTkyYzJjNWY2MWMzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZW1wbGF0ZScpOworICAgIHRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplJzsK
KyAgICB2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5maXJz
dEVsZW1lbnRDaGlsZDsKKyAgICBpbm5lclRlbXBsYXRlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0gJ3Nob3VsZCBub3Qgc2VyaWFsaXplIGVp
dGhlcic7CisKKyAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSB0ZW1wbGF0ZS5pbm5lckhUTUw7Cisg
ICAgaWYgKHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3RoICE9IDEpIC8vIFRoZSBvbmx5IGNoaWxk
IHNob3VsZCBiZSB0aGUgc3BhbiB0aGF0IHdhcyBhZGRlZCBhYm92ZS4KKyAgICAgICAgcmV0dXJu
OworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9IHRl
bXBsYXRlLmlubmVySFRNTDsKKyAgICB2YXIgdGVtcGxhdGUyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZTIuaW5uZXJIVE1MID0gJzx0ZW1wbGF0ZT48
L3RlbXBsYXRlPic7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHRlc3Qg
YXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBzZXJpYWxpemVkIHdpdGggaW5uZXJI
VE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuPC9wPgorPHRlbXBsYXRlIGlkPSJ0ZW1w
bGF0ZSI+PGRpdj5Db250ZW50cyAxCisgIDx0ZW1wbGF0ZT5Db250ZW50cyAyPC90ZW1wbGF0ZT4K
KzwvZGl2PjwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcwMmFlYWVlMzkwZjgxNmU2YTUxZTljYjJlYzIx
NDJjMTc2N2NlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBA
QAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVudAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZW1wbGF0ZS5vd25lckRvY3VtZW50IGlz
IGRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBI
VE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudCBpcyBub3QgdGVtcGxhdGVDb250ZW50
T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1
bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUu
b3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIGlubmVy
VGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERv
Y3VtZW50IGlzIHRydWUKK1BBU1MgdGVtcGxhdGUyLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQK
K1BBU1MgdGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50CitQQVNTIGRmLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1Mgc3Bh
bi5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNTIGRmLm93bmVyRG9jdW1lbnQgaXMgdGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBzcGFuLm93bmVyRG9jdW1lbnQgaXMgdGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNt
YXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyB0ZW1wbGF0ZS5jb250ZW50ID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBl
TWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUuY29udGVudCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlz
bWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUzLm93bmVyRG9jdW1l
bnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudCBpcyB0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlMy5jb250ZW50LmZpcnN0
Q2hpbGQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9j
dW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDUxOTJiMWZiNDliY2I3NjM2N2JhNWQ1MTM5Y2Y1NDg2
NWJjZGNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48c3Bhbj48dGVtcGxhdGU+PC90ZW1wbGF0
ZT48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUyIj48c3Bhbj48L3Nw
YW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUzIj48c3ZnPjwvc3ZnPjwvdGVt
cGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1wbGF0ZUVsZW1l
bnQgY29udGVudCBvd25lckRvY3VtZW50Jyk7CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0ZUVs
ZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1QTEFU
RV9FTEVNRU5UKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVtcGxhdGUnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50
Jyk7CisKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGUuY29udGVu
dC5vd25lckRvY3VtZW50Oworc2hvdWxkQmVUcnVlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CitzaG91bGROb3RCZSgnZG9jdW1lbnQnLCAn
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlLmNvbnRl
bnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1l
bnQnKTsKKwordmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQu
Zmlyc3RDaGlsZDsKK3Nob3VsZEJlKCdpbm5lclRlbXBsYXRlLm93bmVyRG9jdW1lbnQnLCAndGVt
cGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ2lubmVyVGVtcGxhdGUuY29u
dGVudC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKK3No
b3VsZEJlVHJ1ZSgnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERv
Y3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVt
cGxhdGUyJyk7CitzaG91bGRCZSgndGVtcGxhdGUyLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQn
KTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZTIuY29udGVudC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRl
Q29udGVudE93bmVyRG9jdW1lbnQnKTsKKwordmFyIGRmID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwordmFyIHNwYW4gPSBkZi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJykpOworc2hvdWxkQmUoJ2RmLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQn
KTsKK3Nob3VsZEJlKCdzcGFuLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQnKTsKKwordGVtcGxh
dGUuY29udGVudCA9IGRmOworc2hvdWxkQmUoJ2RmLm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3NwYW4ub3duZXJEb2N1bWVudCcsICd0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisKK3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5j
b250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOycpOworc2hvdWxkVGhyb3co
J3RlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOycpOwor
aWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dSb290KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHNob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KScpOworfQorCit2YXIgdGVtcGxhdGUzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOworc2hvdWxkQmUoJ3RlbXBsYXRlMy5vd25l
ckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGUzLmNvbnRlbnQub3du
ZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZSgn
dGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY2OWJmZmQ5MWQxZWY5N2Y2
MWRmNmVlM2E2OTcwMDljY2EwNzViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25l
ckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNlCitQQVNT
IGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIHRlbXBs
YXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgZmFsc2UK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9j
dW1lbnRYSFRNTC54aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NTgzOGE2OTg5MTdiNWM3
ZDEwM2I2OTg0Y2VlNzYwNjIzOTU3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbApAQCAt
MCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRl
bXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQgaW4gWEhUTUwgRG9jdW1lbnQnKTsK
KworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlz
IHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpJyk7CisKK3Nob3VsZEJlRmFs
c2UoJ2RvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7Cit2YXIgdGVtcGxhdGU0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50ID0gdGVtcGxhdGU0LmNvbnRlbnQub3duZXJEb2N1bWVudDsKK3Nob3VsZE5v
dEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRC
ZUZhbHNlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3Vt
ZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jl
c291cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhZTgxZWZkZGZkYzRkOGY4Njc3MWM2
MmM0YTEzOTcyNDAyYmE4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGli
L3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKQEAgLTAsMCArMSw4NDMgQEAKKyNkYXRhCis8Ym9keT48
dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8dGVtcGxhdGU+SGVsbG88
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVs
bG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+
CisKKyNkYXRhCis8aHRtbD48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRh
Cis8aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rpdj48L3RlbXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2Rh
dGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAgIDxkaXY+Cit8ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxk
aXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAiSGVsbG8iCisKKyNkYXRh
Cis8ZGl2PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+
PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwv
dGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBs
YXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0
YWJsZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICAiICAgIgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRl
PjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQor
PHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5PjwvdGFibGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwv
dGVtcGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRh
YmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAg
ICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3Rl
bXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzx0
ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvc2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG9wdGlvbj4K
K3wgICAgICAgICA8b3B0aW9uPgorfCAgIDxib2R5PgorCisjZGF0YQorPHNlbGVjdD48dGVtcGxh
dGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICA8b3B0aW9uPgor
CisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxz
ZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVt
cGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRp
b24+CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2Rh
dGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJs
ZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICAgPHRoZWFkPgorCisjZGF0YQorPGJvZHk+PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90
cj48ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorfCAgICAg
ICAgICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0
ZT48L3RoZWFkPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzx0
YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+
Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorCisjZGF0YQorPHRhYmxlPjx0ZW1w
bGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNk
YXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9k
eT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJs
ZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+
PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90
ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgor
fCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0
ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVt
cGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0
ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAg
ICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8Y29sPgorCisjZGF0YQor
PGZyYW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC9mcmFtZXNldD48
ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZyYW1lPgorfCAgIDxib2R5PgorCisjZGF0
YQorPHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3Nw
YW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5Pgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rp
dj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wg
PGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4K
K3wgICAgICAgICA8c3Bhbj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBp
ID0gMTs8L3NjcmlwdD48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZh
ciBpID0gMTsiCit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48
ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAg
IDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90
ZD48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgor
fCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlv
bj48L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3Rk
PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+
PHRkPjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjx0Ym9keT48dHI+PC90cj48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3Ry
PjxjYXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+CisKKyNkYXRh
Cis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PC90YWJsZT48dHI+PC90cj48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+
Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFk
PjxjYXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGhlYWQ+Cit8ICAg
ICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBs
YXRlPjx0aGVhZD48L3RoZWFkPjwvdGFibGU+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2Jv
ZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+
Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
IDx0aGVhZD4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRp
dj48dHI+PC90cj48L2Rpdj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
PjxlbT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGVtPgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0
ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPCEtLSBjb21tZW50IC0t
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzdHlsZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgIDxzdHlsZT4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PG1l
dGE+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPG1ldGE+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJv
ZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxsaW5rPgorfCAgICAgICAgIDx0
ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0
ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5
Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdy
b3VwPjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgICAgIDxjb2w+CisKKyNkYXRhCis8Ym9keSBhPWI+PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJv
ZHkgYz1kPjxkaXY+PC9kaXY+PC9ib2R5PjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRp
dj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2Pjxo
dG1sIGI9Yz48c3Bhbj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9k
eT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGNvbD48L2NvbD48aHRtbCBiPWM+PGNv
bD48L2NvbD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9
ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2Rh
dGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48
L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0i
YiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKwor
I2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48dGQ+
PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGli
L3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVmZTMyNGIwMTI5ZTYxYzkx
MjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorcmVzb3VyY2Vz
L3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVu
LXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0OWIzZTkxN2FjNGQ0MTljYjY0ZmU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKQEAg
LTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQ+Cit2YXIgdGVzdF9maWxlcyA9
IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQnLAorXQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE2NDNh
MDM0MjQxNmM2NjMzYTFiMTMzNjk2ZDUxZWZiZjY0M2RlMTEuLmU0OTBkOTk3MWYwN2RkNmU3MjRh
MGI2YmE0YjRmMmExM2JmMzlkNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zMTAsNiArMzEwLDEwIEBAIGZhc3QvdGV4dC91bmljb2RlLXZhcmlhdGlv
bi1zZWxlY3Rvci5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1lbnRyaWVzLmh0bWwK
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJs
cy1tYXRjaC1zZWxmLmh0bWwKIAorIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkgaXMgZGlzYWJs
ZWQuCitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUu
aHRtbAorCiAjIFRyYW5zcGFyZW50IGltYWdlIGJlaW5nIHByb2R1Y2VkCiBmYXN0L2ZyYW1lcy90
cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDBkNTA1OGJmODE5ZWJlMjI5NmVlNWI4NjA1NmJjNzE4NTQ1YWQ3
Y2UuLmE4ZmY4OTUzOWZlMjYzZDRmZGQ1YjNiZThjMzgyZWNkZDQ1OTg1NzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC03Nyw2ICs3NywxMCBAQCBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQtY29udGVudC10eXBlLWRhc2hib2FyZC5odG1s
IFsgV29udEZpeCBdCiAjIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKSBpcyBkaXNhYmxlZAogZmFz
dC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdvbnRGaXggXQogCisjIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK3dlYmtpdC5vcmcvYi8xMDM1NyBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTAzNTcgaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgWyBTa2lwIF0KKwogIyBUaGVzZSB0ZXN0IC1hcHBsZS0g
YW5kIC1raHRtbC0gcHJlZml4ZWQgQ1NTIHByb3BlcnRpZXMsIHdoaWNoIHdlIGRvbid0IHN1cHBv
cnQuCiBpbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sIFsgV29udEZpeCBdCiBm
YXN0L2Nzcy9hcHBsZS1wcmVmaXguaHRtbCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYmJkZDNiZWUxNzNkYzFhN2RkOTk4MzRlOGVk
ZTRiNzZjZmEyNjcwLi42MjM0ZWM0Mjc4MmY3Njg5YmZiNTE1MWRkYWQ0ZmI4OGVkYWE5YTUxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDMyLDYgKzQz
MiwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGVkaXRpbmcvc2hhZG93CiBpbnNwZWN0b3IvZWxlbWVu
dHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlz
IGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRl
bXBsYXRlLmh0bWwKKwogIyBKU0MgZG9lcyBub3Qgc3VwcG9ydCBzZXRJc29sYXRlZFdvcmxkU2Vj
dXJpdHlPcmlnaW4gKGh0dHA6Ly93ZWJraXQub3JnL2IvNjE1NDApCiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMyZmMwMDYwZjYyMDQ5ZGU0MzY4ZmNlMDAz
ZDdjM2RkN2M5ZWM2ZGIuLjJhZDI2MTViZmM0NjhlZWM5YWFhZjZmMzc2NzRjNDc1ODM0ZDc4NTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg4LDYgKzE4
OCwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGZhc3QvZnJhbWVzL2RldGFjaGVkLXNoYWRvdy1mcmFt
ZS5odG1sCiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sCiAKKyMgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBGYWlsIHVudGlsIFNVQlBJ
WEVMX0xBWU9VVCBpcyBlbmFibGVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTUzMgogZmFzdC9zdWItcGl4ZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggOTZkZWIyMWQ3MDY5NjA3NTI5ZTI3ZGE3OTRkYzNmMjVjZDI0
ZDFjOS4uODJmMTc2OTllM2RiNTgzNzI4ZjBkZWQ4OGU4NTFjMDBhMjlhYTZmNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MjYsNiArMTUyNiwxMCBA
QCBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9zaGFkb3cK
IGZhc3QvZG9tL3NoYWRvdwogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxl
ZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5o
dG1sCisKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJr
aXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MTMzYjg1ZmYxYjI4NzAyZWQxYTRkNTNi
Mzk0ZjM2YTEyYjQ3OTdjLi41MWQ3Y2YxMjdkYWZhMGFkYTU3NjEyMGEyMmFjZWFhYmZkNDc2NzZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTIwNjEsNiArMjA2MSwxMCBAQCBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3cu
aHRtbAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3NoYWRvdwogCisjIEVOQUJMRShURU1QTEFU
RV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0
bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0
IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMgYi9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKaW5kZXggNTNhMDAxZmVmZGUyODgxYWVm
NjFjZDA2OTAyNzJmYzZlMTViMWU5MS4uYzdmZGYxN2YyMGE0MjljMTBjNmQ4YjNhMTk2ZGZiOTA5
NDQ2MmIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3Vw
LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIw
LDE2ICsyMjAsMjQgQEAgTWFya3VwLl9nZXQgPSBmdW5jdGlvbihub2RlLCBkZXB0aCkKICAgICBj
YXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaWYgKG5vZGUubm9kZU5h
bWUgPT0gIiNzaGFkb3ctcm9vdCIpCiAgICAgICAgICAgc3RyICs9ICI8c2hhZG93OnJvb3Q+IjsK
KyAgICAgICAgZWxzZQorICAgICAgICAgIHN0ciArPSAiI2RvY3VtZW50LWZyYWdtZW50IjsKICAg
ICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsg
aSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVj
dGlvbk1hcmtlcihub2RlLCBpKTsKLSAgICAgICAgaWYgKHNlbGVjdGlvbikKLSAgICAgICAgICAg
IHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOwotCi0gICAgICAg
IHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9kZXNbaV0sIGRlcHRoICsgMSk7CisgICAg
CisgICAgCisgICAgLy8gSFRNTCBUZW1wbGF0ZSBlbGVtZW50cyBzZXJpYWxpemUgdGhlaXIgY29u
dGVudCBEb2N1bWVudEZyYWdtZW50LCBhbmQgTk9UIHRoZWlyIGNoaWxkcmVuLgorICAgIGlmIChu
b2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAmJiBub2Rl
LnRhZ05hbWUgPT0gJ1RFTVBMQVRFJykgeworICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9k
ZS5jb250ZW50LCBkZXB0aCArIDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkg
PSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAg
ICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBp
KTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24pCisgICAgICAgICAgICAgICAgc3RyICs9IE1h
cmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rpb247CisgICAgCisgICAgICAgICAgICBz
dHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgICAg
ICB9CiAgICAgfQotCisgICAgCiAgICAgc3RyICs9IE1hcmt1cC5fZ2V0U2hhZG93SG9zdElmUG9z
c2libGUobm9kZSwgZGVwdGgpOwogICAgIAogICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dl
dFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKQEAgLTI4NCw3ICsyOTIsNyBAQCBNYXJrdXAuX05B
TUVTUEFDRV9VUklfTUFQID0gewogCiBNYXJrdXAuX2dldFNlbGVjdGlvbkZyb21Ob2RlID0gZnVu
Y3Rpb24obm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldFNlbGVjdGlvbigpOworICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcgPyBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0U2VsZWN0aW9uKCkgOiBudWxs
OwogfQogCiBNYXJrdXAuX1NFTEVDVElPTl9GT0NVUyA9ICc8I3NlbGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177330</attachid>
            <date>2012-12-03 14:27:18 -0800</date>
            <delta_ts>2012-12-03 19:10:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86031-20121203142444.patch</filename>
            <type>text/plain</type>
            <size>96866</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg0YjBmY2RhODlmN2U5
ZDUyZGRhNzRkZmRjYTQxMzhkNjJmNzhmYi4uNmU0ZGEzNDEwNDYwOTgxMTAzNzQ3OGJiNWI5NWRh
N2EyMWIxYThlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKwor
ICAgICAgICBJbml0aWFsIGltcGxlbWVudGF0aW9uLiBUaGlzIHBhdGNoIGluY2x1ZGVzIHRoZSBw
YXJzZXIgY2hhbmdlcywgbmV3IElETCBhbmQgZWxlbWVudCBpbXBsZW1lbnRhdGlvbiBmb3IgPHRl
bXBsYXRlPi4KKworICAgICAgICBTcGVjOiBodHRwOi8vZHZjcy53My5vcmcvaGcvd2ViY29tcG9u
ZW50cy9yYXctZmlsZS90aXAvc3BlYy90ZW1wbGF0ZXMvaW5kZXguaHRtbAorCisgICAgICAgIFRl
c3RzOiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3Vt
ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAo
dGVtcGxhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1
bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6Cisg
ICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyk6CisgICAg
ICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAoSFRNTEVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVt
ZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OnNldElubmVySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVF
bGVtZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxl
bWVudDo6Y29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVtZW50Ojpz
ZXRDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTFRlbXBsYXRlRWxlbWVudCk6Cisg
ICAgICAgICogaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChIVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVRhc2spOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6Y3JlYXRlSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmZpbmRGb3N0ZXJTaXRlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5oOgorICAgICAgICAoSFRNTENvbnN0cnVjdGlvblNpdGUpOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3Bl
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmg6CisgICAgICAgIChI
VE1MRWxlbWVudFN0YWNrKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJv
bVRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0ZvckluQm9keSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJp
YXRlbHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
Rm9ySW5UYWJsZUJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kVGFnRm9ySW5Sb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW5DZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjppc1BhcnNpbmdUZW1wbGF0ZUNv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nRnJh
Z21lbnRPclRlbXBsYXRlQ29udGVudHMpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoK
KwogMjAxMi0xMi0wMyAgRmxvcmluIE1hbGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtTa2lhXSBEZWZlcnJlZCBTa0NhbnZhcyBzYXZlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZWIyNTE1MGRmODdiZjE3NmE2ZmI0MmFiNDgxMDQ2MmVmMmI4MGZhZC4uMWVi
NDM5OWJhN2U0NzQzYTlmNzE4ODlhMmI4ODA3YWZkOTFmZDQxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0xMyAgUmFmYWVsIFdlaW5zdGVpbiAg
PHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBIVE1MVGVtcGxhdGVF
bGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVHVybmlu
ZyBvbiBIVE1MVGVtcGxhdGVFbGVtZW50IGZvciBjaHJvbWl1bSBwb3J0LgorCisgICAgICAgICog
ZmVhdHVyZXMuZ3lwaToKKwogMjAxMi0xMi0wMyAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWtlIG1haW4tdGhyZWFk
IG1vbml0b3JpbmcgZ28gdGhyb3VnaCBJbnNwZWN0b3JDb250cm9sbGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDlkMTBkYzQzYjE2YjAwMjI2MGRlNDI1ZGVhYjM1OTI0MzRjYTBmOTcuLjk1MGEz
NjA5YTdmYTBhOTBjNTUzOTU0ZDMzNmNkMjI3ODcxMGMwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC00ODgsNiArNDg4LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9IVE1M
VGFibGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwKICAgICBo
dG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5pZGwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1M
VGl0bGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKQEAgLTE0MzEs
NiArMTQzMiw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0hUTUxUYWJsZVJvd0Vs
ZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAKICAgICBodG1s
L0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlNTM2ZmQxM2E5NGE3ZDBhNWU0NWI3NTc5
OWZiOGRjZDY2NjIwNGExLi43YmFhNWY4Nzg2YzZkMjgwNmUxNDU3MzZhN2MyNjg3OTk3ZWE1YWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0OCw2ICszNDgsNyBAQCBCSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRpdGxlRWxlbWVu
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmMTdmODQ2OTNhNWRiMWFmNDIzZDRhMjJkOWU3
OTcwOTRkMDkwMjJjLi41YWY3ZWY1NjFjMDdmZGI5MjhlODQ0NTNiMmJlOGZjN2U0N2M2MDYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQzMSw2ICs0MzEsOCBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGFibGVS
b3dFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGVtcGxhdGVFbGVtZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUaXRsZUVsZW1lbnQuY3BwIFwKQEAgLTE0ODksNiArMTQ5
MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVF
bGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsIFwKKwkkKFdlYkNv
cmUpL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL0hUTUxUaXRsZUVsZW1lbnQu
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwgXApAQCAtMzQzNyw2
ICszNDQwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOGFiZmM3YTMxOWY2
YjI5NzE4MjEwNmZlN2RmMGNkMjM1NDY3ZDZmOS4uNTExZDhhNzk4MWNlNDQxNDQ1ZGVmNTRiNDQy
MTc4NTE5NzZlMDlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02NTksNiArNjU5LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGFi
bGVSb3dzQ29sbGVjdGlvbi5jcHAgXAogICAgIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
Y3BwIFwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcCBcCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcCBcCkBAIC0xODI1LDYgKzE4MjYs
NyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCiAgICAg
aHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oIFwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmggXAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIFwKICAgICBodG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5oIFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggMTI4Zjg3YzViZmQxNDBiMjE5NWYxNjg0YzExOTUwMTE5ODI2OGIxZS4uZGJmZmE1NDdlOWRm
MGMzNTUyN2QxYWQ2NzllODU2NDdlNzI0MzcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTEzMCw2
ICsxMTMwLDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGl0bGVFbGVt
ZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCcsCkBAIC00MTgyLDYgKzQxODMsOCBA
QAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTVkYmRkZjk5YTc5MjBiZGMyM2RhNzg1MjBkYjk2
ZjBmN2IyZjdjYy4uZTk5NDgwYzlkNDAxODI3Y2NiNDJkOWEyN2E4ZDZlNzRlOGU0NzEzOCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTk2MjIs
NiArOTYyMiw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGVtcGxhdGVFbGVtZW50
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNI
VE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBA
IC02MzQ3MCw2ICs2MzUyNiw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIgorCQkJCT4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhU
TUxUZW1wbGF0ZUVsZW1lbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWRjNDYyNDY5ODcyODJkZjg3OGQxMTA4M2E0ZGY0ZGY5
N2Q5OGZhZC4uNzBmZTM3ODM0Zjc5ZTZjZjFjY2QxYTU0YzVkZWRkMjRlOTQ5YThmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM0NzAsNiArMTM0NzAsOSBAQAogCQlENkUyNzZBRTE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQ2RTUyOEExMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQ2RTUyOEEyMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENkVGQzBCQjE2NjZE
RjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGVtcGxhdGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkMxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0
ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFRlbXBsYXRl
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENkVGQzBCRDE2NjZERjdB
MDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTFRlbXBsYXRlRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBIaXN0b2dyYW1TdXBwb3J0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvZ3JhbVN1cHBvcnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkZEQUVGMjE0OUMwNjE5MDAzN0IxRTIgLyogU3Rh
dHNDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRz
Q291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2
MTkwMDM3QjFFMyAvKiBNZW1vcnlVc2FnZVN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5VXNhZ2VTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE3ODE2LDYgKzE3ODE5LDkgQEAKIAkJCQlBODcxREIxNzBBMTUwQkQ2
MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCAqLywKIAkJCQk4NTU1NDI1QzBB
QTQ4QjFFMDBCQTg5RjIgLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsICovLAogCQkJCTUx
OUZFMEEyMERBRDQ0NkUwMEEwOEYyMSAvKiBIVE1MVGFnTmFtZXMuaW4gKi8sCisJCQkJRDZFRkMw
QkIxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwICovLAorCQkJCUQ2
RUZDMEJDMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50LmggKi8sCisJCQkJ
RDZFRkMwQkQxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuaWRsICovLAog
CQkJCUE4MTM2OUJCMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAq
LywKIAkJCQlBODEzNjlCQTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVudC5o
ICovLAogCQkJCUE4MEU3RTE2MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50
LmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCA0YTFlMzM1NjhjYjE1N2E3MjNmMGM3YWZhNjk3
YzM0MDkyNjY2MTY4Li5mZWE3Yzg3YTlkMGYyMmE4MmIzOWQ2NjdjYzcyNmUyOGNhOWFmMmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL2h0bWwuY3NzCkBAIC0xMjYyLDYgKzEyNjIsMTIgQEAgc3VtbWFyeTo6LXdlYmtpdC1k
ZXRhaWxzLW1hcmtlciB7CiAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTsKIH0KIAorI2lmIGRlZmlu
ZWQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICYmIEVOQUJMRV9URU1QTEFURV9FTEVNRU5UCit0
ZW1wbGF0ZSB7CisgICAgZGlzcGxheTogbm9uZQorfQorI2VuZGlmCisKIGJkaSwgb3V0cHV0IHsK
ICAgICB1bmljb2RlLWJpZGk6IC13ZWJraXQtaXNvbGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAppbmRleCBhNDBlODFkNzAyMTcwN2U4MzNiZjc5YzRhNzZhYzBmNTQwZjlh
NjkyLi5iNmI5MWJhOTI1ZDU3YzViOGZiZWFiYTg1ZjNkNWRjMDE1NTk0Y2M0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0zMTAsNiArMzEwLDcgQEAgdm9pZCBDb250YWlu
ZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogbmV4dENoaWwKICAgICBBU1NFUlQobmV3Q2hpbGQpOwogICAgIEFTU0VSVChuZXh0Q2hpbGQp
OwogICAgIEFTU0VSVChuZXh0Q2hpbGQtPnBhcmVudE5vZGUoKSA9PSB0aGlzKTsKKyAgICBBU1NF
UlQoZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlVmVjdG9y
IHRhcmdldHM7CiAgICAgY29sbGVjdFRhcmdldE5vZGVzKG5ld0NoaWxkLmdldCgpLCB0YXJnZXRz
KTsKQEAgLTY5NSw2ICs2OTYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFwcGVuZENo
aWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQpCiB7CiAgICAgQVNTRVJUKG5ld0NoaWxkKTsK
ICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnROb2RlKCkpOyAvLyBVc2UgYXBwZW5kQ2hpbGQg
aWYgeW91IG5lZWQgdG8gaGFuZGxlIHJlcGFyZW50aW5nIChhbmQgd2FudCBET00gbXV0YXRpb24g
ZXZlbnRzKS4KKyAgICBBU1NFUlQoZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7
CiAKICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0Q2hpbGQ7CiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjgwNTZhZTRjMGE4NDY2YjRlODkzNTFhN2FmYjFkMzIwMTkwYjMzOS4uNjg1
ZTdkM2JiMDU5NDkxN2E2YTI4ZmM4ODc5OWNmMDFkZjc0OWUxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC01ODg4LDQgKzU4ODgsMjIgQEAgTG9jYWxlJiBEb2N1bWVudDo6Z2V0Q2FjaGVk
TG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKQogICAgIHJldHVybiAqKHJlc3VsdC5p
dGVyYXRvci0+dmFsdWUpOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCitEb2N1
bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkKK3sKKyAgICAv
LyBJZiBET0NVTUVOVCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4dCwgTGV0IFRFTVBM
QVRFIENPTlRFTlRTIE9XTkVSIGJlIERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlzOworCisgICAgaWYgKCFtX3RlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hUTUxEb2N1bWVudCgp
KQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVudCA9IEhUTUxEb2N1
bWVudDo6Y3JlYXRlKDAsIGJsYW5rVVJMKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBibGFu
a1VSTCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1
bWVudC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDI3ZWMzY2ZkMjdmZWFjYzU1MTE1OTk5Y2FmYzZiMjVmMjc5MDIwNzMu
LmY1YjhjY2QyYzBhMTFjOGIwOTJiMzEzOWIwMDFiYTdkM2MzMDBiMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMTcyLDYgKzExNzIsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8RWxlbWVudD4gPiYgdG9wTGF5ZXJFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG9w
TGF5ZXJFbGVtZW50czsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkK
KyAgICBEb2N1bWVudCogdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQoKTsKKyNlbmRpZgor
CiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hI
VE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1MjcsNiArMTUzMSwxMCBAQCBwcml2YXRlOgogCiAg
ICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgT3duUHRyPExvY2FsZT4gPiBMb2NhbGVJ
ZGVudGlmaWVyVG9Mb2NhbGVNYXA7CiAgICAgTG9jYWxlSWRlbnRpZmllclRvTG9jYWxlTWFwIG1f
bG9jYWxlQ2FjaGU7CisKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBSZWZQdHI8
RG9jdW1lbnQ+IG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQ7CisjZW5kaWYKIH07CiAK
IGlubGluZSB2b2lkIERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGJl
YjgzMmY3ZjUwMDliNmFjNjEzYzMzY2Q4YjQ3MWVhMjI0NzJlNjIuLmM3NjZmZmYwOWVjYjA2MTkz
M2EzM2NhMjhhODU3ODA4MzFhYWI4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgi
CiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUg
IlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKQEAgLTE0
MSw3ICsxNDIsMTIgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRo
TmFtZXNwYWNlcyhOb2RlKiB0YXJnZXROb2RlLCBOb2RlKiBub2QKICAgICAgICAgYXBwZW5kU3Rh
cnRUYWcodGFyZ2V0Tm9kZSwgJm5hbWVzcGFjZUhhc2gpOwogCiAgICAgaWYgKCEodGFyZ2V0Tm9k
ZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRh
Zyh0YXJnZXROb2RlKSkpIHsKLSAgICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0gdGFyZ2V0Tm9k
ZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmco
KSkKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgTm9kZSogY3VycmVudCA9
IHRhcmdldE5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1MVGVtcGxhdGVFbGVt
ZW50KHRhcmdldE5vZGUpLT5jb250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRhcmdldE5vZGUtPmZp
cnN0Q2hpbGQoKTsKKyNlbHNlCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0YXJnZXROb2RlLT5m
aXJzdENoaWxkKCk7CisjZW5kaWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0g
Y3VycmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5h
bWVzcGFjZXMoY3VycmVudCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1lc3BhY2VIYXNo
LCB0YWdOYW1lc1RvU2tpcCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CmluZGV4IDg3YjdlMjYyOTVmYjc0ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkxMWQuLmJjZDRmMWRl
M2ExNWM3ZjMzNjI0M2I2Y2JlZmNmY2UxN2U0OTE2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgor
I2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTM0Myw4ICszNDQsMTQgQEAgU3RyaW5nIEhUTUxF
bGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhU
TUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91
dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkKLSAgICAgICAg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMp
OworICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFn
bWVudEZvcklubmVyT3V0ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0aW5nQ29udGVudCwg
ZWMpKSB7CisgICAgICAgIENvbnRhaW5lck5vZGUqIGNvbnRhaW5lciA9IHRoaXM7CisjaWYgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmIChoYXNMb2NhbE5hbWUodGVtcGxhdGVU
YWcpKQorICAgICAgICAgICAgY29udGFpbmVyID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRoaXMp
LT5jb250ZW50KCk7CisjZW5kaWYKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50
KGNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgfQogfQogCiBzdGF0aWMg
dm9pZCBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRz
QWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5j
cHAKaW5kZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1MjAxZjg1NGVmODhkM2NiZGU0NC4uN2YzYjNm
NDdjMDBiODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5ZTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQAogI2luY2x1
ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAiCisjaW5jbHVk
ZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpp
bmRleCA4NWExZTYxYTVhOTU4MmIxM2U2MzQyODljZGM1M2EyMmM3NmIzZTAxLi5kNjIzZGQ5NjJl
OTg1NTg2ZWU1MjJlMmMxM2EwNGMyYjAwNDIxMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdO
YW1lcy5pbgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQg
aW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAordGVtcGxhdGUgY29uZGl0aW9uYWw9
VEVNUExBVEVfRUxFTUVOVAogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFFbGVt
ZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290IGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmZDMyOWVmZDRlZWEzMGMyZWViNzM5ZWY4ZDg5OTVlNWM4YzhjMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC0w
LDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxF
TUVOVCkKKworI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkRP
TUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIm1hcmt1cC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK2lubGluZSBIVE1MVGVtcGxh
dGVFbGVtZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQoreworfQorCitIVE1MVGVtcGxhdGVFbGVtZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCgp
Cit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gSFRNTFRlbXBsYXRlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1wbGF0ZUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1lbnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxl
bWVudDo6Y29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbnRlbnQpCisgICAgICAgIG1f
Y29udGVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25lckRvY3VtZW50KCktPnRlbXBs
YXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpOworCisgICAgcmV0dXJuIG1fY29udGVudC5nZXQo
KTsKK30KKworLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxMjcgKHByZXZlbnQgRE9NIGhpZXJhcmNoeSBjeWNsZXMpLgorLy8gRklYTUU6
IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjkgKGV4
dGVuZGVkIGFkb3B0Tm9kZSB0byBjb25zaWRlciB0ZW1wbGF0ZS5jb250ZW50KS4KK3ZvaWQgSFRN
TFRlbXBsYXRlRWxlbWVudDo6c2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IHBycENvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBjb250ZW50ID0gcHJwQ29udGVudDsKKworICAgIGlmICghY29udGVudCB8fCBjb250
ZW50LT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fY29udGVudC5nZXQoKSA9PSBjb250
ZW50LmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY29udGVudC0+b3duZXJEb2N1
bWVudCgpICE9IG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQo
KSkKKyAgICAgICAgb3duZXJEb2N1bWVudCgpLT50ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVu
dCgpLT5hZG9wdE5vZGUoY29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyAgICBtX2Nv
bnRlbnQgPSBjb250ZW50OworfQorCisjaWZuZGVmIE5ERUJVRworY29uc3QgSFRNTFRlbXBsYXRl
RWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAg
QVNTRVJUKCFub2RlIHx8IChub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgbm9kZS0+aGFzVGFnTmFt
ZSh0ZW1wbGF0ZVRhZykpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTFRlbXBs
YXRlRWxlbWVudCo+KG5vZGUpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY5MTNlNDRhYjZiOGY2NjM1OWVl
MDg5OTg3MjVlNzQ1ZTk1OTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxUZW1w
bGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gKKworI2lmIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRN
TFRlbXBsYXRlRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxUZW1wbGF0ZUVsZW1lbnQoKTsK
KworICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRlbnQoKSBjb25zdDsKKworICAgIHZvaWQgc2V0
Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRpb25Db2RlJik7CisK
K3ByaXZhdGU6CisgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKworICAgIG11dGFibGUgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fY29u
dGVudDsKK307CisKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRNTFRlbXBsYXRlRWxl
bWVudChjb25zdCBOb2RlKik7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVtZW50KiB0b0hUTUxU
ZW1wbGF0ZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxIVE1M
VGVtcGxhdGVFbGVtZW50Kj4odG9IVE1MVGVtcGxhdGVFbGVtZW50KHN0YXRpY19jYXN0PGNvbnN0
IE5vZGUqPihub2RlKSkpOworfQorCisjaWZkZWYgTkRFQlVHCisKKy8vIFRoZSBkZWJ1ZyB2ZXJz
aW9uIG9mIHRoaXMsIHdpdGggYXNzZXJ0aW9ucywgaXMgbm90IGlubGluZWQuCitpbmxpbmUgY29u
c3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUq
IG5vZGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxUZW1wbGF0ZUVsZW1l
bnQqPihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBIVE1M
VGVtcGxhdGVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
bXBsYXRlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdhNTgzNmQ5NzgxZmQ2YjNlNmZjNmU2MWZjN2Y1NGEwMGM3ZDAy
YmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVRFTVBMQVRFX0VM
RU1FTlQKK10gaW50ZXJmYWNlIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Cisg
ICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudCBzZXR0ZXIgcmFpc2VzIChET01F
eGNlcHRpb24pOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDljMTgyYmEyMzQzYjRlNTEzOWEzMjAyMjYwODE0
ZWQwNDk1OTE5ZDguLjYyMjY5ZGVjYjc1ZjUxOGNjYzg5MTQzMmQ5ZDBlMzcyMzRiOTc5YzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAj
aW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3RhY2tJdGVtLmgi
CisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5o
IgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCkBAIC03Nyw2ICs3OCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBbGxXaGl0ZXNwYWNl
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2so
SFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisg
ICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRhc2sucGFyZW50Lmdl
dCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAgICBpZiAodGFzay5uZXh0Q2hpbGQpCiAgICAg
ICAgIHRhc2sucGFyZW50LT5wYXJzZXJJbnNlcnRCZWZvcmUodGFzay5jaGlsZC5nZXQoKSwgdGFz
ay5uZXh0Q2hpbGQuZ2V0KCkpOwogICAgIGVsc2UKQEAgLTI0Nyw3ICsyNTMsNyBAQCB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tl
biogdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6
OkNvbW1lbnQpOwotICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENvbW1lbnQ6OmNyZWF0
ZShjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CisgICAgYXR0
YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6Y3JlYXRlKG93bmVyRG9jdW1lbnRGb3JD
dXJyZW50Tm9kZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3VtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CkBAIC0zMjUsNyArMzMxLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0U2Ny
aXB0RWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIC8vIHRob3NlIGZsYWdzIG9y
IGVmZmVjdHMgdGhlcmVvZi4KICAgICBjb25zdCBib29sIHBhcnNlckluc2VydGVkID0gbV9mcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gQWxsb3dTY3JpcHRpbmdDb250ZW50QW5kRG9Ob3RN
YXJrQWxyZWFkeVN0YXJ0ZWQ7CiAgICAgY29uc3QgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IG1faXNQ
YXJzaW5nRnJhZ21lbnQgJiYgcGFyc2VySW5zZXJ0ZWQ7Ci0gICAgUmVmUHRyPEhUTUxTY3JpcHRF
bGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIGN1
cnJlbnROb2RlKCktPmRvY3VtZW50KCksIHBhcnNlckluc2VydGVkLCBhbHJlYWR5U3RhcnRlZCk7
CisgICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1l
bnQ6OmNyZWF0ZShzY3JpcHRUYWcsIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCBwYXJz
ZXJJbnNlcnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOwogICAgIGlmIChtX2ZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbiAhPSBEaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQpCiAgICAgICAgIGVsZW1lbnQt
PnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24pOwogICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIGVsZW1lbnQp
OwpAQCAtMzUxLDYgKzM1NywxMSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRU
ZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogICAgIGlmIChz
aG91bGRGb3N0ZXJQYXJlbnQoKSkKICAgICAgICAgZmluZEZvc3RlclNpdGUodGFzayk7CiAKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodGFzay5wYXJlbnQtPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNrLnBhcmVudCA9IHRvSFRNTFRlbXBsYXRlRWxl
bWVudCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRlbnQoKTsKKyNlbmRpZgorCiAgICAgLy8gU3Ry
aW5ncyBjb21wb3NlZCBlbnRpcmVseSBvZiB3aGl0ZXNwYWNlIGFyZSBsaWtlbHkgdG8gYmUgcmVw
ZWF0ZWQuCiAgICAgLy8gVHVybiB0aGVtIGludG8gQXRvbWljU3RyaW5nIHNvIHdlIHNoYXJlIGEg
c2luZ2xlIHN0cmluZyBmb3IgZWFjaC4KICAgICBib29sIHNob3VsZFVzZUF0b21pY1N0cmluZyA9
IHdoaXRlc3BhY2VNb2RlID09IEFsbFdoaXRlc3BhY2UKQEAgLTM4NywxOCArMzk4LDI3IEBAIHZv
aWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hh
cmFjdGVycywgV2hpdGVzcGFjZU1vCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpjcmVhdGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZXNwYWNlVVJJKQogewogICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxs
QXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFtZXNwYWNlVVJJKTsKLSAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFnTmFt
ZSwgdHJ1ZSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBvd25lckRvY3VtZW50Rm9y
Q3VycmVudE5vZGUoKS0+Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCB0cnVlKTsKICAgICBlbGVtZW50
LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKK2lu
bGluZSBEb2N1bWVudCogSFRNTENvbnN0cnVjdGlvblNpdGU6Om93bmVyRG9jdW1lbnRGb3JDdXJy
ZW50Tm9kZSgpCit7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKGN1cnJl
bnROb2RlKCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICByZXR1cm4gdG9IVE1M
VGVtcGxhdGVFbGVtZW50KGN1cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7
CisjZW5kaWYKKyAgICByZXR1cm4gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQoKTsKK30KKwogUGFz
c1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQo
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVs
bEF0b20sIHRva2VuLT5uYW1lKCksIHhodG1sTmFtZXNwYWNlVVJJKTsKICAgICAvLyBGSVhNRTog
VGhpcyBjYW4ndCB1c2UgSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVz
ZSB3ZQogICAgIC8vIGhhdmUgdG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBz
aG91bGQgcmV3b3JrIGZvcm0gYXNzb2NpYXRpb24KICAgICAvLyB0byBvY2N1ciBhZnRlciBjb25z
dHJ1Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxF
bGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0
YWdOYW1lLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRydWUpOworICAgIFJl
ZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxl
bWVudCh0YWdOYW1lLCBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwgZm9ybSgpLCB0cnVl
KTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCks
IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNI
VE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBAIC00NjIsNiAr
NDgyLDE1IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRh
Z3MoKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZShIVE1MQ29u
c3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
CisgICAgLy8gV2hlbiBhIG5vZGUgaXMgdG8gYmUgZm9zdGVyIHBhcmVudGVkLCB0aGUgbGFzdCB0
ZW1wbGF0ZSBlbGVtZW50IHdpdGggbm8gdGFibGUgZWxlbWVudCBpcyBiZWxvdyBpdCBpbiB0aGUg
c3RhY2sgb2Ygb3BlbiBlbGVtZW50cyBpcyB0aGUgZm9zdGVyIHBhcmVudCBlbGVtZW50IChOT1Qg
dGhlIHRlbXBsYXRlJ3MgcGFyZW50ISkKKyAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVj
b3JkKiBsYXN0VGVtcGxhdGVFbGVtZW50ID0gbV9vcGVuRWxlbWVudHMudG9wbW9zdCh0ZW1wbGF0
ZVRhZy5sb2NhbE5hbWUoKSk7CisgICAgaWYgKGxhc3RUZW1wbGF0ZUVsZW1lbnQgJiYgIW1fb3Bl
bkVsZW1lbnRzLmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKKyAgICAgICAgdGFzay5wYXJlbnQg
PSBsYXN0VGVtcGxhdGVFbGVtZW50LT5lbGVtZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQqIGxhc3RUYWJs
ZUVsZW1lbnRSZWNvcmQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRhYmxlVGFnLmxvY2FsTmFt
ZSgpKTsKICAgICBpZiAobGFzdFRhYmxlRWxlbWVudFJlY29yZCkgewogICAgICAgICBFbGVtZW50
KiBsYXN0VGFibGVFbGVtZW50ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+ZWxlbWVudCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgK
aW5kZXggNjA1NzJiZGQ4NTYyNzQ0NWNiZDg2NWE5Njc5ZDJmZWJhNWY2YThkYy4uZGYzMjU5MGE3
OTM3MTdiZTdhOTFkYTc2YjkxNWM0YTkxNTViNTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCkBAIC0xMTQsOSArMTE0LDEwIEBA
IHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb3BlbkVsZW1lbnRzLnRvcE5vZGUoKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIGN1cnJlbnRT
dGFja0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BTdGFja0l0ZW0oKTsg
fQogICAgIEhUTUxTdGFja0l0ZW0qIG9uZUJlbG93VG9wKCkgY29uc3QgeyByZXR1cm4gbV9vcGVu
RWxlbWVudHMub25lQmVsb3dUb3AoKTsgfQotCisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnRG
b3JDdXJyZW50Tm9kZSgpOwogICAgIEhUTUxFbGVtZW50U3RhY2sqIG9wZW5FbGVtZW50cygpIGNv
bnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsgfQogICAgIEhUTUxGb3JtYXR0aW5nRWxlbWVu
dExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX2FjdGl2
ZUZvcm1hdHRpbmdFbGVtZW50czsgfQorICAgIGJvb2wgY3VycmVudElzUm9vdE5vZGUoKSB7IHJl
dHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCkgPT0gbV9vcGVuRWxlbWVudHMucm9vdE5vZGUo
KTsgfQogCiAgICAgRWxlbWVudCogaGVhZCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhZC0+ZWxlbWVu
dCgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogaGVhZFN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0dXJu
IG1faGVhZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTEVsZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmNwcAppbmRleCA2YzIyMGM5NzM5YTY0MDIwZWQwZjI3Y2MzMjAxYjJjNGUwMTYx
NTc4Li5iODA0Njc3Yzk4Yjc2NTU4OGZhMGVmMGM5YTE2ZjQ0MTJiNDU3NDhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcApAQCAtMzgsMTQg
KzM4LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAotc3RhdGljIGlubGluZSBib29sIGlzUm9vdE5vZGUoSFRNTFN0YWNrSXRlbSogaXRlbSkK
KworbmFtZXNwYWNlIHsKKworaW5saW5lIGJvb2wgaXNSb290Tm9kZShIVE1MU3RhY2tJdGVtKiBp
dGVtKQogewogICAgIHJldHVybiBpdGVtLT5pc0RvY3VtZW50RnJhZ21lbnROb2RlKCkKICAgICAg
ICAgfHwgaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKTsKIH0KIAotbmFtZXNwYWNlIHsKLQogaW5s
aW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVy
biBpdGVtLT5oYXNUYWdOYW1lKGFwcGxldFRhZykKQEAgLTY0LDYgKzY1LDkgQEAgaW5saW5lIGJv
b2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogICAgICAgICB8fCBpdGVtLT5o
YXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQogICAgICAgICB8fCBpdGVtLT5o
YXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQogICAgICAgICB8fCBpdGVtLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjp0aXRsZVRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAg
ICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBp
c1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC03Nyw2ICs4MSw5IEBAIGlubGluZSBib29sIGlzTGlz
dEl0ZW1TY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogaW5saW5lIGJvb2wgaXNUYWJs
ZVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0dXJuIGl0ZW0tPmhh
c1RhZ05hbWUodGFibGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAg
IHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAgICAgICAgfHwgaXNS
b290Tm9kZShpdGVtKTsKIH0KIApAQCAtODUsMTIgKzkyLDE4IEBAIGlubGluZSBib29sIGlzVGFi
bGVCb2R5U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKICAgICByZXR1cm4gaXRlbS0+
aGFzVGFnTmFtZSh0Ym9keVRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0Zm9vdFRh
ZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0aGVhZFRhZykKKyNpZiBFTkFCTEUoVEVN
UExBVEVfRUxFTUVOVCkKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykK
KyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCiBpbmxpbmUgYm9vbCBp
c1RhYmxlUm93U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4g
aXRlbS0+aGFzVGFnTmFtZSh0clRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAg
ICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8
fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC01MjcsNiArNTQwLDEzIEBAIGJvb2wgSFRNTEVs
ZW1lbnRTdGFjazo6aW5TZWxlY3RTY29wZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKSBj
b25zdAogICAgIHJldHVybiBpblNlbGVjdFNjb3BlKHRhZ05hbWUubG9jYWxOYW1lKCkpOwogfQog
CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCitib29sIEhUTUxFbGVtZW50U3RhY2s6Omhh
c1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdAoreworICAgIHJldHVybiBpblNjb3BlQ29tbW9u
PGlzUm9vdE5vZGU+KG1fdG9wLmdldCgpLCB0ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7Cit9Cisj
ZW5kaWYKKwogRWxlbWVudCogSFRNTEVsZW1lbnRTdGFjazo6aHRtbEVsZW1lbnQoKSBjb25zdAog
ewogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxFbGVtZW50U3RhY2suaAppbmRleCA4NzNjYmRlYjk1YjhlZGEwNmIzYmU4MGJkOTVjYTdk
MjM4OTExYmEzLi4yYzBkYjEzNGEwZDI1NTM5NzZmMGRmOWFlZWYzYTBkYmQ4NjBjOWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCkBAIC0xNTAs
NyArMTUwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNPbmx5T25lRWxlbWVudCgpIGNvbnN0
OwogICAgIGJvb2wgc2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgY29uc3Q7Ci0KKyNp
ZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBib29sIGhhc1RlbXBsYXRlSW5IVE1MU2Nv
cGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1lbnQqIGh0bWxFbGVtZW50KCkgY29uc3Q7CiAg
ICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVtZW50KiBib2R5RWxlbWVu
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAKaW5kZXggYzc4NTYyYjMzYzE5YmQyYzU3MWQ1OWJhNTVjNmEzZDA3ZTIyYzhkNy4uNjk3
NGM2NGJkNTE2ZmU5NzQyOGM1NGZjOWYyNWU4OThjYTc4YWUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVy
LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtMzYwLDcgKzM2MSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3
VG9rZW4pCiAgICAgLy8gc3luY2hyb25vdXNseSByZS1lbnRlcnMgdGhlIHBhcnNlci4gV2UgZG9u
J3QgY2xlYXIgdGhlIHRva2VuIGltbWVkYXRlbHkKICAgICAvLyBmb3IgQ2hhcmFjdGVyIHRva2Vu
cyBiZWNhdXNlIHRoZSBBdG9taWNIVE1MVG9rZW4gYXZvaWRzIGNvcHlpbmcgdGhlCiAgICAgLy8g
Y2hhcmFjdGVycyBieSBrZWVwaW5nIGEgcG9pbnRlciB0byB0aGUgdW5kZXJseWluZyBidWZmZXIg
aW4gdGhlCi0gICAgLy8gSFRNTFRva2VuLiBGb3J0dWFudGVseSwgQ2hhcmFjdGVyIHRva2VucyBj
YW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKKyAgICAvLyBIVE1MVG9rZW4uIEZvcnR1bmF0ZWx5
LCBDaGFyYWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRlcgogICAgIC8vIHRo
ZSBwYXJzZXIuCiAgICAgLy8KICAgICAvLyBGSVhNRTogU3RvcCBjbGVhcmluZyB0aGUgcmF3VG9r
ZW4gb25jZSB3ZSBzdGFydCBydW5uaW5nIHRoZSBwYXJzZXIgb2ZmCkBAIC02NzIsOCArNjczLDEy
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gYm9keVRh
ZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgaWYgKCFtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIHx8IG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBib29sIGZyYWdtZW50T3JUZW1wbGF0ZUNh
c2UgPSAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5zZWNvbmRFbGVtZW50SXNIVE1MQm9keUVsZW1l
bnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlPbmVFbGVtZW50KCk7CisjaWYg
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGZyYWdtZW50T3JUZW1wbGF0ZUNhc2Ug
PSBmcmFnbWVudE9yVGVtcGxhdGVDYXNlIHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVt
cGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisgICAgICAgIGlmIChmcmFnbWVudE9yVGVtcGxh
dGVDYXNlKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRl
Q29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV9m
cmFtZXNldE9rID0gZmFsc2U7CkBAIC02ODMsNyArNjg4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
IGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7CiAgICAgICAgIHBhcnNlRXJyb3Io
dG9rZW4pOwogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+c2Vjb25kRWxlbWVu
dElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNPbmx5T25l
RWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFtX2ZyYW1lc2V0
T2spCkBAIC05NDQsMTMgKzk0OSw0MyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAg
IHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50
cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiB9CiAKKyNpZiBFTkFC
TEUoVEVNUExBVEVfRUxFTUVOVCkKKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1w
bGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgbV90cmVlLmFjdGl2
ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5hcHBlbmRNYXJrZXIoKTsKKyAgICBtX3RyZWUuaW5zZXJ0
SFRNTEVsZW1lbnQodG9rZW4pOworICAgIHNldEluc2VydGlvbk1vZGUoVGVtcGxhdGVDb250ZW50
c01vZGUpOworfQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlRW5kVGFn
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRz
KCktPmluU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV90cmVlLmdlbmVyYXRlSW1wbGllZEVuZFRh
Z3MoKTsKKyAgICBpZiAoIW1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc0xvY2FsTmFtZSh0
b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi0+bmFtZSgpKTsKKyAgICBtX3RyZWUu
YWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgcmVz
ZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworfQorI2VuZGlmCisKIGJvb2wgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkKIHsKLSAg
ICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290
Tm9kZSgpKSB7CisgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpKSB7CiAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVy
cm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTIsNyArMTA0Nyw3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiog
dG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghcHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJs
ZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2Vu
KTsKQEAgLTEwMzksNiArMTA3NCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgogICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgIEhUTUxDb25z
dHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVkaXJlY3RlcihtX3Ry
ZWUpOwogICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xMTUzLDYgKzEx
OTQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgICAgICAgICAgbV90cmVlLmluc2VydFNlbGZDbG9zaW5nSFRNTEVs
ZW1lbnQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRl
VGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXByb2Nlc3ND
b2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Nyw3ICsxMjI0
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+
bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBpZiAoIW1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFtZSgpKSAmJiAhbV90
cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9jYWxOYW1lKCkpICYm
ICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRhZy5sb2NhbE5hbWUo
KSkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkp
OwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KQEAgLTEyMDIsNyArMTI0OSw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAg
ICAgIHx8IGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUoKSkKICAgICAgICAg
ICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkgewogICAgICAgICAg
ICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICAgICAgQVNT
RVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IElu
VGFibGVCb2R5TW9kZSk7CkBAIC0xMjgwLDYgKzEzMjcsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAg
cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9rZW4t
Pm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRlU3Rh
cnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJG
cmFtZXNldE1vZGU6CkBAIC0xMzU5LDYgKzE0MTIsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgQVNT
RVJUX1VOVVNFRChkaWRQcm9jZXNzLCBkaWRQcm9jZXNzKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9r
ZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRl
U3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1
bHRGb3JJblRhYmxlVGV4dCgpOwpAQCAtMTM2NywxMiArMTQyNiw1MSBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgY2Fz
ZSBUZXh0TW9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBsaW5rVGFnCisg
ICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHNjcmlwdFRhZworICAgICAgICAgICAgfHwg
dG9rZW4tPm5hbWUoKSA9PSBzdHlsZVRhZworICAgICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9
PSBtZXRhVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRva2VuLT5u
YW1lKCkgPT0gZnJhbWVUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVz
ZXRNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBjb2xUYWcpCisgICAg
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKKyAgICAgICAgZWxz
ZSBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxl
Qm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluVGFibGVNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRh
ZykKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAg
ICAgZWxzZSBpZiAoaXNUYWJsZUNlbGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQorICAgICAg
ICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworCisgICAgICAgIHByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRp
ZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAg
cGFyc2VFcnJvcih0b2tlbik7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYg
KG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpKSB7CisgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCiAgICAgbV90cmVlLmluc2VydEhUTUxIdG1sU3RhcnRUYWdJbkJvZHko
dG9rZW4pOwogfQogCkBAIC0xNTQyLDggKzE2NDAsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAgICAgICAgbGFzdCA9IHRy
dWU7CiAgICAgICAgICAgICBpdGVtID0gSFRNTFN0YWNrSXRlbTo6Y3JlYXRlKG1fZnJhZ21lbnRD
b250ZXh0LmNvbnRleHRFbGVtZW50KCksIEhUTUxTdGFja0l0ZW06Okl0ZW1Gb3JDb250ZXh0RWxl
bWVudCk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAg
Ly8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9
MjAxMzAgKHNob3VsZCA8dGVtcGxhdGU+IGNsZWFyIHRoZSAiaW1wbGllZCBjb250ZXh0IGVsZW1l
bnQiLgorICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAg
ICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisjZW5k
aWYKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgewotICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGUoSW5TZWxlY3RNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+
aGFzVGFnTmFtZSh0ZFRhZykgfHwgaXRlbS0+aGFzVGFnTmFtZSh0aFRhZykpCkBAIC0xNTU1LDE5
ICsxNjU3LDIwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHBy
b3ByaWF0ZWx5KCkKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoY2FwdGlvblRhZykpCiAg
ICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkNhcHRpb25Nb2RlKTsKICAgICAg
ICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpKSB7Ci0gICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9u
TW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGl0ZW0tPmhh
c1RhZ05hbWUodGFibGVUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUo
SW5UYWJsZU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShoZWFkVGFnKSkgewot
ICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2lmIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKQorICAgICAgICAgICAgaWYgKCFtX2ZyYWdtZW50Q29udGV4dC5mcmFnbWVu
dCgpIHx8IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCkgIT0gaXRlbS0+bm9kZSgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluSGVhZE1vZGUpOwor
I2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShib2R5VGFnKSkKICAgICAg
ICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAgICAgICBpZiAo
aXRlbS0+aGFzVGFnTmFtZShmcmFtZXNldFRhZykpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
RnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSho
dG1sVGFnKSkgewpAQCAtMTU5OCw3ICsxNzAxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGlm
ICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlz
IHNsb3cuCiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUo
dGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVT
Y29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5U
YWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE2MjgsNyArMTczMSw3IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Sb3coQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsKICAgICAg
ICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
aXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAt
MTY4MSw3ICsxNzg0LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5DZWxsKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHx8IHRva2VuLT5uYW1lKCkg
PT0gdHJUYWcKICAgICAgICAgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkp
KSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9r
ZW4tPm5hbWUoKSkpIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAg
IEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGVtcGxhdGVUYWcpIHx8IGlzUGFyc2luZ0ZyYWdt
ZW50KCkpOworI2Vsc2UKICAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWco
dG9rZW4tPm5hbWUoKSkgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZW5kaWYKICAgICAgICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBA
IC0xODIxLDYgKzE5MjgsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdG
b3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFy
dFRhZyhiclRhZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRF
X0VMRU1FTlQpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgogICAgIHByb2Nlc3NBbnlPdGhlckVuZFRhZ0ZvckluQm9keSh0b2tlbik7CiB9CiAK
QEAgLTE4NDIsNyArMTk1NSw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2FwdGlv
bkVuZFRhZ0ZvckluQ2FwdGlvbigpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RyRW5k
VGFnRm9ySW5Sb3coKQogewogICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxl
U2NvcGUodHJUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFn
bWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KQEAgLTE4NTYsNyArMTk2OSw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rh
YmxlRW5kVGFnRm9ySW5UYWJsZSgpCiB7CiAgICAgaWYgKCFtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKLSAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdt
ZW50KCkpOworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVu
dHMoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvci4KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KQEAgLTE5MTMsNiArMjAyNiwxNSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAvLyBGYWxsIHRo
cm91Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9k
ZSgpID09IEluSGVhZE1vZGUpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBjYXNlIHNob3VsZCBi
ZSBicm9rZW4gb3V0IGludG8gcHJvY2Vzc0VuZFRhZ0ZvckluSGVhZCwKKyAgICAgICAgLy8gYmVj
YXVzZSBvdGhlciBlbmQgdGFnIGNhc2VzIG5vdyByZWZlciB0byBpdCAoInByb2Nlc3MgdGhlIHRv
a2VuIGZvciB1c2luZyB0aGUgcnVsZXMgb2YgdGhlICJpbiBoZWFkIiBpbnNlcnRpb24gbW9kZSIp
LgorICAgICAgICAvLyBidXQgYmVjYXVzZSB0aGUgbG9naWMgZmFsbHMgdGhyb3VnaCB0byBBZnRl
ckhlYWRNb2RlLCB0aGF0IGdldHMgYSBsaXR0bGUgbWVzc3kuCisjaWYgRU5BQkxFKFRFTVBMQVRF
X0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7Cisg
ICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVh
ZFRhZykgewogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BIVE1MSGVhZEVs
ZW1lbnQoKTsKICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJIZWFkTW9kZSk7CkBA
IC0xOTc3LDYgKzIwOTksMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWco
QXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAg
ICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKCFwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJ
bkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgp
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwNTIsNyArMjE4MCwxMiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIGNh
c2UgSW5GcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5G
cmFtZXNldE1vZGUpOwogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZXNldFRhZykg
ewotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAgICAgICAgYm9vbCBpZ25vcmVGcmFtZXNldEZv
ckZyYWdtZW50UGFyc2luZyAgPSBtX3RyZWUuY3VycmVudElzUm9vdE5vZGUoKTsKKyNpZiBFTkFC
TEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAgIGlnbm9yZUZyYW1lc2V0Rm9yRnJhZ21l
bnRQYXJzaW5nID0gaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcgfHwgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7CisjZW5kaWYKKyAgICAgICAg
ICAgIGlmIChpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZykgeworICAgICAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAg
ICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CkBAIC0yMDYxLDYgKzIxOTQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgICAgICBz
ZXRJbnNlcnRpb25Nb2RlKEFmdGVyRnJhbWVzZXRNb2RlKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAodG9r
ZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vzc1RlbXBsYXRl
RW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAtMjExOSwxMSArMjI1
OCwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9r
ZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAg
ICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4
dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwogICAgICAgICBwcm9jZXNz
RW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRz
TW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgLy8gRklYTUU6IGh0
dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NjYKKyAgICAg
ICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAgICAgICAgIEFTU0VS
VChtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSk7Cisg
ICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOworICAgICAgICAgICAgcmVz
ZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgIHBy
b2Nlc3NFbmRUYWcodG9rZW4pOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC0yMjI0LDggKzIzODQsMTQg
QEAgUmVwcm9jZXNzQnVmZmVyOgogICAgIH0KICAgICBjYXNlIEluQm9keU1vZGU6CiAgICAgY2Fz
ZSBJbkNhcHRpb25Nb2RlOgorICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01vZGU6CiAgICAgY2Fz
ZSBJbkNlbGxNb2RlOiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIEFT
U0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0g
SW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5D
YXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7CisjZW5kaWYKICAg
ICAgICAgcHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZmZXIpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC0yMzYwLDcgKzI1MjYsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBjYXNlIEluQ2Vs
bE1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgogICAgIGNhc2UgSW5Sb3dNb2RlOgorI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgp
ID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1vZGUgfHwgaW5zZXJ0
aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAg
ICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25N
b2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsKKyNlbmRpZgogICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOyAvLyBFbWl0IHBhcnNlIGVycm9yIGJhc2VkIG9uIHdoYXQgZWxlbWVudHMgYXJl
IHN0aWxsIG9wZW4uCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJCb2R5TW9kZToKQEAg
LTIzODYsNyArMjU1Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxl
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkNvbHVtbkdyb3VwTW9kZToKLSAgICAgICAgaWYg
KG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUo
KSkgeworICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkpIHsKICAgICAgICAg
ICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsgLy8g
RklYTUU6IFNob3VsZCB3ZSBicmVhayBoZXJlIGluc3RlYWQgb2YgcmV0dXJuaW5nPwogICAgICAg
ICB9CkBAIC0yNDA5LDYgKzI1ODAsMTYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NF
bmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9r
ZW4pOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRlbnRzTW9kZToKKyAg
ICAgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpKSB7CisgICAgICAgICAgICBBU1NF
UlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5wb3AoKTsKKyAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworICAg
ICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBBU1NFUlQobV90cmVlLmN1cnJlbnROb2RlKCkpOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+cG9wQWxsKCk7CkBAIC0yNTEyLDYgKzI2OTMsMTIgQEAgYm9vbCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAg
ICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcoc2NyaXB0VGFnKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFt
ZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRv
a2VuKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAgICAgaWYgKHRva2Vu
LT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCmluZGV4IDhmZjBmNThiMzQ1ZmZmM2U0NTViNWFmZmVmNjVlMTAyZjZkNWJmZmEuLjIx
M2U3ZTBiZTM2ZjM0NWQ4MzRhY2JlNzRmMmVlMWJlNjBjNjJiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC02Nyw2ICs2NywxMiBAQCBwdWJs
aWM6CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwogCiAgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVu
dCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQorI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJ
bkhUTUxTY29wZSgpOyB9CisgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250
ZW50cygpIGNvbnN0IHsgcmV0dXJuIGlzUGFyc2luZ0ZyYWdtZW50KCkgfHwgaXNQYXJzaW5nVGVt
cGxhdGVDb250ZW50cygpOyB9CisjZWxzZQorICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnRPclRl
bXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFnbWVudCgpOyB9Cisj
ZW5kaWYKIAogICAgIHZvaWQgZGV0YWNoKCk7CiAKQEAgLTk3LDYgKzEwMyw3IEBAIHByaXZhdGU6
CiAgICAgICAgIEluSGVhZE1vZGUsCiAgICAgICAgIEluSGVhZE5vc2NyaXB0TW9kZSwKICAgICAg
ICAgQWZ0ZXJIZWFkTW9kZSwKKyAgICAgICAgVGVtcGxhdGVDb250ZW50c01vZGUsCiAgICAgICAg
IEluQm9keU1vZGUsCiAgICAgICAgIFRleHRNb2RlLAogICAgICAgICBJblRhYmxlTW9kZSwKQEAg
LTE5MCw2ICsxOTcsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVzZXRJbnNlcnRpb25Nb2Rl
QXBwcm9wcmlhdGVseSgpOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgdm9p
ZCBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qKTsKKyAgICB2b2lkIHBy
b2Nlc3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1MVG9rZW4qKTsKKyNlbmRpZgorCiAgICAgY2xh
c3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEZyYWdtZW50UGFyc2luZ0NvbnRleHQpOwogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAppbmRleCA0YTNhNWY0ZGVmMDdkZjI4NmJlNDE2YWEyOWI1MDI4ZDFkOWRmNTQ4Li45
MThmNDgwNzUwMDdiYTcwNDNhOTkyMjg3MWYxZGE1MmQwNDJmZjhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCkBAIC00NzIsNiArNDcyLDcgQEAKICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxl
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZUVsZW1lbnQ7CiAgICAgYXR0cmlidXRlIEhUTUxU
YWJsZVJvd0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVSb3dFbGVtZW50OwogICAgIGF0dHJp
YnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50OworICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VEVNUExBVEVfRUxFTUVOVF0gSFRN
TFRlbXBsYXRlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7CiAgICAgYXR0
cmlidXRlIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGV4dEFyZWFFbGVtZW50
OwogICAgIGF0dHJpYnV0ZSBIVE1MVGl0bGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRpdGxlRWxl
bWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxVTGlz
dEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggNjIxZDRjZTk1
ZjcxNmNkNTJiNmNkNTliYTkwMTc0YWNkZjYxNDdlYy4uMjBmYjhkMTE3ZjhjNTNmMDk4ZmM2Y2I1
NWQ0M2RmZmJkNDMwMGEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAt
MTA5LDcgKzEwOSw3IEBACiAgICAgICAnRU5BQkxFX1NUWUxFX1NDT1BFRD0xJywKICAgICAgICdF
TkFCTEVfU1ZHPTwoZW5hYmxlX3N2ZyknLAogICAgICAgJ0VOQUJMRV9TVkdfRk9OVFM9PChlbmFi
bGVfc3ZnKScsCi0gICAgICAnRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQ9MCcsCisgICAgICAnRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQ9MScsCiAgICAgICAnRU5BQkxFX1RFWFRfQVVUT1NJWklORz0x
JywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKICAgICAgICdFTkFCTEVfVE9V
Q0hfRVZFTlRTPTwoZW5hYmxlX3RvdWNoX2V2ZW50cyknLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IDY4ZDY3M2M2ZjQ4Mzg3NzU4ZDIwZmViMThjODVlNmNiMDFh
NWUzYmIuLjc3MzBjYmIzMDA2NGZkYzEwMGEyYTgxZWNlZjVlNWM3YWNjMDVlZDYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTM5NSw3ICszOTUsNyBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVs
dCA9PiBpc1dpbkNFKCksIHZhbHVlID0+IFwkc3lzdGVtTWFsbG9jU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gInRlbXBsYXRlLXRhZyIsIGRlc2MgPT4gIlRvZ2dsZSBUZW1wbGF0ZXMgVGFn
IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCIsIGRl
ZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQoKSwgdmFsdWUgPT4gXCR0ZW1wbGF0ZVRhZ1N1cHBv
cnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQiLCBkZWZhdWx0
ID0+IDAsIHZhbHVlID0+IFwkdGVtcGxhdGVUYWdTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAidGV4dC1hdXRvc2l6aW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFRleHQgQXV0b3NpemluZyBzdXBw
b3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RFWFRfQVVUT1NJWklORyIsIGRlZmF1bHQg
PT4gMCwgdmFsdWUgPT4gXCR0ZXh0QXV0b3NpemluZ1N1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNTI4OGRk
Yzc4NzliODcxYmRmOGM0YmZmZjEzODk2NjNmNzEzYzRiLi41MWRlMGQwYjIyNWM3ODQzNDhhMzBh
N2YwNWVkMjRhNGUxZDhkOTVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTEtMTMgIFJh
ZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1l
bnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Ns
b25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHRtbDVs
aWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVu
LXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHRtbDVsaWIvcnVuLXRl
bXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5q
czoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5fZ2V0U2VsZWN0aW9u
RnJvbU5vZGUpOgorCiAyMDEyLTEyLTAzICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25l
Tm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L2Nsb25lTm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJiNjFjZDhmNTYyZjJiYjA2
ZmEwN2ExNTc0YTVhZGQzNjFlMzU5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgbm90IGNsb25lZCB3aGVu
IHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoIGlzIDEKK1BB
U1MgY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCBpcyAwCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY2xvbmVOb2RlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkYTVmNzVlY2ZlYTAzZGI5OTgxYjlhZWY4NjVlYjRjZTRlMTMxNTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Ns
b25lTm9kZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRlbXBsYXRl
IGlkPSJ0ZW1wbGF0ZSI+Q29udGVudHM8L3RlbXBsYXRlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlw
dGlvbignVGVzdCB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBub3QgY2xvbmVkIHdoZW4gdGhl
IHRlbXBsYXRlIGVsZW1lbnQgaXMgY2xvbmVkJyk7CisKK2lmICghd2luZG93LkhUTUxUZW1wbGF0
ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKScpOworCit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXMubGVu
Z3RoJywgJzEnKTsKK3ZhciBjbG9uZSA9IHRlbXBsYXRlLmNsb25lTm9kZSh0cnVlKTsKK3Nob3Vs
ZEJlKCdjbG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoJywgJzAnKTsKKworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lu
ZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZmMTE1
MTVhYTg2OWU1ZGZhODUxMzhhYTFhZmNkMmRlYzkzN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2h0dHA6Ly9iYXouY29tL2JhdC5qcGcgLSB3aWxsU2Vu
ZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL2Jhei5jb20vYmF0LmpwZywgbWFpbiBk
b2N1bWVudCBVUkwgaW5lcnRDb250ZW50cy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0
UmVzcG9uc2UgKG51bGwpCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL2Jh
ei5jb20vYmF0LmpwZworaHR0cDovL2Jhei5jb20vYmF0LmpwZyAtIGRpZEZhaWxMb2FkaW5nV2l0
aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWls
aW5nIFVSTCAiKG51bGwpIj4KK1RoZSB0ZXN0IGFzc2VydHMgdGhhdCBlbGVtZW50cyB3aXRoaW4g
dGVtcGxhdGUgY29udGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVzb3VyY2VzIGRvIG5vdCBmZXRj
aCwgc2NyaXB0IGRvZXMgbm90IHJ1bi4KKworcGFzcyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jM2MwNWVjYjkwNzk3NWQ1MDE0NDc5NTBjM2NjZTc1YTFjZTk2ZDdkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bmVydENvbnRlbnRzLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciB0ZXN0VmFsID0gMTsKKword2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzKCk7CisgICAgfQorCisgICAgaWYgKHRlc3RWYWwgIT0gMSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgdmFyIHRlbXBsYXRlQ29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZW1wbGF0ZScpLmNvbnRlbnQ7CisgICAgdmFyIGltZyA9IHRlbXBsYXRlQ29udGVudC5jaGls
ZE5vZGVzWzFdOworICAgIGltZy5zcmMgPSAiaHR0cDovL2Jhei5jb20vYmF0LmpwZyI7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZUNvbnRlbnQpOworCisgICAgaWYgKHRl
c3RWYWwgIT0gMikKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ291dHB1dCcpLmlubmVyVGV4dCA9ICdwYXNzISc7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IGVsZW1lbnRzIHdpdGhpbiB0ZW1wbGF0
ZSBjb250ZW50cyBhcmUgImluZXJ0IiwgZS5nLiByZXNvdXJjZXMgZG8gbm90IGZldGNoLCBzY3Jp
cHQgZG9lcyBub3QgcnVuLjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxzY3JpcHQ+d2lu
ZG93LnRlc3RWYWwgPSAyOzwvc2NyaXB0PjxpbWcgc3JjPSJodHRwOi8vZm9vLmNvbS9iYXIuanBn
Ij4KKzwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVmOTcyNzA4N2EzZTY3MTIzMDEyZjg2YmU3ZTRiZWM4MjMyNTg2NmQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50L2lubmVySFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGUgdGVzdCBhc3Nl
cnRzIHRoYXQgdGVtcGxhdGUgY29udGVudHMgYXJlIHNlcmlhbGl6ZWQgd2l0aCBpbm5lckhUTUwg
YW5kIGl0cyBjaGlsZHJlbiBhcmUgaWdub3JlZC4KKworPGRpdj5Db250ZW50cyAxCis8dGVtcGxh
dGU+Q29udGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5uZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM3NjJjYTNiZWYxZDNkODI3OWZhYjE5MTc4OTkyYzJjNWY2MWMzYzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lubmVySFRNTC5o
dG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZW1w
bGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScpOworICAgIHRlbXBsYXRl
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0g
J3Nob3VsZCBub3Qgc2VyaWFsaXplJzsKKyAgICB2YXIgaW5uZXJUZW1wbGF0ZSA9IHRlbXBsYXRl
LmNvbnRlbnQuZmlyc3RDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBpbm5lclRlbXBsYXRl
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSkuaW5uZXJUZXh0ID0g
J3Nob3VsZCBub3Qgc2VyaWFsaXplIGVpdGhlcic7CisKKyAgICB0ZW1wbGF0ZS5pbm5lckhUTUwg
PSB0ZW1wbGF0ZS5pbm5lckhUTUw7CisgICAgaWYgKHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3Ro
ICE9IDEpIC8vIFRoZSBvbmx5IGNoaWxkIHNob3VsZCBiZSB0aGUgc3BhbiB0aGF0IHdhcyBhZGRl
ZCBhYm92ZS4KKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J291dHB1dCcpLmlubmVyVGV4dCA9IHRlbXBsYXRlLmlubmVySFRNTDsKKyAgICB2YXIgdGVtcGxh
dGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZTIu
aW5uZXJIVE1MID0gJzx0ZW1wbGF0ZT48L3RlbXBsYXRlPic7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFy
ZSBzZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQu
PC9wPgorPHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PGRpdj5Db250ZW50cyAxCisgIDx0ZW1wbGF0
ZT5Db250ZW50cyAyPC90ZW1wbGF0ZT4KKzwvZGl2PjwvdGVtcGxhdGU+Cis8ZGl2IGlkPSJvdXRw
dXQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9v
d25lckRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1w
bGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcwMmFl
YWVlMzkwZjgxNmU2YTUxZTljYjJlYzIxNDJjMTc2N2NlNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRl
bnQgb3duZXJEb2N1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZW1wbGF0ZS5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93
bmVyRG9jdW1lbnQgaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQgaXMgdHJ1ZQorUEFTUyBkb2N1bWVu
dCBpcyBub3QgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZS5jb250
ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50CitQQVNTIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50CitQQVNTIGlubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50IGlz
IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQKK1BBU1MgaW5uZXJUZW1wbGF0ZS5vd25lckRv
Y3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIHRydWUKK1BBU1MgdGVtcGxhdGUyLm93
bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1
bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNTIGRmLm93bmVyRG9jdW1l
bnQgaXMgZG9jdW1lbnQKK1BBU1Mgc3Bhbi5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNT
IGRmLm93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBz
cGFuLm93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0
ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOyB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFT
UyB0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4K
K1BBU1MgdGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BB
U1MgdGVtcGxhdGUzLm93bmVyRG9jdW1lbnQgaXMgZG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUzLmNv
bnRlbnQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQQVNT
IHRlbXBsYXRlMy5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNv
bnRlbnRPd25lckRvY3VtZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDUxOTJiMWZi
NDliY2I3NjM2N2JhNWQ1MTM5Y2Y1NDg2NWJjZGNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0bWwKQEAg
LTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlIj48
c3Bhbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBp
ZD0idGVtcGxhdGUyIj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKzx0ZW1wbGF0ZSBpZD0idGVt
cGxhdGUzIj48c3ZnPjwvc3ZnPjwvdGVtcGxhdGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9u
KCdUZXN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50Jyk7CisKK2lm
ICghd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0
IHJlcXVpcmVzIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKScpOworCit2YXIgdGVtcGxhdGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5v
d25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRv
Y3VtZW50ID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50Oworc2hvdWxkQmVUcnVlKCd0
ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7Citz
aG91bGROb3RCZSgnZG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOwor
c2hvdWxkQmUoJ3RlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25lckRvY3VtZW50JywgJ3Rl
bXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKKwordmFyIGlubmVyVGVtcGxhdGUgPSB0ZW1w
bGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKK3Nob3VsZEJlKCdpbm5lclRlbXBs
YXRlLm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hv
dWxkQmUoJ2lubmVyVGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlVHJ1ZSgnaW5uZXJUZW1wbGF0ZS5vd25lckRv
Y3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKK3ZhciB0ZW1wbGF0ZTIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUyJyk7CitzaG91bGRCZSgndGVtcGxhdGUyLm93
bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZTIuY29udGVudC5v
d25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKKwordmFyIGRm
ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwordmFyIHNwYW4gPSBkZi5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworc2hvdWxkQmUoJ2RmLm93
bmVyRG9jdW1lbnQnLCAnZG9jdW1lbnQnKTsKK3Nob3VsZEJlKCdzcGFuLm93bmVyRG9jdW1lbnQn
LCAnZG9jdW1lbnQnKTsKKwordGVtcGxhdGUuY29udGVudCA9IGRmOworc2hvdWxkQmUoJ2RmLm93
bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUo
J3NwYW4ub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisK
K3Nob3VsZFRocm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOycpOworc2hvdWxkVGhyb3coJ3RlbXBsYXRlLmNvbnRlbnQgPSBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgidGV4dCIpOycpOworaWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dSb290KSB7Cisg
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHNob3VsZFRo
cm93KCd0ZW1wbGF0ZS5jb250ZW50ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KScpOworfQor
Cit2YXIgdGVtcGxhdGUzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicpOwor
c2hvdWxkQmUoJ3RlbXBsYXRlMy5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91bGRC
ZSgndGVtcGxhdGUzLmNvbnRlbnQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25l
ckRvY3VtZW50Jyk7CitzaG91bGRCZSgndGVtcGxhdGUzLmNvbnRlbnQuZmlyc3RDaGlsZC5vd25l
ckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQnKTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmY2OWJmZmQ5MWQxZWY5N2Y2MWRmNmVlM2E2OTcwMDljY2EwNzViNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJE
b2N1bWVudFhIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IEhUTUxUZW1w
bGF0ZUVsZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50CisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50IGluc3RhbmNlb2YgSFRN
TERvY3VtZW50IGlzIGZhbHNlCitQQVNTIGRvY3VtZW50IGlzIG5vdCB0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50CitQQVNTIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgaW5zdGFuY2Vv
ZiBIVE1MRG9jdW1lbnQgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC54aHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudFhIVE1MLnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI4NTgzOGE2OTg5MTdiNWM3ZDEwM2I2OTg0Y2VlNzYwNjIzOTU3MmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnRYSFRNTC54aHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
ZGVzY3JpcHRpb24oJ1Rlc3QgSFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1l
bnQgaW4gWEhUTUwgRG9jdW1lbnQnKTsKKworaWYgKCF3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVu
dCkKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgcmVxdWlyZXMgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpJyk7CisKK3Nob3VsZEJlRmFsc2UoJ2RvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3Vt
ZW50Jyk7Cit2YXIgdGVtcGxhdGU0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUn
KTsKK3ZhciB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50ID0gdGVtcGxhdGU0LmNvbnRlbnQu
b3duZXJEb2N1bWVudDsKK3Nob3VsZE5vdEJlKCdkb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50Jyk7CitzaG91bGRCZUZhbHNlKCd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3Vt
ZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdCBi
L0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWJhZTgxZWZkZGZkYzRkOGY4Njc3MWM2MmM0YTEzOTcyNDAyYmE4YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQKQEAgLTAsMCAr
MSw4NDMgQEAKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCisK
KyNkYXRhCis8dGVtcGxhdGU+SGVsbG88L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8
IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxh
dGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8aHRtbD48dGVtcGxhdGU+SGVsbG88
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAiSGVs
bG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48dGVtcGxhdGU+PGRpdj48L2Rpdj48L3Rl
bXBsYXRlPjwvaGVhZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAg
PGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+PC90
ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgIDxzcGFuPgor
fCAgICAgICA8Yj4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjwvZGl2PkhlbGxvCisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2
PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2
PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFi
bGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKwor
I2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQor
PHRhYmxlPjxkaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICA8dGFibGU+
CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxk
aXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT4gICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rh
YmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRhYmxlPgorfCAgICAgICAiICAgIgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0
ZT48L3RlbXBsYXRlPjwvdGJvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAg
PGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAg
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEK
Kzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNk
b2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4K
K3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0
ZT48L3Rib2R5PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0
YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wg
ICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48
L3Rmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGZvb3Q+Cit8ICAgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1w
bGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRl
PgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxh
dGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAg
ICAgPG9wdGlvbj4KKworI2RhdGEKKzx0ZW1wbGF0ZT48b3B0aW9uPjwvb3B0aW9uPjwvc2VsZWN0
PjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgIDxib2R5Pgor
CisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48b3B0aW9uPjwvc2VsZWN0Pgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjx0ZW1wbGF0
ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wg
ICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2Rh
dGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwv
b3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzxzZWxl
Y3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAg
ICAgIDxvcHRpb24+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1w
bGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+
Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVt
cGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRoZWFkPgorCisjZGF0YQorPGJvZHk+
PHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90cj48ZGl2PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0
ZW1wbGF0ZT48dGhlYWQ+PC90ZW1wbGF0ZT48L3RoZWFkPjwvdGFibGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICAgIDx0aGVhZD4KKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RlbXBs
YXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRy
PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAg
ICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRyPjx0ZW1wbGF0ZT48dGQ+PC90
ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgor
fCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0
cj48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT48L3RyPjwvdGVtcGxhdGU+PC90YWJsZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8
dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorCisj
ZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0ZD48
L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAor
fCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2xn
cm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAg
ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgICAgICA8Y29sPgorCisjZGF0YQorPGZyYW1lc2V0Pjx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFt
ZT48L3RlbXBsYXRlPjwvZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+CisKKyNkYXRhCis8dGVtcGxhdGU+PGZy
YW1lPjwvZnJhbWU+PC9mcmFtZXNldD48ZnJhbWU+PC9mcmFtZT48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgICAgICAgPGZy
YW1lPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxkaXY+PGZyYW1lc2V0PjxzcGFu
Pjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAg
ICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+PGZy
YW1lc2V0PjxzcGFuPjwvc3Bhbj48L2Rpdj48c3Bhbj48L3NwYW4+PC90ZW1wbGF0ZT48L2JvZHk+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxk
aXY+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KKworI2RhdGEKKzxib2R5
Pjx0ZW1wbGF0ZT48c2NyaXB0PnZhciBpID0gMTs8L3NjcmlwdD48dGQ+PC90ZD48L3RlbXBsYXRl
PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5Pgor
fCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8
c2NyaXB0PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAgICAgICAgPHRkPgorCisjZGF0
YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRkPjwvdGQ+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJy
b3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wg
ICAgICAgICA8dGQ+CisKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJvZHk+
PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0
ZW1wbGF0ZT48dGQ+PC90ZD48Y2FwdGlvbj48L2NhcHRpb24+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4K
KyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRk
PgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y29s
Z3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisK
KyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90YWJsZT48dGQ+PC90ZD48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3Ry
Pjx0Ym9keT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQor
PGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAg
ICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4K
K3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PC90YWJs
ZT48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGJvZHk+PC90Ym9k
eT48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgor
fCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
K3wgICAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHRib2R5
PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0aGVhZD48L3RoZWFkPjwvdGFibGU+PHRib2R5
PjwvdGJvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+
Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGJvZHk+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48dHI+PC90cj48L2Rpdj48L3RlbXBsYXRlPgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2Pgor
CisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxlbT5IZWxsbzwvZW0+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGVtPgorfCAg
ICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50LS0+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgPCEtLSBjb21tZW50IC0tPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzdHls
ZT48L3N0eWxlPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxzdHlsZT4KK3wgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PG1ldGE+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPG1ldGE+Cit8ICAg
ICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAg
ICAgIDxsaW5rPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVt
cGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBs
YXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8
ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAg
ICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+
PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8Ym9keSBhPWI+
PHRlbXBsYXRlPjxkaXY+PC9kaXY+PGJvZHkgYz1kPjxkaXY+PC9kaXY+PC9ib2R5PjwvdGVtcGxh
dGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGh0
bWwgYT1iPjx0ZW1wbGF0ZT48ZGl2PjxodG1sIGI9Yz48c3Bhbj48L3RlbXBsYXRlPgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAg
ICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+
PGNvbD48L2NvbD48aHRtbCBiPWM+PGNvbD48L2NvbD48L3RlbXBsYXRlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAg
PGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1lPjwv
ZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGZyYW1lPgorfCAgICAgICAg
IDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48
dGVtcGxhdGU+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRl
bXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVmZTMyNGIwMTI5ZTYxYzkxMjRlNTU4MDkyODJhOTVkMGJhYWFlNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odG1s
NWxpYi9ydW4tdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODExMjlhMGUxNmZmZWFjNDQ0OWIz
ZTkxN2FjNGQ0MTljYjY0ZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcnVuLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxz
Y3JpcHQ+Cit2YXIgdGVzdF9maWxlcyA9IFsKKyAgJ3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQnLAor
XQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDNiYzQxMGJmYWY4YTlhMjMyMjVhMTFlYTdhMjFiMTBmODc5MmJj
NGYuLjM5MmQyNzU2Y2IwYzYyNzkxYjY1NzYwYTM3NTBhMjMzODg5ZDkyOTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMTAsNiArMzEwLDEwIEBAIGZh
c3QvdGV4dC91bmljb2RlLXZhcmlhdGlvbi1zZWxlY3Rvci5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUv
aW5wdXQtZmlsZS1lbnRyaWVzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2ZpbGVzeXN0ZW0tdXJscy1tYXRjaC1zZWxmLmh0bWwKIAorIyBFTkFCTEUoVEVN
UExBVEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorCiAjIFRyYW5zcGFyZW50IGltYWdlIGJlaW5n
IHByb2R1Y2VkCiBmYXN0L2ZyYW1lcy90cmFuc3BhcmVudC1zY3JvbGxiYXIuaHRtbAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGYwNDZiYjk5ZWM5NmI1
NzE5Zjk3NWI0YzY4NGZjNzVjNDRiMmFlYjcuLjQwNGQwZjVjOTZlYTYxOTBhMmYzOTQyODhmZjg0
ZGQzMjYzNWZkOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CkBAIC03Nyw2ICs3NywxMCBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQtY29u
dGVudC10eXBlLWRhc2hib2FyZC5odG1sIFsgV29udEZpeCBdCiAjIEVOQUJMRShEUkFHR0FCTEVf
UkVHSU9OKSBpcyBkaXNhYmxlZAogZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRt
bCBbIFdvbnRGaXggXQogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4K
K3dlYmtpdC5vcmcvYi8xMDM1NyBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50IFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvMTAzNTcgaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgWyBTa2lwIF0K
KwogIyBUaGVzZSB0ZXN0IC1hcHBsZS0gYW5kIC1raHRtbC0gcHJlZml4ZWQgQ1NTIHByb3BlcnRp
ZXMsIHdoaWNoIHdlIGRvbid0IHN1cHBvcnQuCiBpbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVm
aXhlcy5odG1sIFsgV29udEZpeCBdCiBmYXN0L2Nzcy9hcHBsZS1wcmVmaXguaHRtbCBbIFdvbnRG
aXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNDcy
ZTIzZWYxNDc5NDFjZDY1NjA3OTczYjk2YTU4NmM5MGU2MWIzLi4yMGNhYjIyZGQ3NGU0NDljMDI0
M2VhZGZiMzM0NDhmMzJjMjY4Yzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNDMyLDYgKzQzMiwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGVkaXRpbmcv
c2hhZG93CiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sCiAKKyMgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgorZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwogIyBKU0MgZG9lcyBub3Qgc3Vw
cG9ydCBzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4gKGh0dHA6Ly93ZWJraXQub3JnL2Iv
NjE1NDApCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXho
ci5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI2
ZDY1MWNjOTg2ZTNjOTI0MWFiN2U4YWQ2NGY2ZjgxMGQ4YmUyNjEuLmZmNTQ4ZjI5YjJlYmEwZWU2
ZTY4M2M4MjhiZmExNzI4OTQ0MTE1ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTg4LDYgKzE4OCwxMCBAQCBmYXN0L2RvbS9zaGFkb3cKIGZhc3QvZnJh
bWVzL2RldGFjaGVkLXNoYWRvdy1mcmFtZS5odG1sCiBpbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRl
LXNoYWRvd2RvbS5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVk
LgorZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0
bWwKKwogIyBGYWlsIHVudGlsIFNVQlBJWEVMX0xBWU9VVCBpcyBlbmFibGVkCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTUzMgogZmFzdC9zdWItcGl4ZWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzBmZmY4YTQyODAw
NjQ3N2JjZGU4ZmFiZTE4NGNiMjc0NTJhZDc2MC4uYzU4OTU2MzUyNjVlM2YyZTJmNzA5M2M5OGZi
OWMyOTk1N2Y1MWZjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE1MjcsNiArMTUyNywxMCBAQCBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZs
b3cuaHRtbAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3NoYWRvdwogCisjIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQK
K2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3Qg
eWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAz
YTdjMjBlM2YzNGIzYjEyNDNhMzA3MjYxOTIzZDQ5ZDI5YmMxMDM4Li5iMTJhZGI1YWJkNTg2ZTY4
ZjZkZWNkNmNhY2UwNmViZjkyYjVlMWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNjIsNiArMjA2MiwxMCBAQCBmYXN0L3JlZ2lv
bnMvc3R5bGUtc2NvcGVkLWluLWZsb3cuaHRtbAogZWRpdGluZy9zaGFkb3cKIGZhc3QvZG9tL3No
YWRvdwogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgQ1NT
IFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTcz
MTIKIGZhc3QvcmVnaW9ucwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVt
cC1hcy1tYXJrdXAuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMK
aW5kZXggNTNhMDAxZmVmZGUyODgxYWVmNjFjZDA2OTAyNzJmYzZlMTViMWU5MS4uYzdmZGYxN2Yy
MGE0MjljMTBjNmQ4YjNhMTk2ZGZiOTA5NDQ2MmIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9k
dW1wLWFzLW1hcmt1cC5qcwpAQCAtMjIwLDE2ICsyMjAsMjQgQEAgTWFya3VwLl9nZXQgPSBmdW5j
dGlvbihub2RlLCBkZXB0aCkKICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
ICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIiNzaGFkb3ctcm9vdCIpCiAgICAgICAgICAg
c3RyICs9ICI8c2hhZG93OnJvb3Q+IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHN0ciArPSAi
I2RvY3VtZW50LWZyYWdtZW50IjsKICAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMCwgbGVuID0g
bm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIHZhciBzZWxl
Y3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKLSAgICAgICAgaWYg
KHNlbGVjdGlvbikKLSAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2luZGVudChkZXB0aCArIDEp
ICsgc2VsZWN0aW9uOwotCi0gICAgICAgIHN0ciArPSBNYXJrdXAuX2dldChub2RlLmNoaWxkTm9k
ZXNbaV0sIGRlcHRoICsgMSk7CisgICAgCisgICAgCisgICAgLy8gSFRNTCBUZW1wbGF0ZSBlbGVt
ZW50cyBzZXJpYWxpemUgdGhlaXIgY29udGVudCBEb2N1bWVudEZyYWdtZW50LCBhbmQgTk9UIHRo
ZWlyIGNoaWxkcmVuLgorICAgIGlmIChub2RlLm5hbWVzcGFjZVVSSSA9ICdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJyAmJiBub2RlLnRhZ05hbWUgPT0gJ1RFTVBMQVRFJykgeworICAgICAg
ICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jb250ZW50LCBkZXB0aCArIDEpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkTm9kZXMubGVuZ3Ro
OyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dl
dFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24pCisg
ICAgICAgICAgICAgICAgc3RyICs9IE1hcmt1cC5faW5kZW50KGRlcHRoICsgMSkgKyBzZWxlY3Rp
b247CisgICAgCisgICAgICAgICAgICBzdHIgKz0gTWFya3VwLl9nZXQobm9kZS5jaGlsZE5vZGVz
W2ldLCBkZXB0aCArIDEpOworICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgc3RyICs9IE1h
cmt1cC5fZ2V0U2hhZG93SG9zdElmUG9zc2libGUobm9kZSwgZGVwdGgpOwogICAgIAogICAgIHZh
ciBzZWxlY3Rpb24gPSBNYXJrdXAuX2dldFNlbGVjdGlvbk1hcmtlcihub2RlLCBpKTsKQEAgLTI4
NCw3ICsyOTIsNyBAQCBNYXJrdXAuX05BTUVTUEFDRV9VUklfTUFQID0gewogCiBNYXJrdXAuX2dl
dFNlbGVjdGlvbkZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS5v
d25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpOworICAgIHJldHVybiBub2Rl
Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPyBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0U2VsZWN0aW9uKCkgOiBudWxsOwogfQogCiBNYXJrdXAuX1NFTEVDVElPTl9GT0NVUyA9
ICc8I3NlbGVjdGlvbi1mb2N1cz4nOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177381</attachid>
            <date>2012-12-03 17:33:14 -0800</date>
            <delta_ts>2012-12-03 17:43:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86031-20121203173040.patch</filename>
            <type>text/plain</type>
            <size>96891</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1NDBjODViZjg2NGE3
ZTE2MWYyOGVjMGM2ZTMyNTYzZjQ0MDQ0YS4uMzc0ZjlkY2FjYzc5ODFmYmFlZjgzMGMwMTFhNzAw
MzIxNTkwMDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTExLTEzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKwor
ICAgICAgICBJbml0aWFsIGltcGxlbWVudGF0aW9uLiBUaGlzIHBhdGNoIGluY2x1ZGVzIHRoZSBw
YXJzZXIgY2hhbmdlcywgbmV3IElETCBhbmQgZWxlbWVudCBpbXBsZW1lbnRhdGlvbiBmb3IgPHRl
bXBsYXRlPi4KKworICAgICAgICBTcGVjOiBodHRwOi8vZHZjcy53My5vcmcvaGcvd2ViY29tcG9u
ZW50cy9yYXctZmlsZS90aXAvc3BlYy90ZW1wbGF0ZXMvaW5kZXguaHRtbAorCisgICAgICAgIFRl
c3RzOiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25lTm9kZS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3Vt
ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAo
dGVtcGxhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1
bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6Cisg
ICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyk6CisgICAg
ICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAoSFRNTEVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVt
ZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZW1wbGF0
ZUVsZW1lbnQ6OnNldElubmVySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVF
bGVtZW50Ojp+SFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVt
cGxhdGVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRlbXBsYXRlRWxl
bWVudDo6Y29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGVtcGxhdGVFbGVtZW50Ojpz
ZXRDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTFRlbXBsYXRlRWxlbWVudCk6Cisg
ICAgICAgICogaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChIVE1MVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVRhc2spOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6Y3JlYXRlSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6OmZpbmRGb3N0ZXJTaXRlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5oOgorICAgICAgICAoSFRNTENvbnN0cnVjdGlvblNpdGUpOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpoYXNUZW1wbGF0ZUluSFRNTFNjb3Bl
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmg6CisgICAgICAgIChI
VE1MRWxlbWVudFN0YWNrKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJv
bVRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0h0bWxTdGFydFRhZ0ZvckluQm9keSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJp
YXRlbHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
Rm9ySW5UYWJsZUJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kVGFnRm9ySW5Sb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW5DZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NUckVuZFRhZ0ZvckluUm93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZCk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjppc1BhcnNpbmdUZW1wbGF0ZUNv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6aXNQYXJzaW5nRnJh
Z21lbnRPclRlbXBsYXRlQ29udGVudHMpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoK
KwogMjAxMi0xMi0wMyAgU2NvdHQgVmlvbGV0ICA8c2t5QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIFJlbW92ZSBsaW51eCB0aGVtZSByZWxhdGVkIGZpbGVzIGFuZCBzd2l0Y2gg
dG8gZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxNWIzZDQ3YjFlOGIwN2Zh
YzU4M2YxZWQ4YTc1MDA1MWI1NmI3ZjE3Li5lMDc4ZGNmMTEzZjJmODhlZDJlMDgwYTdjZmQzZDE0
NTg2OTBmNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTExLTEzICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSW1wbGVtZW50IEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KKworICAgICAgICBUdXJuaW5nIG9uIEhUTUxUZW1wbGF0ZUVsZW1lbnQgZm9y
IGNocm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEyLTEyLTAz
ICBTY290dCBWaW9sZXQgIDxza3lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
UmVtb3ZlIGxpbnV4IHRoZW1lIHJlbGF0ZWQgZmlsZXMgYW5kIHN3aXRjaCB0byBkZWZhdWx0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDlkMTBkYzQzYjE2YjAwMjI2MGRlNDI1ZGVhYjM1OTI0MzRj
YTBmOTcuLjk1MGEzNjA5YTdmYTBhOTBjNTUzOTU0ZDMzNmNkMjI3ODcxMGMwZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC00ODgsNiArNDg4LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAg
ICAgaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5pZGwKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorICAgIGh0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCiAg
ICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5p
ZGwKQEAgLTE0MzEsNiArMTQzMiw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0hU
TUxUYWJsZVJvd0VsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5j
cHAKICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAorICAgIGh0bWwvSFRNTFRl
bXBsYXRlRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCiAgICAg
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxUaXRsZUVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlNTM2ZmQxM2E5NGE3
ZDBhNWU0NWI3NTc5OWZiOGRjZDY2NjIwNGExLi43YmFhNWY4Nzg2YzZkMjgwNmUxNDU3MzZhN2My
Njg3OTk3ZWE1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0OCw2ICsz
NDgsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwgXAorICAg
ICQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TFRpdGxlRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmMTdmODQ2OTNhNWRiMWFm
NDIzZDRhMjJkOWU3OTcwOTRkMDkwMjJjLi41YWY3ZWY1NjFjMDdmZGI5MjhlODQ0NTNiMmJlOGZj
N2U0N2M2MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQzMSw2ICs0MzEs
OCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIVE1MVGFibGVSb3dFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFRl
bXBsYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGVtcGxh
dGVFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUZXh0QXJlYUVsZW1lbnQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxUaXRsZUVsZW1lbnQuY3BwIFwKQEAg
LTE0ODksNiArMTQ5MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZVJvd0Vs
ZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRs
IFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgXAogCSQoV2ViQ29y
ZSkvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL0hUTUxU
aXRsZUVsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwg
XApAQCAtMzQzNyw2ICszNDQwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXgg
NzliYmRmOWNmZmI0MGFkMzI4YWU5NzlkODQ2ZWMyZTI3N2Q1Y2QyMi4uMjk5MDIxYzllMmZjMzZl
YzJhYmM4YzZkZTVkNDVhOGQyMDhhNDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02NTksNiArNjU5LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCiAgICAg
aHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgXAogICAgIGh0bWwvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcCBcCkBAIC0x
ODI1LDYgKzE4MjYsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hUTUxUYWJsZVJvd0VsZW1l
bnQuaCBcCiAgICAgaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oIFwKICAgICBodG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorICAgIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5o
IFwKICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxUaXRsZUVsZW1lbnQuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggMTI1ODNlMjdmOTgxMzRlYWZlMDFiZDg1NDQzNmIyOWRiOGNmZDA4Yi4u
MWNhZjA3Zjc3YzJkYTVjOTI2YjBiODYxZjVkNTEwYWQ2YWI2MTM2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMTEzMCw2ICsxMTMwLDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVJvd0Vs
ZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCcsCisgICAgICAg
ICAgICAnaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MVGl0bGVFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCcsCkBAIC00MTgw
LDYgKzQxODEsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
aCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCcsCisgICAgICAgICAgICAn
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MVGVt
cGxhdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTVkYmRkZjk5YTc5MjBiZGMy
M2RhNzg1MjBkYjk2ZjBmN2IyZjdjYy4uZTk5NDgwYzlkNDAxODI3Y2NiNDJkOWEyN2E4ZDZlNzRl
OGU0NzEzOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTk2MjIsNiArOTYyMiw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MVGVt
cGxhdGVFbGVtZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCkBAIC02MzQ3MCw2ICs2MzUyNiw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3Bw
IgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJv
ZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCIK
IAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWRjNDYyNDY5ODcyODJkZjg3OGQx
MTA4M2E0ZGY0ZGY5N2Q5OGZhZC4uNzBmZTM3ODM0Zjc5ZTZjZjFjY2QxYTU0YzVkZWRkMjRlOTQ5
YThmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTM0NzAsNiArMTM0NzAsOSBAQAogCQlENkUyNzZBRTE0NjM3NDU1MDAxRDI4
MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQ2RTUyOEExMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQ2RTUyOEEyMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlE
NkVGQzBCQjE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGVtcGxhdGVFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDZFRkMwQkMxNjY2REY3QTAwM0QyOTFFIC8q
IEhUTUxUZW1wbGF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTFRlbXBsYXRlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENkVG
QzBCRDE2NjZERjdBMDAzRDI5MUUgLyogSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTFRlbXBsYXRlRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBIaXN0b2dyYW1TdXBwb3J0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvZ3JhbVN1cHBv
cnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkZEQUVGMjE0OUMwNjE5MDAz
N0IxRTIgLyogU3RhdHNDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFN0YXRzQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2
RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMyAvKiBNZW1vcnlVc2FnZVN1cHBvcnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5VXNhZ2VTdXBwb3J0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODE2LDYgKzE3ODE5LDkgQEAKIAkJCQlBODcx
REIxNzBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCAqLywKIAkJ
CQk4NTU1NDI1QzBBQTQ4QjFFMDBCQTg5RjIgLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRs
ICovLAogCQkJCTUxOUZFMEEyMERBRDQ0NkUwMEEwOEYyMSAvKiBIVE1MVGFnTmFtZXMuaW4gKi8s
CisJCQkJRDZFRkMwQkIxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3Bw
ICovLAorCQkJCUQ2RUZDMEJDMTY2NkRGN0EwMDNEMjkxRSAvKiBIVE1MVGVtcGxhdGVFbGVtZW50
LmggKi8sCisJCQkJRDZFRkMwQkQxNjY2REY3QTAwM0QyOTFFIC8qIEhUTUxUZW1wbGF0ZUVsZW1l
bnQuaWRsICovLAogCQkJCUE4MTM2OUJCMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFF
bGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCQTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTFRleHRB
cmVhRWxlbWVudC5oICovLAogCQkJCUE4MEU3RTE2MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4
dEFyZWFFbGVtZW50LmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1s
LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCA0YTFlMzM1NjhjYjE1N2E3
MjNmMGM3YWZhNjk3YzM0MDkyNjY2MTY4Li5mZWE3Yzg3YTlkMGYyMmE4MmIzOWQ2NjdjYzcyNmUy
OGNhOWFmMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0xMjYyLDYgKzEyNjIsMTIgQEAgc3VtbWFy
eTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7CiAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTsKIH0K
IAorI2lmIGRlZmluZWQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICYmIEVOQUJMRV9URU1QTEFU
RV9FTEVNRU5UCit0ZW1wbGF0ZSB7CisgICAgZGlzcGxheTogbm9uZQorfQorI2VuZGlmCisKIGJk
aSwgb3V0cHV0IHsKICAgICB1bmljb2RlLWJpZGk6IC13ZWJraXQtaXNvbGF0ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBhNDBlODFkNzAyMTcwN2U4MzNiZjc5YzRh
NzZhYzBmNTQwZjlhNjkyLi5iNmI5MWJhOTI1ZDU3YzViOGZiZWFiYTg1ZjNkNWRjMDE1NTk0Y2M0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0zMTAsNiArMzEwLDcgQEAg
dm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAgICBBU1NFUlQobmV3Q2hpbGQpOwogICAgIEFTU0VS
VChuZXh0Q2hpbGQpOwogICAgIEFTU0VSVChuZXh0Q2hpbGQtPnBhcmVudE5vZGUoKSA9PSB0aGlz
KTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+ZG9jdW1lbnQoKSk7CiAKICAg
ICBOb2RlVmVjdG9yIHRhcmdldHM7CiAgICAgY29sbGVjdFRhcmdldE5vZGVzKG5ld0NoaWxkLmdl
dCgpLCB0YXJnZXRzKTsKQEAgLTY5NSw2ICs2OTYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBh
cnNlckFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQpCiB7CiAgICAgQVNTRVJU
KG5ld0NoaWxkKTsKICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnROb2RlKCkpOyAvLyBVc2Ug
YXBwZW5kQ2hpbGQgaWYgeW91IG5lZWQgdG8gaGFuZGxlIHJlcGFyZW50aW5nIChhbmQgd2FudCBE
T00gbXV0YXRpb24gZXZlbnRzKS4KKyAgICBBU1NFUlQoZG9jdW1lbnQoKSA9PSBuZXdDaGlsZC0+
ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0Q2hpbGQ7CiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2ZiNmVjNDRjOTZmNTMxMzc2YTU0NjJlMTI4MzA4ODIx
ZmIwZmRmZC4uY2EyYTI0ZThiY2EwOWM3YTM2Y2JlOTQ1ZmU0NzcwM2YyNTVhMTM4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01ODg4LDQgKzU4ODgsMjIgQEAgTG9jYWxlJiBEb2N1bWVu
dDo6Z2V0Q2FjaGVkTG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKQogICAgIHJldHVy
biAqKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpCitEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50
KCkKK3sKKyAgICAvLyBJZiBET0NVTUVOVCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4
dCwgTGV0IFRFTVBMQVRFIENPTlRFTlRTIE9XTkVSIGJlIERPQ1VNRU5UIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiB0aGlzOworCisgICAg
aWYgKCFtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KSB7CisgICAgICAgIGlmIChpc0hU
TUxEb2N1bWVudCgpKQorICAgICAgICAgICAgbV90ZW1wbGF0ZUNvbnRlbnRzT3duZXJEb2N1bWVu
dCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKDAsIGJsYW5rVVJMKCkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX3RlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50ID0gRG9jdW1lbnQ6OmNy
ZWF0ZSgwLCBibGFua1VSTCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvbnRl
bnRzT3duZXJEb2N1bWVudC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDI3ZWMzY2ZkMjdmZWFjYzU1MTE1OTk5Y2FmYzZi
MjVmMjc5MDIwNzMuLmY1YjhjY2QyYzBhMTFjOGIwOTJiMzEzOWIwMDFiYTdkM2MzMDBiMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTcyLDYgKzExNzIsMTAgQEAgcHVibGljOgogICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYgdG9wTGF5ZXJFbGVtZW50cygpIGNvbnN0IHsg
cmV0dXJuIG1fdG9wTGF5ZXJFbGVtZW50czsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVNUExB
VEVfRUxFTUVOVCkKKyAgICBEb2N1bWVudCogdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQo
KTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJM
JiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1MjcsNiArMTUzMSwxMCBAQCBw
cml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgT3duUHRyPExvY2Fs
ZT4gPiBMb2NhbGVJZGVudGlmaWVyVG9Mb2NhbGVNYXA7CiAgICAgTG9jYWxlSWRlbnRpZmllclRv
TG9jYWxlTWFwIG1fbG9jYWxlQ2FjaGU7CisKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkK
KyAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVDb250ZW50c093bmVyRG9jdW1lbnQ7Cisj
ZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hl
ZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3Iu
Y3BwCmluZGV4IGJlYjgzMmY3ZjUwMDliNmFjNjEzYzMzY2Q4YjQ3MWVhMjI0NzJlNjIuLmM3NjZm
ZmYwOWVjYjA2MTkzM2EzM2NhMjhhODU3ODA4MzFhYWI4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlhMaW5rTmFt
ZXMuaCIKQEAgLTE0MSw3ICsxNDIsMTIgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFs
aXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlKiB0YXJnZXROb2RlLCBOb2RlKiBub2QKICAgICAg
ICAgYXBwZW5kU3RhcnRUYWcodGFyZ2V0Tm9kZSwgJm5hbWVzcGFjZUhhc2gpOwogCiAgICAgaWYg
KCEodGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSAmJiBlbGVtZW50Q2Fu
bm90SGF2ZUVuZFRhZyh0YXJnZXROb2RlKSkpIHsKLSAgICAgICAgZm9yIChOb2RlKiBjdXJyZW50
ID0gdGFyZ2V0Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+
bmV4dFNpYmxpbmcoKSkKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgTm9k
ZSogY3VycmVudCA9IHRhcmdldE5vZGUtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpID8gdG9IVE1M
VGVtcGxhdGVFbGVtZW50KHRhcmdldE5vZGUpLT5jb250ZW50KCktPmZpcnN0Q2hpbGQoKSA6IHRh
cmdldE5vZGUtPmZpcnN0Q2hpbGQoKTsKKyNlbHNlCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSB0
YXJnZXROb2RlLT5maXJzdENoaWxkKCk7CisjZW5kaWYKKyAgICAgICAgZm9yICggOyBjdXJyZW50
OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6
ZU5vZGVzV2l0aE5hbWVzcGFjZXMoY3VycmVudCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZu
YW1lc3BhY2VIYXNoLCB0YWdOYW1lc1RvU2tpcCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCmluZGV4IDg3YjdlMjYyOTVmYjc0ZjNhMDAxYWU0MmVjZTE0ZjdhMzllYzkx
MWQuLmJjZDRmMWRlM2ExNWM3ZjMzNjI0M2I2Y2JlZmNmY2UxN2U0OTE2YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNl
cklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlcldvcmRCcmVhay5o
IgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTM0Myw4ICszNDQsMTQgQEAg
U3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogCiB2b2lkIEhUTUxFbGVtZW50
OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21l
bnRGb3JJbm5lck91dGVySFRNTChodG1sLCB0aGlzLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVj
KSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJl
bGVhc2UoKSwgZWMpOworICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKGh0bWwsIHRoaXMsIEFsbG93U2NyaXB0
aW5nQ29udGVudCwgZWMpKSB7CisgICAgICAgIENvbnRhaW5lck5vZGUqIGNvbnRhaW5lciA9IHRo
aXM7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmIChoYXNMb2NhbE5h
bWUodGVtcGxhdGVUYWcpKQorICAgICAgICAgICAgY29udGFpbmVyID0gdG9IVE1MVGVtcGxhdGVF
bGVtZW50KHRoaXMpLT5jb250ZW50KCk7CisjZW5kaWYKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KGNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgfQog
fQogCiBzdGF0aWMgdm9pZCBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBu
b2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dHNBbGxJbk9uZS5jcHAKaW5kZXggZDUxN2M4NDU4Njg3ZjgyOTEwNGU1MjAxZjg1NGVmODhkM2Ni
ZGU0NC4uN2YzYjNmNDdjMDBiODUxOTcyMDRhMmNkYjU4ZDg2NDBlZDk5ZTE2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTEwNiw2ICsxMDYs
NyBAQAogI2luY2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1M
VGFibGVSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5j
cHAiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWdOYW1lcy5pbgppbmRleCA4NWExZTYxYTVhOTU4MmIxM2U2MzQyODljZGM1M2EyMmM3NmIzZTAx
Li5kNjIzZGQ5NjJlOTg1NTg2ZWU1MjJlMmMxM2EwNGMyYjAwNDIxMDljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTI0LDYgKzEyNCw3IEBAIHN1cCBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CiB0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9u
RWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAordGVtcGxhdGUg
Y29uZGl0aW9uYWw9VEVNUExBVEVfRUxFTUVOVAogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1M
VGV4dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290IGludGVy
ZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlQ2VsbEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmZDMyOWVmZDRlZWEzMGMyZWViNzM5ZWY4ZDg5OTVlNWM4YzhjMGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
VEVNUExBVEVfRUxFTUVOVCkKKworI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKKwor
I2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIm1hcmt1cC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK2lubGlu
ZSBIVE1MVGVtcGxhdGVFbGVtZW50OjpIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQoreworfQorCitIVE1MVGVtcGxhdGVFbGVtZW50Ojp+SFRNTFRlbXBs
YXRlRWxlbWVudCgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gSFRN
TFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1wbGF0
ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKK30KKworRG9jdW1lbnRGcmFnbWVudCogSFRN
TFRlbXBsYXRlRWxlbWVudDo6Y29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbnRlbnQp
CisgICAgICAgIG1fY29udGVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25lckRvY3Vt
ZW50KCktPnRlbXBsYXRlQ29udGVudHNPd25lckRvY3VtZW50KCkpOworCisgICAgcmV0dXJuIG1f
Y29udGVudC5nZXQoKTsKK30KKworLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1
YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjcgKHByZXZlbnQgRE9NIGhpZXJhcmNoeSBjeWNsZXMp
LgorLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/
aWQ9MjAxMjkgKGV4dGVuZGVkIGFkb3B0Tm9kZSB0byBjb25zaWRlciB0ZW1wbGF0ZS5jb250ZW50
KS4KK3ZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6c2V0Q29udGVudChQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IHBycENvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBjb250ZW50ID0gcHJwQ29udGVudDsKKworICAgIGlmICghY29u
dGVudCB8fCBjb250ZW50LT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBlYyA9IFRZUEVfTUlT
TUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fY29udGVudC5n
ZXQoKSA9PSBjb250ZW50LmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY29udGVu
dC0+b3duZXJEb2N1bWVudCgpICE9IG93bmVyRG9jdW1lbnQoKS0+dGVtcGxhdGVDb250ZW50c093
bmVyRG9jdW1lbnQoKSkKKyAgICAgICAgb3duZXJEb2N1bWVudCgpLT50ZW1wbGF0ZUNvbnRlbnRz
T3duZXJEb2N1bWVudCgpLT5hZG9wdE5vZGUoY29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisKKyAgICBtX2NvbnRlbnQgPSBjb250ZW50OworfQorCisjaWZuZGVmIE5ERUJVRworY29uc3Qg
SFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IE5vZGUqIG5v
ZGUpCit7CisgICAgQVNTRVJUKCFub2RlIHx8IChub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgbm9k
ZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29u
c3QgSFRNTFRlbXBsYXRlRWxlbWVudCo+KG5vZGUpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY5MTNlNDRh
YjZiOGY2NjM1OWVlMDg5OTg3MjVlNzQ1ZTk1OTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEhUTUxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBIVE1MVGVtcGxhdGVFbGVtZW50X2gK
KworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFn
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgSFRNTFRlbXBsYXRlRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxUZW1wbGF0
ZUVsZW1lbnQoKTsKKworICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRlbnQoKSBjb25zdDsKKwor
ICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRp
b25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworICAgIG11dGFibGUgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IG1fY29udGVudDsKK307CisKK2NvbnN0IEhUTUxUZW1wbGF0ZUVsZW1lbnQqIHRvSFRN
TFRlbXBsYXRlRWxlbWVudChjb25zdCBOb2RlKik7CisKK2lubGluZSBIVE1MVGVtcGxhdGVFbGVt
ZW50KiB0b0hUTUxUZW1wbGF0ZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gY29u
c3RfY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Kj4odG9IVE1MVGVtcGxhdGVFbGVtZW50KHN0YXRp
Y19jYXN0PGNvbnN0IE5vZGUqPihub2RlKSkpOworfQorCisjaWZkZWYgTkRFQlVHCisKKy8vIFRo
ZSBkZWJ1ZyB2ZXJzaW9uIG9mIHRoaXMsIHdpdGggYXNzZXJ0aW9ucywgaXMgbm90IGlubGluZWQu
CitpbmxpbmUgY29uc3QgSFRNTFRlbXBsYXRlRWxlbWVudCogdG9IVE1MVGVtcGxhdGVFbGVtZW50
KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEhUTUxU
ZW1wbGF0ZUVsZW1lbnQqPihub2RlKTsKK30KKyNlbmRpZiAvLyBOREVCVUcKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisKKyNl
bmRpZiAvLyBIVE1MVGVtcGxhdGVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNTgzNmQ5NzgxZmQ2YjNlNmZjNmU2MWZj
N2Y1NGEwMGM3ZDAyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFs
PVRFTVBMQVRFX0VMRU1FTlQKK10gaW50ZXJmYWNlIEhUTUxUZW1wbGF0ZUVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CisgICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnQgY29udGVudCBzZXR0ZXIg
cmFpc2VzIChET01FeGNlcHRpb24pOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDljMTgyYmEyMzQzYjRlNTEz
OWEzMjAyMjYwODE0ZWQwNDk1OTE5ZDguLjYyMjY5ZGVjYjc1ZjUxOGNjYzg5MTQzMmQ5ZDBlMzcy
MzRiOTc5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2Vy
SWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
U3RhY2tJdGVtLmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZWRTdHJpbmdzLmgiCkBAIC03Nyw2ICs3OCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNB
bGxXaGl0ZXNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiBzdGF0aWMgaW5saW5lIHZvaWQg
ZXhlY3V0ZVRhc2soSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogeworI2lmIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0YXNrLnBhcmVudC0+aGFzVGFnTmFtZSh0ZW1w
bGF0ZVRhZykpCisgICAgICAgIHRhc2sucGFyZW50ID0gdG9IVE1MVGVtcGxhdGVFbGVtZW50KHRh
c2sucGFyZW50LmdldCgpKS0+Y29udGVudCgpOworI2VuZGlmCisKICAgICBpZiAodGFzay5uZXh0
Q2hpbGQpCiAgICAgICAgIHRhc2sucGFyZW50LT5wYXJzZXJJbnNlcnRCZWZvcmUodGFzay5jaGls
ZC5nZXQoKSwgdGFzay5uZXh0Q2hpbGQuZ2V0KCkpOwogICAgIGVsc2UKQEAgLTI0Nyw3ICsyNTMs
NyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLT50eXBlKCkgPT0gSFRN
TFRva2VuVHlwZXM6OkNvbW1lbnQpOwotICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIENv
bW1lbnQ6OmNyZWF0ZShjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0b2tlbi0+Y29tbWVudCgp
KSk7CisgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgQ29tbWVudDo6Y3JlYXRlKG93bmVy
RG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQg
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3VtZW50KEF0b21pY0hUTUxU
b2tlbiogdG9rZW4pCkBAIC0zMjUsNyArMzMxLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6aW5zZXJ0U2NyaXB0RWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgIC8vIHRo
b3NlIGZsYWdzIG9yIGVmZmVjdHMgdGhlcmVvZi4KICAgICBjb25zdCBib29sIHBhcnNlckluc2Vy
dGVkID0gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gIT0gQWxsb3dTY3JpcHRpbmdDb250
ZW50QW5kRG9Ob3RNYXJrQWxyZWFkeVN0YXJ0ZWQ7CiAgICAgY29uc3QgYm9vbCBhbHJlYWR5U3Rh
cnRlZCA9IG1faXNQYXJzaW5nRnJhZ21lbnQgJiYgcGFyc2VySW5zZXJ0ZWQ7Ci0gICAgUmVmUHRy
PEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShz
Y3JpcHRUYWcsIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCksIHBhcnNlckluc2VydGVkLCBhbHJl
YWR5U3RhcnRlZCk7CisgICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRN
TFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50
Tm9kZSgpLCBwYXJzZXJJbnNlcnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOwogICAgIGlmIChtX2ZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbiAhPSBEaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQpCiAgICAg
ICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9m
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2Rl
KCksIGVsZW1lbnQpOwpAQCAtMzUxLDYgKzM1NywxMSBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25T
aXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNoYXJhY3RlcnMsIFdoaXRlc3BhY2VN
bwogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkKICAgICAgICAgZmluZEZvc3RlclNpdGUo
dGFzayk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAodGFzay5wYXJl
bnQtPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICB0YXNrLnBhcmVudCA9IHRvSFRN
TFRlbXBsYXRlRWxlbWVudCh0YXNrLnBhcmVudC5nZXQoKSktPmNvbnRlbnQoKTsKKyNlbmRpZgor
CiAgICAgLy8gU3RyaW5ncyBjb21wb3NlZCBlbnRpcmVseSBvZiB3aGl0ZXNwYWNlIGFyZSBsaWtl
bHkgdG8gYmUgcmVwZWF0ZWQuCiAgICAgLy8gVHVybiB0aGVtIGludG8gQXRvbWljU3RyaW5nIHNv
IHdlIHNoYXJlIGEgc2luZ2xlIHN0cmluZyBmb3IgZWFjaC4KICAgICBib29sIHNob3VsZFVzZUF0
b21pY1N0cmluZyA9IHdoaXRlc3BhY2VNb2RlID09IEFsbFdoaXRlc3BhY2UKQEAgLTM4NywxOCAr
Mzk4LDI3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0
IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVzcGFjZU1vCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4s
IGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKQogewogICAgIFF1YWxpZmllZE5hbWUg
dGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFtZXNwYWNlVVJJKTsKLSAgICBSZWZQ
dHI8RWxlbWVudD4gZWxlbWVudCA9IGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCktPmNyZWF0ZUVs
ZW1lbnQodGFnTmFtZSwgdHJ1ZSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBvd25l
ckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKS0+Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCB0cnVlKTsK
ICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIG1f
ZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNl
KCk7CiB9CiAKK2lubGluZSBEb2N1bWVudCogSFRNTENvbnN0cnVjdGlvblNpdGU6Om93bmVyRG9j
dW1lbnRGb3JDdXJyZW50Tm9kZSgpCit7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisg
ICAgaWYgKGN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQorICAgICAgICBy
ZXR1cm4gdG9IVE1MVGVtcGxhdGVFbGVtZW50KGN1cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCkt
PmRvY3VtZW50KCk7CisjZW5kaWYKKyAgICByZXR1cm4gY3VycmVudE5vZGUoKS0+ZG9jdW1lbnQo
KTsKK30KKwogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRl
SFRNTEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBRdWFsaWZpZWROYW1l
IHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIHhodG1sTmFtZXNwYWNlVVJJKTsKICAg
ICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2UgSFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVs
ZW1lbnQgYmVjYXVzZSB3ZQogICAgIC8vIGhhdmUgdG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVs
ZW1lbnQuICBXZSBzaG91bGQgcmV3b3JrIGZvcm0gYXNzb2NpYXRpb24KICAgICAvLyB0byBvY2N1
ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgot
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVI
VE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRy
dWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5Ojpj
cmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBvd25lckRvY3VtZW50Rm9yQ3VycmVudE5vZGUoKSwg
Zm9ybSgpLCB0cnVlKTsKICAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5h
dHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQo
ZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7
CkBAIC00NjIsNiArNDgyLDE1IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRl
SW1wbGllZEVuZFRhZ3MoKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpmaW5kRm9zdGVy
U2l0ZShIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiB7CisjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCisgICAgLy8gV2hlbiBhIG5vZGUgaXMgdG8gYmUgZm9zdGVyIHBhcmVudGVk
LCB0aGUgbGFzdCB0ZW1wbGF0ZSBlbGVtZW50IHdpdGggbm8gdGFibGUgZWxlbWVudCBpcyBiZWxv
dyBpdCBpbiB0aGUgc3RhY2sgb2Ygb3BlbiBlbGVtZW50cyBpcyB0aGUgZm9zdGVyIHBhcmVudCBl
bGVtZW50IChOT1QgdGhlIHRlbXBsYXRlJ3MgcGFyZW50ISkKKyAgICBIVE1MRWxlbWVudFN0YWNr
OjpFbGVtZW50UmVjb3JkKiBsYXN0VGVtcGxhdGVFbGVtZW50ID0gbV9vcGVuRWxlbWVudHMudG9w
bW9zdCh0ZW1wbGF0ZVRhZy5sb2NhbE5hbWUoKSk7CisgICAgaWYgKGxhc3RUZW1wbGF0ZUVsZW1l
bnQgJiYgIW1fb3BlbkVsZW1lbnRzLmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKKyAgICAgICAg
dGFzay5wYXJlbnQgPSBsYXN0VGVtcGxhdGVFbGVtZW50LT5lbGVtZW50KCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNv
cmQqIGxhc3RUYWJsZUVsZW1lbnRSZWNvcmQgPSBtX29wZW5FbGVtZW50cy50b3Btb3N0KHRhYmxl
VGFnLmxvY2FsTmFtZSgpKTsKICAgICBpZiAobGFzdFRhYmxlRWxlbWVudFJlY29yZCkgewogICAg
ICAgICBFbGVtZW50KiBsYXN0VGFibGVFbGVtZW50ID0gbGFzdFRhYmxlRWxlbWVudFJlY29yZC0+
ZWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmgKaW5kZXggNjA1NzJiZGQ4NTYyNzQ0NWNiZDg2NWE5Njc5ZDJmZWJhNWY2YThk
Yy4uZGYzMjU5MGE3OTM3MTdiZTdhOTFkYTc2YjkxNWM0YTkxNTViNTFmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCkBAIC0xMTQs
OSArMTE0LDEwIEBAIHB1YmxpYzoKICAgICBDb250YWluZXJOb2RlKiBjdXJyZW50Tm9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLnRvcE5vZGUoKTsgfQogICAgIEhUTUxTdGFja0l0
ZW0qIGN1cnJlbnRTdGFja0l0ZW0oKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BT
dGFja0l0ZW0oKTsgfQogICAgIEhUTUxTdGFja0l0ZW0qIG9uZUJlbG93VG9wKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcGVuRWxlbWVudHMub25lQmVsb3dUb3AoKTsgfQotCisgICAgRG9jdW1lbnQqIG93
bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAgIEhUTUxFbGVtZW50U3RhY2sqIG9wZW5F
bGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5FbGVtZW50czsgfQogICAgIEhUTUxGb3Jt
YXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpIGNvbnN0IHsgcmV0
dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsgfQorICAgIGJvb2wgY3VycmVudElzUm9v
dE5vZGUoKSB7IHJldHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCkgPT0gbV9vcGVuRWxlbWVu
dHMucm9vdE5vZGUoKTsgfQogCiAgICAgRWxlbWVudCogaGVhZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGVhZC0+ZWxlbWVudCgpOyB9CiAgICAgSFRNTFN0YWNrSXRlbSogaGVhZFN0YWNrSXRlbSgpIGNv
bnN0IHsgcmV0dXJuIG1faGVhZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAppbmRleCA2YzIyMGM5NzM5YTY0MDIwZWQwZjI3Y2Mz
MjAxYjJjNGUwMTYxNTc4Li5iODA0Njc3Yzk4Yjc2NTU4OGZhMGVmMGM5YTE2ZjQ0MTJiNDU3NDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNw
cApAQCAtMzgsMTQgKzM4LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAotc3RhdGljIGlubGluZSBib29sIGlzUm9vdE5vZGUoSFRNTFN0YWNr
SXRlbSogaXRlbSkKKworbmFtZXNwYWNlIHsKKworaW5saW5lIGJvb2wgaXNSb290Tm9kZShIVE1M
U3RhY2tJdGVtKiBpdGVtKQogewogICAgIHJldHVybiBpdGVtLT5pc0RvY3VtZW50RnJhZ21lbnRO
b2RlKCkKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZShodG1sVGFnKTsKIH0KIAotbmFtZXNw
YWNlIHsKLQogaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQog
ewogICAgIHJldHVybiBpdGVtLT5oYXNUYWdOYW1lKGFwcGxldFRhZykKQEAgLTY0LDYgKzY1LDkg
QEAgaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogICAgICAg
ICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQogICAgICAg
ICB8fCBpdGVtLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQogICAgICAgICB8fCBpdGVt
LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxF
TUVOVCkKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRpZgog
ICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC03Nyw2ICs4MSw5IEBAIGlubGlu
ZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihIVE1MU3RhY2tJdGVtKiBpdGVtKQogaW5saW5l
IGJvb2wgaXNUYWJsZVNjb3BlTWFya2VyKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCiB7CiAgICAgcmV0
dXJuIGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCisgICAgICAgIHx8IGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpCisjZW5kaWYKICAg
ICAgICAgfHwgaXNSb290Tm9kZShpdGVtKTsKIH0KIApAQCAtODUsMTIgKzkyLDE4IEBAIGlubGlu
ZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKICAgICBy
ZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0Ym9keVRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFn
TmFtZSh0Zm9vdFRhZykKICAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0aGVhZFRhZykKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0
ZW1wbGF0ZVRhZykKKyNlbmRpZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCiBp
bmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoSFRNTFN0YWNrSXRlbSogaXRlbSkKIHsK
ICAgICByZXR1cm4gaXRlbS0+aGFzVGFnTmFtZSh0clRhZykKKyNpZiBFTkFCTEUoVEVNUExBVEVf
RUxFTUVOVCkKKyAgICAgICAgfHwgaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykKKyNlbmRp
ZgogICAgICAgICB8fCBpc1Jvb3ROb2RlKGl0ZW0pOwogfQogCkBAIC01MjcsNiArNTQwLDEzIEBA
IGJvb2wgSFRNTEVsZW1lbnRTdGFjazo6aW5TZWxlY3RTY29wZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lKSBjb25zdAogICAgIHJldHVybiBpblNlbGVjdFNjb3BlKHRhZ05hbWUubG9jYWxO
YW1lKCkpOwogfQogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCitib29sIEhUTUxFbGVt
ZW50U3RhY2s6Omhhc1RlbXBsYXRlSW5IVE1MU2NvcGUoKSBjb25zdAoreworICAgIHJldHVybiBp
blNjb3BlQ29tbW9uPGlzUm9vdE5vZGU+KG1fdG9wLmdldCgpLCB0ZW1wbGF0ZVRhZy5sb2NhbE5h
bWUoKSk7Cit9CisjZW5kaWYKKwogRWxlbWVudCogSFRNTEVsZW1lbnRTdGFjazo6aHRtbEVsZW1l
bnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAppbmRleCA4NzNjYmRlYjk1YjhlZGEwNmIz
YmU4MGJkOTVjYTdkMjM4OTExYmEzLi4yYzBkYjEzNGEwZDI1NTM5NzZmMGRmOWFlZWYzYTBkYmQ4
NjBjOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVu
dFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFj
ay5oCkBAIC0xNTAsNyArMTUwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNPbmx5T25lRWxl
bWVudCgpIGNvbnN0OwogICAgIGJvb2wgc2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkg
Y29uc3Q7Ci0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBib29sIGhhc1RlbXBs
YXRlSW5IVE1MU2NvcGUoKSBjb25zdDsKKyNlbmRpZgogICAgIEVsZW1lbnQqIGh0bWxFbGVtZW50
KCkgY29uc3Q7CiAgICAgRWxlbWVudCogaGVhZEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVtZW50
KiBib2R5RWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5jcHAKaW5kZXggYzc4NTYyYjMzYzE5YmQyYzU3MWQ1OWJhNTVjNmEzZDA3
ZTIyYzhkNy4uNjk3NGM2NGJkNTE2ZmU5NzQyOGM1NGZjOWYyNWU4OThjYTc4YWUyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC00MSw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxT
Y3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0YWNrSXRlbS5oIgorI2luY2x1ZGUgIkhU
TUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJI
VE1MVG9rZW5pemVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtMzYwLDcg
KzM2MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhU
TUxUb2tlbiYgcmF3VG9rZW4pCiAgICAgLy8gc3luY2hyb25vdXNseSByZS1lbnRlcnMgdGhlIHBh
cnNlci4gV2UgZG9uJ3QgY2xlYXIgdGhlIHRva2VuIGltbWVkYXRlbHkKICAgICAvLyBmb3IgQ2hh
cmFjdGVyIHRva2VucyBiZWNhdXNlIHRoZSBBdG9taWNIVE1MVG9rZW4gYXZvaWRzIGNvcHlpbmcg
dGhlCiAgICAgLy8gY2hhcmFjdGVycyBieSBrZWVwaW5nIGEgcG9pbnRlciB0byB0aGUgdW5kZXJs
eWluZyBidWZmZXIgaW4gdGhlCi0gICAgLy8gSFRNTFRva2VuLiBGb3J0dWFudGVseSwgQ2hhcmFj
dGVyIHRva2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKKyAgICAvLyBIVE1MVG9rZW4u
IEZvcnR1bmF0ZWx5LCBDaGFyYWN0ZXIgdG9rZW5zIGNhbid0IGNhdXNlIHVzZSB0byByZS1lbnRl
cgogICAgIC8vIHRoZSBwYXJzZXIuCiAgICAgLy8KICAgICAvLyBGSVhNRTogU3RvcCBjbGVhcmlu
ZyB0aGUgcmF3VG9rZW4gb25jZSB3ZSBzdGFydCBydW5uaW5nIHRoZSBwYXJzZXIgb2ZmCkBAIC02
NzIsOCArNjczLDEyIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJ
bkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1l
KCkgPT0gYm9keVRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgaWYg
KCFtX3RyZWUub3BlbkVsZW1lbnRzKCktPnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgp
IHx8IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzT25seU9uZUVsZW1lbnQoKSkgewotICAgICAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBib29sIGZyYWdtZW50
T3JUZW1wbGF0ZUNhc2UgPSAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5zZWNvbmRFbGVtZW50SXNI
VE1MQm9keUVsZW1lbnQoKSB8fCBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc09ubHlPbmVFbGVt
ZW50KCk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGZyYWdtZW50T3JU
ZW1wbGF0ZUNhc2UgPSBmcmFnbWVudE9yVGVtcGxhdGVDYXNlIHx8IG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOworI2VuZGlmCisgICAgICAgIGlmIChmcmFn
bWVudE9yVGVtcGxhdGVDYXNlKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CkBAIC02ODMsNyArNjg4LDcgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGZyYW1lc2V0VGFnKSB7CiAgICAgICAg
IHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
c2Vjb25kRWxlbWVudElzSFRNTEJvZHlFbGVtZW50KCkgfHwgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5oYXNPbmx5T25lRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRl
Q29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYg
KCFtX2ZyYW1lc2V0T2spCkBAIC05NDQsMTMgKzk0OSw0MyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgogICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1h
dHRpbmdFbGVtZW50cygpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiB9
CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKwordm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAg
bV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5hcHBlbmRNYXJrZXIoKTsKKyAgICBt
X3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOworICAgIHNldEluc2VydGlvbk1vZGUoVGVt
cGxhdGVDb250ZW50c01vZGUpOworfQorCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rl
bXBsYXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgaWYgKCFtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyAgICAgICAgcGFyc2VF
cnJvcih0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV90cmVlLmdlbmVyYXRl
SW1wbGllZEVuZFRhZ3MoKTsKKyAgICBpZiAoIW1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhh
c0xvY2FsTmFtZSh0b2tlbi0+bmFtZSgpKSkKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi0+bmFtZSgpKTsK
KyAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0TWFya2Vy
KCk7CisgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworfQorI2VuZGlmCisK
IGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ29sZ3JvdXBFbmRUYWdGb3JJbkNvbHVtbkdy
b3VwKCkKIHsKLSAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgPT0gbV90cmVlLm9wZW5FbGVt
ZW50cygpLT5yb290Tm9kZSgpKSB7CisgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgp
KSB7CiAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgLy8gRklY
TUU6IHBhcnNlIGVycm9yCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTIsNyArMTA0Nyw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21p
Y0hUTUxUb2tlbiogdG9rZW4pCiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVUYWcpIHsK
ICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGlmICghcHJvY2Vzc1RhYmxlRW5k
VGFnRm9ySW5UYWJsZSgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQo
KSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVu
dHMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKQEAgLTEwMzksNiArMTA3NCwxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZShBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlmICh0b2tlbi0+bmFtZSgpID09
IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0ZVN0YXJ0VGFnKHRva2VuKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIHBhcnNlRXJyb3IodG9rZW4pOwog
ICAgIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpSZWRpcmVjdFRvRm9zdGVyUGFyZW50R3VhcmQgcmVk
aXJlY3RlcihtX3RyZWUpOwogICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBA
IC0xMTUzLDYgKzExOTQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRh
ZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgbV90cmVlLmluc2VydFNlbGZD
bG9zaW5nSFRNTEVsZW1lbnQodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgp
ID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0
b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBp
ZiAoIXByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MTE3Nyw3ICsxMjI0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91
cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUo
KSkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgICAgICBp
ZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5UYWJsZVNjb3BlKHRib2R5VGFnLmxvY2FsTmFt
ZSgpKSAmJiAhbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGhlYWRUYWcubG9j
YWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0Zm9vdFRh
Zy5sb2NhbE5hbWUoKSkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21l
bnQoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JUZW1wbGF0
ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEyMDIsNyArMTI0OSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgICAgIHx8IGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4tPm5hbWUo
KSkKICAgICAgICAgICAgIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkg
ewogICAgICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9u
TW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xMjgwLDYgKzEzMjcsMTIgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQog
ICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAg
ICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJvY2Vz
c1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisjZW5kaWYKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CkBAIC0xMzU5LDYgKzE0MTIsMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAg
ICAgICAgICAgQVNTRVJUX1VOVVNFRChkaWRQcm9jZXNzLCBkaWRQcm9jZXNzKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAg
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJv
Y2Vzc1RlbXBsYXRlU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CiAg
ICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwpAQCAtMTM2NywxMiArMTQyNiw1MSBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiAgICAgY2FzZSBUZXh0TW9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01vZGU6CisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRl
VGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyh0b2tlbik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9
PSBsaW5rVGFnCisgICAgICAgICAgICB8fCB0b2tlbi0+bmFtZSgpID09IHNjcmlwdFRhZworICAg
ICAgICAgICAgfHwgdG9rZW4tPm5hbWUoKSA9PSBzdHlsZVRhZworICAgICAgICAgICAgfHwgdG9r
ZW4tPm5hbWUoKSA9PSBtZXRhVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJ
bkhlYWQodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBj
b2xUYWcpCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsK
KyAgICAgICAgZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgp
KSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCisgICAgICAgICAgICBz
ZXRJbnNlcnRpb25Nb2RlKEluVGFibGVNb2RlKTsKKyAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5h
bWUoKSA9PSB0clRhZykKKyAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJvZHlN
b2RlKTsKKyAgICAgICAgZWxzZSBpZiAoaXNUYWJsZUNlbGxDb250ZXh0VGFnKHRva2VuLT5uYW1l
KCkpKQorICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOworCisgICAgICAg
IHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzSHRtbFN0YXJ0VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiB7CiAgICAgcGFyc2VFcnJvcih0b2tlbik7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCisgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29w
ZSgpKSB7CisgICAgICAgIEFTU0VSVChpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgbV90cmVlLmluc2VydEhUTUxIdG1sU3Rh
cnRUYWdJbkJvZHkodG9rZW4pOwogfQogCkBAIC0xNTQyLDggKzE2NDAsMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAgICAg
ICAgbGFzdCA9IHRydWU7CiAgICAgICAgICAgICBpdGVtID0gSFRNTFN0YWNrSXRlbTo6Y3JlYXRl
KG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCksIEhUTUxTdGFja0l0ZW06Okl0ZW1G
b3JDb250ZXh0RWxlbWVudCk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKKyAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93
X2J1Zy5jZ2k/aWQ9MjAxMzAgKHNob3VsZCA8dGVtcGxhdGU+IGNsZWFyIHRoZSAiaW1wbGllZCBj
b250ZXh0IGVsZW1lbnQiLgorICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRh
ZykpCisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRz
TW9kZSk7CisjZW5kaWYKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkg
ewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAg
cmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5TZWxlY3RNb2RlKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoaXRlbS0+aGFzVGFnTmFtZSh0ZFRhZykgfHwgaXRlbS0+aGFzVGFnTmFtZSh0aFRhZykp
CkBAIC0xNTU1LDE5ICsxNjU3LDIwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2Vy
dGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoY2Fw
dGlvblRhZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJbkNhcHRpb25N
b2RlKTsKICAgICAgICAgaWYgKGl0ZW0tPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpKSB7Ci0gICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4g
c2V0SW5zZXJ0aW9uTW9kZShJbkNvbHVtbkdyb3VwTW9kZSk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGl0ZW0tPmhhc1RhZ05hbWUodGFibGVUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGUoSW5UYWJsZU1vZGUpOwogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZSho
ZWFkVGFnKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworI2lm
IEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICAgICAgaWYgKCFtX2ZyYWdtZW50Q29u
dGV4dC5mcmFnbWVudCgpIHx8IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCkgIT0g
aXRlbS0+bm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKElu
SGVhZE1vZGUpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJ
bkJvZHlNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShib2R5
VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwog
ICAgICAgICBpZiAoaXRlbS0+aGFzVGFnTmFtZShmcmFtZXNldFRhZykpIHsKLSAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS0+
aGFzVGFnTmFtZShodG1sVGFnKSkgewpAQCAtMTU5OCw3ICsxNzAxLDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJblRhYmxlQm9keShBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRhYmxlVGFnKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIHNsb3cuCiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5p
blRhYmxlU2NvcGUodGJvZHlUYWcubG9jYWxOYW1lKCkpICYmICFtX3RyZWUub3BlbkVsZW1lbnRz
KCktPmluVGFibGVTY29wZSh0aGVhZFRhZy5sb2NhbE5hbWUoKSkgJiYgIW1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRmb290VGFnLmxvY2FsTmFtZSgpKSkgewotICAgICAgICAg
ICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKGlzUGFy
c2luZ0ZyYWdtZW50T3JUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgcGFyc2VFcnJv
cih0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE2MjgsNyArMTcz
MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5Sb3coQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKICAgICB9CiAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGFibGVU
YWcpIHsKICAgICAgICAgaWYgKCFwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQoaXNQ
YXJzaW5nRnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9k
eU1vZGUpOwpAQCAtMTY4MSw3ICsxNzg0LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kVGFnRm9ySW5DZWxsKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHx8IHRv
a2VuLT5uYW1lKCkgPT0gdHJUYWcKICAgICAgICAgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRv
a2VuLT5uYW1lKCkpKSB7CiAgICAgICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRh
YmxlU2NvcGUodG9rZW4tPm5hbWUoKSkpIHsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkK
KyAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkg
fHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodGVtcGxhdGVUYWcpIHx8IGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworI2Vsc2UKICAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9k
eUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkgfHwgaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisjZW5k
aWYKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CkBAIC0xODIxLDYgKzE5MjgsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgcHJv
Y2Vzc0Zha2VTdGFydFRhZyhiclRhZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVU
YWcpIHsKKyAgICAgICAgcHJvY2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgogICAgIHByb2Nlc3NBbnlPdGhlckVuZFRhZ0ZvckluQm9keSh0
b2tlbik7CiB9CiAKQEAgLTE4NDIsNyArMTk1NSw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzQ2FwdGlvbkVuZFRhZ0ZvckluQ2FwdGlvbigpCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1RyRW5kVGFnRm9ySW5Sb3coKQogewogICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50
cygpLT5pblRhYmxlU2NvcGUodHJUYWcubG9jYWxOYW1lKCkpKSB7Ci0gICAgICAgIEFTU0VSVChp
c1BhcnNpbmdGcmFnbWVudCgpKTsKKyAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50T3JU
ZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE4NTYsNyArMTk2OSw3IEBAIGJvb2wgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVHJFbmRUYWdGb3JJblJvdygpCiBib29sIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1RhYmxlRW5kVGFnRm9ySW5UYWJsZSgpCiB7CiAgICAgaWYgKCFtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPmluVGFibGVTY29wZSh0YWJsZVRhZykpIHsKLSAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOworICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnRPclRl
bXBsYXRlQ29udGVudHMoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvci4KICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE5MTMsNiArMjAyNiwxNSBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAg
ICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgogICAgICAgICBBU1NFUlQo
aW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBj
YXNlIHNob3VsZCBiZSBicm9rZW4gb3V0IGludG8gcHJvY2Vzc0VuZFRhZ0ZvckluSGVhZCwKKyAg
ICAgICAgLy8gYmVjYXVzZSBvdGhlciBlbmQgdGFnIGNhc2VzIG5vdyByZWZlciB0byBpdCAoInBy
b2Nlc3MgdGhlIHRva2VuIGZvciB1c2luZyB0aGUgcnVsZXMgb2YgdGhlICJpbiBoZWFkIiBpbnNl
cnRpb24gbW9kZSIpLgorICAgICAgICAvLyBidXQgYmVjYXVzZSB0aGUgbG9naWMgZmFsbHMgdGhy
b3VnaCB0byBBZnRlckhlYWRNb2RlLCB0aGF0IGdldHMgYSBsaXR0bGUgbWVzc3kuCisjaWYgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBs
YXRlVGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRva2VuLT5u
YW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5w
b3BIVE1MSGVhZEVsZW1lbnQoKTsKICAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJI
ZWFkTW9kZSk7CkBAIC0xOTc3LDYgKzIwOTksMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxFKFRF
TVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFn
KSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKCFwcm9jZXNzQ29sZ3Jv
dXBFbmRUYWdGb3JJbkNvbHVtbkdyb3VwKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwNTIsNyArMjE4MCwxMiBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgIGNhc2UgSW5GcmFtZXNldE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25N
b2RlKCkgPT0gSW5GcmFtZXNldE1vZGUpOwogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBm
cmFtZXNldFRhZykgewotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1f
dHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAgICAgICAgYm9vbCBpZ25v
cmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZyAgPSBtX3RyZWUuY3VycmVudElzUm9vdE5vZGUo
KTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAgIGlnbm9yZUZyYW1l
c2V0Rm9yRnJhZ21lbnRQYXJzaW5nID0gaWdub3JlRnJhbWVzZXRGb3JGcmFnbWVudFBhcnNpbmcg
fHwgbV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7CisjZW5k
aWYKKyAgICAgICAgICAgIGlmIChpZ25vcmVGcmFtZXNldEZvckZyYWdtZW50UGFyc2luZykgewor
ICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50
cygpKTsKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0yMDYxLDYgKzIxOTQsMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAg
ICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEFmdGVyRnJhbWVzZXRNb2RlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAg
ICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgeworICAgICAgICAgICAgcHJv
Y2Vzc1RlbXBsYXRlRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJGcmFtZXNldE1vZGU6CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJGcmFtZXNldE1vZGUpOwpAQCAt
MjExOSwxMSArMjI1OCwzMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhB
dG9taWNIVE1MVG9rZW4qIHRva2VuKQogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBw
cm9wcmlhdGVseSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisjaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCisgICAgICAgIGlmICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRl
VGFnKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVtcGxhdGVFbmRUYWcodG9rZW4pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJblRhYmxlVGV4dE1vZGU6CiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwogICAg
ICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZW1w
bGF0ZUNvbnRlbnRzTW9kZToKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAg
Ly8gRklYTUU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5NjYKKyAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gdGVtcGxhdGVUYWcpIHsKKyAgICAg
ICAgICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLT5oYXNUYWdOYW1lKHRlbXBs
YXRlVGFnKSk7CisgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcCgpOworICAg
ICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7
CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC0yMjI0
LDggKzIzODQsMTQgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAgIH0KICAgICBjYXNlIEluQm9keU1v
ZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgorICAgIGNhc2UgVGVtcGxhdGVDb250ZW50c01v
ZGU6CiAgICAgY2FzZSBJbkNlbGxNb2RlOiB7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
CisgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9k
ZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUpOworI2Vsc2UKKyAg
ICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAg
ICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25N
b2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7
CisjZW5kaWYKICAgICAgICAgcHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZmZXIp
OwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0yMzYwLDcgKzI1MjYsMTIgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAg
ICBjYXNlIEluQ2VsbE1vZGU6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgogICAgIGNhc2UgSW5S
b3dNb2RlOgorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBBU1NFUlQoaW5z
ZXJ0aW9uTW9kZSgpID09IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2VsbE1v
ZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEluUm93TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUp
OworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSAhPSBUZW1wbGF0ZUNvbnRl
bnRzTW9kZSk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Cb2R5TW9kZSB8
fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DZWxsTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5D
YXB0aW9uTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsKKyNlbmRpZgogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBFbWl0IHBhcnNlIGVycm9yIGJhc2VkIG9uIHdoYXQg
ZWxlbWVudHMgYXJlIHN0aWxsIG9wZW4uCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJC
b2R5TW9kZToKQEAgLTIzODYsNyArMjU1Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkNvbHVtbkdyb3VwTW9kZToK
LSAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+cm9vdE5vZGUoKSkgeworICAgICAgICBpZiAobV90cmVlLmN1cnJlbnRJc1Jvb3ROb2RlKCkp
IHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAg
IHJldHVybjsgLy8gRklYTUU6IFNob3VsZCB3ZSBicmVhayBoZXJlIGluc3RlYWQgb2YgcmV0dXJu
aW5nPwogICAgICAgICB9CkBAIC0yNDA5LDYgKzI1ODAsMTYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7CiAgICAgICAgIHByb2Nlc3NF
bmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBUZW1wbGF0ZUNvbnRl
bnRzTW9kZToKKyAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50SXNSb290Tm9kZSgpKSB7CisgICAg
ICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlh
dGVseSgpOworICAgICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnROb2RlKCkpOwogICAgIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+cG9wQWxsKCk7CkBAIC0yNTEyLDYgKzI2OTMsMTIgQEAgYm9vbCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVhZChBdG9taWNIVE1MVG9rZW4qIHRv
a2VuKQogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcoc2NyaXB0VGFnKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGlm
ICh0b2tlbi0+bmFtZSgpID09IHRlbXBsYXRlVGFnKSB7CisgICAgICAgIHByb2Nlc3NUZW1wbGF0
ZVN0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAg
ICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gaGVhZFRhZykgewogICAgICAgICBwYXJzZUVycm9yKHRv
a2VuKTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDhmZjBmNThiMzQ1ZmZmM2U0NTViNWFmZmVmNjVlMTAy
ZjZkNWJmZmEuLjIxM2U3ZTBiZTM2ZjM0NWQ4MzRhY2JlNzRmMmVlMWJlNjBjNjJiNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC02Nyw2ICs2
NywxMiBAQCBwdWJsaWM6CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwogCiAgICAgYm9vbCBpc1Bh
cnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVudENvbnRleHQuZnJhZ21l
bnQoKTsgfQorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIGJvb2wgaXNQYXJzaW5n
VGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CisgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudE9y
VGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGlzUGFyc2luZ0ZyYWdtZW50KCkgfHwg
aXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpOyB9CisjZWxzZQorICAgIGJvb2wgaXNQYXJzaW5n
RnJhZ21lbnRPclRlbXBsYXRlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdGcmFn
bWVudCgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgZGV0YWNoKCk7CiAKQEAgLTk3LDYgKzEwMyw3
IEBAIHByaXZhdGU6CiAgICAgICAgIEluSGVhZE1vZGUsCiAgICAgICAgIEluSGVhZE5vc2NyaXB0
TW9kZSwKICAgICAgICAgQWZ0ZXJIZWFkTW9kZSwKKyAgICAgICAgVGVtcGxhdGVDb250ZW50c01v
ZGUsCiAgICAgICAgIEluQm9keU1vZGUsCiAgICAgICAgIFRleHRNb2RlLAogICAgICAgICBJblRh
YmxlTW9kZSwKQEAgLTE5MCw2ICsxOTcsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVzZXRJ
bnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCisgICAgdm9pZCBwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4qKTsK
KyAgICB2b2lkIHByb2Nlc3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1MVG9rZW4qKTsKKyNlbmRp
ZgorCiAgICAgY2xhc3MgRnJhZ21lbnRQYXJzaW5nQ29udGV4dCB7CiAgICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEZyYWdtZW50UGFyc2luZ0NvbnRleHQpOwogICAgIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0YTNhNWY0ZGVmMDdkZjI4NmJlNDE2YWEyOWI1MDI4
ZDFkOWRmNTQ4Li45MThmNDgwNzUwMDdiYTcwNDNhOTkyMjg3MWYxZGE1MmQwNDJmZjhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00NzIsNiArNDcyLDcgQEAKICAgICBhdHRyaWJ1
dGUgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUYWJsZUVsZW1lbnQ7CiAgICAgYXR0
cmlidXRlIEhUTUxUYWJsZVJvd0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGFibGVSb3dFbGVtZW50
OwogICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudENvbnN0cnVjdG9yIEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OworICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VEVNUExBVEVf
RUxFTUVOVF0gSFRNTFRlbXBsYXRlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxUZW1wbGF0ZUVsZW1l
bnQ7CiAgICAgYXR0cmlidXRlIEhUTUxUZXh0QXJlYUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGV4
dEFyZWFFbGVtZW50OwogICAgIGF0dHJpYnV0ZSBIVE1MVGl0bGVFbGVtZW50Q29uc3RydWN0b3Ig
SFRNTFRpdGxlRWxlbWVudDsKICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVj
dG9yIEhUTUxVTGlzdEVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5k
ZXggNjIxZDRjZTk1ZjcxNmNkNTJiNmNkNTliYTkwMTc0YWNkZjYxNDdlYy4uMjBmYjhkMTE3Zjhj
NTNmMDk4ZmM2Y2I1NWQ0M2RmZmJkNDMwMGEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQpAQCAtMTA5LDcgKzEwOSw3IEBACiAgICAgICAnRU5BQkxFX1NUWUxFX1NDT1BFRD0x
JywKICAgICAgICdFTkFCTEVfU1ZHPTwoZW5hYmxlX3N2ZyknLAogICAgICAgJ0VOQUJMRV9TVkdf
Rk9OVFM9PChlbmFibGVfc3ZnKScsCi0gICAgICAnRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQ9MCcs
CisgICAgICAnRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQ9MScsCiAgICAgICAnRU5BQkxFX1RFWFRf
QVVUT1NJWklORz0xJywKICAgICAgICdFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVD0xJywKICAgICAg
ICdFTkFCTEVfVE9VQ0hfRVZFTlRTPTwoZW5hYmxlX3RvdWNoX2V2ZW50cyknLApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDY4ZDY3M2M2ZjQ4Mzg3NzU4ZDIwZmVi
MThjODVlNmNiMDFhNWUzYmIuLjc3MzBjYmIzMDA2NGZkYzEwMGEyYTgxZWNlZjVlNWM3YWNjMDVl
ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTM5NSw3ICsz
OTUsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFM
TE9DIiwgZGVmYXVsdCA9PiBpc1dpbkNFKCksIHZhbHVlID0+IFwkc3lzdGVtTWFsbG9jU3VwcG9y
dCB9LAogCiAgICAgeyBvcHRpb24gPT4gInRlbXBsYXRlLXRhZyIsIGRlc2MgPT4gIlRvZ2dsZSBU
ZW1wbGF0ZXMgVGFnIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVEVNUExBVEVf
RUxFTUVOVCIsIGRlZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQoKSwgdmFsdWUgPT4gXCR0ZW1w
bGF0ZVRhZ1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RFTVBMQVRFX0VMRU1F
TlQiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdGVtcGxhdGVUYWdTdXBwb3J0IH0sCiAKICAg
ICB7IG9wdGlvbiA9PiAidGV4dC1hdXRvc2l6aW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFRleHQgQXV0
b3NpemluZyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RFWFRfQVVUT1NJWklO
RyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0ZXh0QXV0b3NpemluZ1N1cHBvcnQgfSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmNWQ3Zjg3ZTMwZTNkNGI0NDI4ZDYxZjU5ZTZjOWU1YmZhYTYxYmMzLi5kNzhjODE5MjM5
MzNkN2FlNTA4Yjk5NDRiNTk5MDlhNmRlM2Q0YWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTItMTEtMTMgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9u
ZU5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L2Nsb25lTm9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L2lubmVySFRNTC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdDogQWRkZWQuCisgICAgICAgICog
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHRt
bDVsaWIvcnVuLXRlbXBsYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9kdW1w
LWFzLW1hcmt1cC5qczoKKyAgICAgICAgKE1hcmt1cC5fZ2V0KToKKyAgICAgICAgKE1hcmt1cC5f
Z2V0U2VsZWN0aW9uRnJvbU5vZGUpOgorCiAyMDEyLTEyLTAzICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIE9wZXJhLXN1Ym1pdHRlZCBXM0MgPHRyYWNr
PiB0ZXN0cyB0byBMYXlvdXRUZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhiYjYxY2Q4ZjU2MmYyYmIwNmZhMDdhMTU3NGE1YWRkMzYxZTM1OTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2Nsb25l
Tm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgdGVtcGxhdGUgY29u
dGVudHMgYXJlIG5vdCBjbG9uZWQgd2hlbiB0aGUgdGVtcGxhdGUgZWxlbWVudCBpcyBjbG9uZWQK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVtcGxhdGUuY29udGVudC5j
aGlsZE5vZGVzLmxlbmd0aCBpcyAxCitQQVNTIGNsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5n
dGggaXMgMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L2Nsb25lTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC9jbG9uZU5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGE1Zjc1ZWNmZWEwM2RiOTk4MWI5
YWVmODY1ZWI0Y2U0ZTEzMTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9jbG9uZU5vZGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPkNvbnRlbnRzPC90ZW1wbGF0
ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0ZW1wbGF0ZSBjb250ZW50
cyBhcmUgbm90IGNsb25lZCB3aGVuIHRoZSB0ZW1wbGF0ZSBlbGVtZW50IGlzIGNsb25lZCcpOwor
CitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQorICAgIHRlc3RGYWlsZWQoJ1RoaXMg
dGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCknKTsKKwordmFyIHRlbXBsYXRl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyk7CitzaG91bGRCZSgndGVtcGxh
dGUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCcsICcxJyk7Cit2YXIgY2xvbmUgPSB0ZW1wbGF0
ZS5jbG9uZU5vZGUodHJ1ZSk7CitzaG91bGRCZSgnY2xvbmUuY29udGVudC5jaGlsZE5vZGVzLmxl
bmd0aCcsICcwJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDVmZjExNTE1YWE4NjllNWRmYTg1MTM4YWExYWZjZDJkZWM5Mzdm
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvaW5lcnRDb250ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitodHRwOi8v
YmF6LmNvbS9iYXQuanBnIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6
Ly9iYXouY29tL2JhdC5qcGcsIG1haW4gZG9jdW1lbnQgVVJMIGluZXJ0Q29udGVudHMuaHRtbCwg
aHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly9iYXouY29tL2JhdC5qcGcKK2h0dHA6Ly9iYXouY29tL2Jh
dC5qcGcgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJy
b3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGluZyBVUkwgIihudWxsKSI+CitUaGUgdGVzdCBhc3Nl
cnRzIHRoYXQgZWxlbWVudHMgd2l0aGluIHRlbXBsYXRlIGNvbnRlbnRzIGFyZSAiaW5lcnQiLCBl
LmcuIHJlc291cmNlcyBkbyBub3QgZmV0Y2gsIHNjcmlwdCBkb2VzIG5vdCBydW4uCisKK3Bhc3Mh
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
aW5lcnRDb250ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC9pbmVydENvbnRlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNjMDVlY2I5MDc5NzVkNTAxNDQ3
OTUwYzNjY2U3NWExY2U5NmQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5lcnRDb250ZW50cy5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit2YXIgdGVzdFZh
bCA9IDE7CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOworICAgIH0KKworICAgIGlmICh0
ZXN0VmFsICE9IDEpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciB0ZW1wbGF0ZUNvbnRlbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnKS5jb250ZW50OworICAgIHZhciBp
bWcgPSB0ZW1wbGF0ZUNvbnRlbnQuY2hpbGROb2Rlc1sxXTsKKyAgICBpbWcuc3JjID0gImh0dHA6
Ly9iYXouY29tL2JhdC5qcGciOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxh
dGVDb250ZW50KTsKKworICAgIGlmICh0ZXN0VmFsICE9IDIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lclRleHQgPSAncGFzcyEn
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZSB0ZXN0IGFzc2VydHMgdGhh
dCBlbGVtZW50cyB3aXRoaW4gdGVtcGxhdGUgY29udGVudHMgYXJlICJpbmVydCIsIGUuZy4gcmVz
b3VyY2VzIGRvIG5vdCBmZXRjaCwgc2NyaXB0IGRvZXMgbm90IHJ1bi48L3A+Cis8dGVtcGxhdGUg
aWQ9InRlbXBsYXRlIj48c2NyaXB0PndpbmRvdy50ZXN0VmFsID0gMjs8L3NjcmlwdD48aW1nIHNy
Yz0iaHR0cDovL2Zvby5jb20vYmFyLmpwZyI+Cis8L3RlbXBsYXRlPgorPGRpdiBpZD0ib3V0cHV0
Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvaW5u
ZXJIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQvaW5uZXJIVE1MLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Zjk3MjcwODdhM2U2NzEy
MzAxMmY4NmJlN2U0YmVjODIzMjU4NjZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9pbm5lckhUTUwtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGhlIHRlc3QgYXNzZXJ0cyB0aGF0IHRlbXBsYXRlIGNvbnRlbnRzIGFyZSBz
ZXJpYWxpemVkIHdpdGggaW5uZXJIVE1MIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGlnbm9yZWQuCisK
KzxkaXY+Q29udGVudHMgMQorPHRlbXBsYXRlPkNvbnRlbnRzIDI8L3RlbXBsYXRlPgorPC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2lu
bmVySFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9p
bm5lckhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzYyY2EzYmVmMWQzZDgyNzlmYWIxOTE3ODk5MmMy
YzVmNjFjM2M1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC9pbm5lckhUTUwuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVtcGxhdGUnKTsKKyAgICB0ZW1wbGF0ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91bGQgbm90IHNlcmlhbGl6ZSc7CisgICAgdmFy
IGlubmVyVGVtcGxhdGUgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQuZmlyc3RFbGVtZW50
Q2hpbGQ7CisgICAgaW5uZXJUZW1wbGF0ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJykpLmlubmVyVGV4dCA9ICdzaG91bGQgbm90IHNlcmlhbGl6ZSBlaXRoZXInOwor
CisgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gdGVtcGxhdGUuaW5uZXJIVE1MOworICAgIGlmICh0
ZW1wbGF0ZS5jaGlsZE5vZGVzLmxlbmd0aCAhPSAxKSAvLyBUaGUgb25seSBjaGlsZCBzaG91bGQg
YmUgdGhlIHNwYW4gdGhhdCB3YXMgYWRkZWQgYWJvdmUuCisgICAgICAgIHJldHVybjsKKworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lclRleHQgPSB0ZW1wbGF0ZS5p
bm5lckhUTUw7CisgICAgdmFyIHRlbXBsYXRlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rl
bXBsYXRlJyk7CisgICAgdGVtcGxhdGUyLmlubmVySFRNTCA9ICc8dGVtcGxhdGU+PC90ZW1wbGF0
ZT4nOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZSB0ZXN0IGFzc2VydHMg
dGhhdCB0ZW1wbGF0ZSBjb250ZW50cyBhcmUgc2VyaWFsaXplZCB3aXRoIGlubmVySFRNTCBhbmQg
aXRzIGNoaWxkcmVuIGFyZSBpZ25vcmVkLjwvcD4KKzx0ZW1wbGF0ZSBpZD0idGVtcGxhdGUiPjxk
aXY+Q29udGVudHMgMQorICA8dGVtcGxhdGU+Q29udGVudHMgMjwvdGVtcGxhdGU+Cis8L2Rpdj48
L3RlbXBsYXRlPgorPGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI3MDJhZWFlZTM5MGY4MTZlNmE1MWU5Y2IyZWMyMTQyYzE3Njdj
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L293bmVyRG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK1Rlc3Qg
SFRNTFRlbXBsYXRlRWxlbWVudCBjb250ZW50IG93bmVyRG9jdW1lbnQKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVtcGxhdGUub3duZXJEb2N1bWVudCBpcyBkb2N1bWVu
dAorUEFTUyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3Vt
ZW50IGlzIHRydWUKK1BBU1MgZG9jdW1lbnQgaXMgbm90IHRlbXBsYXRlQ29udGVudE93bmVyRG9j
dW1lbnQKK1BBU1MgdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQgaXMg
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBpbm5lclRlbXBsYXRlLm93bmVyRG9j
dW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBpbm5lclRlbXBsYXRl
LmNvbnRlbnQub3duZXJEb2N1bWVudCBpcyB0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50CitQ
QVNTIGlubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBp
cyB0cnVlCitQQVNTIHRlbXBsYXRlMi5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNTIHRl
bXBsYXRlMi5jb250ZW50Lm93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudAorUEFTUyBkZi5vd25lckRvY3VtZW50IGlzIGRvY3VtZW50CitQQVNTIHNwYW4ub3duZXJE
b2N1bWVudCBpcyBkb2N1bWVudAorUEFTUyBkZi5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQKK1BBU1Mgc3Bhbi5vd25lckRvY3VtZW50IGlzIHRlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQKK1BBU1MgdGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgdGVtcGxhdGUuY29udGVudCA9IGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJ0ZXh0Iik7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNo
RXJyb3I6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHRlbXBsYXRlLmNvbnRlbnQgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChkaXYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJy
b3I6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHRlbXBsYXRlMy5vd25lckRvY3VtZW50IGlzIGRv
Y3VtZW50CitQQVNTIHRlbXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZTMuY29udGVudC5maXJzdENoaWxkLm93
bmVyRG9jdW1lbnQgaXMgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvb3duZXJEb2N1bWVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDQ1MTkyYjFmYjQ5YmNiNzYzNjdiYTVkNTEzOWNmNTQ4NjViY2RjYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQvb3duZXJEb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRlbXBsYXRlIGlkPSJ0ZW1wbGF0ZSI+PHNwYW4+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zcGFu
PjwvdGVtcGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlMiI+PHNwYW4+PC9zcGFuPjwvdGVt
cGxhdGU+Cis8dGVtcGxhdGUgaWQ9InRlbXBsYXRlMyI+PHN2Zz48L3N2Zz48L3RlbXBsYXRlPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRl
bnQgb3duZXJEb2N1bWVudCcpOworCitpZiAoIXdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50KQor
ICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVzdCByZXF1aXJlcyBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCknKTsKKwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRl
Jyk7CitzaG91bGRCZSgndGVtcGxhdGUub3duZXJEb2N1bWVudCcsICdkb2N1bWVudCcpOworCit2
YXIgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCA9IHRlbXBsYXRlLmNvbnRlbnQub3duZXJE
b2N1bWVudDsKK3Nob3VsZEJlVHJ1ZSgndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0
YW5jZW9mIEhUTUxEb2N1bWVudCcpOworc2hvdWxkTm90QmUoJ2RvY3VtZW50JywgJ3RlbXBsYXRl
Q29udGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZS5jb250ZW50LmZpcnN0
Q2hpbGQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CisK
K3ZhciBpbm5lclRlbXBsYXRlID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkLmZpcnN0Q2hp
bGQ7CitzaG91bGRCZSgnaW5uZXJUZW1wbGF0ZS5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCdpbm5lclRlbXBsYXRlLmNvbnRlbnQub3du
ZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25lckRvY3VtZW50Jyk7CitzaG91bGRCZVRy
dWUoJ2lubmVyVGVtcGxhdGUub3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcp
OworCit2YXIgdGVtcGxhdGUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlMicp
Oworc2hvdWxkQmUoJ3RlbXBsYXRlMi5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91
bGRCZSgndGVtcGxhdGUyLmNvbnRlbnQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRP
d25lckRvY3VtZW50Jyk7CisKK3ZhciBkZiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKK3ZhciBzcGFuID0gZGYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c3BhbicpKTsKK3Nob3VsZEJlKCdkZi5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CitzaG91
bGRCZSgnc3Bhbi5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CisKK3RlbXBsYXRlLmNvbnRl
bnQgPSBkZjsKK3Nob3VsZEJlKCdkZi5vd25lckRvY3VtZW50JywgJ3RlbXBsYXRlQ29udGVudE93
bmVyRG9jdW1lbnQnKTsKK3Nob3VsZEJlKCdzcGFuLm93bmVyRG9jdW1lbnQnLCAndGVtcGxhdGVD
b250ZW50T3duZXJEb2N1bWVudCcpOworCitzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsnKTsKK3Nob3VsZFRocm93KCd0ZW1wbGF0
ZS5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsnKTsKK2lmICh3aW5k
b3cuV2ViS2l0U2hhZG93Um9vdCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICBzaG91bGRUaHJvdygndGVtcGxhdGUuY29udGVudCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KGRpdiknKTsKK30KKwordmFyIHRlbXBsYXRlMyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZW1wbGF0ZTInKTsKK3Nob3VsZEJlKCd0ZW1wbGF0ZTMub3duZXJEb2N1bWVu
dCcsICdkb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRlMy5jb250ZW50Lm93bmVyRG9jdW1l
bnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmUoJ3RlbXBsYXRl
My5jb250ZW50LmZpcnN0Q2hpbGQub3duZXJEb2N1bWVudCcsICd0ZW1wbGF0ZUNvbnRlbnRPd25l
ckRvY3VtZW50Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50
WEhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmNjliZmZkOTFkMWVmOTdmNjFkZjZlZTNh
Njk3MDA5Y2NhMDc1YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L293bmVyRG9jdW1lbnRYSFRNTC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdCBIVE1MVGVtcGxhdGVFbGVtZW50IGNvbnRlbnQgb3duZXJEb2N1bWVu
dCBpbiBYSFRNTCBEb2N1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBkb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCBpcyBmYWxzZQorUEFTUyBkb2N1bWVu
dCBpcyBub3QgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudAorUEFTUyB0ZW1wbGF0ZUNvbnRl
bnRPd25lckRvY3VtZW50IGluc3RhbmNlb2YgSFRNTERvY3VtZW50IGlzIGZhbHNlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhU
TUwueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L293bmVy
RG9jdW1lbnRYSFRNTC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU4MzhhNjk4OTE3YjVjN2QxMDNiNjk4
NGNlZTc2MDYyMzk1NzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9vd25lckRvY3VtZW50WEhUTUwueGh0bWwKQEAgLTAsMCArMSwx
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0IEhUTUxUZW1wbGF0ZUVs
ZW1lbnQgY29udGVudCBvd25lckRvY3VtZW50IGluIFhIVE1MIERvY3VtZW50Jyk7CisKK2lmICgh
d2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQpCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IHJl
cXVpcmVzIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKScpOworCitzaG91bGRCZUZhbHNlKCdkb2N1
bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOwordmFyIHRlbXBsYXRlNCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7Cit2YXIgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1
bWVudCA9IHRlbXBsYXRlNC5jb250ZW50Lm93bmVyRG9jdW1lbnQ7CitzaG91bGROb3RCZSgnZG9j
dW1lbnQnLCAndGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCcpOworc2hvdWxkQmVGYWxzZSgn
dGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCBpbnN0YW5jZW9mIEhUTUxEb2N1bWVudCcpOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGli
L3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMv
dGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYWU4MWVmZGRmZGM0ZDhmODY3NzFjNjJjNGExMzk3
MjQwMmJhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJj
ZXMvdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsODQzIEBACisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
PkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdt
ZW50Cit8ICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0
ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgIkhlbGxvIgorfCAg
IDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0
YQorPGh0bWw+PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50Cit8ICAgICAgICAgIkhlbGxvIgorfCAgIDxib2R5PgorCisjZGF0YQorPGhlYWQ+
PHRlbXBsYXRlPjxkaXY+PC9kaXY+PC90ZW1wbGF0ZT48L2hlYWQ+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1
bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8ZGl2
Pjx0ZW1wbGF0ZT48ZGl2PjxzcGFuPjwvdGVtcGxhdGU+PGI+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8ZGl2
PgorfCAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPGI+CisKKyNkYXRhCis8ZGl2Pjx0ZW1w
bGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAg
ICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGRpdj48
L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PC90
ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFk
PgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxh
dGU+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48ZGl2Pjx0ZW1wbGF0ZT48L3RlbXBsYXRl
PjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxi
b2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3Rl
bXBsYXRlPjxkaXY+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+ICAg
PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIiAgICIK
K3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorCisjZGF0
YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rib2R5PgorI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxl
PgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3Rib2R5
PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8
ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48
dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT48L3RhYmxlPgorI2Vycm9ycworI2Rv
Y3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgor
fCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48L3RlbXBsYXRl
PjwvdGhlYWQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKworI2RhdGEKKzx0YWJsZT48dGZv
b3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Zm9vdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8
aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRm
b290PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorCisjZGF0YQorPHNlbGVjdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxz
ZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQK
KworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT48
L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9j
dW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGVtcGxhdGU+
PG9wdGlvbj48L29wdGlvbj48L3NlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjwvdGVtcGxhdGU+Cisj
ZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxvcHRpb24+Cit8ICAgICAg
ICAgPG9wdGlvbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVt
cGxhdGU+PG9wdGlvbj48L3NlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgPG9wdGlvbj4KKworI2RhdGEK
KzxzZWxlY3Q+PG9wdGlvbj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxl
Y3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAg
I2RvY3VtZW50LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxl
Y3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKKwor
I2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+CisjZXJyb3JzCisjZG9j
dW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0Pgor
fCAgICAgICA8b3B0aW9uPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2RvY3VtZW50
LWZyYWdtZW50CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PHRlbXBsYXRlPjxv
cHRpb24+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJv
ZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8b3B0aW9uPgorCisj
ZGF0YQorPHRhYmxlPjx0aGVhZD48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0YWJsZT4KK3wgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFi
bGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1l
bnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAg
ICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAg
IDx0aGVhZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48dGVtcGxhdGU+PHRkPjwvdHI+PGRpdj48
L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAg
PGRpdj4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+PC90aGVh
ZD48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAg
IDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8dGFibGU+PHRo
ZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50
Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAg
ICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgICAgIDx0cj4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRy
PjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAg
ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgPHRyPgorCisjZGF0YQorPHRh
YmxlPjx0cj48dGVtcGxhdGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAg
ICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBs
YXRlPjx0cj48dGVtcGxhdGU+PHRkPjwvdGVtcGxhdGU+PC90cj48L3RlbXBsYXRlPjwvdGFibGU+
CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8
ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAg
ICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICAgICAgPHRkPgorCisj
ZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+
PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4K
K3wgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAg
ICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dGQ+PC90ZW1w
bGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9k
eT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0
ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+
PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3Vt
ZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgor
fCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAg
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0
ZD4KKworI2RhdGEKKzx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+
Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPGNvbD4KKworI2RhdGEKKzxmcmFtZXNl
dD48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PC90ZW1wbGF0ZT48L2ZyYW1lc2V0PgorI2Vycm9y
cworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPGZyYW1l
PgorCisjZGF0YQorPHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvZnJhbWVzZXQ+PGZyYW1lPjwv
ZnJhbWU+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAg
ICAgPGZyYW1lPgorfCAgICAgICAgIDxmcmFtZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1w
bGF0ZT48ZGl2PjxmcmFtZXNldD48c3Bhbj48L3NwYW4+PC9kaXY+PHNwYW4+PC9zcGFuPjwvdGVt
cGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8
dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8
ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICA8c3Bhbj4KK3wgICA8Ym9keT4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48ZGl2PjxmcmFtZXNldD48c3Bhbj48L3NwYW4+PC9kaXY+PHNwYW4+
PC9zcGFuPjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1l
bnQtZnJhZ21lbnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAg
ICAgPHNwYW4+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHNjcmlwdD52YXIgaSA9IDE7PC9z
Y3JpcHQ+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3Vt
ZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHNjcmlwdD4KK3wgICAgICAgICAgICJ2YXIgaSA9IDE7
IgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PGRpdj48L2Rp
dj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGJvZHk+PHRl
bXBsYXRlPjx0cj48L3RyPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+Cit8
ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90cj48
dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxo
ZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJh
Z21lbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisKKyNkYXRhCis8Ym9keT48
dGVtcGxhdGU+PHRkPjwvdGQ+PHRib2R5Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisj
ZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxh
dGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAg
ICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PGNhcHRpb24+PC9jYXB0
aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9k
eT48dGVtcGxhdGU+PHRkPjwvdGQ+PGNvbGdyb3VwPjwvY2FwdGlvbj48dGQ+PC90ZD48L3RlbXBs
YXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5
PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAg
ICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3Rk
PjwvdGFibGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRt
bD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2Rv
Y3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEK
Kzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGJvZHk+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNl
cnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAg
IDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgor
fCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48Y2FwdGlv
bj48dHI+PC90cj48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+
PHRlbXBsYXRlPjx0cj48L3RyPjwvdGFibGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMK
KyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1w
bGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAg
ICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGhlYWQ+PC90aGVhZD48Y2FwdGlv
bj48L2NhcHRpb24+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVu
dAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wg
ICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDxj
YXB0aW9uPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGhl
YWQ+PC90aGVhZD48L3RhYmxlPjx0Ym9keT48L3Rib2R5PjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vy
cm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAg
PHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8dGhlYWQ+
Cit8ICAgICAgICAgPHRib2R5PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxkaXY+PHRyPjwv
dHI+PC9kaXY+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48ZW0+SGVs
bG88L2VtPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhl
YWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFn
bWVudAorfCAgICAgICAgIDxlbT4KK3wgICAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzxib2R5
Pjx0ZW1wbGF0ZT48IS0tY29tbWVudC0tPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQK
K3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDwhLS0gY29tbWVudCAtLT4KKworI2Rh
dGEKKzxib2R5Pjx0ZW1wbGF0ZT48c3R5bGU+PC9zdHlsZT48dGQ+PC90ZD48L3RlbXBsYXRlPgor
I2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAg
ICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8c3R5
bGU+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxtZXRhPjx0ZD48
L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+
Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVu
dAorfCAgICAgICAgIDxtZXRhPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1w
bGF0ZT48bGluaz48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxo
dG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAj
ZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICA8bGluaz4KK3wgICAgICAgICA8dGQ+CisKKyNk
YXRhCis8Ym9keT48dGVtcGxhdGU+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGVtcGxhdGU+PHRkPjwv
dGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50
Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8
ICAgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGFibGU+
PGNvbGdyb3VwPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjwvdGVtcGxhdGU+PC9jb2xncm91cD48L3Rh
YmxlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgICAgICA8
Y29sPgorCisjZGF0YQorPGJvZHkgYT1iPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2Pjxib2R5IGM9ZD48
ZGl2PjwvZGl2PjwvYm9keT48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAor
fCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIGE9ImIiCit8ICAgICA8dGVt
cGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDxkaXY+Cit8ICAg
ICAgICAgPGRpdj4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGRpdj48aHRtbCBiPWM+
PHNwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBhPSJi
IgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21l
bnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgPGJvZHk+CisKKyNk
YXRhCis8aHRtbCBhPWI+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PGh0bWwgYj1jPjxjb2w+PC9jb2w+
PC90ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBhPSJiIgorfCAg
IDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wg
ICAgICAgICA8Y29sPgorfCAgICAgICAgIDxjb2w+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8aHRt
bCBhPWI+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjxodG1sIGI9Yz48ZnJhbWU+PC9mcmFtZT48
L3RlbXBsYXRlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAg
PGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgIDxmcmFtZT4KK3wgICAgICAgICA8ZnJhbWU+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8
Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PHRkPjwvdGQ+PC90
ZW1wbGF0ZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8
Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAg
ICAgICAgPHRyPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAorfCAgICAgICAgIDx0ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGli
L3J1bi10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW4tdGVt
cGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZmUzMjRiMDEyOWU2MWM5MTI0ZTU1ODA5
MjgyYTk1ZDBiYWFhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW4tdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK3Jlc291cmNlcy90ZW1wbGF0
ZS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjgxMTI5YTBlMTZmZmVhYzQ0NDliM2U5MTdhYzRkNDE5Y2I2NGZlNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCkBAIC0wLDAgKzEs
OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0PgordmFyIHRlc3RfZmlsZXMgPSBbCisgICdy
ZXNvdXJjZXMvdGVtcGxhdGUuZGF0JywKK10KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1NTEzNzA4YzA0NzMy
NzRlYTI1MTFlOTcxYzM2ZGYxNThlMWI3ZTJiLi41MDIzYzhhNWJhMzQzNWI5M2JhNDQ3ZjNiODJh
OTc2NTQyMzJjYWFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMzEwLDYgKzMxMCwxMCBAQCBmYXN0L3RleHQvdW5pY29kZS12YXJpYXRpb24tc2VsZWN0
b3IuaHRtbAogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtZW50cmllcy5odG1sCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9maWxlc3lzdGVtLXVybHMtbWF0Y2gt
c2VsZi5odG1sCiAKKyMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgorZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAoraHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKKwog
IyBUcmFuc3BhcmVudCBpbWFnZSBiZWluZyBwcm9kdWNlZAogZmFzdC9mcmFtZXMvdHJhbnNwYXJl
bnQtc2Nyb2xsYmFyLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBiOGFhYmJmNzE2OGVjMTU4Y2M5MDQzNTc2YTZhZTdiM2U1MzcyNmJkLi40Y2U1
NGY5OGUwYWY1MTM3NWQxZjRjNDcyYWU0OTk4M2U0OGNkNDc0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzcsNiArNzcsMTAgQEAgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQtdHlwZS1kYXNoYm9hcmQuaHRtbCBbIFdvbnRG
aXggXQogIyBFTkFCTEUoRFJBR0dBQkxFX1JFR0lPTikgaXMgZGlzYWJsZWQKIGZhc3QvY3NzL2Ry
YWdnYWJsZS1yZWdpb24tcGFyc2VyLmh0bWwgWyBXb250Rml4IF0KIAorIyBFTkFCTEUoVEVNUExB
VEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCit3ZWJraXQub3JnL2IvMTAzNTcgZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU3IGh0bWw1bGliL3J1
bi10ZW1wbGF0ZS5odG1sIFsgU2tpcCBdCisKICMgVGhlc2UgdGVzdCAtYXBwbGUtIGFuZCAta2h0
bWwtIHByZWZpeGVkIENTUyBwcm9wZXJ0aWVzLCB3aGljaCB3ZSBkb24ndCBzdXBwb3J0LgogaW5z
cGVjdG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMuaHRtbCBbIFdvbnRGaXggXQogZmFzdC9jc3Mv
YXBwbGUtcHJlZml4Lmh0bWwgWyBXb250Rml4IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZThjM2UwNTFhOTRjZGFiMTljNWQxM2YxM2EyODIzMmYyNmRm
MmI3YS4uOTg5MmU3MjFhMGIxMGUzZDk3NjhmYWZiNGU0MjJiZmZlODAzYjFlMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQzMiw2ICs0MzIsMTAgQEAg
ZmFzdC9kb20vc2hhZG93CiBlZGl0aW5nL3NoYWRvdwogaW5zcGVjdG9yL2VsZW1lbnRzL3VwZGF0
ZS1zaGFkb3dkb20uaHRtbAogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxl
ZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKK2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5o
dG1sCisKICMgSlNDIGRvZXMgbm90IHN1cHBvcnQgc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3Jp
Z2luIChodHRwOi8vd2Via2l0Lm9yZy9iLzYxNTQwKQogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA0YmJhNGExNDYyYWFkMGZkMGM3NjUyMTkxZTE0OWY4M2Zj
ODZiOTEyLi44Y2Q1NzVmMDM3MGIwYTFjZGQzMzM3MGRiN2FiM2VlOTYwYjRlN2UyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OCw2ICsxODgsMTAgQEAg
ZmFzdC9kb20vc2hhZG93CiBmYXN0L2ZyYW1lcy9kZXRhY2hlZC1zaGFkb3ctZnJhbWUuaHRtbAog
aW5zcGVjdG9yL2VsZW1lbnRzL3VwZGF0ZS1zaGFkb3dkb20uaHRtbAogCisjIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQK
K2h0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKICMgRmFpbCB1bnRpbCBTVUJQSVhFTF9MQVlP
VVQgaXMgZW5hYmxlZAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODU1MzIKIGZhc3Qvc3ViLXBpeGVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGJhODE4ZDYxYThlMDdjODkzMDk3Njc1YjNlYzUxZDMzYjIzZjA3YWUuLmE5
MDIyYTllY2M2MmE1YTg2YzQ2ZTkxMzkwYjI0ODcyNGQyNzgyZmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTI3LDYgKzE1MjcsMTAgQEAgZmFzdC9y
ZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93Lmh0bWwKIGVkaXRpbmcvc2hhZG93CiBmYXN0L2Rv
bS9zaGFkb3cKIAorIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCitmYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorCiAj
IENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0Lm9yZy9i
LzU3MzEyCiBmYXN0L3JlZ2lvbnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2E3YzIwZTNmMzRiM2IxMjQzYTMwNzI2MTkyM2Q0OWQy
OWJjMTAzOC4uYjEyYWRiNWFiZDU4NmU2OGY2ZGVjZDZjYWNlMDZlYmY5MmI1ZTFlOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDYy
LDYgKzIwNjIsMTAgQEAgZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93Lmh0bWwKIGVk
aXRpbmcvc2hhZG93CiBmYXN0L2RvbS9zaGFkb3cKIAorIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkgaXMgZGlzYWJsZWQuCitmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CitodG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbAorCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVk
LiBodHRwOi8vd2Via2l0Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIGIvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzCmluZGV4IDUzYTAwMWZlZmRlMjg4MWFlZjYxY2QwNjkw
MjcyZmM2ZTE1YjFlOTEuLmM3ZmRmMTdmMjBhNDI5YzEwYzZkOGIzYTE5NmRmYjkwOTQ0NjJiMGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcworKysg
Yi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMKQEAgLTIyMCwxNiArMjIw
LDI0IEBAIE1hcmt1cC5fZ2V0ID0gZnVuY3Rpb24obm9kZSwgZGVwdGgpCiAgICAgY2FzZSBOb2Rl
LkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09ICIj
c2hhZG93LXJvb3QiKQogICAgICAgICAgIHN0ciArPSAiPHNoYWRvdzpyb290PiI7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICBzdHIgKz0gIiNkb2N1bWVudC1mcmFnbWVudCI7CiAgICAgfQotCi0g
ICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBsZW47
IGkrKykgewotICAgICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJr
ZXIobm9kZSwgaSk7Ci0gICAgICAgIGlmIChzZWxlY3Rpb24pCi0gICAgICAgICAgICBzdHIgKz0g
TWFya3VwLl9pbmRlbnQoZGVwdGggKyAxKSArIHNlbGVjdGlvbjsKLQotICAgICAgICBzdHIgKz0g
TWFya3VwLl9nZXQobm9kZS5jaGlsZE5vZGVzW2ldLCBkZXB0aCArIDEpOworICAgIAorICAgIAor
ICAgIC8vIEhUTUwgVGVtcGxhdGUgZWxlbWVudHMgc2VyaWFsaXplIHRoZWlyIGNvbnRlbnQgRG9j
dW1lbnRGcmFnbWVudCwgYW5kIE5PVCB0aGVpciBjaGlsZHJlbi4KKyAgICBpZiAobm9kZS5uYW1l
c3BhY2VVUkkgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgJiYgbm9kZS50YWdOYW1l
ID09ICdURU1QTEFURScpIHsKKyAgICAgICAgc3RyICs9IE1hcmt1cC5fZ2V0KG5vZGUuY29udGVu
dCwgZGVwdGggKyAxKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVu
ID0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICB2
YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rpb25NYXJrZXIobm9kZSwgaSk7CisgICAg
ICAgICAgICBpZiAoc2VsZWN0aW9uKQorICAgICAgICAgICAgICAgIHN0ciArPSBNYXJrdXAuX2lu
ZGVudChkZXB0aCArIDEpICsgc2VsZWN0aW9uOworICAgIAorICAgICAgICAgICAgc3RyICs9IE1h
cmt1cC5fZ2V0KG5vZGUuY2hpbGROb2Rlc1tpXSwgZGVwdGggKyAxKTsKKyAgICAgICAgfQogICAg
IH0KLQorICAgIAogICAgIHN0ciArPSBNYXJrdXAuX2dldFNoYWRvd0hvc3RJZlBvc3NpYmxlKG5v
ZGUsIGRlcHRoKTsKICAgICAKICAgICB2YXIgc2VsZWN0aW9uID0gTWFya3VwLl9nZXRTZWxlY3Rp
b25NYXJrZXIobm9kZSwgaSk7CkBAIC0yODQsNyArMjkyLDcgQEAgTWFya3VwLl9OQU1FU1BBQ0Vf
VVJJX01BUCA9IHsKIAogTWFya3VwLl9nZXRTZWxlY3Rpb25Gcm9tTm9kZSA9IGZ1bmN0aW9uKG5v
ZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRTZWxl
Y3Rpb24oKTsKKyAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3ID8gbm9k
ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpIDogbnVsbDsKIH0KIAog
TWFya3VwLl9TRUxFQ1RJT05fRk9DVVMgPSAnPCNzZWxlY3Rpb24tZm9jdXM+JzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>