<?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>35937</bug_id>
          
          <creation_ts>2010-03-09 11:58:11 -0800</creation_ts>
          <short_desc>Support for HTMLProgressElement</short_desc>
          <delta_ts>2010-03-18 19:16:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HTML5</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32934</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>michelangelo</cc>
    
    <cc>morrita</cc>
    
    <cc>Ms2ger</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>197712</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-09 11:58:11 -0800</bug_when>
    <thetext>Add support for HTMLProgressElement. 
http://www.w3.org/TR/html5/forms.html#the-progress-element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197720</commentid>
    <comment_count>1</comment_count>
      <attachid>50339</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-09 12:27:23 -0800</bug_when>
    <thetext>Created attachment 50339
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197758</commentid>
    <comment_count>2</comment_count>
      <attachid>50344</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-09 13:57:51 -0800</bug_when>
    <thetext>Created attachment 50344
Patch v2

I hope the png applies ok this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197764</commentid>
    <comment_count>3</comment_count>
      <attachid>50346</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-09 14:10:27 -0800</bug_when>
    <thetext>Created attachment 50346
Patch v3

Resolve conflict in Layout/platform/gtk/Skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197780</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-09 14:38:12 -0800</bug_when>
    <thetext>Attachment 50346 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/495008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197784</commentid>
    <comment_count>5</comment_count>
      <attachid>50346</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-09 14:42:21 -0800</bug_when>
    <thetext>Comment on attachment 50346
Patch v3

Great to see you tackling this form element.

&gt; +#if PLATFORM(QT)
&gt; +#if !defined(ENABLE_PROGRESS_TAG)
&gt; +#define ENABLE_PROGRESS_TAG 1
&gt; +#endif
&gt; +#else
&gt; +#if !defined(ENABLE_PROGRESS_TAG)
&gt; +#define ENABLE_PROGRESS_TAG 0
&gt; +#endif
&gt; +#endif

We&apos;ve handled different ENABLE defaults per platform earlier in the file in the past. See the blocks above with things like #if PLATFORM(WX) around them.

In other cases we handled those defaults outside this file entirely in the build system.

Lets keep to one of those if possible.

&gt; +        was modified to actualy draw the progress element.

Typo: &quot;actualy&quot;

Seems like there&apos;s a lot of work here to make the progress element code conditional. Can we do this in some simpler way with less logic in all the build systems? It seems to me that it&apos;s even OK to compile the code as long as we don&apos;t instantiate HTMLProgressElement on other platforms. I presume the plan is to get this working on the other platforms as soon as possible, and taking a little extra code size in the meantime seems OK to me.

&gt; +/* progress */
&gt; +
&gt; +progress {
&gt; +    -webkit-appearance: progress-bar;
&gt; +    padding: initial;
&gt; +    border: initial;
&gt; +    margin: 2px;
&gt; +}
&gt; +
&gt; +progress::-webkit-progress-bar {
&gt; +    -webkit-appearance: progress-bar;
&gt; +}

What effect does this have on the platforms with no progress support compiled in?

&gt; +HTMLProgressElement::HTMLProgressElement(const QualifiedName&amp; tagName, Document* doc, HTMLFormElement* form)

Please use &quot;document&quot; instead of &quot;doc&quot;.

&gt; +    m_max = 1;
&gt; +    m_value = 1;
&gt; +    m_isDeteminate = false;

Please use member initialization instead of assignment.

&gt; +HTMLProgressElement::~HTMLProgressElement()
&gt; +{
&gt; +}

I suggest not explicitly declaring or defining the destructor if it doesn&apos;t need any custom code in it.

&gt; +void HTMLProgressElement::parseMappedAttribute(MappedAttribute* attr)
&gt; +{
&gt; +    if (attr-&gt;name() == valueAttr)
&gt; +        setValue(attr-&gt;value().toFloat());
&gt; +    else if (attr-&gt;name() == maxAttr)
&gt; +        setMax(attr-&gt;value().toFloat());

This is wrong. DOM bindings for attributes such as value and max need to change the attribute values. Those in turn change the behavior of the class. It&apos;s never right for parseMappedAttrbute to call the actual DOM binding functin.

&gt; +void HTMLProgressElement::defaultEventHandler(Event* evt)
&gt; +{
&gt; +    HTMLFormControlElement::defaultEventHandler(evt);
&gt; +}

This should not be overridden if we don&apos;t need to change what it does. Also please use &quot;event&quot; not &quot;evt&quot;.

&gt; +float HTMLProgressElement::value() const
&gt; +{
&gt; +    if (m_value &gt; m_max)
&gt; +        return m_max;
&gt; +    return m_value;
&gt; +}

This is probably wrong for the DOM value attribute. It should just return the result of valueAttr. The best way to do that is to use the Reflect keyword in the DOM binding.

&gt; +void HTMLProgressElement::setValue(float value)
&gt; +{
&gt; +    if (isnan(value) || value &lt; 0)
&gt; +        m_value = 0;
&gt; +    else
&gt; +        m_value = value;
&gt; +    m_isDeteminate = true;
&gt; +}

Same issue here. This function should just set valueAttr.

Typo: m_isDeteminate should instead be m_isDeterminate.

The code to handle nan is unnecessarily complex. It could be:

    m_value = value &gt;= 0 ? value : 0;

But I don&apos;t think this should exist in this form. I don&apos;t think we should store m_value.

&gt; +void HTMLProgressElement::setMax(float max)
&gt; +{
&gt; +    if (!isnan(max) &amp;&amp; max &gt; 0)
&gt; +        m_max = max;
&gt; +    else
&gt; +        m_max = 1;
&gt; +}

Same thing here. The nan aspect of this function is handled correctly if you write it like this:

    m_max = max &gt; 0 ? max : 1;

&gt; +public:
&gt; +    HTMLProgressElement(const QualifiedName&amp;, Document*, HTMLFormElement* = 0);

For new classes it&apos;s best to make the constructor private and provide a public create function. Eventually all classes will work this way.

&gt; +    virtual ~HTMLProgressElement();

You should just leave this out.

&gt; +    virtual const AtomicString&amp; formControlType() const;
&gt; +
&gt; +    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
&gt; +
&gt; +    virtual void parseMappedAttribute(MappedAttribute*);

These should all be private.

&gt; +    virtual void defaultEventHandler(Event*);

You should just leave this out.

&gt; +    float value() const;
&gt; +    void setValue(float);
&gt; +
&gt; +    float max() const;
&gt; +    void setMax(float);

I don&apos;t think you need these, since [Reflect] in the IDL file should take care of it.

&gt; +    float position() const;

We may want to use double here instead of float. All numbers in JavaScript are doubles, so choosing float incurs a performance penalty. Not sure if there&apos;s some reason float is better.

&gt; +    // NodeList* labels;

Please don&apos;t include any commented-out code. It&apos;s almost certainly not correct to have NodeList.

&gt; +progress constructorNeedsFormElement, conditional=PROGRESS_TAG, createWithNew

You should not use createWithNew. Also, we should make a test case to show that the constructor really does need the form element. I&apos;m not sure that&apos;s needed for this.

If it is needed, we need a test to show the incorrect behavior you&apos;d otherwise get. And to try in other browsers. And read HTML5 to be sure it&apos;s helpful.

&gt; +RenderProgress::~RenderProgress()
&gt; +{
&gt; +}

Same comment about unneeded destructors.

&gt; +float RenderProgress::value() const
&gt; +{
&gt; +    HTMLProgressElement* element = static_cast&lt;HTMLProgressElement*&gt;(node());
&gt; +    if (element)
&gt; +        return element-&gt;value();
&gt; +    return 1;
&gt; +}

Do we really need this function? I don&apos;t think it&apos;s legal to have a RenderProgress with a node() of 0. Is this really done often enough that we need this helper function?

&gt; +float RenderProgress::maxProgress() const
&gt; +{
&gt; +    HTMLProgressElement* element = static_cast&lt;HTMLProgressElement*&gt;(node());
&gt; +    if (element)
&gt; +        return element-&gt;max();
&gt; +    return 1;
&gt; +}

Same comment.

review- because I think you&apos;ll want to make at least some of the changes I mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198266</commentid>
    <comment_count>6</comment_count>
      <attachid>50423</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-10 12:33:36 -0800</bug_when>
    <thetext>Created attachment 50423
Patch v4

Address most of the comments from Darin.

1. There should be no impact from the addition to html.css on platforms that don&apos;t support the progress tag. That&apos;s because the element would not be created.

2. I don&apos;t think &quot;value&quot; and &quot;max&quot; qualify as [reflect] attributes. If they are set with invalid values, those values are not accepted and some defaults are used instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198276</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-10 12:56:10 -0800</bug_when>
    <thetext>Attachment 50423 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/566031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198289</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-10 13:09:26 -0800</bug_when>
    <thetext>Attachment 50423 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/584023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198391</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-10 15:33:48 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; 1. There should be no impact from the addition to html.css on platforms that
&gt; don&apos;t support the progress tag. That&apos;s because the element would not be
&gt; created.

That’s incorrect. Today I can create a &lt;progress&gt; element and style it with rules that specify the progress tag. It won’t be a special type of element and will be handled as an inline element just as &lt;span&gt; is, but those style rules will change the rendering of existing web pages.

&gt; 2. I don&apos;t think &quot;value&quot; and &quot;max&quot; qualify as [reflect] attributes. If they are
&gt; set with invalid values, those values are not accepted and some defaults are
&gt; used instead.

If they are not [Reflect] they still do need to change the attribute you would get with getAttribute, not just a hidden internal value.

HTMLInputElement has a max attribute. Are you sure this should be different in this respect? To convince me, you need to demonstrate the expected behavior with test cases and then show me either another browser or HTML5 specification to make it clear the behavior it tests is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198445</commentid>
    <comment_count>10</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-10 18:12:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; That’s incorrect. Today I can create a &lt;progress&gt; element and style it with
&gt; rules that specify the progress tag. It won’t be a special type of element and
&gt; will be handled as an inline element just as &lt;span&gt; is, but those style rules
&gt; will change the rendering of existing web pages.
You are right. If a web site is using &lt;progress&gt; instead of &lt;span&gt; then there will be an additional 2px margin. I am not sure how common it is to use &lt;progress&gt; as if it was &lt;span&gt;.
To be on the safe side, is there a way to conditionally add the style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198450</commentid>
    <comment_count>11</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-10 18:32:34 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; If they are not [Reflect] they still do need to change the attribute you would
&gt; get with getAttribute, not just a hidden internal value.
&gt; 
&gt; HTMLInputElement has a max attribute. Are you sure this should be different in
&gt; this respect? To convince me, you need to demonstrate the expected behavior
&gt; with test cases and then show me either another browser or HTML5 specification
&gt; to make it clear the behavior it tests is correct.
The reason I wanted to keep these 2 parameters as members is that otherwise, every time we paint the progress bar, we would need to convert them from strings and verify their validity. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198460</commentid>
    <comment_count>12</comment_count>
      <attachid>50464</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-10 19:28:21 -0800</bug_when>
    <thetext>Created attachment 50464
Patch v5

Attempt to fix the various builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198546</commentid>
    <comment_count>13</comment_count>
      <attachid>50464</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-11 04:04:25 -0800</bug_when>
    <thetext>Comment on attachment 50464
Patch v5

I think an indeterminate &lt;progress&gt; should be animated, and progress bar controls of Windows and Mac needs animation even if their value are not changed. This patch seems to have no capability of such cases.


&gt; Index: WebCore/platform/qt/RenderThemeQt.cpp
&gt; ===================================================================
&gt; --- WebCore/platform/qt/RenderThemeQt.cpp	(revision 55826)
&gt; +++ WebCore/platform/qt/RenderThemeQt.cpp	(working copy)
&gt; +bool RenderThemeQt::paintProgressBar(RenderObject* o, const RenderObject::PaintInfo&amp; pi, const IntRect&amp; r)
&gt; +{
&gt; +    StylePainter p(this, pi);
&gt; +    if (!p.isValid())
&gt; +       return true;
&gt; +
&gt; +    QStyleOptionProgressBarV2 option;
&gt; +    if (p.widget)
&gt; +       option.initFrom(p.widget);
&gt; +    initializeCommonQStyleOptions(option, o);
&gt; +
&gt; +    RenderProgress* renderProgress = toRenderProgress(o);
&gt; +    HTMLProgressElement* element = static_cast&lt;HTMLProgressElement*&gt;(renderProgress-&gt;node());
&gt; +    option.rect = r;
&gt; +    option.maximum = element-&gt;max();
&gt; +    option.minimum = 0;
&gt; +    option.progress = element-&gt;value();
&gt; +
&gt; +    const QPoint topLeft = r.topLeft();
&gt; +    p.painter-&gt;translate(topLeft);
&gt; +    option.rect.moveTo(QPoint(0, 0));
&gt; +    option.rect.setSize(r.size());
&gt; +
&gt; +    p.drawControl(QStyle::CE_ProgressBar, option);
&gt; +    p.painter-&gt;translate(-topLeft);
&gt; +
&gt; +    return false;
&gt; +}

What is drawn if the progress element is indeterminate?

&gt; Index: WebCore/rendering/RenderProgress.cpp
&gt; ===================================================================
&gt; --- WebCore/rendering/RenderProgress.cpp	(revision 0)
&gt; +++ WebCore/rendering/RenderProgress.cpp	(revision 0)

&gt; +RenderProgress::RenderProgress(Element* element)
&gt; +    : RenderBlock(element)
&gt; +{
&gt; +    setSize(QSize(defaultProgressWidth, defaultProgressHeight));

Do not use QSize here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198607</commentid>
    <comment_count>14</comment_count>
      <attachid>50497</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-11 07:21:52 -0800</bug_when>
    <thetext>Created attachment 50497
Patch V6

Another attempt at fixing the mac build, and remove the QSize that snack in.

Kent, at the moment indeterminate progress bar looks quite boring. I&apos;d love to see if you have an idea of how to animate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198622</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-11 07:48:14 -0800</bug_when>
    <thetext>&gt; Kent, at the moment indeterminate progress bar looks quite boring. I&apos;d love to
&gt; see if you have an idea of how to animate it.

RenderImage uses a timer to show animation GIFs.  But it doesn&apos;t work well for progress bars because there are no way to paint a NSProcessIndicator with a specific animation state in OS X.
Probably a progress bar should be a Widget like a scroll bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198655</commentid>
    <comment_count>16</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-03-11 09:15:07 -0800</bug_when>
    <thetext>Making &lt;progress&gt; style rules conditional too seems bit overkill considering that:

- while technically it affects builds where the feature is not enabled, the effect is minimal and unlikely to break anything in practice
- there is plenty of precedence of not bothering (datagrid for example, and it has more invasive style too)
- we don&apos;t have good mechanism in place for conditional style rules, adding it for this feature seems overkill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198682</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-11 11:07:19 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; If they are not [Reflect] they still do need to change the attribute you would
&gt; &gt; get with getAttribute, not just a hidden internal value.
&gt; &gt; 
&gt; &gt; HTMLInputElement has a max attribute. Are you sure this should be different in
&gt; &gt; this respect? To convince me, you need to demonstrate the expected behavior
&gt; &gt; with test cases and then show me either another browser or HTML5 specification
&gt; &gt; to make it clear the behavior it tests is correct.
&gt; The reason I wanted to keep these 2 parameters as members is that otherwise,
&gt; every time we paint the progress bar, we would need to convert them from
&gt; strings and verify their validity. What do you think?

I think this is not a good design.

If you are caching values to make repaint efficient, you can do it differently and better:

    1) The cached value should be in the renderer, not the DOM. It can be recomputed as needed, cached, and the DOM can make calls to invalidate when the parameters change.

    2) The cached value should be a single integer, not a pair of floating point numbers, and this it can be used to avoid repainting when there are DOM changes that don&apos;t affect the display. Thus an insignificant value change could be optimized. Or a case where both value and max are changed, but the displayed progress level does not change.

Whether there is a cache or not, however, is not the primary question here. The question is observable behavior. If you set the max, it&apos;s important that getAttribute(&quot;max&quot;) reflect the new maximum. And since setAttribute lets you set the max attribute to any arbitrary string, the code needs to handle that. You should have test cases showing how that works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198684</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-11 11:09:37 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; You are right. If a web site is using &lt;progress&gt; instead of &lt;span&gt; then there
&gt; will be an additional 2px margin. I am not sure how common it is to use
&gt; &lt;progress&gt; as if it was &lt;span&gt;.

Probably not a major concern; but people can and do use custom elements of any name. This will be incompatible with the real &lt;progress&gt; element too.

&gt; To be on the safe side, is there a way to conditionally add the style?

I think a better way to do this is to shoot for adding something for all the platforms in as quick a sequence as possible instead of doing this for only one platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198785</commentid>
    <comment_count>19</comment_count>
      <attachid>50543</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-11 14:39:09 -0800</bug_when>
    <thetext>Created attachment 50543
Patch v7

Address comment #17. removed the caching of the attributes and added tests for setting and getting the attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198850</commentid>
    <comment_count>20</comment_count>
      <attachid>50543</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-11 16:58:22 -0800</bug_when>
    <thetext>Comment on attachment 50543
Patch v7

&gt; +    if (attr-&gt;name() == valueAttr) {
&gt; +        // do nothing

If there is no code here, what the progress bar to repaint?

&gt; +    } else if (attr-&gt;name() == maxAttr) {
&gt; +        // do nothing

Same question here.

&gt; +    if (hasAttribute(valueAttr)) {
&gt; +        bool ok;
&gt; +        double value = getAttribute(valueAttr).toDouble(&amp;ok);
&gt; +        if (!ok || value &lt; 0)
&gt; +            return 0;
&gt; +        return (value &gt; max()) ? max() : value;
&gt; +    }
&gt; +    return 1;
&gt; +}

It&apos;s unnecessarily inefficient to always check hasAttribute(valueAttr). There are two things you could do to tighten this up.

    1) Put the hasAttribute check inside the error handling code, just before the &quot;return 0&quot;.

    2) Put the result of getAttribute(valueAttr) into a local variable, and use it so you don&apos;t do a second hash table lookup.

If you did both, the code would look like this:

    const AtomicString&amp; valueString = getAttribute(valueAttr);
    bool ok;
    double value = valueString.toDouble(&amp;ok);
    if (!ok || value &lt; 0)
        return valueString.isNull() ? 1 : 0;
    return (value &gt; max()) ? max() : value;

&gt; +double HTMLProgressElement::max() const
&gt; +{
&gt; +    if (hasAttribute(maxAttr)) {
&gt; +        bool ok;
&gt; +        double max = getAttribute(maxAttr).toDouble(&amp;ok);
&gt; +        if (!ok || max &lt;= 0)
&gt; +            return 1;
&gt; +        return max;
&gt; +    }
&gt; +    return 1;
&gt; +}

No need for the hasAttribute check here. The error handling code will already kick in correctly and return 1.

&gt; +double HTMLProgressElement::position() const
&gt; +{
&gt; +    if (hasAttribute(valueAttr))
&gt; +        return value() / max();
&gt; +    return -1;
&gt; +}

We normally handle errors with early return, rather than having the success case be the early return.

&gt; +    HTMLProgressElement(const QualifiedName&amp;, Document*, HTMLFormElement* = 0);

No need for the default value here for HTMLFormElement*.

&gt; +        // readonly attribute NodeList labels;

Normally we don&apos;t check in commented-out code.

&gt; +RenderProgress::RenderProgress(Element* element)

The constructor should specifically take a HTMLProgressElement* rather than just an Element*.

&gt; +    : RenderBlock(element)

Should this instead inherit from RenderReplaced? What other render class were you basing this one on?

I&apos;m going to mark this review- because I don&apos;t see how this triggers a repaint when the progress element changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198919</commentid>
    <comment_count>21</comment_count>
      <attachid>50575</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-03-11 20:13:15 -0800</bug_when>
    <thetext>Created attachment 50575
Patch v8

This patch is addressing comment #20.

(In reply to comment #20)
&gt; Should this instead inherit from RenderReplaced? What other render class were
&gt; you basing this one on?

I was asking myself the same question. I chose RenderBlock after reading dHyatt&apos;s blog at 
&lt;http://webkit.org/blog/115/webcore-rendering-ii-blocks-and-inlines/&gt;

&quot;Form controls are actually a strange special case. They are still replaced elements, but because they are implemented by the engine, controls actually ultimately subclass from RenderBlock.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199397</commentid>
    <comment_count>22</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-13 13:11:28 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Should this instead inherit from RenderReplaced? What other render class were
&gt; you basing this one on?

Sorry Darin, for not answering the other half of your question. I based the rendering implementation on RenderSlider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199493</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-14 14:16:12 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Sorry Darin, for not answering the other half of your question. I based the
&gt; rendering implementation on RenderSlider.

If RenderSlider and RenderProgress are quite similar, then I suggest we make a common base class for code sharing. It can literally be named RenderSliderOrProgress or RenderBar or something along those lines. That would be better than copied and pasted code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199495</commentid>
    <comment_count>24</comment_count>
      <attachid>50575</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-14 14:25:49 -0700</bug_when>
    <thetext>Comment on attachment 50575
Patch v8

We need to get the looks for progress bars implemented on all platforms as soon as possible. It&apos;s not good to have all these conditionals. Generally speaking, though we have many of them, conditional features are bad for the WebKit project and the web platform!

&gt; +void HTMLProgressElement::parseMappedAttribute(MappedAttribute* attr)
&gt; +{
&gt; +    if (attr-&gt;name() == valueAttr) {
&gt; +        setNeedsStyleRecalc();
&gt; +    } else if (attr-&gt;name() == maxAttr) {
&gt; +        setNeedsStyleRecalc();
&gt; +    } else
&gt; +        HTMLFormControlElement::parseMappedAttribute(attr);
&gt; +}

Please use &quot;attribute&quot; rather than &quot;attr&quot;.

There should not be braces around these single-line if statement bodies. Not sure why the style checking script doesn&apos;t know that.

I don&apos;t understand why setNeedsStyleRecalc is the right thing to do here. How did you decide that was the right call? Do these attributes really change style? Is there a comparable call site elsewhere showing this is correct?

It&apos;s important to do precisely the minimum amount of calculation redrawing when the value or max of a progress element changes, because this is the use case for progress elements and we want good efficiency!

&gt; +void RenderProgress::updateFromElement()
&gt; +{
&gt; +    setNeedsLayoutAndPrefWidthsRecalc();
&gt; +}

Is this correct? How would a change to the element affect the layout and preferred widths?

Some of the strangest rules in this class are the rules for maximums of less than 1. For example, a maximum of 0.5 sets maximum to 0.5 but a maximum of 0 sets maximum to 1. I&apos;d like to see those test cases covered.

I&apos;m going to say r=me, because I think this is OK in its current form.

I have doubts that the way the DOM is connected to the rendering tree and the way that repainting is triggered is optimal here. When the progress element gets progressively larger numbers we should be able to see the minimum repainting work -- this will affect things like performance battery life.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199523</commentid>
    <comment_count>25</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-14 18:03:50 -0700</bug_when>
    <thetext>Thank you, Darin, for your review.
Follow-up bugs will address the leftover issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199524</commentid>
    <comment_count>26</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-14 18:20:14 -0700</bug_when>
    <thetext>Landed in r55980.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201270</commentid>
    <comment_count>27</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-03-18 06:56:17 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 50464 [details])
&gt; I think an indeterminate &lt;progress&gt; should be animated, and progress bar
&gt; controls of Windows and Mac needs animation even if their value are not
&gt; changed. This patch seems to have no capability of such cases.

The animation will be added in a later patch. Perhaps it was a bad judgement call to split it like that :-(

Qt is implementing the QProgressBar widget without instantiating NSProgressIndicator, by using HITheme API. Perhaps that would work for WebKit too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201681</commentid>
    <comment_count>28</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-18 19:16:33 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; Qt is implementing the QProgressBar widget without instantiating
&gt; NSProgressIndicator, by using HITheme API. Perhaps that would work for WebKit
&gt; too?

I didn&apos;t know HITheme API.  Thanks.
As for Windows, DrawFrameControl() doesn&apos;t support progress bars, but DrawThemeBackground() does.

I&apos;m not sure if we can support animation with these APIs.
Do you have a plan to implement progress bars for other ports?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50339</attachid>
            <date>2010-03-09 12:27:23 -0800</date>
            <delta_ts>2010-03-09 13:57:51 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>43915</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzM5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAg
ICAgICAgQWRkZWQgbmV3IGZsYWcgZm9yIDxwcm9ncmVzcz4gZWxlbWVudCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgVGhlIGZsYWcgaXMgdHVybmVkIG9uIG9ubCBmb3IgUXQgcGxhdGZvcm0uCisK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMC0wMy0wOSAgR2Fib3IgTG9raSAgPGxv
a2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA1NTQyMykKKysrIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MTksNiArODE5LDE2
IEBACiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oUVQpCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dSRVNTX1RBRykKKyNkZWZpbmUgRU5BQkxF
X1BST0dSRVNTX1RBRyAxCisjZW5kaWYKKyNlbHNlCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dS
RVNTX1RBRykKKyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX1RBRyAwCisjZW5kaWYKKyNlbmRpZgor
CiAjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCiAjZGVmaW5lIEVOQUJMRV9URVhUX0NB
UkVUIDEKICNlbmRpZgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw3OCBAQAorMjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICBB
ZGRlZCBzdXBwb3J0IGZvciBIVE1MUHJvZ3Jlc3NFbGVtZW50LgorICAgICAgICBUaGlzIGltcGxl
bWVudGF0aW9uIGlzIGVuYWJsZWQgb25seSBmb3IgUXQsIGJlY2F1c2Ugb25seSBSZW5kZXJUaGVt
ZVF0CisgICAgICAgIHdhcyBtb2RpZmllZCB0byBhY3R1YWx5IGRyYXcgdGhlIHByb2dyZXNzIGVs
ZW1lbnQuCisgICAgICAgIFRoZSBsYWJlbHMgYXR0cmlidXRlIG9mIHRoZSBwcm9ncmVzcyBlbGVt
ZW50IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYQorICAgICAgICBzZXBhcmF0ZSBwYXRjaC4KKwor
ICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVt
ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0
LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5wcmk6
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6CisgICAgICAgICogY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5saW5lVGFnTGlzdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHA6CisgICAgICAgICogaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQcm9ncmVzc0VsZW1lbnQ6On5IVE1MUHJvZ3Jlc3NFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQcm9ncmVzc0VsZW1lbnQ6Om1heCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpzZXRNYXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVu
dDo6cG9zaXRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmlzT3B0aW9uYWxGb3Jt
Q29udHJvbCk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbDogQWRkZWQu
CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
UXQ6OmFkanVzdFByb2dyZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVRdDo6cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVz
czo6UmVuZGVyUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6On5S
ZW5kZXJQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6YmFzZWxp
bmVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6Y2FsY1ByZWZX
aWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclByb2dyZXNzOjptYXhQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnJlbmRl
ck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmlzUHJvZ3Jlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1c3RT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRQcm9ncmVz
c0Jhcik6CisKIDIwMTAtMDMtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJl
dmlzaW9uIDU1NDIzKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Myw2ICsxNDMsOSBAQAogI2luY2x1ZGUgIkpTSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkpTSFRNTFBhcmFtRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNIVE1M
UHJlRWxlbWVudC5jcHAiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlICJKU0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlNIVE1MUXVvdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJK
U0hUTUxTZWxlY3RFbGVtZW50LmNwcCIKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDU1
NDIzKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODUsNiArMTg1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgSFRNTFBhcmFncmFwaEVsZW1lbnQg
XAogICAgIEhUTUxQYXJhbUVsZW1lbnQgXAogICAgIEhUTUxQcmVFbGVtZW50IFwKKyAgICBIVE1M
UHJvZ3Jlc3NFbGVtZW50IFwKICAgICBIVE1MUXVvdGVFbGVtZW50IFwKICAgICBIVE1MU2NyaXB0
RWxlbWVudCBcCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQgXApAQCAtNjIwLDYgKzYyMSwxMCBAQCBp
ZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX0RBVEFMSVNULCQoRkVBCiAgICAgSFRNTF9GTEFHUyA6
PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9EQVRBTElTVD0xCiBlbmRpZgogCitpZmVxICgkKGZpbmRz
dHJpbmcgRU5BQkxFX1BST0dSRVNTX1RBRywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfUFJP
R1JFU1NfVEFHKQorICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfUFJPR1JF
U1NfVEFHPTEKK2VuZGlmCisKIGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfVklERU8sJChGRUFU
VVJFX0RFRklORVMpKSwgRU5BQkxFX1ZJREVPKQogICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZM
QUdTKSBFTkFCTEVfVklERU89MQogZW5kaWYKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNTU0MjMpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQKICFjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVklERU89Lik6IERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKICFjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfUlVCWT0uKTogREVGSU5FUyArPSBFTkFCTEVfUlVCWT0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NBTkRCT1g9Lik6IERFRklORVMgKz0gRU5BQkxFX1NBTkRCT1g9MQorIWNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9QUk9HUkVTU19UQUc9Lik6IERFRklORVMgKz0gRU5BQkxF
X1BST0dSRVNTX1RBRz0xCiAKIGdyZWF0ZXJUaGFuKFFUX01JTk9SX1ZFUlNJT04sIDUpIHsKICAg
ICAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFXzNEX1JFTkRFUklORz0uKTogREVGSU5FUyArPSBF
TkFCTEVfM0RfUkVOREVSSU5HPTEKQEAgLTM2MCw2ICszNjEsNyBAQCBJRExfQklORElOR1MgKz0g
XAogICAgIGh0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQYXJh
bUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmlkbCBcCisgICAgaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBc
CiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuaWRsIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNTU0MjMpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDQxLDYgKzI0NDEsMTYgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX1hIVE1MTVA9MSkgewogICAgICAgICBodG1sL0hUTUxOb1NjcmlwdEVsZW1lbnQuY3Bw
CiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9QUk9HUkVTU19UQUc9MSkgeworICAgIEhF
QURFUlMgKz0gXAorICAgICAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBcCisgICAgICAg
IHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCisKKyAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAg
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9SZW5kZXJQ
cm9ncmVzcy5jcHAKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1FUX0JFQVJFUj0xKSB7
CiAgICAgSEVBREVSUyArPSBcCiAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya1N0
YXRlTm90aWZpZXJQcml2YXRlLmgKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgJKHJldmlzaW9uIDU1NDIzKQorKysgV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDExIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1MKICAgICAgICAgY2FzZSBPdXRlclNwaW5C
dXR0b25QYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3V0ZXJTcGlu
QnV0dG9uOwogICAgICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFBST0dSRVNTX0JBUikKKyAg
ICAgICAgY2FzZSBQcm9ncmVzc0JhclBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVQcm9ncmVzc0JhcjsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAg
IGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVTbGlkZXJIb3Jpem9udGFsOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuY3BwCShyZXZpc2lvbiA1NTQyMykKKysrIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4
dHJhY3RQc2V1ZG9UeXBlKCkgY28KICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgb25seU9mVHlwZSwgKCJvbmx5LW9mLXR5cGUiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG9wdGlvbmFsLCAoIm9wdGlvbmFsIikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdXRlclNwaW5CdXR0b24sICgiLXdlYmtpdC1vdXRlci1z
cGluLWJ1dHRvbiIpKTsKKyNpZiBFTkFCTEUoUFJPR1JFU1NfQkFSKQorICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcm9ncmVzc0JhciwgKCItd2Via2l0LXByb2dyZXNzLWJh
ciIpKTsKKyNlbmRpZgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXF1
aXJlZCwgKCJyZXF1aXJlZCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgcmVzaXplciwgKCItd2Via2l0LXJlc2l6ZXIiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHJvb3QsICgicm9vdCIpKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgkocmV2aXNpb24gNTU0MjMpCisrKyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC01ODIsNiArNTgyLDcgQEAgbWVudWxpc3QtYnV0dG9uCiBtZW51
bGlzdC10ZXh0CiBtZW51bGlzdC10ZXh0ZmllbGQKIG91dGVyLXNwaW4tYnV0dG9uCitwcm9ncmVz
cy1iYXIKIHNsaWRlci1ob3Jpem9udGFsCiBzbGlkZXItdmVydGljYWwKIHNsaWRlcnRodW1iLWhv
cml6b250YWwKSW5kZXg6IFdlYkNvcmUvY3NzL2h0bWwuY3NzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL2h0bWwuY3NzCShyZXZpc2lvbiA1NTQyMykKKysrIFdlYkNvcmUvY3NzL2h0bWwuY3Nz
CSh3b3JraW5nIGNvcHkpCkBAIC01MTUsNiArNTE1LDE5IEBAIG9wdGlvbiB7CiAgICAgZm9udC13
ZWlnaHQ6IG5vcm1hbDsKIH0KIAorLyogcHJvZ3Jlc3MgKi8KKworcHJvZ3Jlc3MgeworICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyOworICAgIHBhZGRpbmc6IGluaXRpYWw7Cisg
ICAgYm9yZGVyOiBpbml0aWFsOworICAgIG1hcmdpbjogMnB4OworfQorCitwcm9ncmVzczo6LXdl
YmtpdC1wcm9ncmVzcy1iYXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFy
OworfQorCiAvKiBkYXRhZ3JpZCAqLwogCiBkYXRhZ3JpZCB7CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAJKHJldmlzaW9uIDU1NDIzKQorKysgV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODUzLDYgKzg1Myw5IEBAIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmlu
Z0ltcGwqPiogaW5saW4KICAgICAgICAgdGFnTGlzdC5hZGQocnBUYWcubG9jYWxOYW1lKCkuaW1w
bCgpKTsKICAgICAgICAgdGFnTGlzdC5hZGQocnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKICAg
ICAgICAgdGFnTGlzdC5hZGQocnVieVRhZy5sb2NhbE5hbWUoKS5pbXBsKCkpOworI2lmIEVOQUJM
RShQUk9HUkVTU19UQUcpCisgICAgICAgIHRhZ0xpc3QuYWRkKHByb2dyZXNzVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSk7CisjZW5kaWYKICAgICB9CiAgICAgcmV0dXJuICZ0YWdMaXN0OwogfQpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA1NTQyMykKKysr
IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5jcHAiCiAjaW5jbHVk
ZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQu
Y3BwIgorI2luY2x1ZGUgIkhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxR
dW90ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MU2VsZWN0RWxlbWVudC5jcHAiCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRl
ICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5j
bHVkZSAiRm9ybURhdGFMaXN0LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCisjaW5jbHVk
ZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworSFRNTFBy
b2dyZXNzRWxlbWVudDo6SFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCisgICAgOiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZm9ybSkKK3sKKyAgICBBU1NFUlQoaGFz
VGFnTmFtZShwcm9ncmVzc1RhZykpOworICAgIG1fbWF4ID0gMTsKKyAgICBtX3ZhbHVlID0gMTsK
KyAgICBtX2lzRGV0ZW1pbmF0ZSA9IGZhbHNlOworfQorCitIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp+
SFRNTFByb2dyZXNzRWxlbWVudCgpCit7Cit9CisKK1JlbmRlck9iamVjdCogSFRNTFByb2dyZXNz
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSog
c3R5bGUpCit7CisgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclByb2dyZXNzKHRoaXMpOwor
fQorCitjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmZvcm1Db250cm9s
VHlwZSgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHByb2dyZXNzLCAoInByb2dyZXNzIikpOworICAgIHJldHVybiBwcm9ncmVzczsKK30KKwor
dm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUqIGF0dHIpCit7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSB2YWx1ZUF0dHIpCisgICAg
ICAgIHNldFZhbHVlKGF0dHItPnZhbHVlKCkudG9GbG9hdCgpKTsKKyAgICBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gbWF4QXR0cikKKyAgICAgICAgc2V0TWF4KGF0dHItPnZhbHVlKCkudG9GbG9h
dCgpKTsKKyAgICBlbHNlCisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKGF0dHIpOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKK3sKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2dCk7Cit9CisKK2Zsb2F0IEhUTUxQcm9ncmVzc0VsZW1l
bnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAobV92YWx1ZSA+IG1fbWF4KQorICAgICAgICBy
ZXR1cm4gbV9tYXg7CisgICAgcmV0dXJuIG1fdmFsdWU7Cit9CisKK3ZvaWQgSFRNTFByb2dyZXNz
RWxlbWVudDo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpCit7CisgICAgaWYgKGlzbmFuKHZhbHVlKSB8
fCB2YWx1ZSA8IDApCisgICAgICAgIG1fdmFsdWUgPSAwOworICAgIGVsc2UKKyAgICAgICAgbV92
YWx1ZSA9IHZhbHVlOworICAgIG1faXNEZXRlbWluYXRlID0gdHJ1ZTsKK30KKworZmxvYXQgSFRN
TFByb2dyZXNzRWxlbWVudDo6bWF4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tYXg7Cit9CisK
K3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6c2V0TWF4KGZsb2F0IG1heCkKK3sKKyAgICBpZiAo
IWlzbmFuKG1heCkgJiYgbWF4ID4gMCkKKyAgICAgICAgbV9tYXggPSBtYXg7CisgICAgZWxzZQor
ICAgICAgICBtX21heCA9IDE7Cit9CisKK2Zsb2F0IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0
aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9pc0RldGVtaW5hdGUpCisgICAgICAgIHJldHVybiB2
YWx1ZSgpIC8gbWF4KCk7CisgICAgcmV0dXJuIC0xOworfQorCit9IC8vIG5hbWVzcGFjZQorI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgSFRNTFByb2dyZXNzRWxlbWVudF9o
CisjZGVmaW5lIEhUTUxQcm9ncmVzc0VsZW1lbnRfaAorCisjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKKyNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgSFRNTFByb2dyZXNzRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKKyAgICB2aXJ0dWFs
IH5IVE1MUHJvZ3Jlc3NFbGVtZW50KCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCog
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOworCisgICAgdmlydHVh
bCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisKKyAgICBmbG9hdCB2YWx1ZSgp
IGNvbnN0OworICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQpOworCisgICAgZmxvYXQgbWF4KCkgY29u
c3Q7CisgICAgdm9pZCBzZXRNYXgoZmxvYXQpOworCisgICAgZmxvYXQgcG9zaXRpb24oKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGZsb2F0IG1fdmFsdWU7CisgICAgZmxvYXQgbV9t
YXg7CisgICAgLy8gTm9kZUxpc3QqIGxhYmVsczsKKyAgICBib29sIG1faXNEZXRlbWluYXRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9u
YWw9UFJPR1JFU1NfVEFHCisgICAgXSBIVE1MUHJvZ3Jlc3NFbGVtZW50IDogSFRNTEVsZW1lbnQg
eworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGZsb2F0ICAgICAgICAgICAgICAgIHZhbHVl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGZsb2F0ICAgICAgICAgICAgICAgIG1heDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBmbG9hdCAgICAgICAgICAgICAgICBwb3NpdGlv
bjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3Jt
OworICAgICAgICAvLyByZWFkb25seSBhdHRyaWJ1dHIgTm9kZUxpc3QgbGFiZWxzOworICAgIH07
CisKK30KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgkocmV2aXNpb24gNTU0MjMpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTFRhZ05hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSw3IEBAIHAg
aW50ZXJmYWNlTmFtZT1IVE1MUGFyYWdyYXBoRWxlbWVudCwgY3IKIHBhcmFtIGNyZWF0ZVdpdGhO
ZXcKIHBsYWludGV4dCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBwcmUgY3JlYXRlV2l0aE5l
dworcHJvZ3Jlc3MgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25kaXRpb25hbD1QUk9H
UkVTU19UQUcsIGNyZWF0ZVdpdGhOZXcKIHEgaW50ZXJmYWNlTmFtZT1IVE1MUXVvdGVFbGVtZW50
LCBjcmVhdGVXaXRoTmV3CiBycCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50LCBjb25kaXRpb25h
bD1SVUJZCiBydCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50LCBjb25kaXRpb25hbD1SVUJZCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gNTU0MjMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDIwLDYgKzQyMCw5IEBAIG1vZHVsZSB3aW5kb3cg
ewogICAgICAgICBhdHRyaWJ1dGUgSFRNTFBhcmFncmFwaEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
UGFyYWdyYXBoRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxQYXJhbUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MUGFyYW1FbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFByZUVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MUHJlRWxlbWVudDsKKyNpZiBkZWZpbmVkKEVOQUJMRV9QUk9HUkVT
U19UQUcpICYmIEVOQUJMRV9QUk9HUkVTU19UQUcKKyAgICAgICAgYXR0cmlidXRlIEhUTUxQcm9n
cmVzc0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MUHJvZ3Jlc3NFbGVtZW50OworI2VuZGlmCiAgICAg
ICAgIGF0dHJpYnV0ZSBIVE1MUXVvdGVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFF1b3RlRWxlbWVu
dDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxTY3JpcHRFbGVtZW50Q29uc3RydWN0b3IgSFRNTFNj
cmlwdEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MU2VsZWN0RWxlbWVudENvbnN0cnVj
dG9yIEhUTUxTZWxlY3RFbGVtZW50OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgJKHJldmlzaW9u
IDU1NDIzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDcgKzUyLDcgQEAgZW51bSBDb250cm9sUGFydCB7CiAgICAgTWVkaWFTZWVrRm9yd2Fy
ZEJ1dHRvblBhcnQsIE1lZGlhUmV3aW5kQnV0dG9uUGFydCwgTWVkaWFSZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uUGFydCwgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQsCiAgICAgTWVk
aWFTbGlkZXJQYXJ0LCBNZWRpYVNsaWRlclRodW1iUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJDb250
YWluZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQ
YXJ0LAogICAgIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydCwgTWVkaWFDdXJyZW50VGltZVBh
cnQsIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQsCi0gICAgTWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1
dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgT3V0ZXJT
cGluQnV0dG9uUGFydCwKKyAgICBNZW51bGlzdFBhcnQsIE1lbnVsaXN0QnV0dG9uUGFydCwgTWVu
dWxpc3RUZXh0UGFydCwgTWVudWxpc3RUZXh0RmllbGRQYXJ0LCBPdXRlclNwaW5CdXR0b25QYXJ0
LCBQcm9ncmVzc0JhclBhcnQsCiAgICAgU2xpZGVySG9yaXpvbnRhbFBhcnQsIFNsaWRlclZlcnRp
Y2FsUGFydCwgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCwKICAgICBTbGlkZXJUaHVtYlZlcnRp
Y2FsUGFydCwgQ2FyZXRQYXJ0LCBTZWFyY2hGaWVsZFBhcnQsIFNlYXJjaEZpZWxkRGVjb3JhdGlv
blBhcnQsCiAgICAgU2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBhcnQsIFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvblBhcnQsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1l
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5j
cHAJKHJldmlzaW9uIDU1NDIzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsOSBAQAogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgorI2lm
IEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNlbmRp
ZgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAj
aW5jbHVkZSAiVGltZVJhbmdlcy5oIgpAQCAtNjMsNiArNjYsOSBAQAogI2luY2x1ZGUgPFFTdHls
ZUZhY3Rvcnk+CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uQnV0dG9uPgogI2luY2x1ZGUgPFFTdHls
ZU9wdGlvbkZyYW1lVjI+CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlIDxRU3R5
bGVPcHRpb25Qcm9ncmVzc0JhclYyPgorI2VuZGlmCiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uU2xp
ZGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAKQEAgLTYzMiw2ICs2MzgsNDEgQEAgYm9vbCBSZW5k
ZXJUaGVtZVF0OjpwYWludE1lbnVMaXN0QnV0dG9uKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
I2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFByb2dy
ZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVu
dCopIGNvbnN0Cit7CisgICAgc3R5bGUtPnNldEJveFNoYWRvdygwKTsKK30KKworYm9vbCBSZW5k
ZXJUaGVtZVF0OjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mIHBpLCBjb25zdCBJbnRSZWN0JiByKQoreworICAgIFN0eWxlUGFp
bnRlciBwKHRoaXMsIHBpKTsKKyAgICBpZiAoIXAuaXNWYWxpZCgpKQorICAgICAgIHJldHVybiB0
cnVlOworCisgICAgUVN0eWxlT3B0aW9uUHJvZ3Jlc3NCYXJWMiBvcHRpb247CisgICAgaWYgKHAu
d2lkZ2V0KQorICAgICAgIG9wdGlvbi5pbml0RnJvbShwLndpZGdldCk7CisgICAgaW5pdGlhbGl6
ZUNvbW1vblFTdHlsZU9wdGlvbnMob3B0aW9uLCBvKTsKKworICAgIFJlbmRlclByb2dyZXNzKiBy
ZW5kZXJQcm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisgICAgb3B0aW9uLnJlY3QgPSBy
OworICAgIG9wdGlvbi5tYXhpbXVtID0gcmVuZGVyUHJvZ3Jlc3MtPm1heFByb2dyZXNzKCk7Cisg
ICAgb3B0aW9uLm1pbmltdW0gPSAwOworICAgIG9wdGlvbi5wcm9ncmVzcyA9IHJlbmRlclByb2dy
ZXNzLT52YWx1ZSgpOworCisgICAgY29uc3QgUVBvaW50IHRvcExlZnQgPSByLnRvcExlZnQoKTsK
KyAgICBwLnBhaW50ZXItPnRyYW5zbGF0ZSh0b3BMZWZ0KTsKKyAgICBvcHRpb24ucmVjdC5tb3Zl
VG8oUVBvaW50KDAsIDApKTsKKyAgICBvcHRpb24ucmVjdC5zZXRTaXplKHIuc2l6ZSgpKTsKKwor
ICAgIHAuZHJhd0NvbnRyb2woUVN0eWxlOjpDRV9Qcm9ncmVzc0Jhciwgb3B0aW9uKTsKKyAgICBw
LnBhaW50ZXItPnRyYW5zbGF0ZSgtdG9wTGVmdCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9Cisj
ZW5kaWYKKwogYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVj
dCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHIpCiB7CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuaAkocmV2aXNpb24gNTU0MjMpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSwxMSBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVudUxpc3RCdXR0b24oUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7
CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxl
Y3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogCisjaWYgRU5BQkxFKFBST0dS
RVNTX1RBRykKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHls
ZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIHBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgYm9vbCBw
YWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFj
a1N0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsK
IApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDU1NDIzKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw2ICsy
NzcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTGlzdE1hcmtlcigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTWVkaWEoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lbnVMaXN0KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgIHZpcnR1YWwgYm9vbCBpc1By
b2dyZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckJsb2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlckltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQcm9ncmVzcy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQorCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKworI2luY2x1ZGUgIkhUTUxQ
cm9ncmVzc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorCit1c2luZyBuYW1l
c3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CisKK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFByb2dyZXNzV2lkdGggPSAxMjA7Citz
dGF0aWMgY29uc3QgaW50IGRlZmF1bHRQcm9ncmVzc0hlaWdodCA9IDIwOworCitSZW5kZXJQcm9n
cmVzczo6UmVuZGVyUHJvZ3Jlc3MoRWxlbWVudCogZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2Nr
KGVsZW1lbnQpCit7CisgICAgc2V0U2l6ZShRU2l6ZShkZWZhdWx0UHJvZ3Jlc3NXaWR0aCwgZGVm
YXVsdFByb2dyZXNzSGVpZ2h0KSk7CisgICAgc2V0UmVwbGFjZWQodHJ1ZSk7Cit9CisKK1JlbmRl
clByb2dyZXNzOjp+UmVuZGVyUHJvZ3Jlc3MoKQoreworfQorCitpbnQgUmVuZGVyUHJvZ3Jlc3M6
OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGVpZ2h0
KCkgKyBtYXJnaW5Ub3AoKTsKK30KKwordm9pZCBSZW5kZXJQcm9ncmVzczo6Y2FsY1ByZWZXaWR0
aHMoKQoreworICAgIG1fbWluUHJlZldpZHRoID0gMDsKKyAgICBtX21heFByZWZXaWR0aCA9IDA7
CisKKyAgICBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+d2lkdGgo
KS52YWx1ZSgpID4gMCkKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSBtX21heFByZWZXaWR0aCA9
IGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAgICBlbHNl
CisgICAgICAgIG1fbWF4UHJlZldpZHRoID0gZGVmYXVsdFByb2dyZXNzV2lkdGggKiBzdHlsZSgp
LT5lZmZlY3RpdmVab29tKCk7CisKKyAgICBpZiAoc3R5bGUoKS0+bWluV2lkdGgoKS5pc0ZpeGVk
KCkgJiYgc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpID4gMCkgeworICAgICAgICBtX21heFBy
ZWZXaWR0aCA9IG1heChtX21heFByZWZXaWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChzdHlsZSgp
LT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSBtYXgobV9t
aW5QcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1
ZSgpKSk7CisgICAgfSBlbHNlIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzUGVyY2VudCgpIHx8IChz
dHlsZSgpLT53aWR0aCgpLmlzQXV0bygpICYmIHN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgp
KSkKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSAwOworICAgIGVsc2UKKyAgICAgICAgbV9taW5Q
cmVmV2lkdGggPSBtX21heFByZWZXaWR0aDsKKworICAgIGlmIChzdHlsZSgpLT5tYXhXaWR0aCgp
LmlzRml4ZWQoKSAmJiBzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkgIT0gdW5kZWZpbmVkTGVu
Z3RoKSB7CisgICAgICAgIG1fbWF4UHJlZldpZHRoID0gbWluKG1fbWF4UHJlZldpZHRoLCBjYWxj
Q29udGVudEJveFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBt
X21pblByZWZXaWR0aCA9IG1pbihtX21pblByZWZXaWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChz
dHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICB9CisKKyAgICBpbnQgdG9BZGQgPSBw
YWRkaW5nTGVmdCgpICsgcGFkZGluZ1JpZ2h0KCkgKyBib3JkZXJMZWZ0KCkgKyBib3JkZXJSaWdo
dCgpOworICAgIG1fbWluUHJlZldpZHRoICs9IHRvQWRkOworICAgIG1fbWF4UHJlZldpZHRoICs9
IHRvQWRkOworCisgICAgc2V0UHJlZldpZHRoc0RpcnR5KGZhbHNlKTsKK30KKwordm9pZCBSZW5k
ZXJQcm9ncmVzczo6bGF5b3V0KCkKK3sKKyAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CisKKyAg
ICBMYXlvdXRSZXBhaW50ZXIgcmVwYWludGVyKCp0aGlzLCBjaGVja0ZvclJlcGFpbnREdXJpbmdM
YXlvdXQoKSk7CisKKyAgICBjYWxjV2lkdGgoKTsKKyAgICBjYWxjSGVpZ2h0KCk7CisKKyAgICBt
X292ZXJmbG93LmNsZWFyKCk7CisKKyAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7
CisKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7Cit9CisKK3ZvaWQgUmVuZGVyUHJvZ3Jlc3M6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKKyAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNS
ZWNhbGMoKTsKK30KKworZmxvYXQgUmVuZGVyUHJvZ3Jlc3M6OnZhbHVlKCkgY29uc3QKK3sKKyAg
ICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFByb2dyZXNz
RWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKGVsZW1lbnQpCisgICAgICAgIHJldHVybiBlbGVt
ZW50LT52YWx1ZSgpOworICAgIHJldHVybiAxOworfQorCitmbG9hdCBSZW5kZXJQcm9ncmVzczo6
bWF4UHJvZ3Jlc3MoKSBjb25zdAoreworICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIGVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MUHJvZ3Jlc3NFbGVtZW50Kj4obm9kZSgpKTsKKyAgICBpZiAoZWxl
bWVudCkKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPm1heCgpOworICAgIHJldHVybiAxOworfQor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQcm9ncmVzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVz
cy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA5IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgUmVuZGVyUHJvZ3Jlc3NfaAorI2RlZmluZSBSZW5kZXJQcm9ncmVzc19oCisKKyNpZiBF
TkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIFJlbmRlclByb2dyZXNzIDogcHVibGljIFJlbmRlckJsb2NrIHsK
K3B1YmxpYzoKKyAgICBSZW5kZXJQcm9ncmVzcyhFbGVtZW50Kik7CisgICAgdmlydHVhbCB+UmVu
ZGVyUHJvZ3Jlc3MoKTsKKworICAgIGZsb2F0IHZhbHVlKCkgY29uc3Q7CisgICAgZmxvYXQgbWF4
UHJvZ3Jlc3MoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUHJvZ3Jlc3MiOyB9CisgICAgdmlydHVh
bCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBp
bnQgYmFzZWxpbmVQb3NpdGlvbihib29sLCBib29sKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2FsY1ByZWZXaWR0aHMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Cit9OworCitpbmxpbmUgUmVuZGVyUHJvZ3Jlc3Mq
IHRvUmVuZGVyUHJvZ3Jlc3MoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFv
YmplY3QgfHwgb2JqZWN0LT5pc1Byb2dyZXNzKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZW5kZXJQcm9ncmVzcyo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUg
ZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJQcm9ncmVzcyhjb25zdCBS
ZW5kZXJQcm9ncmVzcyopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisj
ZW5kaWYgLy8gUmVuZGVyUHJvZ3Jlc3NfaAorCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCShyZXZpc2lvbiA1NTQyMykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSwxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjph
ZGp1c3RTdHlsZShDU1NTdHlsZVNlCiAgICAgICAgICAgICByZXR1cm4gYWRqdXN0U2VhcmNoRmll
bGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CiAgICAgICAgIGNh
c2UgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBhZGp1
c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOworI2lm
IEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAg
ICAgICAgICAgcmV0dXJuIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBl
KTsKKyNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpA
QCAtMjY3LDYgKzI3MSwxMCBAQCBib29sIFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3Qq
IG8sCiAjZW5kaWYKICAgICAgICAgY2FzZSBNZW51bGlzdFBhcnQ6CiAgICAgICAgICAgICByZXR1
cm4gcGFpbnRNZW51TGlzdChvLCBwYWludEluZm8sIHIpOworI2lmIEVOQUJMRShQUk9HUkVTU19U
QUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBh
aW50UHJvZ3Jlc3NCYXIobywgcGFpbnRJbmZvLCByKTsKKyNlbmRpZgogICAgICAgICBjYXNlIFNs
aWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAg
ICAgICAgICAgIHJldHVybiBwYWludFNsaWRlclRyYWNrKG8sIHBhaW50SW5mbywgcik7CkBAIC0z
NTcsNiArMzY1LDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KFJlbmRlcgog
ICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6
CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisg
ICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVy
SG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAgICAg
ICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC0zOTIsNiArNDAzLDkgQEAgYm9v
bCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyhSZW5kZQogICAgICAgICBjYXNlIERlZmF1
bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVu
dWxpc3RQYXJ0OgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jl
c3NCYXJQYXJ0OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAg
ICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1i
SG9yaXpvbnRhbFBhcnQ6CkBAIC04MjUsNiArODM5LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFk
anVzdE1lbnVMaXN0U3R5bGUoQ1MKIHsKIH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2
b2lkIFJlbmRlclRoZW1lOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
LCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdAoreworfQorI2VuZGlmCisKIHZvaWQgUmVu
ZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJl
bmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0CiB7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgJKHJldmlzaW9uIDU1NDIzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJl
bmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVM
aXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19U
QUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxl
Y3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBw
YWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyNlbmRpZgorCiAgICAgdmly
dHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRl
clN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRy
YWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTU3MzkpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAor
MjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRN
TFByb2dyZXNzRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3Mt
ZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVt
ZW50L3NjcmlwdC10ZXN0czogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNz
RWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3Bl
cnRpZXMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
c2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
cXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVj
dGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1M
UHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisKIDIwMTAtMDMtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9n
cmVzcy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSBAQAorPGh0bWw+PGJvZHk+PHByb2dyZXNzIHZhbHVlPTcwIG1heD0xMDA+PC9wcm9n
cmVzcz48L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dy
ZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3Bl
cnRpZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRF
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iWU9V
Ul9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LXBy
b2dyZXNzLXByb3BlcnRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMu
anMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVt
ZW50L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5qcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0NSBAQAorZGVzY3JpcHRpb24oJ1Rlc3Qgc2V0dGluZyB2YWxpZCBhbmQgaW52
YWxpZCBwcm9wZXJ0aWVzIG9mIEhUTUxQcm9ncmVzc0VsZW1lbnQuJyk7CisKK3ZhciBwID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgncHJvZ3Jlc3MnKTsKKworZGVidWcoIlRlc3QgdmFsdWVzIGJl
Zm9yZSBwcm9wZXJ0aWVzIHdlcmUgc2V0Iik7CitzaG91bGRCZSgicC52YWx1ZSIsICIxIik7Citz
aG91bGRCZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUoInAucG9zaXRpb24iLCAiLTEiKTsKKwor
ZGVidWcoIlNldCB2YWxpZCB2YWx1ZXMiKTsKK3AudmFsdWUgPSA3ZTE7CitwLm1heCA9ICIxZTIi
Oworc2hvdWxkQmUoInAudmFsdWUiLCAiNzAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxMDAiKTsK
K3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjAuNyIpOworCitkZWJ1ZygiU2V0IHZhbHVlIGJpZ2dl
ciB0aGFuIG1heCIpOworcC52YWx1ZSA9IDIwMDsKK3AubWF4ID0gMTAwLjA7CitzaG91bGRCZSgi
cC52YWx1ZSIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxMDAiKTsKK3Nob3VsZEJlKCJw
LnBvc2l0aW9uIiwgIjEuMCIpOworCitkZWJ1ZygiU2V0IGludmFsaWQgdmFsdWUiKTsKK3AudmFs
dWUgPSAiMjAwQSI7CitwLm1heCA9IDEwMDsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjAiKTsKK3No
b3VsZEJlKCJwLm1heCIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjAiKTsKKwor
ZGVidWcoIlNldCBpbnZhbGlkIG1heCIpOworcC52YWx1ZSA9ICIyMCI7CitwLm1heCA9ICJtYXgi
Oworc2hvdWxkQmUoInAudmFsdWUiLCAiMSIpOworc2hvdWxkQmUoInAubWF4IiwgIjEiKTsKK3No
b3VsZEJlKCJwLnBvc2l0aW9uIiwgIjEiKTsKKworZGVidWcoIlNldCB2YWx1ZSB0byBudWxsIGFu
ZCBtYXggdG8gMCIpOworcC52YWx1ZSA9IG51bGw7CitwLm1heCA9IDA7CitzaG91bGRCZSgicC52
YWx1ZSIsICIwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUoInAucG9zaXRp
b24iLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3Mt
ZWxlbWVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhw
ZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9m
YXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQuY2hl
Y2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzAxY2ZmZDk5YjUwYzc4YmNkZjkzZDIz
ZjFjMjBjYzAyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dy
ZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJQcm9ncmVzcyB7UFJPR1JFU1N9
IGF0ICgyLDIpIHNpemUgMTIweDIwCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1l
bnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQt
cHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzMgQEAKK1Rlc3Qgc2V0dGluZyB2YWxpZCBhbmQgaW52YWxpZCBwcm9wZXJ0aWVzIG9mIEhUTUxQ
cm9ncmVzc0VsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0IHZh
bHVlcyBiZWZvcmUgcHJvcGVydGllcyB3ZXJlIHNldAorUEFTUyBwLnZhbHVlIGlzIDEKK1BBU1Mg
cC5tYXggaXMgMQorUEFTUyBwLnBvc2l0aW9uIGlzIC0xCitTZXQgdmFsaWQgdmFsdWVzCitQQVNT
IHAudmFsdWUgaXMgNzAKK1BBU1MgcC5tYXggaXMgMTAwCitQQVNTIHAucG9zaXRpb24gaXMgMC43
CitTZXQgdmFsdWUgYmlnZ2VyIHRoYW4gbWF4CitQQVNTIHAudmFsdWUgaXMgMTAwCitQQVNTIHAu
bWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDEuMAorU2V0IGludmFsaWQgdmFsdWUKK1BB
U1MgcC52YWx1ZSBpcyAwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDAK
K1NldCBpbnZhbGlkIG1heAorUEFTUyBwLnZhbHVlIGlzIDEKK1BBU1MgcC5tYXggaXMgMQorUEFT
UyBwLnBvc2l0aW9uIGlzIDEKK1NldCB2YWx1ZSB0byBudWxsIGFuZCBtYXggdG8gMAorUEFTUyBw
LnZhbHVlIGlzIDAKK1BBU1MgcC5tYXggaXMgMQorUEFTUyBwLnBvc2l0aW9uIGlzIDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWVsZW1lbnQtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC5wbmcKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVh
bQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQUNYQklX
WE1BQUE3RUFBQU94QUdWS3c0YkFBQU0KeEVsRVFWUjRuTzNhdTAxRFFSQkEwVFdpRzVBZ293VUtz
U1YvNnJFSWFJUXlDT2huaVFpUkhrSytMM2pucER2QnBGZXp1em5uSEFBQQpBSUc3dFJjQUFBQzJR
NEFBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQTVu
N3A0T1YwCnVPVWVyT2o2OXI3MkNnQUFiTVRpQUJsampQTnhmNnM5QUFDQURmQUZDd0FBeVB6cEF2
TGo4Zm5qMTdldnoxY3pDMllBQUdDTFhFQUEKQUlDTUFBRUFBRElDQkFBQXlBZ1FBQUFnSTBBQUFJ
Q01BQUVBQURJQ0JBQUF5QWdRQUFBZ0kwQUFBSUNNQUFFQUFESUNCQUFBeUFnUQpBQUFnSTBBQUFJ
RE1iczQ1bHd4ZVRvZHhQdTV2dlE4cmVIaDZXWHNGQUFBMndnVUVBQURJTEw2QUFBQUEvSmNMQ0FB
QWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQpr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
ZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEK
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
CkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBNWh2T0J6TGVP
OGl4T3dBQUFBQkpSVTVFcmtKZ2dnPT0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50344</attachid>
            <date>2010-03-09 13:57:51 -0800</date>
            <delta_ts>2010-03-10 12:33:36 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>45226</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzM5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAg
ICAgICAgQWRkZWQgbmV3IGZsYWcgZm9yIDxwcm9ncmVzcz4gZWxlbWVudCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgVGhlIGZsYWcgaXMgdHVybmVkIG9uIG9ubCBmb3IgUXQgcGxhdGZvcm0uCisK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMC0wMy0wOSAgR2Fib3IgTG9raSAgPGxv
a2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA1NTczOSkKKysrIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NDEsNiArODQxLDE2
IEBACiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oUVQpCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dSRVNTX1RBRykKKyNkZWZpbmUgRU5BQkxF
X1BST0dSRVNTX1RBRyAxCisjZW5kaWYKKyNlbHNlCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dS
RVNTX1RBRykKKyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX1RBRyAwCisjZW5kaWYKKyNlbmRpZgor
CiAjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCiAjZGVmaW5lIEVOQUJMRV9URVhUX0NB
UkVUIDEKICNlbmRpZgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw3OCBAQAorMjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICBB
ZGRlZCBzdXBwb3J0IGZvciBIVE1MUHJvZ3Jlc3NFbGVtZW50LgorICAgICAgICBUaGlzIGltcGxl
bWVudGF0aW9uIGlzIGVuYWJsZWQgb25seSBmb3IgUXQsIGJlY2F1c2Ugb25seSBSZW5kZXJUaGVt
ZVF0CisgICAgICAgIHdhcyBtb2RpZmllZCB0byBhY3R1YWx5IGRyYXcgdGhlIHByb2dyZXNzIGVs
ZW1lbnQuCisgICAgICAgIFRoZSBsYWJlbHMgYXR0cmlidXRlIG9mIHRoZSBwcm9ncmVzcyBlbGVt
ZW50IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYQorICAgICAgICBzZXBhcmF0ZSBwYXRjaC4KKwor
ICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVt
ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0
LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5wcmk6
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6CisgICAgICAgICogY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5saW5lVGFnTGlzdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHA6CisgICAgICAgICogaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQcm9ncmVzc0VsZW1lbnQ6On5IVE1MUHJvZ3Jlc3NFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQcm9ncmVzc0VsZW1lbnQ6Om1heCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpzZXRNYXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVu
dDo6cG9zaXRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmlzT3B0aW9uYWxGb3Jt
Q29udHJvbCk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbDogQWRkZWQu
CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
UXQ6OmFkanVzdFByb2dyZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVRdDo6cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVz
czo6UmVuZGVyUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6On5S
ZW5kZXJQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6YmFzZWxp
bmVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6Y2FsY1ByZWZX
aWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclByb2dyZXNzOjptYXhQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnJlbmRl
ck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmlzUHJvZ3Jlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1c3RT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRQcm9ncmVz
c0Jhcik6CisKIDIwMTAtMDMtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJl
dmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Myw2ICsxNDMsOSBAQAogI2luY2x1ZGUgIkpTSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkpTSFRNTFBhcmFtRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNIVE1M
UHJlRWxlbWVudC5jcHAiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlICJKU0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlNIVE1MUXVvdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJK
U0hUTUxTZWxlY3RFbGVtZW50LmNwcCIKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDU1
NzM5KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODUsNiArMTg1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgSFRNTFBhcmFncmFwaEVsZW1lbnQg
XAogICAgIEhUTUxQYXJhbUVsZW1lbnQgXAogICAgIEhUTUxQcmVFbGVtZW50IFwKKyAgICBIVE1M
UHJvZ3Jlc3NFbGVtZW50IFwKICAgICBIVE1MUXVvdGVFbGVtZW50IFwKICAgICBIVE1MU2NyaXB0
RWxlbWVudCBcCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQgXApAQCAtNjIwLDYgKzYyMSwxMCBAQCBp
ZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX0RBVEFMSVNULCQoRkVBCiAgICAgSFRNTF9GTEFHUyA6
PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9EQVRBTElTVD0xCiBlbmRpZgogCitpZmVxICgkKGZpbmRz
dHJpbmcgRU5BQkxFX1BST0dSRVNTX1RBRywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfUFJP
R1JFU1NfVEFHKQorICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfUFJPR1JF
U1NfVEFHPTEKK2VuZGlmCisKIGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfVklERU8sJChGRUFU
VVJFX0RFRklORVMpKSwgRU5BQkxFX1ZJREVPKQogICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZM
QUdTKSBFTkFCTEVfVklERU89MQogZW5kaWYKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNTU3MzkpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQKICFjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVklERU89Lik6IERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKICFjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfUlVCWT0uKTogREVGSU5FUyArPSBFTkFCTEVfUlVCWT0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NBTkRCT1g9Lik6IERFRklORVMgKz0gRU5BQkxFX1NBTkRCT1g9MQorIWNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9QUk9HUkVTU19UQUc9Lik6IERFRklORVMgKz0gRU5BQkxF
X1BST0dSRVNTX1RBRz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0JMT0JfU0xJQ0U9Lik6
IERFRklORVMgKz0gRU5BQkxFX0JMT0JfU0xJQ0U9MAogCiBncmVhdGVyVGhhbihRVF9NSU5PUl9W
RVJTSU9OLCA1KSB7CkBAIC0zNjEsNiArMzYyLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBo
dG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmlkbCBcCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwgXAorICAgIGh0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwgXAogICAgIGh0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmlk
bCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5wcm8JKHJldmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ1Miw2ICsyNDUyLDE2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9Y
SFRNTE1QPTEpIHsKICAgICAgICAgaHRtbC9IVE1MTm9TY3JpcHRFbGVtZW50LmNwcAogfQogCitj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1NfVEFHPTEpIHsKKyAgICBIRUFERVJTICs9
IFwKKyAgICAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggXAorICAgICAgICByZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaAorCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIGh0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAgXAorICAgICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwCit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9RVF9CRUFSRVI9MSkgewogICAgIEhF
QURFUlMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZS5oCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CShyZXZpc2lvbiA1NTczOSkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjc1LDYgKzI3NSwxMSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgICAgIGNhc2UgT3V0ZXJTcGluQnV0dG9uUGFy
dDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU91dGVyU3BpbkJ1dHRvbjsK
ICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShQUk9HUkVTU19CQVIpCisgICAgICAgIGNh
c2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
UHJvZ3Jlc3NCYXI7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBjYXNlIFNs
aWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
U2xpZGVySG9yaXpvbnRhbDsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAkocmV2aXNpb24gNTU3MzkpCisrKyBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyOSw2ICsxMjksOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9ubHlP
ZlR5cGUsICgib25seS1vZi10eXBlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcHRpb25hbCwgKCJvcHRpb25hbCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgb3V0ZXJTcGluQnV0dG9uLCAoIi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0
b24iKSk7CisjaWYgRU5BQkxFKFBST0dSRVNTX0JBUikKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHJvZ3Jlc3NCYXIsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiKSk7Cisj
ZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVxdWlyZWQsICgi
cmVxdWlyZWQiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc2l6
ZXIsICgiLXdlYmtpdC1yZXNpemVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCByb290LCAoInJvb3QiKSk7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJl
dmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNTgyLDYgKzU4Miw3IEBAIG1lbnVsaXN0LWJ1dHRvbgogbWVudWxpc3QtdGV4
dAogbWVudWxpc3QtdGV4dGZpZWxkCiBvdXRlci1zcGluLWJ1dHRvbgorcHJvZ3Jlc3MtYmFyCiBz
bGlkZXItaG9yaXpvbnRhbAogc2xpZGVyLXZlcnRpY2FsCiBzbGlkZXJ0aHVtYi1ob3Jpem9udGFs
CkluZGV4OiBXZWJDb3JlL2Nzcy9odG1sLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9o
dG1sLmNzcwkocmV2aXNpb24gNTU3MzkpCisrKyBXZWJDb3JlL2Nzcy9odG1sLmNzcwkod29ya2lu
ZyBjb3B5KQpAQCAtNTE1LDYgKzUxNSwxOSBAQCBvcHRpb24gewogICAgIGZvbnQtd2VpZ2h0OiBu
b3JtYWw7CiB9CiAKKy8qIHByb2dyZXNzICovCisKK3Byb2dyZXNzIHsKKyAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKKyAgICBwYWRkaW5nOiBpbml0aWFsOworICAgIGJvcmRl
cjogaW5pdGlhbDsKKyAgICBtYXJnaW46IDJweDsKK30KKworcHJvZ3Jlc3M6Oi13ZWJraXQtcHJv
Z3Jlc3MtYmFyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKK30KKwog
LyogZGF0YWdyaWQgKi8KIAogZGF0YWdyaWQgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA1NTczOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1NCw2ICs4NTQsOSBAQCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4q
IGlubGluCiAgICAgICAgIHRhZ0xpc3QuYWRkKHJwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAg
ICAgICAgIHRhZ0xpc3QuYWRkKHJ0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgIHRh
Z0xpc3QuYWRkKHJ1YnlUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQorICAgICAgICB0YWdMaXN0LmFkZChwcm9ncmVzc1RhZy5sb2NhbE5hbWUoKS5pbXBs
KCkpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiAmdGFnTGlzdDsKIH0KSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAkocmV2aXNpb24gNTU3MzkpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4
Nyw3IEBACiAjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmNwcCIKKyNp
bmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUXVvdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiSFRNTFBy
b2dyZXNzRWxlbWVudC5oIgorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZv
cm1EYXRhTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIlJlbmRl
clByb2dyZXNzLmgiCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK0hUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvYywgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgIDogSFRNTEZvcm1Db250
cm9sRWxlbWVudCh0YWdOYW1lLCBkb2MsIGZvcm0pCit7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUo
cHJvZ3Jlc3NUYWcpKTsKKyAgICBtX21heCA9IDE7CisgICAgbV92YWx1ZSA9IDE7CisgICAgbV9p
c0RldGVtaW5hdGUgPSBmYWxzZTsKK30KKworSFRNTFByb2dyZXNzRWxlbWVudDo6fkhUTUxQcm9n
cmVzc0VsZW1lbnQoKQoreworfQorCitSZW5kZXJPYmplY3QqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQor
eworICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJQcm9ncmVzcyh0aGlzKTsKK30KKworY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcm9n
cmVzcywgKCJwcm9ncmVzcyIpKTsKKyAgICByZXR1cm4gcHJvZ3Jlc3M7Cit9CisKK3ZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBh
dHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gdmFsdWVBdHRyKQorICAgICAgICBzZXRW
YWx1ZShhdHRyLT52YWx1ZSgpLnRvRmxvYXQoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IG1heEF0dHIpCisgICAgICAgIHNldE1heChhdHRyLT52YWx1ZSgpLnRvRmxvYXQoKSk7Cisg
ICAgZWxzZQorICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyKTsKK30KKwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldnQpCit7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihldnQpOworfQorCitmbG9hdCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1
ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fdmFsdWUgPiBtX21heCkKKyAgICAgICAgcmV0dXJuIG1f
bWF4OworICAgIHJldHVybiBtX3ZhbHVlOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6
OnNldFZhbHVlKGZsb2F0IHZhbHVlKQoreworICAgIGlmIChpc25hbih2YWx1ZSkgfHwgdmFsdWUg
PCAwKQorICAgICAgICBtX3ZhbHVlID0gMDsKKyAgICBlbHNlCisgICAgICAgIG1fdmFsdWUgPSB2
YWx1ZTsKKyAgICBtX2lzRGV0ZW1pbmF0ZSA9IHRydWU7Cit9CisKK2Zsb2F0IEhUTUxQcm9ncmVz
c0VsZW1lbnQ6Om1heCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWF4OworfQorCit2b2lkIEhU
TUxQcm9ncmVzc0VsZW1lbnQ6OnNldE1heChmbG9hdCBtYXgpCit7CisgICAgaWYgKCFpc25hbiht
YXgpICYmIG1heCA+IDApCisgICAgICAgIG1fbWF4ID0gbWF4OworICAgIGVsc2UKKyAgICAgICAg
bV9tYXggPSAxOworfQorCitmbG9hdCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpwb3NpdGlvbigpIGNv
bnN0Cit7CisgICAgaWYgKG1faXNEZXRlbWluYXRlKQorICAgICAgICByZXR1cm4gdmFsdWUoKSAv
IG1heCgpOworICAgIHJldHVybiAtMTsKK30KKworfSAvLyBuYW1lc3BhY2UKKyNlbmRpZgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEhUTUxQcm9ncmVzc0VsZW1lbnRfaAorI2RlZmlu
ZSBIVE1MUHJvZ3Jlc3NFbGVtZW50X2gKKworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVu
dCB7CitwdWJsaWM6CisgICAgSFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7CisgICAgdmlydHVhbCB+SFRNTFBy
b2dyZXNzRWxlbWVudCgpOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOworCisgICAgZmxvYXQgdmFsdWUoKSBjb25zdDsK
KyAgICB2b2lkIHNldFZhbHVlKGZsb2F0KTsKKworICAgIGZsb2F0IG1heCgpIGNvbnN0OworICAg
IHZvaWQgc2V0TWF4KGZsb2F0KTsKKworICAgIGZsb2F0IHBvc2l0aW9uKCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICBmbG9hdCBtX3ZhbHVlOworICAgIGZsb2F0IG1fbWF4OworICAg
IC8vIE5vZGVMaXN0KiBsYWJlbHM7CisgICAgYm9vbCBtX2lzRGV0ZW1pbmF0ZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlCisKKyNlbmRpZgorI2VuZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
bW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVBST0dS
RVNTX1RBRworICAgIF0gSFRNTFByb2dyZXNzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBmbG9hdCAgICAgICAgICAgICAgICB2YWx1ZTsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBmbG9hdCAgICAgICAgICAgICAgICBtYXg7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSAgZmxvYXQgICAgICAgICAgICAgICAgcG9zaXRpb247CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRyIE5vZGVMaXN0IGxhYmVsczsKKyAgICB9OworCit9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwIGludGVyZmFj
ZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQsIGNyCiBwYXJhbSBjcmVhdGVXaXRoTmV3CiBwbGFp
bnRleHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcHJlIGNyZWF0ZVdpdGhOZXcKK3Byb2dy
ZXNzIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uZGl0aW9uYWw9UFJPR1JFU1NfVEFH
LCBjcmVhdGVXaXRoTmV3CiBxIGludGVyZmFjZU5hbWU9SFRNTFF1b3RlRWxlbWVudCwgY3JlYXRl
V2l0aE5ldwogcnAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQog
cnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQpJbmRleDogV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwJKHJldmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxQYXJhZ3JhcGhFbGVtZW50Q29uc3RydWN0b3IgSFRNTFBhcmFncmFw
aEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3Ig
SFRNTFBhcmFtRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxQcmVFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFByZUVsZW1lbnQ7CisjaWYgZGVmaW5lZChFTkFCTEVfUFJPR1JFU1NfVEFHKSAm
JiBFTkFCTEVfUFJPR1JFU1NfVEFHCisgICAgICAgIGF0dHJpYnV0ZSBIVE1MUHJvZ3Jlc3NFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTFByb2dyZXNzRWxlbWVudDsKKyNlbmRpZgogICAgICAgICBhdHRy
aWJ1dGUgSFRNTFF1b3RlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxRdW90ZUVsZW1lbnQ7CiAgICAg
ICAgIGF0dHJpYnV0ZSBIVE1MU2NyaXB0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxTY3JpcHRFbGVt
ZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFNlbGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
U2VsZWN0RWxlbWVudDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCShyZXZpc2lvbiA1NTczOSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3
ICs1Miw3IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25Q
YXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBh
cnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVy
UGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFy
dCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAg
ICBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRp
YVRpbWVSZW1haW5pbmdQYXJ0LAotICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0
LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsIE91dGVyU3BpbkJ1dHRv
blBhcnQsCisgICAgTWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4
dFBhcnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgT3V0ZXJTcGluQnV0dG9uUGFydCwgUHJvZ3Jl
c3NCYXJQYXJ0LAogICAgIFNsaWRlckhvcml6b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQs
IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQsCiAgICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQs
IENhcmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAog
ICAgIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25QYXJ0LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZp
c2lvbiA1NTczOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDkgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKKyNpZiBFTkFCTEUo
UFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisjZW5kaWYKICNpbmNs
dWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlRpbWVSYW5nZXMuaCIKQEAgLTYzLDYgKzY2LDkgQEAKICNpbmNsdWRlIDxRU3R5bGVGYWN0b3J5
PgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkJ1dHRvbj4KICNpbmNsdWRlIDxRU3R5bGVPcHRpb25G
cmFtZVYyPgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSA8UVN0eWxlT3B0aW9u
UHJvZ3Jlc3NCYXJWMj4KKyNlbmRpZgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvblNsaWRlcj4KICNp
bmNsdWRlIDxRV2lkZ2V0PgogCkBAIC02MzIsNiArNjM4LDQxIEBAIGJvb2wgUmVuZGVyVGhlbWVR
dDo6cGFpbnRNZW51TGlzdEJ1dHRvbigKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFC
TEUoUFJPR1JFU1NfVEFHKQordm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RQcm9ncmVzc0JhclN0
eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25z
dAoreworICAgIHN0eWxlLT5zZXRCb3hTaGFkb3coMCk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVR
dDo6cGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6
UGFpbnRJbmZvJiBwaSwgY29uc3QgSW50UmVjdCYgcikKK3sKKyAgICBTdHlsZVBhaW50ZXIgcCh0
aGlzLCBwaSk7CisgICAgaWYgKCFwLmlzVmFsaWQoKSkKKyAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIFFTdHlsZU9wdGlvblByb2dyZXNzQmFyVjIgb3B0aW9uOworICAgIGlmIChwLndpZGdldCkK
KyAgICAgICBvcHRpb24uaW5pdEZyb20ocC53aWRnZXQpOworICAgIGluaXRpYWxpemVDb21tb25R
U3R5bGVPcHRpb25zKG9wdGlvbiwgbyk7CisKKyAgICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJv
Z3Jlc3MgPSB0b1JlbmRlclByb2dyZXNzKG8pOworICAgIG9wdGlvbi5yZWN0ID0gcjsKKyAgICBv
cHRpb24ubWF4aW11bSA9IHJlbmRlclByb2dyZXNzLT5tYXhQcm9ncmVzcygpOworICAgIG9wdGlv
bi5taW5pbXVtID0gMDsKKyAgICBvcHRpb24ucHJvZ3Jlc3MgPSByZW5kZXJQcm9ncmVzcy0+dmFs
dWUoKTsKKworICAgIGNvbnN0IFFQb2ludCB0b3BMZWZ0ID0gci50b3BMZWZ0KCk7CisgICAgcC5w
YWludGVyLT50cmFuc2xhdGUodG9wTGVmdCk7CisgICAgb3B0aW9uLnJlY3QubW92ZVRvKFFQb2lu
dCgwLCAwKSk7CisgICAgb3B0aW9uLnJlY3Quc2V0U2l6ZShyLnNpemUoKSk7CisKKyAgICBwLmRy
YXdDb250cm9sKFFTdHlsZTo6Q0VfUHJvZ3Jlc3NCYXIsIG9wdGlvbik7CisgICAgcC5wYWludGVy
LT50cmFuc2xhdGUoLXRvcExlZnQpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisK
IGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwaSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiByKQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmgJKHJldmlzaW9uIDU1NzM5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMTEgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcp
CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWlu
dFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlk
ZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiA1NTczOSkKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzcsNiArMjc3LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVu
ZGVyQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykK
KworI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NF
bGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0
ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
CitzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRQcm9ncmVzc1dpZHRoID0gMTIwOworc3RhdGljIGNv
bnN0IGludCBkZWZhdWx0UHJvZ3Jlc3NIZWlnaHQgPSAyMDsKKworUmVuZGVyUHJvZ3Jlc3M6OlJl
bmRlclByb2dyZXNzKEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50
KQoreworICAgIHNldFNpemUoUVNpemUoZGVmYXVsdFByb2dyZXNzV2lkdGgsIGRlZmF1bHRQcm9n
cmVzc0hlaWdodCkpOworICAgIHNldFJlcGxhY2VkKHRydWUpOworfQorCitSZW5kZXJQcm9ncmVz
czo6flJlbmRlclByb2dyZXNzKCkKK3sKK30KKworaW50IFJlbmRlclByb2dyZXNzOjpiYXNlbGlu
ZVBvc2l0aW9uKGJvb2wsIGJvb2wpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhlaWdodCgpICsgbWFy
Z2luVG9wKCk7Cit9CisKK3ZvaWQgUmVuZGVyUHJvZ3Jlc3M6OmNhbGNQcmVmV2lkdGhzKCkKK3sK
KyAgICBtX21pblByZWZXaWR0aCA9IDA7CisgICAgbV9tYXhQcmVmV2lkdGggPSAwOworCisgICAg
aWYgKHN0eWxlKCktPndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPndpZHRoKCkudmFsdWUo
KSA+IDApCisgICAgICAgIG1fbWluUHJlZldpZHRoID0gbV9tYXhQcmVmV2lkdGggPSBjYWxjQ29u
dGVudEJveFdpZHRoKHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CisgICAgZWxzZQorICAgICAg
ICBtX21heFByZWZXaWR0aCA9IGRlZmF1bHRQcm9ncmVzc1dpZHRoICogc3R5bGUoKS0+ZWZmZWN0
aXZlWm9vbSgpOworCisgICAgaWYgKHN0eWxlKCktPm1pbldpZHRoKCkuaXNGaXhlZCgpICYmIHN0
eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSA+IDApIHsKKyAgICAgICAgbV9tYXhQcmVmV2lkdGgg
PSBtYXgobV9tYXhQcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+bWluV2lk
dGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZldpZHRoID0gbWF4KG1fbWluUHJlZldp
ZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkpOwor
ICAgIH0gZWxzZSBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCAoc3R5bGUoKS0+
d2lkdGgoKS5pc0F1dG8oKSAmJiBzdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCisgICAg
ICAgIG1fbWluUHJlZldpZHRoID0gMDsKKyAgICBlbHNlCisgICAgICAgIG1fbWluUHJlZldpZHRo
ID0gbV9tYXhQcmVmV2lkdGg7CisKKyAgICBpZiAoc3R5bGUoKS0+bWF4V2lkdGgoKS5pc0ZpeGVk
KCkgJiYgc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpICE9IHVuZGVmaW5lZExlbmd0aCkgewor
ICAgICAgICBtX21heFByZWZXaWR0aCA9IG1pbihtX21heFByZWZXaWR0aCwgY2FsY0NvbnRlbnRC
b3hXaWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVm
V2lkdGggPSBtaW4obV9taW5QcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+
bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgfQorCisgICAgaW50IHRvQWRkID0gcGFkZGluZ0xl
ZnQoKSArIHBhZGRpbmdSaWdodCgpICsgYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKTsKKyAg
ICBtX21pblByZWZXaWR0aCArPSB0b0FkZDsKKyAgICBtX21heFByZWZXaWR0aCArPSB0b0FkZDsK
KworICAgIHNldFByZWZXaWR0aHNEaXJ0eShmYWxzZSk7Cit9CisKK3ZvaWQgUmVuZGVyUHJvZ3Jl
c3M6OmxheW91dCgpCit7CisgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOworCisgICAgTGF5b3V0
UmVwYWludGVyIHJlcGFpbnRlcigqdGhpcywgY2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkp
OworCisgICAgY2FsY1dpZHRoKCk7CisgICAgY2FsY0hlaWdodCgpOworCisgICAgbV9vdmVyZmxv
dy5jbGVhcigpOworCisgICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOworCisgICAg
c2V0TmVlZHNMYXlvdXQoZmFsc2UpOworfQorCit2b2lkIFJlbmRlclByb2dyZXNzOjp1cGRhdGVG
cm9tRWxlbWVudCgpCit7CisgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7
Cit9CisKK2Zsb2F0IFJlbmRlclByb2dyZXNzOjp2YWx1ZSgpIGNvbnN0Cit7CisgICAgSFRNTFBy
b2dyZXNzRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQcm9ncmVzc0VsZW1lbnQq
Pihub2RlKCkpOworICAgIGlmIChlbGVtZW50KQorICAgICAgICByZXR1cm4gZWxlbWVudC0+dmFs
dWUoKTsKKyAgICByZXR1cm4gMTsKK30KKworZmxvYXQgUmVuZGVyUHJvZ3Jlc3M6Om1heFByb2dy
ZXNzKCkgY29uc3QKK3sKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKGVsZW1lbnQpCisg
ICAgICAgIHJldHVybiBlbGVtZW50LT5tYXgoKTsKKyAgICByZXR1cm4gMTsKK30KK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFJl
bmRlclByb2dyZXNzX2gKKyNkZWZpbmUgUmVuZGVyUHJvZ3Jlc3NfaAorCisjaWYgRU5BQkxFKFBS
T0dSRVNTX1RBRykKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBSZW5kZXJQcm9ncmVzcyA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitwdWJsaWM6
CisgICAgUmVuZGVyUHJvZ3Jlc3MoRWxlbWVudCopOworICAgIHZpcnR1YWwgflJlbmRlclByb2dy
ZXNzKCk7CisKKyAgICBmbG9hdCB2YWx1ZSgpIGNvbnN0OworICAgIGZsb2F0IG1heFByb2dyZXNz
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclByb2dyZXNzIjsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgaW50IGJhc2Vs
aW5lUG9zaXRpb24oYm9vbCwgYm9vbCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNhbGNQcmVm
V2lkdGhzKCk7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGcm9tRWxlbWVudCgpOworfTsKKworaW5saW5lIFJlbmRlclByb2dyZXNzKiB0b1JlbmRl
clByb2dyZXNzKFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8
IG9iamVjdC0+aXNQcm9ncmVzcygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUHJv
Z3Jlc3MqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyUHJvZ3Jlc3MoY29uc3QgUmVuZGVyUHJv
Z3Jlc3MqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8v
IFJlbmRlclByb2dyZXNzX2gKKwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkocmV2
aXNpb24gNTU3MzkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5
bGUoQ1NTU3R5bGVTZQogICAgICAgICAgICAgcmV0dXJuIGFkanVzdFNlYXJjaEZpZWxkUmVzdWx0
c0RlY29yYXRpb25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwogICAgICAgICBjYXNlIFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gYWRqdXN0U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsKKyNpZiBFTkFCTEUo
UFJPR1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyAgICAgICAgICAg
IHJldHVybiBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CisjZW5k
aWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTI2Nyw2
ICsyNzEsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBvLAogI2Vu
ZGlmCiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIHBhaW50
TWVudUxpc3QobywgcGFpbnRJbmZvLCByKTsKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAg
ICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyAgICAgICAgICAgIHJldHVybiBwYWludFByb2dy
ZXNzQmFyKG8sIHBhaW50SW5mbywgcik7CisjZW5kaWYKICAgICAgICAgY2FzZSBTbGlkZXJIb3Jp
em9udGFsUGFydDoKICAgICAgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBhcnQ6CiAgICAgICAgICAg
ICByZXR1cm4gcGFpbnRTbGlkZXJUcmFjayhvLCBwYWludEluZm8sIHIpOwpAQCAtMzU3LDYgKzM2
NSw5IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seShSZW5kZXIKICAgICAgICAg
Y2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAg
ICBjYXNlIE1lbnVsaXN0UGFydDoKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICBj
YXNlIFByb2dyZXNzQmFyUGFydDoKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250
YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgY2FzZSBT
bGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgpAQCAtMzkyLDYgKzQwMyw5IEBAIGJvb2wgUmVuZGVy
VGhlbWU6OnBhaW50RGVjb3JhdGlvbnMoUmVuZGUKICAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9u
UGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIE1lbnVsaXN0UGFy
dDoKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFy
dDoKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICBj
YXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6b250
YWxQYXJ0OgpAQCAtODI1LDYgKzgzOSwxMiBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RNZW51
TGlzdFN0eWxlKENTCiB7CiB9CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQordm9pZCBSZW5k
ZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVy
U3R5bGUqLCBFbGVtZW50KikgY29uc3QKK3sKK30KKyNlbmRpZgorCiB2b2lkIFJlbmRlclRoZW1l
OjphZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHls
ZSosIEVsZW1lbnQqKSBjb25zdAogewogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCShy
ZXZpc2lvbiA1NTczOSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyNyw2ICsyMjcsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHls
ZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRv
bihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQcm9n
cmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSos
IEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5k
ZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KSB7IHJldHVybiB0cnVlOyB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzM5KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDMt
MDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVz
c0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1OTM3CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3Jp
cHQtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9n
cmVzcy1wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lw
cGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVz
cy1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorCiAyMDEwLTAzLTA5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJv
Z3Jlc3MtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEgQEAKKzxodG1sPjxib2R5Pjxwcm9ncmVzcyB2YWx1ZT03MCBtYXg9MTAwPjwvcHJv
Z3Jlc3M+PC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9w
ZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dy
ZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFU
RS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNz
RWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllP
VVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1w
cm9ncmVzcy1wcm9wZXJ0aWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVz
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9zY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHNldHRpbmcgdmFsaWQgYW5kIGlu
dmFsaWQgcHJvcGVydGllcyBvZiBIVE1MUHJvZ3Jlc3NFbGVtZW50LicpOworCit2YXIgcCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Byb2dyZXNzJyk7CisKK2RlYnVnKCJUZXN0IHZhbHVlcyBi
ZWZvcmUgcHJvcGVydGllcyB3ZXJlIHNldCIpOworc2hvdWxkQmUoInAudmFsdWUiLCAiMSIpOwor
c2hvdWxkQmUoInAubWF4IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIi0xIik7CisK
K2RlYnVnKCJTZXQgdmFsaWQgdmFsdWVzIik7CitwLnZhbHVlID0gN2UxOworcC5tYXggPSAiMWUy
IjsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjcwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMTAwIik7
CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIwLjciKTsKKworZGVidWcoIlNldCB2YWx1ZSBiaWdn
ZXIgdGhhbiBtYXgiKTsKK3AudmFsdWUgPSAyMDA7CitwLm1heCA9IDEwMC4wOworc2hvdWxkQmUo
InAudmFsdWUiLCAiMTAwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMTAwIik7CitzaG91bGRCZSgi
cC5wb3NpdGlvbiIsICIxLjAiKTsKKworZGVidWcoIlNldCBpbnZhbGlkIHZhbHVlIik7CitwLnZh
bHVlID0gIjIwMEEiOworcC5tYXggPSAxMDA7CitzaG91bGRCZSgicC52YWx1ZSIsICIwIik7Citz
aG91bGRCZSgicC5tYXgiLCAiMTAwIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIwIik7CisK
K2RlYnVnKCJTZXQgaW52YWxpZCBtYXgiKTsKK3AudmFsdWUgPSAiMjAiOworcC5tYXggPSAibWF4
IjsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjEiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxIik7Citz
aG91bGRCZSgicC5wb3NpdGlvbiIsICIxIik7CisKK2RlYnVnKCJTZXQgdmFsdWUgdG8gbnVsbCBh
bmQgbWF4IHRvIDAiKTsKK3AudmFsdWUgPSBudWxsOworcC5tYXggPSAwOworc2hvdWxkQmUoInAu
dmFsdWUiLCAiMCIpOworc2hvdWxkQmUoInAubWF4IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0
aW9uIiwgIjAiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gNTU3MzkpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTgyMSwzICs1ODIxLDggQEAgZmFz
dC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJvdAogCiAjIG1vdXNlU2Nyb2xsQnko
KSBpcyBub3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBHVEsgRXZlbnRTZW5kZXIgQVBJLgogZmFz
dC9ldmVudHMvcmVtb3ZlLWNoaWxkLW9uc2Nyb2xsLmh0bWwKKworIyByZW5kZXJUaGVtZSBpcyBu
b3QgcmVhZHkgdG8gZHJhdyBwcm9ncmVzcyBlbGVtZW50CitmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVu
dC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCShyZXZpc2lvbiA1NTczOSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNCArMTI3LDkgQEAgc3ZnL2N1c3RvbS90aWxpbmct
cmVndWxhci1oZXhhZ29uYWwtY3JhcwogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCiAK
ICMgRm9yIHNvbWUgcmVhc29uIGNyYXNoZXMgd2hlbiBydW4gd2l0aCBhbGwgdGVzdHMuIFBhc3Nl
cyBpbmRpdmlkdWFsbHkuCi1mYXN0L2Zvcm1zL211bHRpcGxlLWZvcm0tc3VibWlzc2lvbi1wcm90
ZWN0aW9uLW1vdXNlLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitmYXN0L2Zvcm1z
L211bHRpcGxlLWZvcm0tc3VibWlzc2lvbi1wcm90ZWN0aW9uLW1vdXNlLmh0bWwKKworIyByZW5k
ZXJUaGVtZSBpcyBub3QgcmVhZHkgdG8gZHJhdyBwcm9ncmVzcyBlbGVtZW50CitmYXN0L2RvbS9I
VE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCisKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3Mt
ZWxlbWVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhw
ZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9m
YXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQuY2hl
Y2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzAxY2ZmZDk5YjUwYzc4YmNkZjkzZDIz
ZjFjMjBjYzAyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dy
ZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJQcm9ncmVzcyB7UFJPR1JFU1N9
IGF0ICgyLDIpIHNpemUgMTIweDIwCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1l
bnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQt
cHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzMgQEAKK1Rlc3Qgc2V0dGluZyB2YWxpZCBhbmQgaW52YWxpZCBwcm9wZXJ0aWVzIG9mIEhUTUxQ
cm9ncmVzc0VsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0IHZh
bHVlcyBiZWZvcmUgcHJvcGVydGllcyB3ZXJlIHNldAorUEFTUyBwLnZhbHVlIGlzIDEKK1BBU1Mg
cC5tYXggaXMgMQorUEFTUyBwLnBvc2l0aW9uIGlzIC0xCitTZXQgdmFsaWQgdmFsdWVzCitQQVNT
IHAudmFsdWUgaXMgNzAKK1BBU1MgcC5tYXggaXMgMTAwCitQQVNTIHAucG9zaXRpb24gaXMgMC43
CitTZXQgdmFsdWUgYmlnZ2VyIHRoYW4gbWF4CitQQVNTIHAudmFsdWUgaXMgMTAwCitQQVNTIHAu
bWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDEuMAorU2V0IGludmFsaWQgdmFsdWUKK1BB
U1MgcC52YWx1ZSBpcyAwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDAK
K1NldCBpbnZhbGlkIG1heAorUEFTUyBwLnZhbHVlIGlzIDEKK1BBU1MgcC5tYXggaXMgMQorUEFT
UyBwLnBvc2l0aW9uIGlzIDEKK1NldCB2YWx1ZSB0byBudWxsIGFuZCBtYXggdG8gMAorUEFTUyBw
LnZhbHVlIGlzIDAKK1BBU1MgcC5tYXggaXMgMQorUEFTUyBwLnBvc2l0aW9uIGlzIDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWVsZW1lbnQtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC5wbmcKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVh
bQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQUNYQklX
WE1BQUE3RUFBQU94QUdWS3c0YkFBQU0KeEVsRVFWUjRuTzNhdTAxRFFSQkEwVFdpRzVBZ293VUtz
U1YvNnJFSWFJUXlDT2huaVFpUkhrSytMM2pucER2QnBGZXp1em5uSEFBQQpBSUc3dFJjQUFBQzJR
NEFBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQTVu
N3A0T1YwCnVPVWVyT2o2OXI3MkNnQUFiTVRpQUJsampQTnhmNnM5QUFDQURmQUZDd0FBeVB6cEF2
TGo4Zm5qMTdldnoxY3pDMllBQUdDTFhFQUEKQUlDTUFBRUFBRElDQkFBQXlBZ1FBQUFnSTBBQUFJ
Q01BQUVBQURJQ0JBQUF5QWdRQUFBZ0kwQUFBSUNNQUFFQUFESUNCQUFBeUFnUQpBQUFnSTBBQUFJ
RE1iczQ1bHd4ZVRvZHhQdTV2dlE4cmVIaDZXWHNGQUFBMndnVUVBQURJTEw2QUFBQUEvSmNMQ0FB
QWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQpr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
ZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEK
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
CkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBNWh2T0J6TGVP
OGl4T3dBQUFBQkpSVTVFcmtKZ2dnPT0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50346</attachid>
            <date>2010-03-09 14:10:27 -0800</date>
            <delta_ts>2010-03-10 12:33:36 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>45410</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzQ2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAg
ICAgICAgQWRkZWQgbmV3IGZsYWcgZm9yIDxwcm9ncmVzcz4gZWxlbWVudCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgVGhlIGZsYWcgaXMgdHVybmVkIG9uIG9ubCBmb3IgUXQgcGxhdGZvcm0uCisK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMC0wMy0wOSAgR2Fib3IgTG9raSAgPGxv
a2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA1NTc0NikKKysrIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NDEsNiArODQxLDE2
IEBACiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oUVQpCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dSRVNTX1RBRykKKyNkZWZpbmUgRU5BQkxF
X1BST0dSRVNTX1RBRyAxCisjZW5kaWYKKyNlbHNlCisjaWYgIWRlZmluZWQoRU5BQkxFX1BST0dS
RVNTX1RBRykKKyNkZWZpbmUgRU5BQkxFX1BST0dSRVNTX1RBRyAwCisjZW5kaWYKKyNlbmRpZgor
CiAjaWYgIWRlZmluZWQoRU5BQkxFX1RFWFRfQ0FSRVQpCiAjZGVmaW5lIEVOQUJMRV9URVhUX0NB
UkVUIDEKICNlbmRpZgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw3OCBAQAorMjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICBB
ZGRlZCBzdXBwb3J0IGZvciBIVE1MUHJvZ3Jlc3NFbGVtZW50LgorICAgICAgICBUaGlzIGltcGxl
bWVudGF0aW9uIGlzIGVuYWJsZWQgb25seSBmb3IgUXQsIGJlY2F1c2Ugb25seSBSZW5kZXJUaGVt
ZVF0CisgICAgICAgIHdhcyBtb2RpZmllZCB0byBhY3R1YWx5IGRyYXcgdGhlIHByb2dyZXNzIGVs
ZW1lbnQuCisgICAgICAgIFRoZSBsYWJlbHMgYXR0cmlidXRlIG9mIHRoZSBwcm9ncmVzcyBlbGVt
ZW50IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYQorICAgICAgICBzZXBhcmF0ZSBwYXRjaC4KKwor
ICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVt
ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0
LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5wcmk6
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6CisgICAgICAgICogY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5saW5lVGFnTGlzdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHA6CisgICAgICAgICogaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQcm9ncmVzc0VsZW1lbnQ6On5IVE1MUHJvZ3Jlc3NFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQcm9ncmVzc0VsZW1lbnQ6Om1heCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpzZXRNYXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVu
dDo6cG9zaXRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmlzT3B0aW9uYWxGb3Jt
Q29udHJvbCk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbDogQWRkZWQu
CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
UXQ6OmFkanVzdFByb2dyZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVRdDo6cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVz
czo6UmVuZGVyUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6On5S
ZW5kZXJQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6YmFzZWxp
bmVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6Y2FsY1ByZWZX
aWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclByb2dyZXNzOjptYXhQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnJlbmRl
ck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmlzUHJvZ3Jlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1c3RT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRQcm9ncmVz
c0Jhcik6CisKIDIwMTAtMDMtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJl
dmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Myw2ICsxNDMsOSBAQAogI2luY2x1ZGUgIkpTSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkpTSFRNTFBhcmFtRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNIVE1M
UHJlRWxlbWVudC5jcHAiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlICJKU0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlNIVE1MUXVvdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJK
U0hUTUxTZWxlY3RFbGVtZW50LmNwcCIKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDU1
NzQ2KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODUsNiArMTg1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgSFRNTFBhcmFncmFwaEVsZW1lbnQg
XAogICAgIEhUTUxQYXJhbUVsZW1lbnQgXAogICAgIEhUTUxQcmVFbGVtZW50IFwKKyAgICBIVE1M
UHJvZ3Jlc3NFbGVtZW50IFwKICAgICBIVE1MUXVvdGVFbGVtZW50IFwKICAgICBIVE1MU2NyaXB0
RWxlbWVudCBcCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQgXApAQCAtNjIwLDYgKzYyMSwxMCBAQCBp
ZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX0RBVEFMSVNULCQoRkVBCiAgICAgSFRNTF9GTEFHUyA6
PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9EQVRBTElTVD0xCiBlbmRpZgogCitpZmVxICgkKGZpbmRz
dHJpbmcgRU5BQkxFX1BST0dSRVNTX1RBRywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfUFJP
R1JFU1NfVEFHKQorICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfUFJPR1JF
U1NfVEFHPTEKK2VuZGlmCisKIGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfVklERU8sJChGRUFU
VVJFX0RFRklORVMpKSwgRU5BQkxFX1ZJREVPKQogICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZM
QUdTKSBFTkFCTEVfVklERU89MQogZW5kaWYKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNTU3NDYpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQKICFjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVklERU89Lik6IERFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKICFjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfUlVCWT0uKTogREVGSU5FUyArPSBFTkFCTEVfUlVCWT0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NBTkRCT1g9Lik6IERFRklORVMgKz0gRU5BQkxFX1NBTkRCT1g9MQorIWNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9QUk9HUkVTU19UQUc9Lik6IERFRklORVMgKz0gRU5BQkxF
X1BST0dSRVNTX1RBRz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0JMT0JfU0xJQ0U9Lik6
IERFRklORVMgKz0gRU5BQkxFX0JMT0JfU0xJQ0U9MAogCiBncmVhdGVyVGhhbihRVF9NSU5PUl9W
RVJTSU9OLCA1KSB7CkBAIC0zNjEsNiArMzYyLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBo
dG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmlkbCBcCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwgXAorICAgIGh0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwgXAogICAgIGh0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmlk
bCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5wcm8JKHJldmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ1Miw2ICsyNDUyLDE2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9Y
SFRNTE1QPTEpIHsKICAgICAgICAgaHRtbC9IVE1MTm9TY3JpcHRFbGVtZW50LmNwcAogfQogCitj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1NfVEFHPTEpIHsKKyAgICBIRUFERVJTICs9
IFwKKyAgICAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggXAorICAgICAgICByZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaAorCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIGh0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAgXAorICAgICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwCit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9RVF9CRUFSRVI9MSkgewogICAgIEhF
QURFUlMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZS5oCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CShyZXZpc2lvbiA1NTc0NikKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjc1LDYgKzI3NSwxMSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgICAgIGNhc2UgT3V0ZXJTcGluQnV0dG9uUGFy
dDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU91dGVyU3BpbkJ1dHRvbjsK
ICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShQUk9HUkVTU19CQVIpCisgICAgICAgIGNh
c2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
UHJvZ3Jlc3NCYXI7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBjYXNlIFNs
aWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
U2xpZGVySG9yaXpvbnRhbDsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAkocmV2aXNpb24gNTU3NDYpCisrKyBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyOSw2ICsxMjksOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9ubHlP
ZlR5cGUsICgib25seS1vZi10eXBlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcHRpb25hbCwgKCJvcHRpb25hbCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgb3V0ZXJTcGluQnV0dG9uLCAoIi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0
b24iKSk7CisjaWYgRU5BQkxFKFBST0dSRVNTX0JBUikKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHJvZ3Jlc3NCYXIsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiKSk7Cisj
ZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVxdWlyZWQsICgi
cmVxdWlyZWQiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc2l6
ZXIsICgiLXdlYmtpdC1yZXNpemVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCByb290LCAoInJvb3QiKSk7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJl
dmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNTgyLDYgKzU4Miw3IEBAIG1lbnVsaXN0LWJ1dHRvbgogbWVudWxpc3QtdGV4
dAogbWVudWxpc3QtdGV4dGZpZWxkCiBvdXRlci1zcGluLWJ1dHRvbgorcHJvZ3Jlc3MtYmFyCiBz
bGlkZXItaG9yaXpvbnRhbAogc2xpZGVyLXZlcnRpY2FsCiBzbGlkZXJ0aHVtYi1ob3Jpem9udGFs
CkluZGV4OiBXZWJDb3JlL2Nzcy9odG1sLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9o
dG1sLmNzcwkocmV2aXNpb24gNTU3NDYpCisrKyBXZWJDb3JlL2Nzcy9odG1sLmNzcwkod29ya2lu
ZyBjb3B5KQpAQCAtNTE1LDYgKzUxNSwxOSBAQCBvcHRpb24gewogICAgIGZvbnQtd2VpZ2h0OiBu
b3JtYWw7CiB9CiAKKy8qIHByb2dyZXNzICovCisKK3Byb2dyZXNzIHsKKyAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKKyAgICBwYWRkaW5nOiBpbml0aWFsOworICAgIGJvcmRl
cjogaW5pdGlhbDsKKyAgICBtYXJnaW46IDJweDsKK30KKworcHJvZ3Jlc3M6Oi13ZWJraXQtcHJv
Z3Jlc3MtYmFyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKK30KKwog
LyogZGF0YWdyaWQgKi8KIAogZGF0YWdyaWQgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA1NTc0NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1NCw2ICs4NTQsOSBAQCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4q
IGlubGluCiAgICAgICAgIHRhZ0xpc3QuYWRkKHJwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAg
ICAgICAgIHRhZ0xpc3QuYWRkKHJ0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgIHRh
Z0xpc3QuYWRkKHJ1YnlUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQorICAgICAgICB0YWdMaXN0LmFkZChwcm9ncmVzc1RhZy5sb2NhbE5hbWUoKS5pbXBs
KCkpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiAmdGFnTGlzdDsKIH0KSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAkocmV2aXNpb24gNTU3NDYpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4
Nyw3IEBACiAjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmNwcCIKKyNp
bmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUXVvdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiSFRNTFBy
b2dyZXNzRWxlbWVudC5oIgorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZv
cm1EYXRhTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIlJlbmRl
clByb2dyZXNzLmgiCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK0hUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvYywgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgIDogSFRNTEZvcm1Db250
cm9sRWxlbWVudCh0YWdOYW1lLCBkb2MsIGZvcm0pCit7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUo
cHJvZ3Jlc3NUYWcpKTsKKyAgICBtX21heCA9IDE7CisgICAgbV92YWx1ZSA9IDE7CisgICAgbV9p
c0RldGVtaW5hdGUgPSBmYWxzZTsKK30KKworSFRNTFByb2dyZXNzRWxlbWVudDo6fkhUTUxQcm9n
cmVzc0VsZW1lbnQoKQoreworfQorCitSZW5kZXJPYmplY3QqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQor
eworICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJQcm9ncmVzcyh0aGlzKTsKK30KKworY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcm9n
cmVzcywgKCJwcm9ncmVzcyIpKTsKKyAgICByZXR1cm4gcHJvZ3Jlc3M7Cit9CisKK3ZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBh
dHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gdmFsdWVBdHRyKQorICAgICAgICBzZXRW
YWx1ZShhdHRyLT52YWx1ZSgpLnRvRmxvYXQoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IG1heEF0dHIpCisgICAgICAgIHNldE1heChhdHRyLT52YWx1ZSgpLnRvRmxvYXQoKSk7Cisg
ICAgZWxzZQorICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyKTsKK30KKwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldnQpCit7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihldnQpOworfQorCitmbG9hdCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1
ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fdmFsdWUgPiBtX21heCkKKyAgICAgICAgcmV0dXJuIG1f
bWF4OworICAgIHJldHVybiBtX3ZhbHVlOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6
OnNldFZhbHVlKGZsb2F0IHZhbHVlKQoreworICAgIGlmIChpc25hbih2YWx1ZSkgfHwgdmFsdWUg
PCAwKQorICAgICAgICBtX3ZhbHVlID0gMDsKKyAgICBlbHNlCisgICAgICAgIG1fdmFsdWUgPSB2
YWx1ZTsKKyAgICBtX2lzRGV0ZW1pbmF0ZSA9IHRydWU7Cit9CisKK2Zsb2F0IEhUTUxQcm9ncmVz
c0VsZW1lbnQ6Om1heCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWF4OworfQorCit2b2lkIEhU
TUxQcm9ncmVzc0VsZW1lbnQ6OnNldE1heChmbG9hdCBtYXgpCit7CisgICAgaWYgKCFpc25hbiht
YXgpICYmIG1heCA+IDApCisgICAgICAgIG1fbWF4ID0gbWF4OworICAgIGVsc2UKKyAgICAgICAg
bV9tYXggPSAxOworfQorCitmbG9hdCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpwb3NpdGlvbigpIGNv
bnN0Cit7CisgICAgaWYgKG1faXNEZXRlbWluYXRlKQorICAgICAgICByZXR1cm4gdmFsdWUoKSAv
IG1heCgpOworICAgIHJldHVybiAtMTsKK30KKworfSAvLyBuYW1lc3BhY2UKKyNlbmRpZgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEhUTUxQcm9ncmVzc0VsZW1lbnRfaAorI2RlZmlu
ZSBIVE1MUHJvZ3Jlc3NFbGVtZW50X2gKKworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVu
dCB7CitwdWJsaWM6CisgICAgSFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7CisgICAgdmlydHVhbCB+SFRNTFBy
b2dyZXNzRWxlbWVudCgpOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOworCisgICAgZmxvYXQgdmFsdWUoKSBjb25zdDsK
KyAgICB2b2lkIHNldFZhbHVlKGZsb2F0KTsKKworICAgIGZsb2F0IG1heCgpIGNvbnN0OworICAg
IHZvaWQgc2V0TWF4KGZsb2F0KTsKKworICAgIGZsb2F0IHBvc2l0aW9uKCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICBmbG9hdCBtX3ZhbHVlOworICAgIGZsb2F0IG1fbWF4OworICAg
IC8vIE5vZGVMaXN0KiBsYWJlbHM7CisgICAgYm9vbCBtX2lzRGV0ZW1pbmF0ZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlCisKKyNlbmRpZgorI2VuZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
bW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVBST0dS
RVNTX1RBRworICAgIF0gSFRNTFByb2dyZXNzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBmbG9hdCAgICAgICAgICAgICAgICB2YWx1ZTsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBmbG9hdCAgICAgICAgICAgICAgICBtYXg7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSAgZmxvYXQgICAgICAgICAgICAgICAgcG9zaXRpb247CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRyIE5vZGVMaXN0IGxhYmVsczsKKyAgICB9OworCit9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwIGludGVyZmFj
ZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQsIGNyCiBwYXJhbSBjcmVhdGVXaXRoTmV3CiBwbGFp
bnRleHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcHJlIGNyZWF0ZVdpdGhOZXcKK3Byb2dy
ZXNzIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uZGl0aW9uYWw9UFJPR1JFU1NfVEFH
LCBjcmVhdGVXaXRoTmV3CiBxIGludGVyZmFjZU5hbWU9SFRNTFF1b3RlRWxlbWVudCwgY3JlYXRl
V2l0aE5ldwogcnAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQog
cnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQpJbmRleDogV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwJKHJldmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxQYXJhZ3JhcGhFbGVtZW50Q29uc3RydWN0b3IgSFRNTFBhcmFncmFw
aEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3Ig
SFRNTFBhcmFtRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxQcmVFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFByZUVsZW1lbnQ7CisjaWYgZGVmaW5lZChFTkFCTEVfUFJPR1JFU1NfVEFHKSAm
JiBFTkFCTEVfUFJPR1JFU1NfVEFHCisgICAgICAgIGF0dHJpYnV0ZSBIVE1MUHJvZ3Jlc3NFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTFByb2dyZXNzRWxlbWVudDsKKyNlbmRpZgogICAgICAgICBhdHRy
aWJ1dGUgSFRNTFF1b3RlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxRdW90ZUVsZW1lbnQ7CiAgICAg
ICAgIGF0dHJpYnV0ZSBIVE1MU2NyaXB0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxTY3JpcHRFbGVt
ZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFNlbGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
U2VsZWN0RWxlbWVudDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCShyZXZpc2lvbiA1NTc0NikK
KysrIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3
ICs1Miw3IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25Q
YXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBh
cnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVy
UGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFy
dCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAg
ICBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRp
YVRpbWVSZW1haW5pbmdQYXJ0LAotICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0
LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsIE91dGVyU3BpbkJ1dHRv
blBhcnQsCisgICAgTWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4
dFBhcnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgT3V0ZXJTcGluQnV0dG9uUGFydCwgUHJvZ3Jl
c3NCYXJQYXJ0LAogICAgIFNsaWRlckhvcml6b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQs
IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQsCiAgICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQs
IENhcmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAog
ICAgIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25QYXJ0LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZp
c2lvbiA1NTc0NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDkgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKKyNpZiBFTkFCTEUo
UFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisjZW5kaWYKICNpbmNs
dWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlRpbWVSYW5nZXMuaCIKQEAgLTYzLDYgKzY2LDkgQEAKICNpbmNsdWRlIDxRU3R5bGVGYWN0b3J5
PgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkJ1dHRvbj4KICNpbmNsdWRlIDxRU3R5bGVPcHRpb25G
cmFtZVYyPgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSA8UVN0eWxlT3B0aW9u
UHJvZ3Jlc3NCYXJWMj4KKyNlbmRpZgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvblNsaWRlcj4KICNp
bmNsdWRlIDxRV2lkZ2V0PgogCkBAIC02MzIsNiArNjM4LDQxIEBAIGJvb2wgUmVuZGVyVGhlbWVR
dDo6cGFpbnRNZW51TGlzdEJ1dHRvbigKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFC
TEUoUFJPR1JFU1NfVEFHKQordm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RQcm9ncmVzc0JhclN0
eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25z
dAoreworICAgIHN0eWxlLT5zZXRCb3hTaGFkb3coMCk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVR
dDo6cGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6
UGFpbnRJbmZvJiBwaSwgY29uc3QgSW50UmVjdCYgcikKK3sKKyAgICBTdHlsZVBhaW50ZXIgcCh0
aGlzLCBwaSk7CisgICAgaWYgKCFwLmlzVmFsaWQoKSkKKyAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIFFTdHlsZU9wdGlvblByb2dyZXNzQmFyVjIgb3B0aW9uOworICAgIGlmIChwLndpZGdldCkK
KyAgICAgICBvcHRpb24uaW5pdEZyb20ocC53aWRnZXQpOworICAgIGluaXRpYWxpemVDb21tb25R
U3R5bGVPcHRpb25zKG9wdGlvbiwgbyk7CisKKyAgICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJv
Z3Jlc3MgPSB0b1JlbmRlclByb2dyZXNzKG8pOworICAgIG9wdGlvbi5yZWN0ID0gcjsKKyAgICBv
cHRpb24ubWF4aW11bSA9IHJlbmRlclByb2dyZXNzLT5tYXhQcm9ncmVzcygpOworICAgIG9wdGlv
bi5taW5pbXVtID0gMDsKKyAgICBvcHRpb24ucHJvZ3Jlc3MgPSByZW5kZXJQcm9ncmVzcy0+dmFs
dWUoKTsKKworICAgIGNvbnN0IFFQb2ludCB0b3BMZWZ0ID0gci50b3BMZWZ0KCk7CisgICAgcC5w
YWludGVyLT50cmFuc2xhdGUodG9wTGVmdCk7CisgICAgb3B0aW9uLnJlY3QubW92ZVRvKFFQb2lu
dCgwLCAwKSk7CisgICAgb3B0aW9uLnJlY3Quc2V0U2l6ZShyLnNpemUoKSk7CisKKyAgICBwLmRy
YXdDb250cm9sKFFTdHlsZTo6Q0VfUHJvZ3Jlc3NCYXIsIG9wdGlvbik7CisgICAgcC5wYWludGVy
LT50cmFuc2xhdGUoLXRvcExlZnQpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisK
IGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwaSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiByKQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmgJKHJldmlzaW9uIDU1NzQ2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMTEgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcp
CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWlu
dFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlk
ZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiA1NTc0NikKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzcsNiArMjc3LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVu
ZGVyQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykK
KworI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NF
bGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0
ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
CitzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRQcm9ncmVzc1dpZHRoID0gMTIwOworc3RhdGljIGNv
bnN0IGludCBkZWZhdWx0UHJvZ3Jlc3NIZWlnaHQgPSAyMDsKKworUmVuZGVyUHJvZ3Jlc3M6OlJl
bmRlclByb2dyZXNzKEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50
KQoreworICAgIHNldFNpemUoUVNpemUoZGVmYXVsdFByb2dyZXNzV2lkdGgsIGRlZmF1bHRQcm9n
cmVzc0hlaWdodCkpOworICAgIHNldFJlcGxhY2VkKHRydWUpOworfQorCitSZW5kZXJQcm9ncmVz
czo6flJlbmRlclByb2dyZXNzKCkKK3sKK30KKworaW50IFJlbmRlclByb2dyZXNzOjpiYXNlbGlu
ZVBvc2l0aW9uKGJvb2wsIGJvb2wpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhlaWdodCgpICsgbWFy
Z2luVG9wKCk7Cit9CisKK3ZvaWQgUmVuZGVyUHJvZ3Jlc3M6OmNhbGNQcmVmV2lkdGhzKCkKK3sK
KyAgICBtX21pblByZWZXaWR0aCA9IDA7CisgICAgbV9tYXhQcmVmV2lkdGggPSAwOworCisgICAg
aWYgKHN0eWxlKCktPndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPndpZHRoKCkudmFsdWUo
KSA+IDApCisgICAgICAgIG1fbWluUHJlZldpZHRoID0gbV9tYXhQcmVmV2lkdGggPSBjYWxjQ29u
dGVudEJveFdpZHRoKHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CisgICAgZWxzZQorICAgICAg
ICBtX21heFByZWZXaWR0aCA9IGRlZmF1bHRQcm9ncmVzc1dpZHRoICogc3R5bGUoKS0+ZWZmZWN0
aXZlWm9vbSgpOworCisgICAgaWYgKHN0eWxlKCktPm1pbldpZHRoKCkuaXNGaXhlZCgpICYmIHN0
eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSA+IDApIHsKKyAgICAgICAgbV9tYXhQcmVmV2lkdGgg
PSBtYXgobV9tYXhQcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+bWluV2lk
dGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZldpZHRoID0gbWF4KG1fbWluUHJlZldp
ZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkpOwor
ICAgIH0gZWxzZSBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCAoc3R5bGUoKS0+
d2lkdGgoKS5pc0F1dG8oKSAmJiBzdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCisgICAg
ICAgIG1fbWluUHJlZldpZHRoID0gMDsKKyAgICBlbHNlCisgICAgICAgIG1fbWluUHJlZldpZHRo
ID0gbV9tYXhQcmVmV2lkdGg7CisKKyAgICBpZiAoc3R5bGUoKS0+bWF4V2lkdGgoKS5pc0ZpeGVk
KCkgJiYgc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpICE9IHVuZGVmaW5lZExlbmd0aCkgewor
ICAgICAgICBtX21heFByZWZXaWR0aCA9IG1pbihtX21heFByZWZXaWR0aCwgY2FsY0NvbnRlbnRC
b3hXaWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVm
V2lkdGggPSBtaW4obV9taW5QcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+
bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgfQorCisgICAgaW50IHRvQWRkID0gcGFkZGluZ0xl
ZnQoKSArIHBhZGRpbmdSaWdodCgpICsgYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKTsKKyAg
ICBtX21pblByZWZXaWR0aCArPSB0b0FkZDsKKyAgICBtX21heFByZWZXaWR0aCArPSB0b0FkZDsK
KworICAgIHNldFByZWZXaWR0aHNEaXJ0eShmYWxzZSk7Cit9CisKK3ZvaWQgUmVuZGVyUHJvZ3Jl
c3M6OmxheW91dCgpCit7CisgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOworCisgICAgTGF5b3V0
UmVwYWludGVyIHJlcGFpbnRlcigqdGhpcywgY2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkp
OworCisgICAgY2FsY1dpZHRoKCk7CisgICAgY2FsY0hlaWdodCgpOworCisgICAgbV9vdmVyZmxv
dy5jbGVhcigpOworCisgICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOworCisgICAg
c2V0TmVlZHNMYXlvdXQoZmFsc2UpOworfQorCit2b2lkIFJlbmRlclByb2dyZXNzOjp1cGRhdGVG
cm9tRWxlbWVudCgpCit7CisgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7
Cit9CisKK2Zsb2F0IFJlbmRlclByb2dyZXNzOjp2YWx1ZSgpIGNvbnN0Cit7CisgICAgSFRNTFBy
b2dyZXNzRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQcm9ncmVzc0VsZW1lbnQq
Pihub2RlKCkpOworICAgIGlmIChlbGVtZW50KQorICAgICAgICByZXR1cm4gZWxlbWVudC0+dmFs
dWUoKTsKKyAgICByZXR1cm4gMTsKK30KKworZmxvYXQgUmVuZGVyUHJvZ3Jlc3M6Om1heFByb2dy
ZXNzKCkgY29uc3QKK3sKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKGVsZW1lbnQpCisg
ICAgICAgIHJldHVybiBlbGVtZW50LT5tYXgoKTsKKyAgICByZXR1cm4gMTsKK30KK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFJl
bmRlclByb2dyZXNzX2gKKyNkZWZpbmUgUmVuZGVyUHJvZ3Jlc3NfaAorCisjaWYgRU5BQkxFKFBS
T0dSRVNTX1RBRykKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBSZW5kZXJQcm9ncmVzcyA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitwdWJsaWM6
CisgICAgUmVuZGVyUHJvZ3Jlc3MoRWxlbWVudCopOworICAgIHZpcnR1YWwgflJlbmRlclByb2dy
ZXNzKCk7CisKKyAgICBmbG9hdCB2YWx1ZSgpIGNvbnN0OworICAgIGZsb2F0IG1heFByb2dyZXNz
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclByb2dyZXNzIjsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgaW50IGJhc2Vs
aW5lUG9zaXRpb24oYm9vbCwgYm9vbCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNhbGNQcmVm
V2lkdGhzKCk7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGcm9tRWxlbWVudCgpOworfTsKKworaW5saW5lIFJlbmRlclByb2dyZXNzKiB0b1JlbmRl
clByb2dyZXNzKFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8
IG9iamVjdC0+aXNQcm9ncmVzcygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUHJv
Z3Jlc3MqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyUHJvZ3Jlc3MoY29uc3QgUmVuZGVyUHJv
Z3Jlc3MqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8v
IFJlbmRlclByb2dyZXNzX2gKKwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkocmV2
aXNpb24gNTU3NDYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5
bGUoQ1NTU3R5bGVTZQogICAgICAgICAgICAgcmV0dXJuIGFkanVzdFNlYXJjaEZpZWxkUmVzdWx0
c0RlY29yYXRpb25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwogICAgICAgICBjYXNlIFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gYWRqdXN0U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsKKyNpZiBFTkFCTEUo
UFJPR1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyAgICAgICAgICAg
IHJldHVybiBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CisjZW5k
aWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTI2Nyw2
ICsyNzEsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBvLAogI2Vu
ZGlmCiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIHBhaW50
TWVudUxpc3QobywgcGFpbnRJbmZvLCByKTsKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAg
ICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyAgICAgICAgICAgIHJldHVybiBwYWludFByb2dy
ZXNzQmFyKG8sIHBhaW50SW5mbywgcik7CisjZW5kaWYKICAgICAgICAgY2FzZSBTbGlkZXJIb3Jp
em9udGFsUGFydDoKICAgICAgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBhcnQ6CiAgICAgICAgICAg
ICByZXR1cm4gcGFpbnRTbGlkZXJUcmFjayhvLCBwYWludEluZm8sIHIpOwpAQCAtMzU3LDYgKzM2
NSw5IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seShSZW5kZXIKICAgICAgICAg
Y2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAg
ICBjYXNlIE1lbnVsaXN0UGFydDoKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICBj
YXNlIFByb2dyZXNzQmFyUGFydDoKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250
YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgY2FzZSBT
bGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgpAQCAtMzkyLDYgKzQwMyw5IEBAIGJvb2wgUmVuZGVy
VGhlbWU6OnBhaW50RGVjb3JhdGlvbnMoUmVuZGUKICAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9u
UGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIE1lbnVsaXN0UGFy
dDoKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFy
dDoKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICBj
YXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6b250
YWxQYXJ0OgpAQCAtODI1LDYgKzgzOSwxMiBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RNZW51
TGlzdFN0eWxlKENTCiB7CiB9CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQordm9pZCBSZW5k
ZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVy
U3R5bGUqLCBFbGVtZW50KikgY29uc3QKK3sKK30KKyNlbmRpZgorCiB2b2lkIFJlbmRlclRoZW1l
OjphZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHls
ZSosIEVsZW1lbnQqKSBjb25zdAogewogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCShy
ZXZpc2lvbiA1NTc0NikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyNyw2ICsyMjcsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHls
ZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRv
bihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQcm9n
cmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSos
IEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5k
ZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KSB7IHJldHVybiB0cnVlOyB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NzQ2KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDMt
MDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVz
c0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1OTM3CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3Jp
cHQtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9n
cmVzcy1wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lw
cGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVz
cy1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorCiAyMDEwLTAzLTA5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgogCiAgICAgICAgIFtHVEtdIEZhaWxzIGh0dHAvdGVzdHMvcGx1Z2lucy90aGly
ZC1wYXJ0eS1jb29raWUtYWNjZXB0LXBvbGljeS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVs
ZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
IEBACis8aHRtbD48Ym9keT48cHJvZ3Jlc3MgdmFsdWU9NzAgbWF4PTEwMD48L3Byb2dyZXNzPjwv
Ym9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVt
ZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1l
bnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJ
TEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3Mt
cHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2Ny
aXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ1IEBACitkZXNjcmlwdGlvbignVGVzdCBzZXR0aW5nIHZhbGlkIGFuZCBpbnZhbGlkIHBy
b3BlcnRpZXMgb2YgSFRNTFByb2dyZXNzRWxlbWVudC4nKTsKKwordmFyIHAgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdwcm9ncmVzcycpOworCitkZWJ1ZygiVGVzdCB2YWx1ZXMgYmVmb3JlIHBy
b3BlcnRpZXMgd2VyZSBzZXQiKTsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjEiKTsKK3Nob3VsZEJl
KCJwLm1heCIsICIxIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICItMSIpOworCitkZWJ1Zygi
U2V0IHZhbGlkIHZhbHVlcyIpOworcC52YWx1ZSA9IDdlMTsKK3AubWF4ID0gIjFlMiI7CitzaG91
bGRCZSgicC52YWx1ZSIsICI3MCIpOworc2hvdWxkQmUoInAubWF4IiwgIjEwMCIpOworc2hvdWxk
QmUoInAucG9zaXRpb24iLCAiMC43Iik7CisKK2RlYnVnKCJTZXQgdmFsdWUgYmlnZ2VyIHRoYW4g
bWF4Iik7CitwLnZhbHVlID0gMjAwOworcC5tYXggPSAxMDAuMDsKK3Nob3VsZEJlKCJwLnZhbHVl
IiwgIjEwMCIpOworc2hvdWxkQmUoInAubWF4IiwgIjEwMCIpOworc2hvdWxkQmUoInAucG9zaXRp
b24iLCAiMS4wIik7CisKK2RlYnVnKCJTZXQgaW52YWxpZCB2YWx1ZSIpOworcC52YWx1ZSA9ICIy
MDBBIjsKK3AubWF4ID0gMTAwOworc2hvdWxkQmUoInAudmFsdWUiLCAiMCIpOworc2hvdWxkQmUo
InAubWF4IiwgIjEwMCIpOworc2hvdWxkQmUoInAucG9zaXRpb24iLCAiMCIpOworCitkZWJ1Zygi
U2V0IGludmFsaWQgbWF4Iik7CitwLnZhbHVlID0gIjIwIjsKK3AubWF4ID0gIm1heCI7CitzaG91
bGRCZSgicC52YWx1ZSIsICIxIik7CitzaG91bGRCZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUo
InAucG9zaXRpb24iLCAiMSIpOworCitkZWJ1ZygiU2V0IHZhbHVlIHRvIG51bGwgYW5kIG1heCB0
byAwIik7CitwLnZhbHVlID0gbnVsbDsKK3AubWF4ID0gMDsKK3Nob3VsZEJlKCJwLnZhbHVlIiwg
IjAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIw
Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQJKHJldmlzaW9uIDU1NzQ2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU4MjIsNSArNTgyMiwxMCBAQCBmYXN0L2Zvcm1z
L211bHRpcGxlLWZvcm0tc3VibWlzc2lvbi1wcm90CiAjIG1vdXNlU2Nyb2xsQnkoKSBpcyBub3Qg
eWV0IGltcGxlbWVudGVkIGluIHRoZSBHVEsgRXZlbnRTZW5kZXIgQVBJLgogZmFzdC9ldmVudHMv
cmVtb3ZlLWNoaWxkLW9uc2Nyb2xsLmh0bWwKIAorIyByZW5kZXJUaGVtZSBpcyBub3QgcmVhZHkg
dG8gZHJhdyBwcm9ncmVzcyBlbGVtZW50CitmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3By
b2dyZXNzLWVsZW1lbnQuaHRtbAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJv
Z3Jlc3MtcHJvcGVydGllcy5odG1sCisKICMgQXBwYXJlbnRseSBhIHNvdXAgYnVnOyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTQyCiBodHRwL3Rlc3RzL3Bs
dWdpbnMvdGhpcmQtcGFydHktY29va2llLWFjY2VwdC1wb2xpY3kuaHRtbAorCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNTU3NDYpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDQgKzEyNyw5IEBAIHN2Zy9j
dXN0b20vdGlsaW5nLXJlZ3VsYXItaGV4YWdvbmFsLWNyYXMKIGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbgogCiAjIEZvciBzb21lIHJlYXNvbiBjcmFzaGVzIHdoZW4gcnVuIHdpdGggYWxs
IHRlc3RzLiBQYXNzZXMgaW5kaXZpZHVhbGx5LgotZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1
Ym1pc3Npb24tcHJvdGVjdGlvbi1tb3VzZS5odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJvdGVjdGlvbi1tb3VzZS5o
dG1sCisKKyMgcmVuZGVyVGhlbWUgaXMgbm90IHJlYWR5IHRvIGRyYXcgcHJvZ3Jlc3MgZWxlbWVu
dAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwKK2Zh
c3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAor
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVt
ZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVz
cy1lbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACiswMWNmZmQ5OWI1
MGM3OGJjZGY5M2QyM2YxYzIwY2MwMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJv
Z3Jlc3MtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyUHJvZ3Jl
c3Mge1BST0dSRVNTfSBhdCAoMiwyKSBzaXplIDEyMHgyMAorICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1M
UHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVz
c0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMzIEBACitUZXN0IHNldHRpbmcgdmFsaWQgYW5kIGludmFsaWQgcHJvcGVy
dGllcyBvZiBIVE1MUHJvZ3Jlc3NFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworVGVzdCB2YWx1ZXMgYmVmb3JlIHByb3BlcnRpZXMgd2VyZSBzZXQKK1BBU1MgcC52YWx1
ZSBpcyAxCitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAtMQorU2V0IHZhbGlk
IHZhbHVlcworUEFTUyBwLnZhbHVlIGlzIDcwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBv
c2l0aW9uIGlzIDAuNworU2V0IHZhbHVlIGJpZ2dlciB0aGFuIG1heAorUEFTUyBwLnZhbHVlIGlz
IDEwMAorUEFTUyBwLm1heCBpcyAxMDAKK1BBU1MgcC5wb3NpdGlvbiBpcyAxLjAKK1NldCBpbnZh
bGlkIHZhbHVlCitQQVNTIHAudmFsdWUgaXMgMAorUEFTUyBwLm1heCBpcyAxMDAKK1BBU1MgcC5w
b3NpdGlvbiBpcyAwCitTZXQgaW52YWxpZCBtYXgKK1BBU1MgcC52YWx1ZSBpcyAxCitQQVNTIHAu
bWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAxCitTZXQgdmFsdWUgdG8gbnVsbCBhbmQgbWF4
IHRvIDAKK1BBU1MgcC52YWx1ZSBpcyAwCitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlv
biBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhw
ZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNh
ZG9Kd0FBQUFDWEJJV1hNQUFBN0VBQUFPeEFHVkt3NGJBQUFNCnhFbEVRVlI0bk8zYXUwMURRUkJB
MFRXaUc1QWdvd1VLc1NWLzZyRUlhSVF5Q09obmlRaVJIa0srTDNqbnBEdkJwRmV6dXpubkhBQUEK
QUlHN3RSY0FBQUMyUTRBQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkE1bjdwNE9WMAp1T1Vlck9qNjlyNzJDZ0FBYk1UaUFCbGpqUE54ZjZzOUFBQ0FE
ZkFGQ3dBQXlQenBBdkxqOGZuajE3ZXZ6MWN6QzJZQUFHQ0xYRUFBCkFJQ01BQUVBQURJQ0JBQUF5
QWdRQUFBZ0kwQUFBSUNNQUFFQUFESUNCQUFBeUFnUUFBQWdJMEFBQUlDTUFBRUFBRElDQkFBQXlB
Z1EKQUFBZ0kwQUFBSURNYnM0NWx3eGVUb2R4UHU1dnZROHJlSGg2V1hzRkFBQTJ3Z1VFQUFESUxM
NkFBQUFBL0pjTENBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
CkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQTVodk9CekxlTzhpeE93QUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>
<flag name="review"
          id="33466"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50423</attachid>
            <date>2010-03-10 12:33:36 -0800</date>
            <delta_ts>2010-03-10 19:28:21 -0800</delta_ts>
            <desc>Patch v4</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>43914</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTc5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBm
b3IgSFRNTFByb2dyZXNzRWxlbWVudC4KKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBl
bmFibGVkIG9ubHkgZm9yIFF0LCBiZWNhdXNlIG9ubHkgUmVuZGVyVGhlbWVRdAorICAgICAgICB3
YXMgbW9kaWZpZWQgdG8gYWN0dWFsbHkgZHJhdyB0aGUgcHJvZ3Jlc3MgZWxlbWVudC4KKyAgICAg
ICAgVGhlIGxhYmVscyBhdHRyaWJ1dGUgb2YgdGhlIHByb2dyZXNzIGVsZW1lbnQgd2lsbCBiZSBp
bXBsZW1lbnRlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgor
ICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW46CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAqIGh0bWwvSFRNTEVs
ZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGw6IEFkZGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmlk
bDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UaGVtZVR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVR
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuaDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKwogMjAxMC0wMy0xMCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24gNTU3OTApCisr
KyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0
Myw5IEBACiAjaW5jbHVkZSAiSlNIVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
SlNIVE1MUGFyYW1FbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxQcmVFbGVtZW50LmNwcCIK
KyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIkpTSFRNTFByb2dyZXNzRWxlbWVu
dC5jcHAiCisjZW5kaWYKICNpbmNsdWRlICJKU0hUTUxRdW90ZUVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkpTSFRNTFNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFNlbGVjdEVsZW1l
bnQuY3BwIgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNTU3OTApCisrKyBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsNyBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBIVE1MUGFyYWdyYXBoRWxlbWVudCBcCiAgICAgSFRNTFBhcmFt
RWxlbWVudCBcCiAgICAgSFRNTFByZUVsZW1lbnQgXAorICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQg
XAogICAgIEhUTUxRdW90ZUVsZW1lbnQgXAogICAgIEhUTUxTY3JpcHRFbGVtZW50IFwKICAgICBI
VE1MU2VsZWN0RWxlbWVudCBcCkBAIC02MjAsNiArNjIxLDEwIEBAIGlmZXEgKCQoZmluZHN0cmlu
ZyBFTkFCTEVfREFUQUxJU1QsJChGRUEKICAgICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9GTEFHUykg
RU5BQkxFX0RBVEFMSVNUPTEKIGVuZGlmCiAKK2lmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfUFJP
R1JFU1NfVEFHLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9QUk9HUkVTU19UQUcpCisgICAg
SFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9QUk9HUkVTU19UQUc9MQorZW5kaWYK
KwogaWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9WSURFTywkKEZFQVRVUkVfREVGSU5FUykpLCBF
TkFCTEVfVklERU8pCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9WSURF
Tz0xCiBlbmRpZgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiA1NTc5MCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcmkJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1NJTkdMRV9USFJFQURFRAogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0uKTogREVG
SU5FUyArPSBFTkFCTEVfVklERU89MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9SVUJZPS4p
OiBERUZJTkVTICs9IEVOQUJMRV9SVUJZPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU0FO
REJPWD0uKTogREVGSU5FUyArPSBFTkFCTEVfU0FOREJPWD0xCishY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX1BST0dSRVNTX1RBRz0uKTogREVGSU5FUyArPSBFTkFCTEVfUFJPR1JFU1NfVEFHPTEK
ICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQkxPQl9TTElDRT0uKTogREVGSU5FUyArPSBFTkFC
TEVfQkxPQl9TTElDRT0wCiAKIGdyZWF0ZXJUaGFuKFFUX01JTk9SX1ZFUlNJT04sIDUpIHsKQEAg
LTM2MSw2ICszNjIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwvSFRNTFBhcmFncmFw
aEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRsIFwKICAgICBodG1s
L0hUTUxQcmVFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBc
CiAgICAgaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIFwKSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNp
b24gNTU3OTApCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUy
LDYgKzI0NTIsMTYgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hIVE1MTVA9MSkgewogICAg
ICAgICBodG1sL0hUTUxOb1NjcmlwdEVsZW1lbnQuY3BwCiB9CiAKK2NvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9QUk9HUkVTU19UQUc9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBodG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBcCisgICAgICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVz
cy5oCisKKyAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50
LmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKK30KKwogY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1FUX0JFQVJFUj0xKSB7CiAgICAgSEVBREVSUyArPSBcCiAgICAg
ICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlLmgKSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDU1Nzkw
KQorKysgV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzUsNiArMjc1LDExIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1MKICAgICAgICAgY2FzZSBPdXRlclNwaW5CdXR0b25QYXJ0OgogICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3V0ZXJTcGluQnV0dG9uOwogICAgICAgICAgICAgYnJl
YWs7CisjaWYgRU5BQkxFKFBST0dSRVNTX0JBUikKKyAgICAgICAgY2FzZSBQcm9ncmVzc0JhclBh
cnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcm9ncmVzc0JhcjsKKyAg
ICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBh
cnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJIb3Jpem9udGFs
OwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA1NTc5
MCkKKysrIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5
LDYgKzEyOSw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY28KICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb25seU9mVHlwZSwgKCJvbmx5LW9m
LXR5cGUiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wdGlvbmFs
LCAoIm9wdGlvbmFsIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBv
dXRlclNwaW5CdXR0b24sICgiLXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiIpKTsKKyNpZiBFTkFC
TEUoUFJPR1JFU1NfQkFSKQorICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBw
cm9ncmVzc0JhciwgKCItd2Via2l0LXByb2dyZXNzLWJhciIpKTsKKyNlbmRpZgogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXF1aXJlZCwgKCJyZXF1aXJlZCIpKTsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzaXplciwgKCItd2Via2l0LXJl
c2l6ZXIiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJvb3QsICgi
cm9vdCIpKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gNTU3OTApCisr
KyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01ODIs
NiArNTgyLDcgQEAgbWVudWxpc3QtYnV0dG9uCiBtZW51bGlzdC10ZXh0CiBtZW51bGlzdC10ZXh0
ZmllbGQKIG91dGVyLXNwaW4tYnV0dG9uCitwcm9ncmVzcy1iYXIKIHNsaWRlci1ob3Jpem9udGFs
CiBzbGlkZXItdmVydGljYWwKIHNsaWRlcnRodW1iLWhvcml6b250YWwKSW5kZXg6IFdlYkNvcmUv
Y3NzL2h0bWwuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL2h0bWwuY3NzCShyZXZpc2lv
biA1NTc5MCkKKysrIFdlYkNvcmUvY3NzL2h0bWwuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC01MTUs
NiArNTE1LDE5IEBAIG9wdGlvbiB7CiAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKIH0KIAorLyog
cHJvZ3Jlc3MgKi8KKworcHJvZ3Jlc3MgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jl
c3MtYmFyOworICAgIHBhZGRpbmc6IGluaXRpYWw7CisgICAgYm9yZGVyOiBpbml0aWFsOworICAg
IG1hcmdpbjogMnB4OworfQorCitwcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1iYXIgeworICAg
IC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyOworfQorCiAvKiBkYXRhZ3JpZCAqLwog
CiBkYXRhZ3JpZCB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDU1NzkwKQorKysg
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODU0LDYgKzg1
NCw5IEBAIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiogaW5saW4KICAgICAgICAg
dGFnTGlzdC5hZGQocnBUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKICAgICAgICAgdGFnTGlzdC5h
ZGQocnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKICAgICAgICAgdGFnTGlzdC5hZGQocnVieVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCkpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAg
IHRhZ0xpc3QuYWRkKHByb2dyZXNzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CisjZW5kaWYKICAg
ICB9CiAgICAgcmV0dXJuICZ0YWdMaXN0OwogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50c0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRz
QWxsSW5PbmUuY3BwCShyZXZpc2lvbiA1NTc5MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dHNBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRl
ICJIVE1MUGx1Z0luRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkhUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5j
cHAiCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lv
biA1NTc5MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDksOCArNDksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
YywgSFRNTEZvcm1FbGVtZW50KiBmKQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jKQor
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYsIENv
bnN0cnVjdGlvblR5cGUgY29uc3RydWN0aW9uVHlwZSkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05h
bWUsIGRvYywgY29uc3RydWN0aW9uVHlwZSkKICAgICAsIG1fZm9ybShmKQogICAgICwgbV9oYXNO
YW1lKGZhbHNlKQogICAgICwgbV9kaXNhYmxlZChmYWxzZSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gNTU3OTApCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIGNs
YXNzIFZpc2libGVTZWxlY3Rpb247CiAKIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgOiBw
dWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQq
KTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50KiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0
ZUVsZW1lbnRaZXJvUmVmQ291bnQpOwogICAgIHZpcnR1YWwgfkhUTUxGb3JtQ29udHJvbEVsZW1l
bnQoKTsKIAogICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNp
bmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CisjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCisj
aW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwor
SFRNTFByb2dyZXNzRWxlbWVudDo6SFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkK
KyAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0sIENy
ZWF0ZUVsZW1lbnQpCisgICAgLCBtX3ZhbHVlKDEpCisgICAgLCBtX21heCgxKQorICAgICwgbV9p
c0RldGVybWluYXRlKGZhbHNlKQoreworICAgIEFTU0VSVChoYXNUYWdOYW1lKHByb2dyZXNzVGFn
KSk7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRNTFByb2dyZXNzRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTFByb2dyZXNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOworfQorCitSZW5k
ZXJPYmplY3QqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJQcm9ncmVzcyh0aGlzKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MUHJvZ3Jl
c3NFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcm9ncmVzcywgKCJwcm9ncmVzcyIpKTsKKyAgICBy
ZXR1cm4gcHJvZ3Jlc3M7Cit9CisKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAgIGlmIChhdHRyLT5uYW1l
KCkgPT0gdmFsdWVBdHRyKSB7CisgICAgICAgIG1faXNEZXRlcm1pbmF0ZSA9IHRydWU7CisgICAg
ICAgIGJvb2wgb2s7CisgICAgICAgIG1fdmFsdWUgPSBhdHRyLT52YWx1ZSgpLnRvRG91YmxlKCZv
ayk7CisgICAgICAgIGlmICghb2sgfHwgbV92YWx1ZSA8IDApCisgICAgICAgICAgICBtX3ZhbHVl
ID0gMDsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtYXhBdHRyKSB7CisgICAgICAg
IGJvb2wgb2s7CisgICAgICAgIG1fbWF4ID0gYXR0ci0+dmFsdWUoKS50b0RvdWJsZSgmb2spOwor
ICAgICAgICBpZiAoIW9rIHx8IG1fbWF4IDw9IDApCisgICAgICAgICAgICBtX21heCA9IDE7Cisg
ICAgfSBlbHNlCisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKGF0dHIpOworfQorCitkb3VibGUgSFRNTFByb2dyZXNzRWxlbWVudDo6dmFsdWUoKSBj
b25zdAoreworICAgIGlmICghbV9pc0RldGVybWluYXRlKQorICAgICAgICByZXR1cm4gMTsKKyAg
ICBpZiAobV92YWx1ZSA+IG1fbWF4KQorICAgICAgICByZXR1cm4gbV9tYXg7CisgICAgaWYgKG1f
dmFsdWUgPj0gMCkKKyAgICAgICAgcmV0dXJuIG1fdmFsdWU7CisgICAgcmV0dXJuIDA7Cit9CisK
K3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6c2V0VmFsdWUoZG91YmxlIHZhbHVlKQoreworICAg
IG1fdmFsdWUgPSB2YWx1ZTsKKyAgICBtX2lzRGV0ZXJtaW5hdGUgPSB0cnVlOworfQorCitkb3Vi
bGUgSFRNTFByb2dyZXNzRWxlbWVudDo6bWF4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tYXg7
Cit9CisKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6c2V0TWF4KGRvdWJsZSBtYXgpCit7Cisg
ICAgbV9tYXggPSBtYXggPiAwID8gbWF4IDogMTsKK30KKworZG91YmxlIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OnBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9pc0RldGVybWluYXRlKQorICAg
ICAgICByZXR1cm4gdmFsdWUoKSAvIG1heCgpOworICAgIHJldHVybiAtMTsKK30KKworfSAvLyBu
YW1lc3BhY2UKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEhUTUxQcm9n
cmVzc0VsZW1lbnRfaAorI2RlZmluZSBIVE1MUHJvZ3Jlc3NFbGVtZW50X2gKKworI2lmIEVOQUJM
RShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBwdWJsaWMg
SFRNTEZvcm1Db250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTFByb2dyZXNzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCosIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKKworICAgIGRvdWJsZSB2YWx1ZSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0VmFsdWUoZG91YmxlKTsKKworICAgIGRvdWJsZSBtYXgoKSBjb25zdDsKKyAg
ICB2b2lkIHNldE1heChkb3VibGUpOworCisgICAgZG91YmxlIHBvc2l0aW9uKCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgSFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNP
cHRpb25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OworCisgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUqKTsKKworICAgIGRvdWJsZSBtX3ZhbHVlOworICAgIGRvdWJsZSBtX21heDsKKyAgICBi
b29sIG1faXNEZXRlcm1pbmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgorI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFj
ZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVBST0dSRVNTX1RBRworICAgIF0gSFRNTFByb2dyZXNz
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBkb3Vi
bGUgICAgICAgICAgICAgICAgdmFsdWU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgZG91
YmxlICAgICAgICAgICAgICAgIG1heDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBkb3Vi
bGUgICAgICAgICAgICAgICAgcG9zaXRpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAg
SFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGVMaXN0IGxhYmVsczsKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRh
Z05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJl
dmlzaW9uIDU1NzkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwIGludGVyZmFjZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1l
bnQsIGNyCiBwYXJhbSBjcmVhdGVXaXRoTmV3CiBwbGFpbnRleHQgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAogcHJlIGNyZWF0ZVdpdGhOZXcKK3Byb2dyZXNzIGludGVyZmFjZU5hbWU9SFRNTFBy
b2dyZXNzRWxlbWVudCwgY29uZGl0aW9uYWw9UFJPR1JFU1NfVEFHCiBxIGludGVyZmFjZU5hbWU9
SFRNTFF1b3RlRWxlbWVudCwgY3JlYXRlV2l0aE5ldwogcnAgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudCwgY29uZGl0aW9uYWw9UlVCWQogcnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29u
ZGl0aW9uYWw9UlVCWQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDU1NzkwKQorKysgV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAsOSBA
QCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEhUTUxQYXJhZ3JhcGhFbGVtZW50
Q29uc3RydWN0b3IgSFRNTFBhcmFncmFwaEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1M
UGFyYW1FbGVtZW50Q29uc3RydWN0b3IgSFRNTFBhcmFtRWxlbWVudDsKICAgICAgICAgYXR0cmli
dXRlIEhUTUxQcmVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFByZUVsZW1lbnQ7CisjaWYgZGVmaW5l
ZChFTkFCTEVfUFJPR1JFU1NfVEFHKSAmJiBFTkFCTEVfUFJPR1JFU1NfVEFHCisgICAgICAgIGF0
dHJpYnV0ZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Q29uc3RydWN0b3IgSFRNTFByb2dyZXNzRWxlbWVu
dDsKKyNlbmRpZgogICAgICAgICBhdHRyaWJ1dGUgSFRNTFF1b3RlRWxlbWVudENvbnN0cnVjdG9y
IEhUTUxRdW90ZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MU2NyaXB0RWxlbWVudENv
bnN0cnVjdG9yIEhUTUxTY3JpcHRFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFNlbGVj
dEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU2VsZWN0RWxlbWVudDsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVU
eXBlcy5oCShyZXZpc2lvbiA1NTc5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAg
IE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlh
UmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25QYXJ0LAogICAgIE1lZGlhU2xpZGVyUGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZv
bHVtZVNsaWRlclRodW1iUGFydCwKICAgICBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQsIE1l
ZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAotICAgIE1lbnVsaXN0
UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRleHRG
aWVsZFBhcnQsIE91dGVyU3BpbkJ1dHRvblBhcnQsCisgICAgTWVudWxpc3RQYXJ0LCBNZW51bGlz
dEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgT3V0
ZXJTcGluQnV0dG9uUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0LAogICAgIFNsaWRlckhvcml6b250YWxQ
YXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQsIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQsCiAgICAg
U2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQsIENhcmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFy
Y2hGaWVsZERlY29yYXRpb25QYXJ0LAogICAgIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25Q
YXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0LApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA1NTc5MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDExICs0MSwxNyBAQAog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisjZW5kaWYKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgor
I2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgpAQCAtNjMsNiArNjksOSBAQAogI2luY2x1ZGUgPFFT
dHlsZUZhY3Rvcnk+CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uQnV0dG9uPgogI2luY2x1ZGUgPFFT
dHlsZU9wdGlvbkZyYW1lVjI+CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlIDxR
U3R5bGVPcHRpb25Qcm9ncmVzc0JhclYyPgorI2VuZGlmCiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9u
U2xpZGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAKQEAgLTYzMiw2ICs2NDEsNDIgQEAgYm9vbCBS
ZW5kZXJUaGVtZVF0OjpwYWludE1lbnVMaXN0QnV0dG9uKAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFBy
b2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxl
bWVudCopIGNvbnN0Cit7CisgICAgc3R5bGUtPnNldEJveFNoYWRvdygwKTsKK30KKworYm9vbCBS
ZW5kZXJUaGVtZVF0OjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVu
ZGVyT2JqZWN0OjpQYWludEluZm8mIHBpLCBjb25zdCBJbnRSZWN0JiByKQoreworICAgIFN0eWxl
UGFpbnRlciBwKHRoaXMsIHBpKTsKKyAgICBpZiAoIXAuaXNWYWxpZCgpKQorICAgICAgIHJldHVy
biB0cnVlOworCisgICAgUVN0eWxlT3B0aW9uUHJvZ3Jlc3NCYXJWMiBvcHRpb247CisgICAgaWYg
KHAud2lkZ2V0KQorICAgICAgIG9wdGlvbi5pbml0RnJvbShwLndpZGdldCk7CisgICAgaW5pdGlh
bGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMob3B0aW9uLCBvKTsKKworICAgIFJlbmRlclByb2dyZXNz
KiByZW5kZXJQcm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisgICAgSFRNTFByb2dyZXNz
RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQcm9ncmVzc0VsZW1lbnQqPihyZW5k
ZXJQcm9ncmVzcy0+bm9kZSgpKTsKKyAgICBvcHRpb24ucmVjdCA9IHI7CisgICAgb3B0aW9uLm1h
eGltdW0gPSBlbGVtZW50LT5tYXgoKTsKKyAgICBvcHRpb24ubWluaW11bSA9IDA7CisgICAgb3B0
aW9uLnByb2dyZXNzID0gZWxlbWVudC0+dmFsdWUoKTsKKworICAgIGNvbnN0IFFQb2ludCB0b3BM
ZWZ0ID0gci50b3BMZWZ0KCk7CisgICAgcC5wYWludGVyLT50cmFuc2xhdGUodG9wTGVmdCk7Cisg
ICAgb3B0aW9uLnJlY3QubW92ZVRvKFFQb2ludCgwLCAwKSk7CisgICAgb3B0aW9uLnJlY3Quc2V0
U2l6ZShyLnNpemUoKSk7CisKKyAgICBwLmRyYXdDb250cm9sKFFTdHlsZTo6Q0VfUHJvZ3Jlc3NC
YXIsIG9wdGlvbik7CisgICAgcC5wYWludGVyLT50cmFuc2xhdGUoLXRvcExlZnQpOworCisgICAg
cmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRTbGlk
ZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBw
aSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBy
KQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHJldmlzaW9uIDU1Nzkw
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSw2ICsxMDEsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1l
bnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRv
blN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsK
IAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dy
ZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworI2VuZGlmCisK
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZv
aWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUq
LCBFbGVtZW50KikgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZp
c2lvbiA1NTc5MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNzcsNiArMjc3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0xp
c3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01l
ZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlz
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5k
aWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgi
CisKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRQcm9n
cmVzc1dpZHRoID0gMTIwOworc3RhdGljIGNvbnN0IGludCBkZWZhdWx0UHJvZ3Jlc3NIZWlnaHQg
PSAyMDsKKworUmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKEVsZW1lbnQqIGVsZW1lbnQp
CisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQoreworICAgIHNldFNpemUoUVNpemUoZGVmYXVs
dFByb2dyZXNzV2lkdGgsIGRlZmF1bHRQcm9ncmVzc0hlaWdodCkpOworICAgIHNldFJlcGxhY2Vk
KHRydWUpOworfQorCitpbnQgUmVuZGVyUHJvZ3Jlc3M6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwg
Ym9vbCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGVpZ2h0KCkgKyBtYXJnaW5Ub3AoKTsKK30KKwor
dm9pZCBSZW5kZXJQcm9ncmVzczo6Y2FsY1ByZWZXaWR0aHMoKQoreworICAgIG1fbWluUHJlZldp
ZHRoID0gMDsKKyAgICBtX21heFByZWZXaWR0aCA9IDA7CisKKyAgICBpZiAoc3R5bGUoKS0+d2lk
dGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpID4gMCkKKyAgICAgICAg
bV9taW5QcmVmV2lkdGggPSBtX21heFByZWZXaWR0aCA9IGNhbGNDb250ZW50Qm94V2lkdGgoc3R5
bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIG1fbWF4UHJlZldpZHRo
ID0gZGVmYXVsdFByb2dyZXNzV2lkdGggKiBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCk7CisKKyAg
ICBpZiAoc3R5bGUoKS0+bWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+bWluV2lkdGgo
KS52YWx1ZSgpID4gMCkgeworICAgICAgICBtX21heFByZWZXaWR0aCA9IG1heChtX21heFByZWZX
aWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsK
KyAgICAgICAgbV9taW5QcmVmV2lkdGggPSBtYXgobV9taW5QcmVmV2lkdGgsIGNhbGNDb250ZW50
Qm94V2lkdGgoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgfSBlbHNlIGlmIChz
dHlsZSgpLT53aWR0aCgpLmlzUGVyY2VudCgpIHx8IChzdHlsZSgpLT53aWR0aCgpLmlzQXV0bygp
ICYmIHN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgpKSkKKyAgICAgICAgbV9taW5QcmVmV2lk
dGggPSAwOworICAgIGVsc2UKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSBtX21heFByZWZXaWR0
aDsKKworICAgIGlmIChzdHlsZSgpLT5tYXhXaWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT5t
YXhXaWR0aCgpLnZhbHVlKCkgIT0gdW5kZWZpbmVkTGVuZ3RoKSB7CisgICAgICAgIG1fbWF4UHJl
ZldpZHRoID0gbWluKG1fbWF4UHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCkt
Pm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZXaWR0aCA9IG1pbihtX21p
blByZWZXaWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVl
KCkpKTsKKyAgICB9CisKKyAgICBpbnQgdG9BZGQgPSBwYWRkaW5nTGVmdCgpICsgcGFkZGluZ1Jp
Z2h0KCkgKyBib3JkZXJMZWZ0KCkgKyBib3JkZXJSaWdodCgpOworICAgIG1fbWluUHJlZldpZHRo
ICs9IHRvQWRkOworICAgIG1fbWF4UHJlZldpZHRoICs9IHRvQWRkOworCisgICAgc2V0UHJlZldp
ZHRoc0RpcnR5KGZhbHNlKTsKK30KKwordm9pZCBSZW5kZXJQcm9ncmVzczo6bGF5b3V0KCkKK3sK
KyAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CisKKyAgICBMYXlvdXRSZXBhaW50ZXIgcmVwYWlu
dGVyKCp0aGlzLCBjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKSk7CisKKyAgICBjYWxjV2lk
dGgoKTsKKyAgICBjYWxjSGVpZ2h0KCk7CisKKyAgICBtX292ZXJmbG93LmNsZWFyKCk7CisKKyAg
ICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CisKKyAgICBzZXROZWVkc0xheW91dChm
YWxzZSk7Cit9CisKK3ZvaWQgUmVuZGVyUHJvZ3Jlc3M6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sK
KyAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9n
cmVzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUmVu
ZGVyUHJvZ3Jlc3NfaAorI2RlZmluZSBSZW5kZXJQcm9ncmVzc19oCisKKyNpZiBFTkFCTEUoUFJP
R1JFU1NfVEFHKQorI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFJlbmRlclByb2dyZXNzIDogcHVibGljIFJlbmRlckJsb2NrIHsKK3B1YmxpYzoK
KyAgICBSZW5kZXJQcm9ncmVzcyhFbGVtZW50Kik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclByb2dyZXNzIjsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oYm9vbCwgYm9vbCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIGNhbGNQcmVmV2lkdGhzKCk7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgp
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworfTsKKworaW5saW5lIFJl
bmRlclByb2dyZXNzKiB0b1JlbmRlclByb2dyZXNzKFJlbmRlck9iamVjdCogb2JqZWN0KQorewor
ICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNQcm9ncmVzcygpKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UmVuZGVyUHJvZ3Jlc3MqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwg
Y2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyUHJv
Z3Jlc3MoY29uc3QgUmVuZGVyUHJvZ3Jlc3MqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKKworI2VuZGlmIC8vIFJlbmRlclByb2dyZXNzX2gKKwpJbmRleDogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAkocmV2aXNpb24gNTU3OTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTAgQEAgdm9pZCBS
ZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUoQ1NTU3R5bGVTZQogICAgICAgICAgICAgcmV0dXJuIGFk
anVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUp
OwogICAgICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6CiAgICAgICAgICAg
ICByZXR1cm4gYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoc2VsZWN0b3IsIHN0
eWxlLCBlKTsKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNz
QmFyUGFydDoKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKHNlbGVj
dG9yLCBzdHlsZSwgZSk7CisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJy
ZWFrOwogICAgIH0KQEAgLTI2Nyw2ICsyNzEsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQo
UmVuZGVyT2JqZWN0KiBvLAogI2VuZGlmCiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgogICAg
ICAgICAgICAgcmV0dXJuIHBhaW50TWVudUxpc3QobywgcGFpbnRJbmZvLCByKTsKKyNpZiBFTkFC
TEUoUFJPR1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyAgICAgICAg
ICAgIHJldHVybiBwYWludFByb2dyZXNzQmFyKG8sIHBhaW50SW5mbywgcik7CisjZW5kaWYKICAg
ICAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKICAgICAgICAgY2FzZSBTbGlkZXJWZXJ0
aWNhbFBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTbGlkZXJUcmFjayhvLCBwYWludElu
Zm8sIHIpOwpAQCAtMzU3LDYgKzM2NSw5IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVy
T25seShSZW5kZXIKICAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAgICAgY2Fz
ZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIE1lbnVsaXN0UGFydDoKKyNpZiBFTkFCTEUoUFJP
R1JFU1NfVEFHKQorICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyNlbmRpZgogICAgICAg
ICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2Fs
UGFydDoKICAgICAgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgpAQCAtMzkyLDYg
KzQwMyw5IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50RGVjb3JhdGlvbnMoUmVuZGUKICAgICAg
ICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAg
ICAgICBjYXNlIE1lbnVsaXN0UGFydDoKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAg
ICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6
b250YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgY2Fz
ZSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgpAQCAtODI1LDYgKzgzOSwxMiBAQCB2b2lkIFJl
bmRlclRoZW1lOjphZGp1c3RNZW51TGlzdFN0eWxlKENTCiB7CiB9CiAKKyNpZiBFTkFCTEUoUFJP
R1JFU1NfVEFHKQordm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NT
dHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QKK3sKK30KKyNlbmRp
ZgorCiB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxl
U2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdAogewogfQpJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCShyZXZpc2lvbiA1NTc5MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsMTEgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxl
U2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRNZW51TGlzdEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKKyNpZiBFTkFC
TEUoUFJPR1JFU1NfVEFHKQorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQcm9ncmVzc0JhclN0eWxl
KENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CisjZW5k
aWYKKwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2Vs
ZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDU1NzkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVt
ZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1w
cm9ncmVzcy1wcm9wZXJ0aWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
cHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4
cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jl
c3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTAzLTA1ICBEaW1pdHJp
IEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2FtIFdlaW5pZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1l
bnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1l
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzxodG1sPjxib2R5Pjxwcm9n
cmVzcyB2YWx1ZT03MCBtYXg9MTAwPjwvcHJvZ3Jlc3M+PC9ib2R5PjwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3Bl
cnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9w
ZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNz
LXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExB
VEUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVz
c0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRl
c3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNz
LXByb3BlcnRpZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKK2Rlc2NyaXB0aW9u
KCdUZXN0IHNldHRpbmcgdmFsaWQgYW5kIGludmFsaWQgcHJvcGVydGllcyBvZiBIVE1MUHJvZ3Jl
c3NFbGVtZW50LicpOworCit2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Byb2dyZXNz
Jyk7CisKK2RlYnVnKCJUZXN0IHZhbHVlcyBiZWZvcmUgcHJvcGVydGllcyB3ZXJlIHNldCIpOwor
c2hvdWxkQmUoInAudmFsdWUiLCAiMSIpOworc2hvdWxkQmUoInAubWF4IiwgIjEiKTsKK3Nob3Vs
ZEJlKCJwLnBvc2l0aW9uIiwgIi0xIik7CisKK2RlYnVnKCJTZXQgdmFsaWQgdmFsdWVzIik7Citw
LnZhbHVlID0gN2UxOworcC5tYXggPSAiMWUyIjsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjcwIik7
CitzaG91bGRCZSgicC5tYXgiLCAiMTAwIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIwLjci
KTsKKworZGVidWcoIlNldCB2YWx1ZSBiaWdnZXIgdGhhbiBtYXgiKTsKK3AudmFsdWUgPSAyMDA7
CitwLm1heCA9IDEwMC4wOworc2hvdWxkQmUoInAudmFsdWUiLCAiMTAwIik7CitzaG91bGRCZSgi
cC5tYXgiLCAiMTAwIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIxLjAiKTsKKworZGVidWco
IlNldCBpbnZhbGlkIHZhbHVlIik7CitwLnZhbHVlID0gIjIwMEEiOworcC5tYXggPSAxMDA7Citz
aG91bGRCZSgicC52YWx1ZSIsICIwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMTAwIik7CitzaG91
bGRCZSgicC5wb3NpdGlvbiIsICIwIik7CisKK2RlYnVnKCJTZXQgaW52YWxpZCBtYXgiKTsKK3Au
dmFsdWUgPSAiMjAiOworcC5tYXggPSAibWF4IjsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjEiKTsK
K3Nob3VsZEJlKCJwLm1heCIsICIxIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIxIik7CisK
K2RlYnVnKCJTZXQgdmFsdWUgdG8gbnVsbCBhbmQgbWF4IHRvIDAiKTsKK3AudmFsdWUgPSBudWxs
OworcC5tYXggPSAwOworc2hvdWxkQmUoInAudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoInAubWF4
IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjAiKTsKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24g
NTU3OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtNTgyMyw1ICs1ODIzLDEwIEBAIGZhc3QvZm9ybXMvbXVsdGlwbGUtZm9ybS1zdWJtaXNz
aW9uLXByb3QKICMgbW91c2VTY3JvbGxCeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhl
IEdUSyBFdmVudFNlbmRlciBBUEkuCiBmYXN0L2V2ZW50cy9yZW1vdmUtY2hpbGQtb25zY3JvbGwu
aHRtbAogCisjIHJlbmRlclRoZW1lIGlzIG5vdCByZWFkeSB0byBkcmF3IHByb2dyZXNzIGVsZW1l
bnQKK2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCitm
YXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwK
KwogIyBBcHBhcmVudGx5IGEgc291cCBidWc7IFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzU5NDIKIGh0dHAvdGVzdHMvcGx1Z2lucy90aGlyZC1wYXJ0eS1jb29r
aWUtYWNjZXB0LXBvbGljeS5odG1sCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShy
ZXZpc2lvbiA1NTc5MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjksNSArMTI5LDExIEBAIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbgogIyBGb3Igc29tZSByZWFzb24gY3Jhc2hlcyB3aGVuIHJ1biB3aXRoIGFsbCB0ZXN0cy4g
UGFzc2VzIGluZGl2aWR1YWxseS4KIGZhc3QvZm9ybXMvbXVsdGlwbGUtZm9ybS1zdWJtaXNzaW9u
LXByb3RlY3Rpb24tbW91c2UuaHRtbAogCisKKyMgcmVuZGVyVGhlbWUgaXMgbm90IHJlYWR5IHRv
IGRyYXcgcHJvZ3Jlc3MgZWxlbWVudAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9n
cmVzcy1lbGVtZW50Lmh0bWwKK2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dy
ZXNzLXByb3BlcnRpZXMuaHRtbAorCiAjIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0
L3VyaS1saXN0Jykgbm90IGNvcnJlY3RseSBpbXBsZW1lbnRlZCBvbiBNYWMKIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLmh0bWwKKwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1l
bGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zh
c3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC5jaGVj
a3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorMDFjZmZkOTliNTBjNzhiY2RmOTNkMjNm
MWMyMGNjMDIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclByb2dyZXNzIHtQUk9HUkVTU30g
YXQgKDIsMikgc2l6ZSAxMjB4MjAKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dy
ZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVu
dC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1w
cm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MyBAQAorVGVzdCBzZXR0aW5nIHZhbGlkIGFuZCBpbnZhbGlkIHByb3BlcnRpZXMgb2YgSFRNTFBy
b2dyZXNzRWxlbWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgdmFs
dWVzIGJlZm9yZSBwcm9wZXJ0aWVzIHdlcmUgc2V0CitQQVNTIHAudmFsdWUgaXMgMQorUEFTUyBw
Lm1heCBpcyAxCitQQVNTIHAucG9zaXRpb24gaXMgLTEKK1NldCB2YWxpZCB2YWx1ZXMKK1BBU1Mg
cC52YWx1ZSBpcyA3MAorUEFTUyBwLm1heCBpcyAxMDAKK1BBU1MgcC5wb3NpdGlvbiBpcyAwLjcK
K1NldCB2YWx1ZSBiaWdnZXIgdGhhbiBtYXgKK1BBU1MgcC52YWx1ZSBpcyAxMDAKK1BBU1MgcC5t
YXggaXMgMTAwCitQQVNTIHAucG9zaXRpb24gaXMgMS4wCitTZXQgaW52YWxpZCB2YWx1ZQorUEFT
UyBwLnZhbHVlIGlzIDAKK1BBU1MgcC5tYXggaXMgMTAwCitQQVNTIHAucG9zaXRpb24gaXMgMAor
U2V0IGludmFsaWQgbWF4CitQQVNTIHAudmFsdWUgaXMgMQorUEFTUyBwLm1heCBpcyAxCitQQVNT
IHAucG9zaXRpb24gaXMgMQorU2V0IHZhbHVlIHRvIG51bGwgYW5kIG1heCB0byAwCitQQVNTIHAu
dmFsdWUgaXMgMAorUEFTUyBwLm1heCBpcyAxCitQQVNTIHAucG9zaXRpb24gaXMgMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3Mt
ZWxlbWVudC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJr
ZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
CgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFBQ1hCSVdY
TUFBQTdFQUFBT3hBR1ZLdzRiQUFBTQp4RWxFUVZSNG5PM2F1MDFEUVJCQTBUV2lHNUFnb3dVS3NT
Vi82ckVJYUlReUNPaG5pUWlSSGtLK0wzam5wRHZCcEZlenV6bm5IQUFBCkFJRzd0UmNBQUFDMlE0
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBNW43
cDRPVjAKdU9VZXJPajY5cjcyQ2dBQWJNVGlBQmxqalBOeGY2czlBQUNBRGZBRkN3QUF5UHpwQXZM
ajhmbmoxN2V2ejFjekMyWUFBR0NMWEVBQQpBSUNNQUFFQUFESUNCQUFBeUFnUUFBQWdJMEFBQUlD
TUFBRUFBRElDQkFBQXlBZ1FBQUFnSTBBQUFJQ01BQUVBQURJQ0JBQUF5QWdRCkFBQWdJMEFBQUlE
TWJzNDVsd3hlVG9keFB1NXZ2UThyZUhoNldYc0ZBQUEyd2dVRUFBRElMTDZBQUFBQS9KY0xDQUFB
a0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
CkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoK
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkE1aHZPQnpMZU84
aXhPd0FBQUFCSlJVNUVya0pnZ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50464</attachid>
            <date>2010-03-10 19:28:21 -0800</date>
            <delta_ts>2010-03-11 07:21:52 -0800</delta_ts>
            <desc>Patch v5</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>52460</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTgyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODAgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBm
b3IgSFRNTFByb2dyZXNzRWxlbWVudC4KKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBl
bmFibGVkIG9ubHkgZm9yIFF0LCBiZWNhdXNlIG9ubHkgUmVuZGVyVGhlbWVRdAorICAgICAgICB3
YXMgbW9kaWZpZWQgdG8gYWN0dWFsbHkgZHJhdyB0aGUgcHJvZ3Jlc3MgZWxlbWVudC4KKyAgICAg
ICAgVGhlIGxhYmVscyBhdHRyaWJ1dGUgb2YgdGhlIHByb2dyZXNzIGVsZW1lbnQgd2lsbCBiZSBp
bXBsZW1lbnRlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Nl
bGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRv
VHlwZSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3Nz
L2h0bWwuY3NzOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aW5saW5lVGFnTGlzdCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJvbEVsZW1l
bnQpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFByb2dyZXNzRWxlbWVudDo6SFRNTFByb2dyZXNzRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFByb2dyZXNzRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQcm9ncmVzc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVz
c0VsZW1lbnQ6Om1heCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpz
ZXRNYXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6cG9zaXRpb24p
OgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmlzT3B0aW9uYWxGb3JtQ29udHJvbCk6Cisg
ICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICog
aHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5k
ZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmFkanVzdFBy
b2dyZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGFpbnRQ
cm9ncmVzc0Jhcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6aXNQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6UmVuZGVyUHJv
Z3Jlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmJhc2VsaW5lUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmNhbGNQcmVmV2lkdGhzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpsYXlvdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQ
cm9ncmVzczo6cmVuZGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6
aXNQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclByb2dyZXNzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWU6OmFkanVzdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjpwYWludFByb2dyZXNzQmFyKToKKwogMjAxMC0wMy0xMCAgR2F2aW4gQmFycmFjbG91Z2ggIDxi
YXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIs
IEdlb2ZmcmV5IEdhcmVuLCBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShy
ZXZpc2lvbiA1NTgyNikKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDMsNiArMTQzLDcgQEAKICNpbmNsdWRlICJKU0hUTUxQYXJhZ3JhcGhFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJKU0hUTUxQYXJhbUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRN
TFByZUVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAiCiAj
aW5jbHVkZSAiSlNIVE1MUXVvdGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxTY3JpcHRF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxTZWxlY3RFbGVtZW50LmNwcCIKSW5kZXg6IFdl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHJldmlzaW9uIDU1ODI2KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAg
ICAgSFRNTFBhcmFncmFwaEVsZW1lbnQgXAogICAgIEhUTUxQYXJhbUVsZW1lbnQgXAogICAgIEhU
TUxQcmVFbGVtZW50IFwKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50IFwKICAgICBIVE1MUXVvdGVF
bGVtZW50IFwKICAgICBIVE1MU2NyaXB0RWxlbWVudCBcCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQg
XApAQCAtNjIwLDYgKzYyMSwxMCBAQCBpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX0RBVEFMSVNU
LCQoRkVBCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9EQVRBTElTVD0x
CiBlbmRpZgogCitpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX1BST0dSRVNTX1RBRywkKEZFQVRV
UkVfREVGSU5FUykpLCBFTkFCTEVfUFJPR1JFU1NfVEFHKQorICAgIEhUTUxfRkxBR1MgOj0gJChI
VE1MX0ZMQUdTKSBFTkFCTEVfUFJPR1JFU1NfVEFHPTEKK2VuZGlmCisKIGlmZXEgKCQoZmluZHN0
cmluZyBFTkFCTEVfVklERU8sJChGRUFUVVJFX0RFRklORVMpKSwgRU5BQkxFX1ZJREVPKQogICAg
IEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfVklERU89MQogZW5kaWYKSW5kZXg6
IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDAsNiArMjQwLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0
bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxl
bWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwgXAorCVdlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBcCiAJV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVs
ZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIFwKIAlXZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIFwKQEAgLTExNDUsNiArMTE0Niw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aCBcCiAJV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9odG1sL0hU
TUxQcmVFbGVtZW50LmggXAorCVdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBc
CisJV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hU
TUxRdW90ZUVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oIFwK
IAlXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKQEAgLTE4NDcsNiArMTg1MCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5o
IFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmNwcCBcCiAJV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5oIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQ
cm9ncmVzcy5jcHAgXAorCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggXAogCVdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAg
XApAQCAtMjE3MSw2ICsyMTc2LDE0IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1ERU5BQkxF
X0RBVEFHUklEPTAKIAogIyAtLS0tCisjIEhUTUwgUHJvZ3Jlc3MgRWxlbWVudCAtIGRpc2FibGUg
Zm9yIG5vdywgc2luY2UgcGFpbnRpbmcgY29kZSBpcyBtaXNzaW5nLgorIyAtLS0tCitGRUFUVVJF
X0RFRklORVMgKz0gRU5BQkxFX1BST0dSRVNTX1RBRz0wCisKK3dlYmNvcmVfY3BwZmxhZ3MgKz0g
XAorCS1ERU5BQkxFX1BST0dSRVNTX1RBRz0wCisKKyMgLS0tLQogIyBKYXZhU2NyaXB0IERlYnVn
Z2VyL1Byb2ZpbGVyCiAjIC0tLS0KIGlmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lw
aQkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5
KQpAQCAtMTYzLDYgKzE2Myw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyYWdyYXBoRWxl
bWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsJywKKyAgICAgICAgICAgICdodG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxRdW90ZUVsZW1l
bnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwnLApAQCAtMTU1OCw2ICsxNTU5LDgg
QEAKICAgICAgICAgICAgICdodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBy
ZUVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCcs
CisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgnLAogICAgICAgICAgICAg
J2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFF1b3Rl
RWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCcsCkBA
IC0zMTAxLDYgKzMxMDQsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQYXJ0T2Jq
ZWN0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL1JlbmRlclBhdGguaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyUmVwbGljYS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiA1NTgyNikKKysrIFdlYkNvcmUv
V2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NJTkdMRV9USFJFQURFRAogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9W
SURFTz0uKTogREVGSU5FUyArPSBFTkFCTEVfVklERU89MQogIWNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9SVUJZPS4pOiBERUZJTkVTICs9IEVOQUJMRV9SVUJZPTEKICFjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfU0FOREJPWD0uKTogREVGSU5FUyArPSBFTkFCTEVfU0FOREJPWD0xCishY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1BST0dSRVNTX1RBRz0uKTogREVGSU5FUyArPSBFTkFCTEVfUFJP
R1JFU1NfVEFHPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQkxPQl9TTElDRT0uKTogREVG
SU5FUyArPSBFTkFCTEVfQkxPQl9TTElDRT0wCiAKIGdyZWF0ZXJUaGFuKFFUX01JTk9SX1ZFUlNJ
T04sIDUpIHsKQEAgLTM2MSw2ICszNjIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwv
SFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRs
IFwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIFwK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC02NjYsNiArNjY2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0lu
RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgXAogICAg
IGh0bWwvSFRNTFByZUVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgXApAQCAtOTI5
LDYgKzkzMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGls
ZExpc3QuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAogICAgIHJlbmRlcmlu
Zy9SZW5kZXJQYXJ0T2JqZWN0LmNwcCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNw
cCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJlcGxpY2EuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgXApAQCAtMTM2
Nyw2ICsxMzY5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
IFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MUHJl
RWxlbWVudC5oIFwKKyAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBcCiAgICAgaHRtbC9I
VE1MUXVvdGVFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBcCiAgICAg
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIFwKQEAgLTE2NzAsNiArMTY3Myw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQ
YXJ0T2JqZWN0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXRoLmggXAorICAgIHJlbmRlcmlu
Zy9SZW5kZXJQcm9ncmVzcy5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJ1Ynku
aCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDU1
ODI2KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNjg4NSw2ICs2ODg1LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCINCisJCQkJPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxQcm9ncmVzc0VsZW1lbnQuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0
cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MUXVvdGVFbGVt
ZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yNzQ5Nyw2ICsy
NzU1MywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyUHJvZ3Jlc3MuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dy
ZXNzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcUmVuZGVyUmVwbGFjZWQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
QEAgLTMzMjQxLDYgKzMzMzA1LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFByb2dyZXNzRWxlbWVudC5jcHAiDQorCQkJ
CT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMy
Ig0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0K
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0lu
dGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFByb2dyZXNz
RWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5caHRtbFxIVE1MUXVvdGVFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CShyZXZpc2lvbiA1NTgyNikKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjc1LDYgKzI3NSwxMSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgICAgIGNhc2UgT3V0ZXJTcGluQnV0dG9uUGFy
dDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU91dGVyU3BpbkJ1dHRvbjsK
ICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShQUk9HUkVTU19CQVIpCisgICAgICAgIGNh
c2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
UHJvZ3Jlc3NCYXI7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBjYXNlIFNs
aWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
U2xpZGVySG9yaXpvbnRhbDsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyOSw2ICsxMjksOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9ubHlP
ZlR5cGUsICgib25seS1vZi10eXBlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcHRpb25hbCwgKCJvcHRpb25hbCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgb3V0ZXJTcGluQnV0dG9uLCAoIi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0
b24iKSk7CisjaWYgRU5BQkxFKFBST0dSRVNTX0JBUikKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHJvZ3Jlc3NCYXIsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiKSk7Cisj
ZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVxdWlyZWQsICgi
cmVxdWlyZWQiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc2l6
ZXIsICgiLXdlYmtpdC1yZXNpemVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCByb290LCAoInJvb3QiKSk7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJl
dmlzaW9uIDU1ODI2KQorKysgV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNTgyLDYgKzU4Miw3IEBAIG1lbnVsaXN0LWJ1dHRvbgogbWVudWxpc3QtdGV4
dAogbWVudWxpc3QtdGV4dGZpZWxkCiBvdXRlci1zcGluLWJ1dHRvbgorcHJvZ3Jlc3MtYmFyCiBz
bGlkZXItaG9yaXpvbnRhbAogc2xpZGVyLXZlcnRpY2FsCiBzbGlkZXJ0aHVtYi1ob3Jpem9udGFs
CkluZGV4OiBXZWJDb3JlL2Nzcy9odG1sLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9o
dG1sLmNzcwkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL2Nzcy9odG1sLmNzcwkod29ya2lu
ZyBjb3B5KQpAQCAtNTE1LDYgKzUxNSwxOSBAQCBvcHRpb24gewogICAgIGZvbnQtd2VpZ2h0OiBu
b3JtYWw7CiB9CiAKKy8qIHByb2dyZXNzICovCisKK3Byb2dyZXNzIHsKKyAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKKyAgICBwYWRkaW5nOiBpbml0aWFsOworICAgIGJvcmRl
cjogaW5pdGlhbDsKKyAgICBtYXJnaW46IDJweDsKK30KKworcHJvZ3Jlc3M6Oi13ZWJraXQtcHJv
Z3Jlc3MtYmFyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKK30KKwog
LyogZGF0YWdyaWQgKi8KIAogZGF0YWdyaWQgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA1NTgyNikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1NCw2ICs4NTQsOSBAQCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4q
IGlubGluCiAgICAgICAgIHRhZ0xpc3QuYWRkKHJwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAg
ICAgICAgIHRhZ0xpc3QuYWRkKHJ0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgIHRh
Z0xpc3QuYWRkKHJ1YnlUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQorICAgICAgICB0YWdMaXN0LmFkZChwcm9ncmVzc1RhZy5sb2NhbE5hbWUoKS5pbXBs
KCkpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiAmdGFnTGlzdDsKIH0KSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4
Nyw3IEBACiAjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmNwcCIKKyNp
bmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUXVvdGVFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDggKzQ5LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2MsIEhUTUxGb3JtRWxlbWVudCogZikKLSAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsIGRvYykKK0hUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYywgSFRNTEZv
cm1FbGVtZW50KiBmLCBDb25zdHJ1Y3Rpb25UeXBlIGNvbnN0cnVjdGlvblR5cGUpCisgICAgOiBI
VE1MRWxlbWVudCh0YWdOYW1lLCBkb2MsIGNvbnN0cnVjdGlvblR5cGUpCiAgICAgLCBtX2Zvcm0o
ZikKICAgICAsIG1faGFzTmFtZShmYWxzZSkKICAgICAsIG1fZGlzYWJsZWQoZmFsc2UpCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDU1ODI2KQorKysg
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzYsNyArMzYsNyBAQCBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogCiBjbGFzcyBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kiwg
SFRNTEZvcm1FbGVtZW50Kik7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIENvbnN0cnVj
dGlvblR5cGUgPSBDcmVhdGVFbGVtZW50WmVyb1JlZkNvdW50KTsKICAgICB2aXJ0dWFsIH5IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFn
UmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShQ
Uk9HUkVTU19UQUcpCisjaW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5oIgorCisjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgorI2luY2x1ZGUgIkhU
TUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CisKK0hUTUxQcm9ncmVzc0VsZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9y
bUVsZW1lbnQqIGZvcm0pCisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50LCBmb3JtLCBDcmVhdGVFbGVtZW50KQorICAgICwgbV92YWx1ZSgxKQorICAgICwgbV9t
YXgoMSkKKyAgICAsIG1faXNEZXRlcm1pbmF0ZShmYWxzZSkKK3sKKyAgICBBU1NFUlQoaGFzVGFn
TmFtZShwcm9ncmVzc1RhZykpOworfQorCitQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+
IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEhUTUxQcm9ncmVzc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZv
cm0pKTsKK30KKworUmVuZGVyT2JqZWN0KiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICByZXR1
cm4gbmV3IChhcmVuYSkgUmVuZGVyUHJvZ3Jlc3ModGhpcyk7Cit9CisKK2NvbnN0IEF0b21pY1N0
cmluZyYgSFRNTFByb2dyZXNzRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKK3sKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcHJvZ3Jlc3MsICgicHJv
Z3Jlc3MiKSk7CisgICAgcmV0dXJuIHByb2dyZXNzOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKK3sKKyAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IHZhbHVlQXR0cikgeworICAgICAgICBtX2lzRGV0ZXJtaW5h
dGUgPSB0cnVlOworICAgICAgICBib29sIG9rOworICAgICAgICBtX3ZhbHVlID0gYXR0ci0+dmFs
dWUoKS50b0RvdWJsZSgmb2spOworICAgICAgICBpZiAoIW9rIHx8IG1fdmFsdWUgPCAwKQorICAg
ICAgICAgICAgbV92YWx1ZSA9IDA7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbWF4
QXR0cikgeworICAgICAgICBib29sIG9rOworICAgICAgICBtX21heCA9IGF0dHItPnZhbHVlKCku
dG9Eb3VibGUoJm9rKTsKKyAgICAgICAgaWYgKCFvayB8fCBtX21heCA8PSAwKQorICAgICAgICAg
ICAgbV9tYXggPSAxOworICAgIH0gZWxzZQorICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKK30KKworZG91YmxlIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1faXNEZXRlcm1pbmF0ZSkKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgaWYgKG1fdmFsdWUgPiBtX21heCkKKyAgICAgICAgcmV0dXJuIG1f
bWF4OworICAgIGlmIChtX3ZhbHVlID49IDApCisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAg
IHJldHVybiAwOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldFZhbHVlKGRvdWJs
ZSB2YWx1ZSkKK3sKKyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV9pc0RldGVybWluYXRlID0g
dHJ1ZTsKK30KKworZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6Om1heCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fbWF4OworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldE1heChk
b3VibGUgbWF4KQoreworICAgIG1fbWF4ID0gbWF4ID4gMCA/IG1heCA6IDE7Cit9CisKK2RvdWJs
ZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1faXNE
ZXRlcm1pbmF0ZSkKKyAgICAgICAgcmV0dXJuIHZhbHVlKCkgLyBtYXgoKTsKKyAgICByZXR1cm4g
LTE7Cit9CisKK30gLy8gbmFtZXNwYWNlCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2lmbmRlZiBIVE1MUHJvZ3Jlc3NFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFByb2dyZXNzRWxlbWVu
dF9oCisKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MUHJvZ3Jlc3NF
bGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7CisKKyAgICBkb3VibGUg
dmFsdWUoKSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlKGRvdWJsZSk7CisKKyAgICBkb3VibGUg
bWF4KCkgY29uc3Q7CisgICAgdm9pZCBzZXRNYXgoZG91YmxlKTsKKworICAgIGRvdWJsZSBwb3Np
dGlvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50KiA9IDApOworCisgICAg
dmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBj
b25zdDsKKworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSosIFJlbmRlclN0eWxlKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CisKKyAgICBkb3VibGUgbV92YWx1ZTsKKyAgICBkb3Vi
bGUgbV9tYXg7CisgICAgYm9vbCBtX2lzRGV0ZXJtaW5hdGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZQorCisjZW5kaWYKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmlk
bAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK21vZHVsZSBodG1s
IHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1QUk9HUkVTU19UQUcKKyAg
ICBdIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAgICAgIHZhbHVlOworICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgIGRvdWJsZSAgICAgICAgICAgICAgICBtYXg7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAgICAgIHBvc2l0aW9uOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgICBmb3JtOworICAgICAgICAvLyBy
ZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOworICAgIH07CisKK30KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhZ05h
bWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw3IEBAIHAgaW50ZXJmYWNlTmFtZT1I
VE1MUGFyYWdyYXBoRWxlbWVudCwgY3IKIHBhcmFtIGNyZWF0ZVdpdGhOZXcKIHBsYWludGV4dCBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBwcmUgY3JlYXRlV2l0aE5ldworcHJvZ3Jlc3MgaW50
ZXJmYWNlTmFtZT1IVE1MUHJvZ3Jlc3NFbGVtZW50LCBjb25kaXRpb25hbD1QUk9HUkVTU19UQUcK
IHEgaW50ZXJmYWNlTmFtZT1IVE1MUXVvdGVFbGVtZW50LCBjcmVhdGVXaXRoTmV3CiBycCBpbnRl
cmZhY2VOYW1lPUhUTUxFbGVtZW50LCBjb25kaXRpb25hbD1SVUJZCiBydCBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50LCBjb25kaXRpb25hbD1SVUJZCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNp
b24gNTU4MjYpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtNDIwLDYgKzQyMCw5IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgSFRN
TFBhcmFncmFwaEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MUGFyYWdyYXBoRWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxQYXJhbUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MUGFyYW1FbGVtZW50
OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFByZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MUHJlRWxl
bWVudDsKKyNpZiBkZWZpbmVkKEVOQUJMRV9QUk9HUkVTU19UQUcpICYmIEVOQUJMRV9QUk9HUkVT
U19UQUcKKyAgICAgICAgYXR0cmlidXRlIEhUTUxQcm9ncmVzc0VsZW1lbnRDb25zdHJ1Y3RvciBI
VE1MUHJvZ3Jlc3NFbGVtZW50OworI2VuZGlmCiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MUXVvdGVF
bGVtZW50Q29uc3RydWN0b3IgSFRNTFF1b3RlRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhU
TUxTY3JpcHRFbGVtZW50Q29uc3RydWN0b3IgSFRNTFNjcmlwdEVsZW1lbnQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBIVE1MU2VsZWN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxTZWxlY3RFbGVtZW50OwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgJKHJldmlzaW9uIDU1ODI2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9UaGVtZVR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgZW51bSBD
b250cm9sUGFydCB7CiAgICAgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQsIE1lZGlhUmV3aW5k
QnV0dG9uUGFydCwgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydCwgTWVkaWFUb2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvblBhcnQsCiAgICAgTWVkaWFTbGlkZXJQYXJ0LCBNZWRpYVNsaWRl
clRodW1iUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0LCBNZWRpYVZvbHVtZVNs
aWRlclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LAogICAgIE1lZGlhQ29udHJvbHNC
YWNrZ3JvdW5kUGFydCwgTWVkaWFDdXJyZW50VGltZVBhcnQsIE1lZGlhVGltZVJlbWFpbmluZ1Bh
cnQsCi0gICAgTWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBh
cnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgT3V0ZXJTcGluQnV0dG9uUGFydCwKKyAgICBNZW51
bGlzdFBhcnQsIE1lbnVsaXN0QnV0dG9uUGFydCwgTWVudWxpc3RUZXh0UGFydCwgTWVudWxpc3RU
ZXh0RmllbGRQYXJ0LCBPdXRlclNwaW5CdXR0b25QYXJ0LCBQcm9ncmVzc0JhclBhcnQsCiAgICAg
U2xpZGVySG9yaXpvbnRhbFBhcnQsIFNsaWRlclZlcnRpY2FsUGFydCwgU2xpZGVyVGh1bWJIb3Jp
em9udGFsUGFydCwKICAgICBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCwgQ2FyZXRQYXJ0LCBTZWFy
Y2hGaWVsZFBhcnQsIFNlYXJjaEZpZWxkRGVjb3JhdGlvblBhcnQsCiAgICAgU2VhcmNoRmllbGRS
ZXN1bHRzRGVjb3JhdGlvblBhcnQsIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQsCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHJldmlzaW9uIDU1ODI2KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsMTEgKzQxLDE3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpZiBF
TkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIkhUTUxQcm9ncmVzc0VsZW1lbnQuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlICJSZW5k
ZXJQcm9ncmVzcy5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCkBAIC02Myw2ICs2OSw5
IEBACiAjaW5jbHVkZSA8UVN0eWxlRmFjdG9yeT4KICNpbmNsdWRlIDxRU3R5bGVPcHRpb25CdXR0
b24+CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uRnJhbWVWMj4KKyNpZiBFTkFCTEUoUFJPR1JFU1Nf
VEFHKQorI2luY2x1ZGUgPFFTdHlsZU9wdGlvblByb2dyZXNzQmFyVjI+CisjZW5kaWYKICNpbmNs
dWRlIDxRU3R5bGVPcHRpb25TbGlkZXI+CiAjaW5jbHVkZSA8UVdpZGdldD4KIApAQCAtNjMyLDYg
KzY0MSw0MiBAQCBib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVudUxpc3RCdXR0b24oCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKK3ZvaWQgUmVuZGVy
VGhlbWVRdDo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3sKKyAgICBzdHlsZS0+c2V0Qm94U2hhZG93
KDApOworfQorCitib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2Jq
ZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGksIGNvbnN0IEludFJlY3Qm
IHIpCit7CisgICAgU3R5bGVQYWludGVyIHAodGhpcywgcGkpOworICAgIGlmICghcC5pc1ZhbGlk
KCkpCisgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBRU3R5bGVPcHRpb25Qcm9ncmVzc0JhclYy
IG9wdGlvbjsKKyAgICBpZiAocC53aWRnZXQpCisgICAgICAgb3B0aW9uLmluaXRGcm9tKHAud2lk
Z2V0KTsKKyAgICBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhvcHRpb24sIG8pOworCisg
ICAgUmVuZGVyUHJvZ3Jlc3MqIHJlbmRlclByb2dyZXNzID0gdG9SZW5kZXJQcm9ncmVzcyhvKTsK
KyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFByb2dy
ZXNzRWxlbWVudCo+KHJlbmRlclByb2dyZXNzLT5ub2RlKCkpOworICAgIG9wdGlvbi5yZWN0ID0g
cjsKKyAgICBvcHRpb24ubWF4aW11bSA9IGVsZW1lbnQtPm1heCgpOworICAgIG9wdGlvbi5taW5p
bXVtID0gMDsKKyAgICBvcHRpb24ucHJvZ3Jlc3MgPSBlbGVtZW50LT52YWx1ZSgpOworCisgICAg
Y29uc3QgUVBvaW50IHRvcExlZnQgPSByLnRvcExlZnQoKTsKKyAgICBwLnBhaW50ZXItPnRyYW5z
bGF0ZSh0b3BMZWZ0KTsKKyAgICBvcHRpb24ucmVjdC5tb3ZlVG8oUVBvaW50KDAsIDApKTsKKyAg
ICBvcHRpb24ucmVjdC5zZXRTaXplKHIuc2l6ZSgpKTsKKworICAgIHAuZHJhd0NvbnRyb2woUVN0
eWxlOjpDRV9Qcm9ncmVzc0Jhciwgb3B0aW9uKTsKKyAgICBwLnBhaW50ZXItPnRyYW5zbGF0ZSgt
dG9wTGVmdCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogYm9vbCBSZW5kZXJU
aGVtZVF0OjpwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2Jq
ZWN0OjpQYWludEluZm8mIHBpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEludFJlY3QmIHIpCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRo
ZW1lUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
aAkocmV2aXNpb24gNTU4MjYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCBib29sIHBhaW50TWVudUxpc3RCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGFk
anVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwg
RWxlbWVudCopIGNvbnN0OwogCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5
bGUqLCBFbGVtZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHBhaW50UHJvZ3Jlc3NCYXIo
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2VsZWN0
b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgJKHJldmlzaW9uIDU1ODI2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw2ICsyNzcsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTGlzdE1hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzTWVkaWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc01lbnVMaXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNpZiBFTkFCTEUo
UFJPR1JFU1NfVEFHKQorICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJsb2NrKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCdXR0b24oKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckltYWdlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVz
cy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorCisjaW5jbHVkZSAi
UmVuZGVyUHJvZ3Jlc3MuaCIKKworI2luY2x1ZGUgIkhUTUxQcm9ncmVzc0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3N0YXRpYyBjb25z
dCBpbnQgZGVmYXVsdFByb2dyZXNzV2lkdGggPSAxMjA7CitzdGF0aWMgY29uc3QgaW50IGRlZmF1
bHRQcm9ncmVzc0hlaWdodCA9IDIwOworCitSZW5kZXJQcm9ncmVzczo6UmVuZGVyUHJvZ3Jlc3Mo
RWxlbWVudCogZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCit7CisgICAgc2V0
U2l6ZShRU2l6ZShkZWZhdWx0UHJvZ3Jlc3NXaWR0aCwgZGVmYXVsdFByb2dyZXNzSGVpZ2h0KSk7
CisgICAgc2V0UmVwbGFjZWQodHJ1ZSk7Cit9CisKK2ludCBSZW5kZXJQcm9ncmVzczo6YmFzZWxp
bmVQb3NpdGlvbihib29sLCBib29sKSBjb25zdAoreworICAgIHJldHVybiBoZWlnaHQoKSArIG1h
cmdpblRvcCgpOworfQorCit2b2lkIFJlbmRlclByb2dyZXNzOjpjYWxjUHJlZldpZHRocygpCit7
CisgICAgbV9taW5QcmVmV2lkdGggPSAwOworICAgIG1fbWF4UHJlZldpZHRoID0gMDsKKworICAg
IGlmIChzdHlsZSgpLT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT53aWR0aCgpLnZhbHVl
KCkgPiAwKQorICAgICAgICBtX21pblByZWZXaWR0aCA9IG1fbWF4UHJlZldpZHRoID0gY2FsY0Nv
bnRlbnRCb3hXaWR0aChzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkpOworICAgIGVsc2UKKyAgICAg
ICAgbV9tYXhQcmVmV2lkdGggPSBkZWZhdWx0UHJvZ3Jlc3NXaWR0aCAqIHN0eWxlKCktPmVmZmVj
dGl2ZVpvb20oKTsKKworICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgpLmlzRml4ZWQoKSAmJiBz
dHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkgPiAwKSB7CisgICAgICAgIG1fbWF4UHJlZldpZHRo
ID0gbWF4KG1fbWF4UHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCktPm1pbldp
ZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZXaWR0aCA9IG1heChtX21pblByZWZX
aWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsK
KyAgICB9IGVsc2UgaWYgKHN0eWxlKCktPndpZHRoKCkuaXNQZXJjZW50KCkgfHwgKHN0eWxlKCkt
PndpZHRoKCkuaXNBdXRvKCkgJiYgc3R5bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQorICAg
ICAgICBtX21pblByZWZXaWR0aCA9IDA7CisgICAgZWxzZQorICAgICAgICBtX21pblByZWZXaWR0
aCA9IG1fbWF4UHJlZldpZHRoOworCisgICAgaWYgKHN0eWxlKCktPm1heFdpZHRoKCkuaXNGaXhl
ZCgpICYmIHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSAhPSB1bmRlZmluZWRMZW5ndGgpIHsK
KyAgICAgICAgbV9tYXhQcmVmV2lkdGggPSBtaW4obV9tYXhQcmVmV2lkdGgsIGNhbGNDb250ZW50
Qm94V2lkdGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJl
ZldpZHRoID0gbWluKG1fbWluUHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCkt
Pm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgIH0KKworICAgIGludCB0b0FkZCA9IHBhZGRpbmdM
ZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKSArIGJvcmRlckxlZnQoKSArIGJvcmRlclJpZ2h0KCk7Cisg
ICAgbV9taW5QcmVmV2lkdGggKz0gdG9BZGQ7CisgICAgbV9tYXhQcmVmV2lkdGggKz0gdG9BZGQ7
CisKKyAgICBzZXRQcmVmV2lkdGhzRGlydHkoZmFsc2UpOworfQorCit2b2lkIFJlbmRlclByb2dy
ZXNzOjpsYXlvdXQoKQoreworICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKKworICAgIExheW91
dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgp
KTsKKworICAgIGNhbGNXaWR0aCgpOworICAgIGNhbGNIZWlnaHQoKTsKKworICAgIG1fb3ZlcmZs
b3cuY2xlYXIoKTsKKworICAgIHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKKworICAg
IHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKK30KKwordm9pZCBSZW5kZXJQcm9ncmVzczo6dXBkYXRl
RnJvbUVsZW1lbnQoKQoreworICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clByb2dyZXNzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBSZW5kZXJQcm9ncmVzc19oCisjZGVmaW5lIFJlbmRlclByb2dyZXNzX2gK
KworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVuZGVyUHJvZ3Jlc3MgOiBwdWJsaWMgUmVuZGVy
QmxvY2sgeworcHVibGljOgorICAgIFJlbmRlclByb2dyZXNzKEVsZW1lbnQqKTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAi
UmVuZGVyUHJvZ3Jlc3MiOyB9CisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sLCBi
b29sKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
Cit9OworCitpbmxpbmUgUmVuZGVyUHJvZ3Jlc3MqIHRvUmVuZGVyUHJvZ3Jlc3MoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Byb2dyZXNz
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJQcm9ncmVzcyo+KG9iamVjdCk7Cit9
CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4K
K3ZvaWQgdG9SZW5kZXJQcm9ncmVzcyhjb25zdCBSZW5kZXJQcm9ncmVzcyopOworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gUmVuZGVyUHJvZ3Jlc3NfaAor
CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiA1NTgyNikKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYg
KzIwOSwxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShDU1NTdHlsZVNlCiAgICAg
ICAgICAgICByZXR1cm4gYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKHNl
bGVjdG9yLCBzdHlsZSwgZSk7CiAgICAgICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
UGFydDoKICAgICAgICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25T
dHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAg
ICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIGFkanVzdFByb2dy
ZXNzQmFyU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsKKyNlbmRpZgogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjY3LDYgKzI3MSwxMCBAQCBib29sIFJl
bmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sCiAjZW5kaWYKICAgICAgICAgY2FzZSBN
ZW51bGlzdFBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZW51TGlzdChvLCBwYWludElu
Zm8sIHIpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NC
YXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50UHJvZ3Jlc3NCYXIobywgcGFpbnRJbmZv
LCByKTsKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAg
ICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludFNsaWRl
clRyYWNrKG8sIHBhaW50SW5mbywgcik7CkBAIC0zNTcsNiArMzY1LDkgQEAgYm9vbCBSZW5kZXJU
aGVtZTo6cGFpbnRCb3JkZXJPbmx5KFJlbmRlcgogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25Q
YXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0
OgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0
OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNh
c2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRh
bFBhcnQ6CkBAIC0zOTIsNiArNDAzLDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0
aW9ucyhSZW5kZQogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNl
IEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorI2lmIEVOQUJMRShQUk9H
UkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorI2VuZGlmCiAgICAgICAg
IGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQ
YXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC04MjUsNiAr
ODM5LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1MKIHsKIH0K
IAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RQcm9n
cmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBj
b25zdAoreworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0QnV0
dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHJldmlzaW9uIDU1ODI2KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYg
KzIyNywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0
dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRy
dWU7IH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVz
dFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVu
dCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0
dXJuIHRydWU7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNr
U3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJl
bmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0K
IApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTU4MjYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICAq
IGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0czogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExB
VEUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9z
Y3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3By
b2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIw
MTAtMDMtMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9w
cm9ncmVzcy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1l
bnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorPGh0bWw+PGJvZHk+PHByb2dyZXNz
IHZhbHVlPTcwIG1heD0xMDA+PC9wcm9ncmVzcz48L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGll
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRp
ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1l
bnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHNyYz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9zY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMv
c2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorZGVzY3JpcHRpb24oJ1Rl
c3Qgc2V0dGluZyB2YWxpZCBhbmQgaW52YWxpZCBwcm9wZXJ0aWVzIG9mIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQuJyk7CisKK3ZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJvZ3Jlc3MnKTsK
KworZGVidWcoIlRlc3QgdmFsdWVzIGJlZm9yZSBwcm9wZXJ0aWVzIHdlcmUgc2V0Iik7CitzaG91
bGRCZSgicC52YWx1ZSIsICIxIik7CitzaG91bGRCZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUo
InAucG9zaXRpb24iLCAiLTEiKTsKKworZGVidWcoIlNldCB2YWxpZCB2YWx1ZXMiKTsKK3AudmFs
dWUgPSA3ZTE7CitwLm1heCA9ICIxZTIiOworc2hvdWxkQmUoInAudmFsdWUiLCAiNzAiKTsKK3No
b3VsZEJlKCJwLm1heCIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjAuNyIpOwor
CitkZWJ1ZygiU2V0IHZhbHVlIGJpZ2dlciB0aGFuIG1heCIpOworcC52YWx1ZSA9IDIwMDsKK3Au
bWF4ID0gMTAwLjA7CitzaG91bGRCZSgicC52YWx1ZSIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLm1h
eCIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjEuMCIpOworCitkZWJ1ZygiU2V0
IGludmFsaWQgdmFsdWUiKTsKK3AudmFsdWUgPSAiMjAwQSI7CitwLm1heCA9IDEwMDsKK3Nob3Vs
ZEJlKCJwLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxMDAiKTsKK3Nob3VsZEJl
KCJwLnBvc2l0aW9uIiwgIjAiKTsKKworZGVidWcoIlNldCBpbnZhbGlkIG1heCIpOworcC52YWx1
ZSA9ICIyMCI7CitwLm1heCA9ICJtYXgiOworc2hvdWxkQmUoInAudmFsdWUiLCAiMSIpOworc2hv
dWxkQmUoInAubWF4IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjEiKTsKKworZGVi
dWcoIlNldCB2YWx1ZSB0byBudWxsIGFuZCBtYXggdG8gMCIpOworcC52YWx1ZSA9IG51bGw7Citw
Lm1heCA9IDA7CitzaG91bGRCZSgicC52YWx1ZSIsICIwIik7CitzaG91bGRCZSgicC5tYXgiLCAi
MSIpOworc2hvdWxkQmUoInAucG9zaXRpb24iLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA1NTgw
NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC01ODIzLDYgKzU4MjMsMTAgQEAgZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Npb24t
cHJvdAogIyBtb3VzZVNjcm9sbEJ5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiB0aGUgR1RL
IEV2ZW50U2VuZGVyIEFQSS4KIGZhc3QvZXZlbnRzL3JlbW92ZS1jaGlsZC1vbnNjcm9sbC5odG1s
CiAKKyMgcmVuZGVyVGhlbWUgaXMgbm90IHJlYWR5IHRvIGRyYXcgcHJvZ3Jlc3MgZWxlbWVudAor
ZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwKK2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAorCiAj
IEFwcGFyZW50bHkgYSBzb3VwIGJ1ZzsgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNTk0MgogaHR0cC90ZXN0cy9wbHVnaW5zL3RoaXJkLXBhcnR5LWNvb2tpZS1h
Y2NlcHQtcG9saWN5Lmh0bWwKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlz
aW9uIDU1ODI2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcg
Y29weSkKQEAgLTEyOSw1ICsxMjksMTEgQEAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
CiAjIEZvciBzb21lIHJlYXNvbiBjcmFzaGVzIHdoZW4gcnVuIHdpdGggYWxsIHRlc3RzLiBQYXNz
ZXMgaW5kaXZpZHVhbGx5LgogZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJv
dGVjdGlvbi1tb3VzZS5odG1sCiAKKworIyByZW5kZXJUaGVtZSBpcyBub3QgcmVhZHkgdG8gZHJh
dyBwcm9ncmVzcyBlbGVtZW50CitmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWVsZW1lbnQuaHRtbAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3Mt
cHJvcGVydGllcy5odG1sCisKICMgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJp
LWxpc3QnKSBub3QgY29ycmVjdGx5IGltcGxlbWVudGVkIG9uIE1hYwogZWRpdGluZy9wYXN0ZWJv
YXJkL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEuaHRtbAorCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1l
bnQtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNrc3Vt
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACiswMWNmZmQ5OWI1MGM3OGJjZGY5M2QyM2YxYzIw
Y2MwMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20v
SFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyUHJvZ3Jlc3Mge1BST0dSRVNTfSBhdCAo
MiwyKSBzaXplIDEyMHgyMAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Nl
dC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dy
ZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBA
CitUZXN0IHNldHRpbmcgdmFsaWQgYW5kIGludmFsaWQgcHJvcGVydGllcyBvZiBIVE1MUHJvZ3Jl
c3NFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCB2YWx1ZXMg
YmVmb3JlIHByb3BlcnRpZXMgd2VyZSBzZXQKK1BBU1MgcC52YWx1ZSBpcyAxCitQQVNTIHAubWF4
IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAtMQorU2V0IHZhbGlkIHZhbHVlcworUEFTUyBwLnZh
bHVlIGlzIDcwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDAuNworU2V0
IHZhbHVlIGJpZ2dlciB0aGFuIG1heAorUEFTUyBwLnZhbHVlIGlzIDEwMAorUEFTUyBwLm1heCBp
cyAxMDAKK1BBU1MgcC5wb3NpdGlvbiBpcyAxLjAKK1NldCBpbnZhbGlkIHZhbHVlCitQQVNTIHAu
dmFsdWUgaXMgMAorUEFTUyBwLm1heCBpcyAxMDAKK1BBU1MgcC5wb3NpdGlvbiBpcyAwCitTZXQg
aW52YWxpZCBtYXgKK1BBU1MgcC52YWx1ZSBpcyAxCitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5w
b3NpdGlvbiBpcyAxCitTZXQgdmFsdWUgdG8gbnVsbCBhbmQgbWF4IHRvIDAKK1BBU1MgcC52YWx1
ZSBpcyAwCitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVt
ZW50LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9I
VE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgpp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUFDWEJJV1hNQUFB
N0VBQUFPeEFHVkt3NGJBQUFNCnhFbEVRVlI0bk8zYXUwMURRUkJBMFRXaUc1QWdvd1VLc1NWLzZy
RUlhSVF5Q09obmlRaVJIa0srTDNqbnBEdkJwRmV6dXpubkhBQUEKQUlHN3RSY0FBQUMyUTRBQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkE1bjdwNE9W
MAp1T1Vlck9qNjlyNzJDZ0FBYk1UaUFCbGpqUE54ZjZzOUFBQ0FEZkFGQ3dBQXlQenBBdkxqOGZu
ajE3ZXZ6MWN6QzJZQUFHQ0xYRUFBCkFJQ01BQUVBQURJQ0JBQUF5QWdRQUFBZ0kwQUFBSUNNQUFF
QUFESUNCQUFBeUFnUUFBQWdJMEFBQUlDTUFBRUFBRElDQkFBQXlBZ1EKQUFBZ0kwQUFBSURNYnM0
NWx3eGVUb2R4UHU1dnZROHJlSGg2V1hzRkFBQTJ3Z1VFQUFESUxMNkFBQUFBL0pjTENBQUFrQkVn
QUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEK
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
CkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQTVodk9CekxlTzhpeE93
QUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50497</attachid>
            <date>2010-03-11 07:21:52 -0800</date>
            <delta_ts>2010-03-11 14:39:09 -0800</delta_ts>
            <desc>Patch V6</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>57869</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODEgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBm
b3IgSFRNTFByb2dyZXNzRWxlbWVudC4KKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBl
bmFibGVkIG9ubHkgZm9yIFF0LCBiZWNhdXNlIG9ubHkgUmVuZGVyVGhlbWVRdAorICAgICAgICB3
YXMgbW9kaWZpZWQgdG8gYWN0dWFsbHkgZHJhdyB0aGUgcHJvZ3Jlc3MgZWxlbWVudC4KKyAgICAg
ICAgVGhlIGxhYmVscyBhdHRyaWJ1dGUgb2YgdGhlIHByb2dyZXNzIGVsZW1lbnQgd2lsbCBiZSBp
bXBsZW1lbnRlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9odG1sLmNzczoK
KyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlubGlu
ZVRhZ0xpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVz
c0VsZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b2dyZXNzRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVt
ZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpt
YXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6c2V0TWF4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0aW9uKToKKyAgICAgICAg
KiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvZ3Jlc3NFbGVtZW50Ojppc09wdGlvbmFsRm9ybUNvbnRyb2wpOgorICAgICAgICAqIGh0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9UaGVtZVR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjphZGp1c3RQcm9ncmVzc0JhclN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50UHJvZ3Jlc3NCYXIp
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omlz
UHJvZ3Jlc3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clByb2dyZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnJl
bmRlck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmlzUHJvZ3Jlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1
c3RTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRQcm9n
cmVzc0Jhcik6CisKIDIwMTAtMDMtMTAgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDcgQEAKICNpbmNsdWRlICJKU0hUTUxQYXJhZ3JhcGhF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxQYXJhbUVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IkpTSFRNTFByZUVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkpTSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiSlNIVE1MUXVvdGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxT
Y3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxTZWxlY3RFbGVtZW50LmNwcCIKSW5k
ZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDU1ODQyKQorKysgV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDcgQEAgRE9NX0NMQVNTRVMg
PSBcCiAgICAgSFRNTFBhcmFncmFwaEVsZW1lbnQgXAogICAgIEhUTUxQYXJhbUVsZW1lbnQgXAog
ICAgIEhUTUxQcmVFbGVtZW50IFwKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50IFwKICAgICBIVE1M
UXVvdGVFbGVtZW50IFwKICAgICBIVE1MU2NyaXB0RWxlbWVudCBcCiAgICAgSFRNTFNlbGVjdEVs
ZW1lbnQgXApAQCAtNjIwLDYgKzYyMSwxMCBAQCBpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX0RB
VEFMSVNULCQoRkVBCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9EQVRB
TElTVD0xCiBlbmRpZgogCitpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX1BST0dSRVNTX1RBRywk
KEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfUFJPR1JFU1NfVEFHKQorICAgIEhUTUxfRkxBR1Mg
Oj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfUFJPR1JFU1NfVEFHPTEKK2VuZGlmCisKIGlmZXEgKCQo
ZmluZHN0cmluZyBFTkFCTEVfVklERU8sJChGRUFUVVJFX0RFRklORVMpKSwgRU5BQkxFX1ZJREVP
KQogICAgIEhUTUxfRkxBR1MgOj0gJChIVE1MX0ZMQUdTKSBFTkFCTEVfVklERU89MQogZW5kaWYK
SW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkocmV2aXNpb24gNTU4NDIpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDAsNiArMjQwLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKIAlXZWJD
b3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFBh
cmFtRWxlbWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwgXAorCVdl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBcCiAJV2ViQ29yZS9odG1sL0hUTUxR
dW90ZUVsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIFwK
IAlXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIFwKQEAgLTExNDUsNiArMTE0Niw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9o
dG1sL0hUTUxQcmVFbGVtZW50LmggXAorCVdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50
LmNwcCBcCisJV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBcCiAJV2ViQ29yZS9o
dG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVu
dC5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKQEAgLTE4NDcsNiAr
MTg1MCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGFydC5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmNwcCBcCiAJV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5oIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQcm9ncmVzcy5jcHAgXAorCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgg
XAogCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAJV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGlj
YS5jcHAgXApAQCAtMjE3MSw2ICsyMTc2LDE0IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1E
RU5BQkxFX0RBVEFHUklEPTAKIAogIyAtLS0tCisjIEhUTUwgUHJvZ3Jlc3MgRWxlbWVudCAtIGRp
c2FibGUgZm9yIG5vdywgc2luY2UgcGFpbnRpbmcgY29kZSBpcyBtaXNzaW5nLgorIyAtLS0tCitG
RUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1BST0dSRVNTX1RBRz0wCisKK3dlYmNvcmVfY3BwZmxh
Z3MgKz0gXAorCS1ERU5BQkxFX1BST0dSRVNTX1RBRz0wCisKKyMgLS0tLQogIyBKYXZhU2NyaXB0
IERlYnVnZ2VyL1Byb2ZpbGVyCiAjIC0tLS0KIGlmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gNTU4NDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2lu
ZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyYWdy
YXBoRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwn
LAogICAgICAgICAgICAgJ2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsJywKKyAgICAgICAgICAgICdo
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxRdW90
ZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwnLApAQCAtMTU1OCw2ICsx
NTU5LDggQEAKICAgICAgICAgICAgICdodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
SFRNTFByZUVsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50
LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFF1b3RlRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cCcsCkBAIC0zMTAxLDYgKzMxMDQsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQ
YXJ0T2JqZWN0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBhdGguaCcsCisgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlclByb2dyZXNzLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnByaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiA1NTg0MikKKysrIFdl
YkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9USFJFQURFRAogIWNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9WSURFTz0uKTogREVGSU5FUyArPSBFTkFCTEVfVklERU89MQogIWNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9SVUJZPS4pOiBERUZJTkVTICs9IEVOQUJMRV9SVUJZPTEKICFjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfU0FOREJPWD0uKTogREVGSU5FUyArPSBFTkFCTEVfU0FOREJPWD0xCish
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1BST0dSRVNTX1RBRz0uKTogREVGSU5FUyArPSBFTkFC
TEVfUFJPR1JFU1NfVEFHPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQkxPQl9TTElDRT0u
KTogREVGSU5FUyArPSBFTkFCTEVfQkxPQl9TTElDRT0wCiAKIGdyZWF0ZXJUaGFuKFFUX01JTk9S
X1ZFUlNJT04sIDUpIHsKQEAgLTM2MSw2ICszNjIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAg
IGh0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQYXJhbUVsZW1l
bnQuaWRsIFwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBcCiAgICAg
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aWRsIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLnBybwkocmV2aXNpb24gNTU4NDIpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NjYsNiArNjY2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAg
XAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hU
TUxTY3JpcHRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgXApA
QCAtOTI5LDYgKzkzMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAogICAgIHJl
bmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmNwcCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclByb2dy
ZXNzLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAgICAgcmVuZGVy
aW5nL1JlbmRlclJlcGxpY2EuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgXApA
QCAtMTM2Nyw2ICsxMzY5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oIFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9I
VE1MUHJlRWxlbWVudC5oIFwKKyAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBcCiAgICAg
aHRtbC9IVE1MUXVvdGVFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBc
CiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIFwKQEAgLTE2NzAsNiArMTY3Myw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJQYXJ0T2JqZWN0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXRoLmggXAorICAgIHJl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
aCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clJ1YnkuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlz
aW9uIDU1ODQyKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29y
a2luZyBjb3B5KQpAQCAtNjg4NSw2ICs2ODg1LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxQcm9ncmVzc0VsZW1lbnQuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MUXVv
dGVFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yNzQ5
Nyw2ICsyNzU1MywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyUHJvZ3Jlc3MuY3BwIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRl
clByb2dyZXNzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyUmVwbGFjZWQuY3BwIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KQEAgLTMzMjQxLDYgKzMzMzA1LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFByb2dyZXNzRWxlbWVudC5jcHAi
DQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wN
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFBy
b2dyZXNzRWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUXVvdGVFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNTU4NDIpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjQ4NSw2ICsyNDg1LDEwIEBACiAJ
CTlGNzIzMDUxMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY3MjMwNEUxMTE4NEI0MTAwQUQw
MTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTE3QzgxMjIwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLzsg
fTsKIAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjEwRjJB
NUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9OworCQlBNDNCRjU5ODEx
NDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0Eg
LyogSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgKi87IH07CisJCUE0M0JGNTk5MTE0OTI5MEEwMEM2
NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNDNCRjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dy
ZXNzRWxlbWVudC5oICovOyB9OworCQlBNDNCRjU5QzExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVy
UHJvZ3Jlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTQzQkY1OUExMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLzsgfTsK
KwkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDNCRjU5QjExNDkyOTI4MDBD
NjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2
RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBC
MkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyog
RHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZEMCAv
KiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3Bw
ICovOyB9OwpAQCAtNzg3Niw2ICs3ODgwLDEwIEBACiAJCTlGNzIzMDRFMTExODRCNDEwMEFEMDEy
NiAvKiBTY3JpcHRQcm9maWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JpcHRQcm9maWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdDODEyMDBG
MkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVu
dEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnRG
YWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0M0JGNTk2MTE0OTI5MEEw
MEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNDNCRjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUHJvZ3Jlc3NFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0M0JGNTlBMTE0OTI5MjgwMEM2
NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW5kZXJQcm9ncmVzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJQcm9ncmVzcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250
cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJh
Z0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MzUyQzE3
MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTI4NjcsNiArMTI4NzUsOCBAQAogCQk5M0VFQzFFQzA5QzI4Nzc3MDBD
NTE1RDEgLyogaHRtbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQTQzQkY1OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
ICovLAorCQkJCUE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50
LmggKi8sCiAJCQkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLywKIAkJCQky
RUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgKi8sCiAJCQkJMkVBRkFGMEMxMEUy
QUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLywKQEAgLTE1Njg3LDYgKzE1Njk3LDggQEAKIAkJRjUy
M0QyRjMwMkRFNDQzQjAxODYzNUNBIC8qIHJlbmRlcmluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTQzQkY1OUExMTQ5MjkyODAwQzY0M0NBIC8qIFJl
bmRlclByb2dyZXNzLmNwcCAqLywKKwkJCQlBNDNCRjU5QjExNDkyOTI4MDBDNjQzQ0EgLyogUmVu
ZGVyUHJvZ3Jlc3MuaCAqLywKIAkJCQk4NEJEQTE2OTExMzU4RDJBMDBEQkY2NEMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCAqLywKIAkJCQk4NEJEQTE2QTExMzU4RDJBMDBEQkY2NEMg
LyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmggKi8sCiAJCQkJQkM4QzhGQUEwRERDRDJGMjAw
QjU5MkY0IC8qIHN0eWxlICovLApAQCAtMTg2ODYsNiArMTg2OTgsOCBAQAogCQkJCTJFRDYwOUJE
MTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVE
MzYwMUExMTJGOEI1NjAwNDhERUE4IC8qIERhdGFiYXNlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUI1RDM2MDFEMTEyRjhCQTAwMDQ4REVBOCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAorCQkJCUE0M0JGNTk5MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jl
c3NFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNDNCRjU5RDExNDkyOTI4MDBDNjQzQ0Eg
LyogUmVuZGVyUHJvZ3Jlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjA4ODcsNiArMjA5MDEsOCBA
QAogCQkJCUJDNTNEQUM3MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkVENjA5QkMxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUI1RDM2MDFGMTEyRjhCQTgwMDQ4REVBOCAvKiBKU0RhdGFi
YXNlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTQzQkY1OTgxMTQ5MjkwQTAwQzY0
M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTQzQkY1
OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNTU4
NDIpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3NSw2ICsyNzUsMTEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTUwogICAgICAgICBjYXNlIE91dGVyU3BpbkJ1dHRvblBhcnQ6CiAgICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdXRlclNwaW5CdXR0b247CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBQcm9ncmVzc0JhclBhcnQ6CisjaWYgRU5BQkxFKFBST0dSRVNT
X0JBUikKKyAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVByb2dyZXNzQmFyOwor
I2VuZGlmCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFs
UGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNsaWRlckhvcml6b250
YWw7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDU1
ODQyKQorKysgV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjksNiArMTI5LDkgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjbwog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvbmx5T2ZUeXBlLCAoIm9ubHkt
b2YtdHlwZSIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3B0aW9u
YWwsICgib3B0aW9uYWwiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG91dGVyU3BpbkJ1dHRvbiwgKCItd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIikpOworI2lmIEVO
QUJMRShQUk9HUkVTU19CQVIpCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHByb2dyZXNzQmFyLCAoIi13ZWJraXQtcHJvZ3Jlc3MtYmFyIikpOworI2VuZGlmCiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlcXVpcmVkLCAoInJlcXVpcmVkIikpOwog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXNpemVyLCAoIi13ZWJraXQt
cmVzaXplciIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcm9vdCwg
KCJyb290IikpOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA1NTg0MikK
KysrIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4
Miw2ICs1ODIsNyBAQCBtZW51bGlzdC1idXR0b24KIG1lbnVsaXN0LXRleHQKIG1lbnVsaXN0LXRl
eHRmaWVsZAogb3V0ZXItc3Bpbi1idXR0b24KK3Byb2dyZXNzLWJhcgogc2xpZGVyLWhvcml6b250
YWwKIHNsaWRlci12ZXJ0aWNhbAogc2xpZGVydGh1bWItaG9yaXpvbnRhbApJbmRleDogV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvaHRtbC5jc3MJKHJldmlz
aW9uIDU1ODQyKQorKysgV2ViQ29yZS9jc3MvaHRtbC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTUx
NSw2ICs1MTUsMTkgQEAgb3B0aW9uIHsKICAgICBmb250LXdlaWdodDogbm9ybWFsOwogfQogCisv
KiBwcm9ncmVzcyAqLworCitwcm9ncmVzcyB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9n
cmVzcy1iYXI7CisgICAgcGFkZGluZzogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7Cisg
ICAgbWFyZ2luOiAycHg7Cit9CisKK3Byb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhciB7Cisg
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9ncmVzcy1iYXI7Cit9CisKIC8qIGRhdGFncmlkICov
CiAKIGRhdGFncmlkIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gNTU4NDIpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTQsNiAr
ODU0LDkgQEAgc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBpbmxpbgogICAgICAg
ICB0YWdMaXN0LmFkZChycFRhZy5sb2NhbE5hbWUoKS5pbXBsKCkpOwogICAgICAgICB0YWdMaXN0
LmFkZChydFRhZy5sb2NhbE5hbWUoKS5pbXBsKCkpOwogICAgICAgICB0YWdMaXN0LmFkZChydWJ5
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICAg
ICAgdGFnTGlzdC5hZGQocHJvZ3Jlc3NUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyNlbmRpZgog
ICAgIH0KICAgICByZXR1cm4gJnRhZ0xpc3Q7CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnRzQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dHNBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDU1ODQyKQorKysgV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50c0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQAogI2luY2x1
ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFF1b3RlRWxlbWVudC5jcHAiCiAjaW5j
bHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50
LmNwcCIKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlz
aW9uIDU1ODQyKQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw4ICs0OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZv
cm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2Mp
CitIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MsIEhUTUxGb3JtRWxlbWVudCogZiwg
Q29uc3RydWN0aW9uVHlwZSBjb25zdHJ1Y3Rpb25UeXBlKQorICAgIDogSFRNTEVsZW1lbnQodGFn
TmFtZSwgZG9jLCBjb25zdHJ1Y3Rpb25UeXBlKQogICAgICwgbV9mb3JtKGYpCiAgICAgLCBtX2hh
c05hbWUoZmFsc2UpCiAgICAgLCBtX2Rpc2FibGVkKGZhbHNlKQpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAg
Y2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIAogY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudCA6
IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVu
dCopOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqLCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3Jl
YXRlRWxlbWVudFplcm9SZWZDb3VudCk7CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sRWxl
bWVudCgpOwogCiAgICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkg
Y29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQor
I2luY2x1ZGUgIkhUTUxQcm9ncmVzc0VsZW1lbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMu
aCIKKyNpbmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIK
KyNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5oIgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
CitIVE1MUHJvZ3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3Jt
KQorICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwg
Q3JlYXRlRWxlbWVudCkKKyAgICAsIG1fdmFsdWUoMSkKKyAgICAsIG1fbWF4KDEpCisgICAgLCBt
X2lzRGV0ZXJtaW5hdGUoZmFsc2UpCit7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUocHJvZ3Jlc3NU
YWcpKTsKK30KKworUGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MUHJvZ3Jlc3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7Cit9CisKK1Jl
bmRlck9iamVjdCogSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgcmV0dXJuIG5ldyAoYXJlbmEp
IFJlbmRlclByb2dyZXNzKHRoaXMpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxQcm9n
cmVzc0VsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByb2dyZXNzLCAoInByb2dyZXNzIikpOworICAg
IHJldHVybiBwcm9ncmVzczsKK30KKwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSB2YWx1ZUF0dHIpIHsKKyAgICAgICAgbV9pc0RldGVybWluYXRlID0gdHJ1ZTsKKyAg
ICAgICAgYm9vbCBvazsKKyAgICAgICAgbV92YWx1ZSA9IGF0dHItPnZhbHVlKCkudG9Eb3VibGUo
Jm9rKTsKKyAgICAgICAgaWYgKCFvayB8fCBtX3ZhbHVlIDwgMCkKKyAgICAgICAgICAgIG1fdmFs
dWUgPSAwOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG1heEF0dHIpIHsKKyAgICAg
ICAgYm9vbCBvazsKKyAgICAgICAgbV9tYXggPSBhdHRyLT52YWx1ZSgpLnRvRG91YmxlKCZvayk7
CisgICAgICAgIGlmICghb2sgfHwgbV9tYXggPD0gMCkKKyAgICAgICAgICAgIG1fbWF4ID0gMTsK
KyAgICB9IGVsc2UKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoYXR0cik7Cit9CisKK2RvdWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1ZSgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2lzRGV0ZXJtaW5hdGUpCisgICAgICAgIHJldHVybiAxOwor
ICAgIGlmIChtX3ZhbHVlID4gbV9tYXgpCisgICAgICAgIHJldHVybiBtX21heDsKKyAgICBpZiAo
bV92YWx1ZSA+PSAwKQorICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzZXRWYWx1ZShkb3VibGUgdmFsdWUpCit7Cisg
ICAgbV92YWx1ZSA9IHZhbHVlOworICAgIG1faXNEZXRlcm1pbmF0ZSA9IHRydWU7Cit9CisKK2Rv
dWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50OjptYXgoKSBjb25zdAoreworICAgIHJldHVybiBtX21h
eDsKK30KKwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzZXRNYXgoZG91YmxlIG1heCkKK3sK
KyAgICBtX21heCA9IG1heCA+IDAgPyBtYXggOiAxOworfQorCitkb3VibGUgSFRNTFByb2dyZXNz
RWxlbWVudDo6cG9zaXRpb24oKSBjb25zdAoreworICAgIGlmIChtX2lzRGV0ZXJtaW5hdGUpCisg
ICAgICAgIHJldHVybiB2YWx1ZSgpIC8gbWF4KCk7CisgICAgcmV0dXJuIC0xOworfQorCit9IC8v
IG5hbWVzcGFjZQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgSFRNTFBy
b2dyZXNzRWxlbWVudF9oCisjZGVmaW5lIEhUTUxQcm9ncmVzc0VsZW1lbnRfaAorCisjaWYgRU5B
QkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFByb2dyZXNzRWxlbWVudCA6IHB1Ymxp
YyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50KiwgSFRNTEZvcm1FbGVtZW50KiA9IDApOworCisgICAgZG91YmxlIHZhbHVlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRWYWx1ZShkb3VibGUpOworCisgICAgZG91YmxlIG1heCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0TWF4KGRvdWJsZSk7CisKKyAgICBkb3VibGUgcG9zaXRpb24oKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKKworICAgIHZpcnR1YWwgYm9vbCBp
c09wdGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisKKyAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJT
dHlsZSopOworCisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSopOworCisgICAgZG91YmxlIG1fdmFsdWU7CisgICAgZG91YmxlIG1fbWF4OworICAg
IGJvb2wgbV9pc0RldGVybWluYXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCisj
ZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9UFJPR1JFU1NfVEFHCisgICAgXSBIVE1MUHJvZ3Jl
c3NFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGRv
dWJsZSAgICAgICAgICAgICAgICB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBk
b3VibGUgICAgICAgICAgICAgICAgbWF4OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIGRv
dWJsZSAgICAgICAgICAgICAgICBwb3NpdGlvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
ICBIVE1MRm9ybUVsZW1lbnQgICAgICAgZm9ybTsKKyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIE5vZGVMaXN0IGxhYmVsczsKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4J
KHJldmlzaW9uIDU1ODQyKQorKysgV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwIGludGVyZmFjZU5hbWU9SFRNTFBhcmFncmFwaEVs
ZW1lbnQsIGNyCiBwYXJhbSBjcmVhdGVXaXRoTmV3CiBwbGFpbnRleHQgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogcHJlIGNyZWF0ZVdpdGhOZXcKK3Byb2dyZXNzIGludGVyZmFjZU5hbWU9SFRN
TFByb2dyZXNzRWxlbWVudCwgY29uZGl0aW9uYWw9UFJPR1JFU1NfVEFHCiBxIGludGVyZmFjZU5h
bWU9SFRNTFF1b3RlRWxlbWVudCwgY3JlYXRlV2l0aE5ldwogcnAgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQogcnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwg
Y29uZGl0aW9uYWw9UlVCWQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDU1ODQyKQorKysg
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAs
OSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEhUTUxQYXJhZ3JhcGhFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTFBhcmFncmFwaEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBI
VE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3IgSFRNTFBhcmFtRWxlbWVudDsKICAgICAgICAgYXR0
cmlidXRlIEhUTUxQcmVFbGVtZW50Q29uc3RydWN0b3IgSFRNTFByZUVsZW1lbnQ7CisjaWYgZGVm
aW5lZChFTkFCTEVfUFJPR1JFU1NfVEFHKSAmJiBFTkFCTEVfUFJPR1JFU1NfVEFHCisgICAgICAg
IGF0dHJpYnV0ZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Q29uc3RydWN0b3IgSFRNTFByb2dyZXNzRWxl
bWVudDsKKyNlbmRpZgogICAgICAgICBhdHRyaWJ1dGUgSFRNTFF1b3RlRWxlbWVudENvbnN0cnVj
dG9yIEhUTUxRdW90ZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MU2NyaXB0RWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxTY3JpcHRFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFNl
bGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU2VsZWN0RWxlbWVudDsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vVGhlbWVUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vVGhl
bWVUeXBlcy5oCShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGVudW0gQ29udHJvbFBhcnQgewog
ICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1l
ZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVyUGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1l
ZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRp
YVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAgICBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQs
IE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAotICAgIE1lbnVs
aXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRl
eHRGaWVsZFBhcnQsIE91dGVyU3BpbkJ1dHRvblBhcnQsCisgICAgTWVudWxpc3RQYXJ0LCBNZW51
bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwg
T3V0ZXJTcGluQnV0dG9uUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0LAogICAgIFNsaWRlckhvcml6b250
YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQsIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQsCiAg
ICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQsIENhcmV0UGFydCwgU2VhcmNoRmllbGRQYXJ0LCBT
ZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAogICAgIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRp
b25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0LApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDExICs0MSwxNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaWYgRU5BQkxFKFBST0dSRVNT
X1RBRykKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisjZW5kaWYKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5o
IgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIK
KyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1l
LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgpAQCAtNjMsNiArNjksOSBAQAogI2luY2x1ZGUg
PFFTdHlsZUZhY3Rvcnk+CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uQnV0dG9uPgogI2luY2x1ZGUg
PFFTdHlsZU9wdGlvbkZyYW1lVjI+CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRl
IDxRU3R5bGVPcHRpb25Qcm9ncmVzc0JhclYyPgorI2VuZGlmCiAjaW5jbHVkZSA8UVN0eWxlT3B0
aW9uU2xpZGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAKQEAgLTYzMiw2ICs2NDEsNDIgQEAgYm9v
bCBSZW5kZXJUaGVtZVF0OjpwYWludE1lbnVMaXN0QnV0dG9uKAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVz
dFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwg
RWxlbWVudCopIGNvbnN0Cit7CisgICAgc3R5bGUtPnNldEJveFNoYWRvdygwKTsKK30KKworYm9v
bCBSZW5kZXJUaGVtZVF0OjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBpLCBjb25zdCBJbnRSZWN0JiByKQoreworICAgIFN0
eWxlUGFpbnRlciBwKHRoaXMsIHBpKTsKKyAgICBpZiAoIXAuaXNWYWxpZCgpKQorICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgUVN0eWxlT3B0aW9uUHJvZ3Jlc3NCYXJWMiBvcHRpb247CisgICAg
aWYgKHAud2lkZ2V0KQorICAgICAgIG9wdGlvbi5pbml0RnJvbShwLndpZGdldCk7CisgICAgaW5p
dGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMob3B0aW9uLCBvKTsKKworICAgIFJlbmRlclByb2dy
ZXNzKiByZW5kZXJQcm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisgICAgSFRNTFByb2dy
ZXNzRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQcm9ncmVzc0VsZW1lbnQqPihy
ZW5kZXJQcm9ncmVzcy0+bm9kZSgpKTsKKyAgICBvcHRpb24ucmVjdCA9IHI7CisgICAgb3B0aW9u
Lm1heGltdW0gPSBlbGVtZW50LT5tYXgoKTsKKyAgICBvcHRpb24ubWluaW11bSA9IDA7CisgICAg
b3B0aW9uLnByb2dyZXNzID0gZWxlbWVudC0+dmFsdWUoKTsKKworICAgIGNvbnN0IFFQb2ludCB0
b3BMZWZ0ID0gci50b3BMZWZ0KCk7CisgICAgcC5wYWludGVyLT50cmFuc2xhdGUodG9wTGVmdCk7
CisgICAgb3B0aW9uLnJlY3QubW92ZVRvKFFQb2ludCgwLCAwKSk7CisgICAgb3B0aW9uLnJlY3Qu
c2V0U2l6ZShyLnNpemUoKSk7CisKKyAgICBwLmRyYXdDb250cm9sKFFTdHlsZTo6Q0VfUHJvZ3Jl
c3NCYXIsIG9wdGlvbik7CisgICAgcC5wYWludGVyLT50cmFuc2xhdGUoLXRvcExlZnQpOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRT
bGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiBwaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0
JiByKQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHJldmlzaW9uIDU1
ODQyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMSw2ICsxMDEsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWlu
dE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1
dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25z
dDsKIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdFBy
b2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCop
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworI2VuZGlm
CisKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25z
dCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5
bGUqLCBFbGVtZW50KikgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShy
ZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzcsNiArMjc3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0xpc3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c01lZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZW51
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykK
KyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisj
ZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQnV0dG9uKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworI2luY2x1ZGUgIlJlbmRlclByb2dyZXNz
LmgiCisKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRQ
cm9ncmVzc1dpZHRoID0gMTIwOworc3RhdGljIGNvbnN0IGludCBkZWZhdWx0UHJvZ3Jlc3NIZWln
aHQgPSAyMDsKKworUmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKEVsZW1lbnQqIGVsZW1l
bnQpCisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQoreworICAgIHNldFNpemUoSW50U2l6ZShk
ZWZhdWx0UHJvZ3Jlc3NXaWR0aCwgZGVmYXVsdFByb2dyZXNzSGVpZ2h0KSk7CisgICAgc2V0UmVw
bGFjZWQodHJ1ZSk7Cit9CisKK2ludCBSZW5kZXJQcm9ncmVzczo6YmFzZWxpbmVQb3NpdGlvbihi
b29sLCBib29sKSBjb25zdAoreworICAgIHJldHVybiBoZWlnaHQoKSArIG1hcmdpblRvcCgpOwor
fQorCit2b2lkIFJlbmRlclByb2dyZXNzOjpjYWxjUHJlZldpZHRocygpCit7CisgICAgbV9taW5Q
cmVmV2lkdGggPSAwOworICAgIG1fbWF4UHJlZldpZHRoID0gMDsKKworICAgIGlmIChzdHlsZSgp
LT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkgPiAwKQorICAg
ICAgICBtX21pblByZWZXaWR0aCA9IG1fbWF4UHJlZldpZHRoID0gY2FsY0NvbnRlbnRCb3hXaWR0
aChzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkpOworICAgIGVsc2UKKyAgICAgICAgbV9tYXhQcmVm
V2lkdGggPSBkZWZhdWx0UHJvZ3Jlc3NXaWR0aCAqIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsK
KworICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT5taW5X
aWR0aCgpLnZhbHVlKCkgPiAwKSB7CisgICAgICAgIG1fbWF4UHJlZldpZHRoID0gbWF4KG1fbWF4
UHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUo
KSkpOworICAgICAgICBtX21pblByZWZXaWR0aCA9IG1heChtX21pblByZWZXaWR0aCwgY2FsY0Nv
bnRlbnRCb3hXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICB9IGVsc2Ug
aWYgKHN0eWxlKCktPndpZHRoKCkuaXNQZXJjZW50KCkgfHwgKHN0eWxlKCktPndpZHRoKCkuaXNB
dXRvKCkgJiYgc3R5bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQorICAgICAgICBtX21pblBy
ZWZXaWR0aCA9IDA7CisgICAgZWxzZQorICAgICAgICBtX21pblByZWZXaWR0aCA9IG1fbWF4UHJl
ZldpZHRoOworCisgICAgaWYgKHN0eWxlKCktPm1heFdpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxl
KCktPm1heFdpZHRoKCkudmFsdWUoKSAhPSB1bmRlZmluZWRMZW5ndGgpIHsKKyAgICAgICAgbV9t
YXhQcmVmV2lkdGggPSBtaW4obV9tYXhQcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5
bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZldpZHRoID0gbWlu
KG1fbWluUHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCku
dmFsdWUoKSkpOworICAgIH0KKworICAgIGludCB0b0FkZCA9IHBhZGRpbmdMZWZ0KCkgKyBwYWRk
aW5nUmlnaHQoKSArIGJvcmRlckxlZnQoKSArIGJvcmRlclJpZ2h0KCk7CisgICAgbV9taW5QcmVm
V2lkdGggKz0gdG9BZGQ7CisgICAgbV9tYXhQcmVmV2lkdGggKz0gdG9BZGQ7CisKKyAgICBzZXRQ
cmVmV2lkdGhzRGlydHkoZmFsc2UpOworfQorCit2b2lkIFJlbmRlclByb2dyZXNzOjpsYXlvdXQo
KQoreworICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKKworICAgIExheW91dFJlcGFpbnRlciBy
ZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpKTsKKworICAgIGNh
bGNXaWR0aCgpOworICAgIGNhbGNIZWlnaHQoKTsKKworICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsK
KworICAgIHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKKworICAgIHNldE5lZWRzTGF5
b3V0KGZhbHNlKTsKK30KKwordm9pZCBSZW5kZXJQcm9ncmVzczo6dXBkYXRlRnJvbUVsZW1lbnQo
KQoreworICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clByb2dyZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRl
ZiBSZW5kZXJQcm9ncmVzc19oCisjZGVmaW5lIFJlbmRlclByb2dyZXNzX2gKKworI2lmIEVOQUJM
RShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgUmVuZGVyUHJvZ3Jlc3MgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworcHVi
bGljOgorICAgIFJlbmRlclByb2dyZXNzKEVsZW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUHJvZ3Jl
c3MiOyB9CisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sLCBib29sKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5
b3V0KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Cit9OworCitpbmxp
bmUgUmVuZGVyUHJvZ3Jlc3MqIHRvUmVuZGVyUHJvZ3Jlc3MoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Byb2dyZXNzKCkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxSZW5kZXJQcm9ncmVzcyo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMg
d2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5k
ZXJQcm9ncmVzcyhjb25zdCBSZW5kZXJQcm9ncmVzcyopOworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gUmVuZGVyUHJvZ3Jlc3NfaAorCkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSwxMCBAQCB2
b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShDU1NTdHlsZVNlCiAgICAgICAgICAgICByZXR1
cm4gYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKHNlbGVjdG9yLCBzdHls
ZSwgZSk7CiAgICAgICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uUGFydDoKICAgICAg
ICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25TdHlsZShzZWxlY3Rv
ciwgc3R5bGUsIGUpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJv
Z3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIGFkanVzdFByb2dyZXNzQmFyU3R5bGUo
c2VsZWN0b3IsIHN0eWxlLCBlKTsKKyNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgfQpAQCAtMjY3LDYgKzI3MSwxMCBAQCBib29sIFJlbmRlclRoZW1lOjpw
YWludChSZW5kZXJPYmplY3QqIG8sCiAjZW5kaWYKICAgICAgICAgY2FzZSBNZW51bGlzdFBhcnQ6
CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZW51TGlzdChvLCBwYWludEluZm8sIHIpOworI2lm
IEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAg
ICAgICAgICAgcmV0dXJuIHBhaW50UHJvZ3Jlc3NCYXIobywgcGFpbnRJbmZvLCByKTsKKyNlbmRp
ZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRl
clZlcnRpY2FsUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludFNsaWRlclRyYWNrKG8sIHBh
aW50SW5mbywgcik7CkBAIC0zNTcsNiArMzY1LDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnRC
b3JkZXJPbmx5KFJlbmRlcgogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAg
ICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorI2lmIEVOQUJM
RShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorI2VuZGlmCiAg
ICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVy
dGljYWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC0z
OTIsNiArNDAzLDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyhSZW5kZQog
ICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6
CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisg
ICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVy
SG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAgICAg
ICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC04MjUsNiArODM5LDEyIEBAIHZv
aWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1MKIHsKIH0KIAorI2lmIEVOQUJM
RShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RQcm9ncmVzc0JhclN0eWxl
KENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdAoreworfQor
I2VuZGlmCisKIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NT
U3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0CiB7CiB9CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHJldmlzaW9uIDU1ODQyKQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMSBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NT
U3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9i
amVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KIAorI2lm
IEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFy
U3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFJl
bmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0K
KyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5
bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNTU4NDIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVz
c0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0czogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMv
c2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVu
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1l
bnQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9I
VE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1w
cm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDMtMTEgIENo
cmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVz
cy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorPGh0bWw+PGJvZHk+PHByb2dyZXNzIHZhbHVl
PTcwIG1heD0xMDA+PC9wcm9ncmVzcz48L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
c2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9z
Y3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LXBy
b2dyZXNzLXByb3BlcnRpZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGll
cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorZGVzY3JpcHRpb24oJ1Rlc3Qgc2V0
dGluZyB2YWxpZCBhbmQgaW52YWxpZCBwcm9wZXJ0aWVzIG9mIEhUTUxQcm9ncmVzc0VsZW1lbnQu
Jyk7CisKK3ZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJvZ3Jlc3MnKTsKKworZGVi
dWcoIlRlc3QgdmFsdWVzIGJlZm9yZSBwcm9wZXJ0aWVzIHdlcmUgc2V0Iik7CitzaG91bGRCZSgi
cC52YWx1ZSIsICIxIik7CitzaG91bGRCZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUoInAucG9z
aXRpb24iLCAiLTEiKTsKKworZGVidWcoIlNldCB2YWxpZCB2YWx1ZXMiKTsKK3AudmFsdWUgPSA3
ZTE7CitwLm1heCA9ICIxZTIiOworc2hvdWxkQmUoInAudmFsdWUiLCAiNzAiKTsKK3Nob3VsZEJl
KCJwLm1heCIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjAuNyIpOworCitkZWJ1
ZygiU2V0IHZhbHVlIGJpZ2dlciB0aGFuIG1heCIpOworcC52YWx1ZSA9IDIwMDsKK3AubWF4ID0g
MTAwLjA7CitzaG91bGRCZSgicC52YWx1ZSIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIx
MDAiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjEuMCIpOworCitkZWJ1ZygiU2V0IGludmFs
aWQgdmFsdWUiKTsKK3AudmFsdWUgPSAiMjAwQSI7CitwLm1heCA9IDEwMDsKK3Nob3VsZEJlKCJw
LnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxMDAiKTsKK3Nob3VsZEJlKCJwLnBv
c2l0aW9uIiwgIjAiKTsKKworZGVidWcoIlNldCBpbnZhbGlkIG1heCIpOworcC52YWx1ZSA9ICIy
MCI7CitwLm1heCA9ICJtYXgiOworc2hvdWxkQmUoInAudmFsdWUiLCAiMSIpOworc2hvdWxkQmUo
InAubWF4IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjEiKTsKKworZGVidWcoIlNl
dCB2YWx1ZSB0byBudWxsIGFuZCBtYXggdG8gMCIpOworcC52YWx1ZSA9IG51bGw7CitwLm1heCA9
IDA7CitzaG91bGRCZSgicC52YWx1ZSIsICIwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMSIpOwor
c2hvdWxkQmUoInAucG9zaXRpb24iLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA1NTg0MikKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01ODIx
LDYgKzU4MjEsMTAgQEAgZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJvdAog
IyBtb3VzZVNjcm9sbEJ5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiB0aGUgR1RLIEV2ZW50
U2VuZGVyIEFQSS4KIGZhc3QvZXZlbnRzL3JlbW92ZS1jaGlsZC1vbnNjcm9sbC5odG1sCiAKKyMg
cmVuZGVyVGhlbWUgaXMgbm90IHJlYWR5IHRvIGRyYXcgcHJvZ3Jlc3MgZWxlbWVudAorZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwKK2Zhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAorCiAjIEFwcGFy
ZW50bHkgYSBzb3VwIGJ1ZzsgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNTk0MgogaHR0cC90ZXN0cy9wbHVnaW5zL3RoaXJkLXBhcnR5LWNvb2tpZS1hY2NlcHQt
cG9saWN5Lmh0bWwKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDU1
ODQyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcgY29weSkK
QEAgLTEyOSw1ICsxMjksMTEgQEAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCiAjIEZv
ciBzb21lIHJlYXNvbiBjcmFzaGVzIHdoZW4gcnVuIHdpdGggYWxsIHRlc3RzLiBQYXNzZXMgaW5k
aXZpZHVhbGx5LgogZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJvdGVjdGlv
bi1tb3VzZS5odG1sCiAKKworIyByZW5kZXJUaGVtZSBpcyBub3QgcmVhZHkgdG8gZHJhdyBwcm9n
cmVzcyBlbGVtZW50CitmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1l
bnQuaHRtbAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVy
dGllcy5odG1sCisKICMgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJpLWxpc3Qn
KSBub3QgY29ycmVjdGx5IGltcGxlbWVudGVkIG9uIE1hYwogZWRpdGluZy9wYXN0ZWJvYXJkL2Rh
dGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEuaHRtbAorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhw
ZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNr
c3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxIEBACiswMWNmZmQ5OWI1MGM3OGJjZGY5M2QyM2YxYzIwY2MwMgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
cHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyUHJvZ3Jlc3Mge1BST0dSRVNTfSBhdCAoMiwyKSBz
aXplIDEyMHgyMAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50
L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9n
cmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACitUZXN0
IHNldHRpbmcgdmFsaWQgYW5kIGludmFsaWQgcHJvcGVydGllcyBvZiBIVE1MUHJvZ3Jlc3NFbGVt
ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCB2YWx1ZXMgYmVmb3Jl
IHByb3BlcnRpZXMgd2VyZSBzZXQKK1BBU1MgcC52YWx1ZSBpcyAxCitQQVNTIHAubWF4IGlzIDEK
K1BBU1MgcC5wb3NpdGlvbiBpcyAtMQorU2V0IHZhbGlkIHZhbHVlcworUEFTUyBwLnZhbHVlIGlz
IDcwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDAuNworU2V0IHZhbHVl
IGJpZ2dlciB0aGFuIG1heAorUEFTUyBwLnZhbHVlIGlzIDEwMAorUEFTUyBwLm1heCBpcyAxMDAK
K1BBU1MgcC5wb3NpdGlvbiBpcyAxLjAKK1NldCBpbnZhbGlkIHZhbHVlCitQQVNTIHAudmFsdWUg
aXMgMAorUEFTUyBwLm1heCBpcyAxMDAKK1BBU1MgcC5wb3NpdGlvbiBpcyAwCitTZXQgaW52YWxp
ZCBtYXgKK1BBU1MgcC52YWx1ZSBpcyAxCitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlv
biBpcyAxCitTZXQgdmFsdWUgdG8gbnVsbCBhbmQgbWF4IHRvIDAKK1BBU1MgcC52YWx1ZSBpcyAw
CitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4
cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJp
bmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncw
S0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUFDWEJJV1hNQUFBN0VBQUFP
eEFHVkt3NGJBQUFNCnhFbEVRVlI0bk8zYXUwMURRUkJBMFRXaUc1QWdvd1VLc1NWLzZyRUlhSVF5
Q09obmlRaVJIa0srTDNqbnBEdkJwRmV6dXpubkhBQUEKQUlHN3RSY0FBQUMyUTRBQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkE1bjdwNE9WMAp1T1Vl
ck9qNjlyNzJDZ0FBYk1UaUFCbGpqUE54ZjZzOUFBQ0FEZkFGQ3dBQXlQenBBdkxqOGZuajE3ZXZ6
MWN6QzJZQUFHQ0xYRUFBCkFJQ01BQUVBQURJQ0JBQUF5QWdRQUFBZ0kwQUFBSUNNQUFFQUFESUNC
QUFBeUFnUUFBQWdJMEFBQUlDTUFBRUFBRElDQkFBQXlBZ1EKQUFBZ0kwQUFBSURNYnM0NWx3eGVU
b2R4UHU1dnZROHJlSGg2V1hzRkFBQTJ3Z1VFQUFESUxMNkFBQUFBL0pjTENBQUFrQkVnQUFCQQpS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoK
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
CkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQTVodk9CekxlTzhpeE93QUFBQUJK
UlU1RXJrSmdnZz09Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50543</attachid>
            <date>2010-03-11 14:39:09 -0800</date>
            <delta_ts>2010-03-11 20:13:15 -0800</delta_ts>
            <desc>Patch v7</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>58655</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODEgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBm
b3IgSFRNTFByb2dyZXNzRWxlbWVudC4KKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBl
bmFibGVkIG9ubHkgZm9yIFF0LCBiZWNhdXNlIG9ubHkgUmVuZGVyVGhlbWVRdAorICAgICAgICB3
YXMgbW9kaWZpZWQgdG8gYWN0dWFsbHkgZHJhdyB0aGUgcHJvZ3Jlc3MgZWxlbWVudC4KKyAgICAg
ICAgVGhlIGxhYmVscyBhdHRyaWJ1dGUgb2YgdGhlIHByb2dyZXNzIGVsZW1lbnQgd2lsbCBiZSBp
bXBsZW1lbnRlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9odG1sLmNzczoK
KyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlubGlu
ZVRhZ0xpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVz
c0VsZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b2dyZXNzRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVt
ZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpt
YXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6c2V0TWF4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0aW9uKToKKyAgICAgICAg
KiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvZ3Jlc3NFbGVtZW50Ojppc09wdGlvbmFsRm9ybUNvbnRyb2wpOgorICAgICAgICAqIGh0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9UaGVtZVR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjphZGp1c3RQcm9ncmVzc0JhclN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50UHJvZ3Jlc3NCYXIp
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omlz
UHJvZ3Jlc3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clByb2dyZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnJl
bmRlck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmlzUHJvZ3Jlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1
c3RTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRQcm9n
cmVzc0Jhcik6CisKIDIwMTAtMDMtMTEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJbmRleDogV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAJKHJldmlzaW9uIDU1ODU1KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE0Myw2ICsxNDMsNyBAQAogI2luY2x1ZGUgIkpTSFRNTFBhcmFncmFwaEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFBhcmFtRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
SlNIVE1MUHJlRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJKU0hUTUxRdW90ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFNj
cmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFNlbGVjdEVsZW1lbnQuY3BwIgpJbmRl
eDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNTU4NTUpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsNyBAQCBET01fQ0xBU1NFUyA9
IFwKICAgICBIVE1MUGFyYWdyYXBoRWxlbWVudCBcCiAgICAgSFRNTFBhcmFtRWxlbWVudCBcCiAg
ICAgSFRNTFByZUVsZW1lbnQgXAorICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQgXAogICAgIEhUTUxR
dW90ZUVsZW1lbnQgXAogICAgIEhUTUxTY3JpcHRFbGVtZW50IFwKICAgICBIVE1MU2VsZWN0RWxl
bWVudCBcCkBAIC02MjAsNiArNjIxLDEwIEBAIGlmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfREFU
QUxJU1QsJChGRUEKICAgICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9GTEFHUykgRU5BQkxFX0RBVEFM
SVNUPTEKIGVuZGlmCiAKK2lmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfUFJPR1JFU1NfVEFHLCQo
RkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9QUk9HUkVTU19UQUcpCisgICAgSFRNTF9GTEFHUyA6
PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9QUk9HUkVTU19UQUc9MQorZW5kaWYKKwogaWZlcSAoJChm
aW5kc3RyaW5nIEVOQUJMRV9WSURFTywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfVklERU8p
CiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9WSURFTz0xCiBlbmRpZgpJ
bmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTI0MCw2ICsyNDAsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdlYkNv
cmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MUGFy
YW1FbGVtZW50LmlkbCBcCiAJV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmlkbCBcCisJV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFF1
b3RlRWxlbWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgXAog
CVdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgXApAQCAtMTE0NSw2ICsxMTQ2LDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2h0
bWwvSFRNTFByZUVsZW1lbnQuaCBcCisJV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwIFwKKwlXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIFwKIAlXZWJDb3JlL2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50
LmggXAogCVdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgXApAQCAtMTg0Nyw2ICsx
ODUwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQ
YXJ0LmggXAogCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwIFwKIAlXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmggXAorCVdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBc
CiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKIAlXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNh
LmNwcCBcCkBAIC0yMTcxLDYgKzIxNzYsMTQgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLURF
TkFCTEVfREFUQUdSSUQ9MAogCiAjIC0tLS0KKyMgSFRNTCBQcm9ncmVzcyBFbGVtZW50IC0gZGlz
YWJsZSBmb3Igbm93LCBzaW5jZSBwYWludGluZyBjb2RlIGlzIG1pc3NpbmcuCisjIC0tLS0KK0ZF
QVRVUkVfREVGSU5FUyArPSBFTkFCTEVfUFJPR1JFU1NfVEFHPTAKKword2ViY29yZV9jcHBmbGFn
cyArPSBcCisJLURFTkFCTEVfUFJPR1JFU1NfVEFHPTAKKworIyAtLS0tCiAjIEphdmFTY3JpcHQg
RGVidWdnZXIvUHJvZmlsZXIKICMgLS0tLQogaWYgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjMsNiArMTYzLDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxQYXJhZ3Jh
cGhFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFF1b3Rl
RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsJywK
ICAgICAgICAgICAgICdodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCcsCkBAIC0xNTU4LDYgKzE1
NTksOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oJywKICAg
ICAgICAgICAgICdodG1sL0hUTUxQcmVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MUHJlRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
UXVvdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3Bw
JywKQEAgLTMxMDEsNiArMzEwNCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBh
cnRPYmplY3QuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBhdGguY3BwJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUGF0aC5oJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgnLAogICAgICAgICAgICAgJ3Jl
bmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDU1ODU1KQorKysgV2Vi
Q29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfU0lOR0xFX1RIUkVBREVECiAhY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1ZJREVPPS4pOiBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0xCiAhY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX1JVQlk9Lik6IERFRklORVMgKz0gRU5BQkxFX1JVQlk9MQogIWNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9TQU5EQk9YPS4pOiBERUZJTkVTICs9IEVOQUJMRV9TQU5EQk9YPTEKKyFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1NfVEFHPS4pOiBERUZJTkVTICs9IEVOQUJM
RV9QUk9HUkVTU19UQUc9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9CTE9CX1NMSUNFPS4p
OiBERUZJTkVTICs9IEVOQUJMRV9CTE9CX1NMSUNFPTAKIAogZ3JlYXRlclRoYW4oUVRfTUlOT1Jf
VkVSU0lPTiwgNSkgewpAQCAtMzYxLDYgKzM2Miw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAg
aHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFBhcmFtRWxlbWVu
dC5pZGwgXAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuaWRsIFwKKyAgICBodG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsIFwKICAgICBo
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUucHJvCShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTY2Niw2ICs2NjYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBc
CiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAgXAorICAgIGh0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBcCkBA
IC05MjksNiArOTMwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVj
dENoaWxkTGlzdC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCiAgICAgcmVu
ZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKICAgICByZW5kZXJp
bmcvUmVuZGVyUmVwbGljYS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCBcCkBA
IC0xMzY3LDYgKzEzNjksNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmggXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIFwKICAgICBodG1sL0hU
TUxQcmVFbGVtZW50LmggXAorICAgIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIFwKICAgICBo
dG1sL0hUTUxRdW90ZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIFwK
ICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmggXApAQCAtMTY3MCw2ICsxNjczLDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclBhcnRPYmplY3QuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhdGguaCBcCisgICAgcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVy
UnVieS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNp
b24gNTU4NTUpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC02ODg1LDYgKzY4ODUsNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIg0KKwkJCQk+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxRdW90
ZUVsZW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTI3NDk3
LDYgKzI3NTUzLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJQcm9ncmVzcy5jcHAiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVy
UHJvZ3Jlc3MuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZXBsYWNlZC5jcHAiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpAQCAtMzMyNDEsNiArMzMzMDUsNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCIN
CisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
Ig0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0K
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUHJv
Z3Jlc3NFbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxodG1sXEhUTUxRdW90ZUVsZW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNDg1LDYgKzI0ODUsMTAgQEAKIAkJ
OUY3MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjcyMzA0RTExMTg0QjQxMDBBRDAx
MjYgLyogU2NyaXB0UHJvZmlsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovOyB9
OwogCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEyMTBGMkE1
Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CisJCUE0M0JGNTk4MTE0
OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTk2MTE0OTI5MEEwMEM2NDNDQSAv
KiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLzsgfTsKKwkJQTQzQkY1OTkxMTQ5MjkwQTAwQzY0
M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jl
c3NFbGVtZW50LmggKi87IH07CisJCUE0M0JGNTlDMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQ
cm9ncmVzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwICovOyB9Owor
CQlBNDNCRjU5RDExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTlCMTE0OTI5MjgwMEM2
NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovOyB9OwogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZF
Q0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIy
RDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBE
cmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJQTczNTJDMTkwQjFCQjg5RDAwQTk4NkQwIC8q
IFJlbmRlclNWR0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAg
Ki87IH07CkBAIC03ODc2LDYgKzc4ODAsMTAgQEAKIAkJOUY3MjMwNEUxMTE4NEI0MTAwQUQwMTI2
IC8qIFNjcmlwdFByb2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cmlwdFByb2ZpbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExN0M4MTIwMEYy
QTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRWxlbWVudEZh
Y3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTQzQkY1OTYxMTQ5MjkwQTAw
QzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSFRNTFByb2dyZXNzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQcm9ncmVzc0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTQzQkY1OUExMTQ5MjkyODAwQzY0
M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbmRlclByb2dyZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTQzQkY1OUIxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclByb2dyZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQWN0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRy
b2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFn
Q29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczNTJDMTcw
QjFCQjg5RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdCbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMjg2Nyw2ICsxMjg3NSw4IEBACiAJCTkzRUVDMUVDMDlDMjg3NzcwMEM1
MTVEMSAvKiBodG1sICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQlBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5jcHAg
Ki8sCisJCQkJQTQzQkY1OTcxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQu
aCAqLywKIAkJCQk0OTQ4NEZBRTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovLAogCQkJCTJF
QUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLywKIAkJCQkyRUFGQUYwQzEwRTJB
RjJEMDA3RUQzRDYgLyogQmxvYi5oICovLApAQCAtMTU2ODcsNiArMTU2OTcsOCBAQAogCQlGNTIz
RDJGMzAyREU0NDNCMDE4NjM1Q0EgLyogcmVuZGVyaW5nICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVu
ZGVyUHJvZ3Jlc3MuY3BwICovLAorCQkJCUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5k
ZXJQcm9ncmVzcy5oICovLAogCQkJCTg0QkRBMTY5MTEzNThEMkEwMERCRjY0QyAvKiBSZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXIuY3BwICovLAogCQkJCTg0QkRBMTZBMTEzNThEMkEwMERCRjY0QyAv
KiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCAqLywKIAkJCQlCQzhDOEZBQTBERENEMkYyMDBC
NTkyRjQgLyogc3R5bGUgKi8sCkBAIC0xODY4Niw2ICsxODY5OCw4IEBACiAJCQkJMkVENjA5QkQx
MTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNUQz
NjAxQTExMkY4QjU2MDA0OERFQTggLyogRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjVEMzYwMUQxMTJGOEJBMDAwNDhERUE4IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTQzQkY1OTkxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVz
c0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAv
KiBSZW5kZXJQcm9ncmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDg4Nyw2ICsyMDkwMSw4IEBA
CiAJCQkJQkM1M0RBQzcxMTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRUQ2MDlCQzExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjVEMzYwMUYxMTJGOEJBODAwNDhERUE4IC8qIEpTRGF0YWJh
c2VDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNDNCRjU5ODExNDkyOTBBMDBDNjQz
Q0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNDNCRjU5
QzExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cklu
ZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCShyZXZpc2lvbiA1NTg1
NSkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMjc1LDYgKzI3NSwxMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTCiAgICAgICAgIGNhc2UgT3V0ZXJTcGluQnV0dG9uUGFydDoKICAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU91dGVyU3BpbkJ1dHRvbjsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKKyNpZiBFTkFCTEUoUFJPR1JFU1Nf
QkFSKQorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7Cisj
ZW5kaWYKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQ
YXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2xpZGVySG9yaXpvbnRh
bDsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkocmV2aXNpb24gNTU4
NTUpCisrKyBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
OSw2ICsxMjksOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvCiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9ubHlPZlR5cGUsICgib25seS1v
Zi10eXBlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcHRpb25h
bCwgKCJvcHRpb25hbCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
b3V0ZXJTcGluQnV0dG9uLCAoIi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24iKSk7CisjaWYgRU5B
QkxFKFBST0dSRVNTX0JBUikKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHJvZ3Jlc3NCYXIsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiKSk7CisjZW5kaWYKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVxdWlyZWQsICgicmVxdWlyZWQiKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc2l6ZXIsICgiLXdlYmtpdC1y
ZXNpemVyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByb290LCAo
InJvb3QiKSk7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9uIDU1ODU1KQor
KysgV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTgy
LDYgKzU4Miw3IEBAIG1lbnVsaXN0LWJ1dHRvbgogbWVudWxpc3QtdGV4dAogbWVudWxpc3QtdGV4
dGZpZWxkCiBvdXRlci1zcGluLWJ1dHRvbgorcHJvZ3Jlc3MtYmFyCiBzbGlkZXItaG9yaXpvbnRh
bAogc2xpZGVyLXZlcnRpY2FsCiBzbGlkZXJ0aHVtYi1ob3Jpem9udGFsCkluZGV4OiBXZWJDb3Jl
L2Nzcy9odG1sLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9odG1sLmNzcwkocmV2aXNp
b24gNTU4NTUpCisrKyBXZWJDb3JlL2Nzcy9odG1sLmNzcwkod29ya2luZyBjb3B5KQpAQCAtNTE1
LDYgKzUxNSwxOSBAQCBvcHRpb24gewogICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiB9CiAKKy8q
IHByb2dyZXNzICovCisKK3Byb2dyZXNzIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dy
ZXNzLWJhcjsKKyAgICBwYWRkaW5nOiBpbml0aWFsOworICAgIGJvcmRlcjogaW5pdGlhbDsKKyAg
ICBtYXJnaW46IDJweDsKK30KKworcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKK30KKwogLyogZGF0YWdyaWQgKi8K
IAogZGF0YWdyaWQgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1NTg1NSkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1NCw2ICs4
NTQsOSBAQCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4qIGlubGluCiAgICAgICAg
IHRhZ0xpc3QuYWRkKHJwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgIHRhZ0xpc3Qu
YWRkKHJ0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgIHRhZ0xpc3QuYWRkKHJ1YnlU
YWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAg
ICB0YWdMaXN0LmFkZChwcm9ncmVzc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCkpOworI2VuZGlmCiAg
ICAgfQogICAgIHJldHVybiAmdGFnTGlzdDsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudHNBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
c0FsbEluT25lLmNwcAkocmV2aXNpb24gNTU4NTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnRzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBACiAjaW5jbHVk
ZSAiSFRNTFBsdWdJbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuY3BwIgogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNp
b24gNTU4NTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDggKzQ5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2MsIEhUTUxGb3JtRWxlbWVudCogZikKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvYykK
K0hUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYywgSFRNTEZvcm1FbGVtZW50KiBmLCBD
b25zdHJ1Y3Rpb25UeXBlIGNvbnN0cnVjdGlvblR5cGUpCisgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2MsIGNvbnN0cnVjdGlvblR5cGUpCiAgICAgLCBtX2Zvcm0oZikKICAgICAsIG1faGFz
TmFtZShmYWxzZSkKICAgICAsIG1fZGlzYWJsZWQoZmFsc2UpCkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDU1ODU1KQorKysgV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBj
bGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogCiBjbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDog
cHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50
Kik7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVh
dGVFbGVtZW50WmVyb1JlZkNvdW50KTsKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50KCk7CiAKICAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBj
b25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisj
aW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5oIgorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgor
I2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisK
K0hUTUxQcm9ncmVzc0VsZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0p
CisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtLCBD
cmVhdGVFbGVtZW50KQoreworICAgIEFTU0VSVChoYXNUYWdOYW1lKHByb2dyZXNzVGFnKSk7Cit9
CisKK1Bhc3NSZWZQdHI8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwg
SFRNTEZvcm1FbGVtZW50KiBmb3JtKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFBy
b2dyZXNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOworfQorCitSZW5kZXJPYmpl
Y3QqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJQ
cm9ncmVzcyh0aGlzKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MUHJvZ3Jlc3NFbGVt
ZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBwcm9ncmVzcywgKCJwcm9ncmVzcyIpKTsKKyAgICByZXR1cm4g
cHJvZ3Jlc3M7Cit9CisKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0g
dmFsdWVBdHRyKSB7CisgICAgICAgIC8vIGRvIG5vdGhpbmcKKyAgICB9IGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBtYXhBdHRyKSB7CisgICAgICAgIC8vIGRvIG5vdGhpbmcKKyAgICB9IGVsc2UK
KyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0
cik7Cit9CisKK2RvdWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKGhhc0F0dHJpYnV0ZSh2YWx1ZUF0dHIpKSB7CisgICAgICAgIGJvb2wgb2s7CisgICAg
ICAgIGRvdWJsZSB2YWx1ZSA9IGdldEF0dHJpYnV0ZSh2YWx1ZUF0dHIpLnRvRG91YmxlKCZvayk7
CisgICAgICAgIGlmICghb2sgfHwgdmFsdWUgPCAwKQorICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiAodmFsdWUgPiBtYXgoKSkgPyBtYXgoKSA6IHZhbHVlOworICAgIH0KKyAg
ICByZXR1cm4gMTsKK30KKwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzZXRWYWx1ZShkb3Vi
bGUgdmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgU3RyaW5nOjpudW1iZXIo
dmFsdWUgPj0gMCA/IHZhbHVlIDogMCkpOworfQorCitkb3VibGUgSFRNTFByb2dyZXNzRWxlbWVu
dDo6bWF4KCkgY29uc3QKK3sKKyAgICBpZiAoaGFzQXR0cmlidXRlKG1heEF0dHIpKSB7CisgICAg
ICAgIGJvb2wgb2s7CisgICAgICAgIGRvdWJsZSBtYXggPSBnZXRBdHRyaWJ1dGUobWF4QXR0ciku
dG9Eb3VibGUoJm9rKTsKKyAgICAgICAgaWYgKCFvayB8fCBtYXggPD0gMCkKKyAgICAgICAgICAg
IHJldHVybiAxOworICAgICAgICByZXR1cm4gbWF4OworICAgIH0KKyAgICByZXR1cm4gMTsKK30K
Kwordm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzZXRNYXgoZG91YmxlIG1heCkKK3sKKyAgICBz
ZXRBdHRyaWJ1dGUobWF4QXR0ciwgU3RyaW5nOjpudW1iZXIobWF4ID4gMCA/IG1heCA6IDEpKTsK
K30KKworZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0aW9uKCkgY29uc3QKK3sKKyAg
ICBpZiAoaGFzQXR0cmlidXRlKHZhbHVlQXR0cikpCisgICAgICAgIHJldHVybiB2YWx1ZSgpIC8g
bWF4KCk7CisgICAgcmV0dXJuIC0xOworfQorCit9IC8vIG5hbWVzcGFjZQorI2VuZGlmCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgSFRNTFByb2dyZXNzRWxlbWVudF9oCisjZGVmaW5l
IEhUTUxQcm9ncmVzc0VsZW1lbnRfaAorCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNs
dWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSFRNTFByb2dyZXNzRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50KiA9
IDApOworCisgICAgZG91YmxlIHZhbHVlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRWYWx1ZShkb3Vi
bGUpOworCisgICAgZG91YmxlIG1heCgpIGNvbnN0OworICAgIHZvaWQgc2V0TWF4KGRvdWJsZSk7
CisKKyAgICBkb3VibGUgcG9zaXRpb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBIVE1MUHJv
Z3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxl
bWVudCogPSAwKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsRm9ybUNvbnRyb2woKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOworCisgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworfTsKKworfSAvLyBu
YW1lc3BhY2UKKworI2VuZGlmCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCittb2R1
bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9UFJPR1JFU1Nf
VEFHCisgICAgXSBIVE1MUHJvZ3Jlc3NFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgIGRvdWJsZSAgICAgICAgICAgICAgICB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlICBkb3VibGUgICAgICAgICAgICAgICAgbWF4OworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgIGRvdWJsZSAgICAgICAgICAgICAgICBwb3NpdGlvbjsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICAgZm9ybTsKKyAgICAg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKKyAgICB9OworCit9Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDU1ODU1KQorKysgV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBwIGludGVyZmFj
ZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQsIGNyCiBwYXJhbSBjcmVhdGVXaXRoTmV3CiBwbGFp
bnRleHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcHJlIGNyZWF0ZVdpdGhOZXcKK3Byb2dy
ZXNzIGludGVyZmFjZU5hbWU9SFRNTFByb2dyZXNzRWxlbWVudCwgY29uZGl0aW9uYWw9UFJPR1JF
U1NfVEFHCiBxIGludGVyZmFjZU5hbWU9SFRNTFF1b3RlRWxlbWVudCwgY3JlYXRlV2l0aE5ldwog
cnAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQogcnQgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9UlVCWQpJbmRleDogV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJ
KHJldmlzaW9uIDU1ODU1KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTQyMCw2ICs0MjAsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmli
dXRlIEhUTUxQYXJhZ3JhcGhFbGVtZW50Q29uc3RydWN0b3IgSFRNTFBhcmFncmFwaEVsZW1lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3IgSFRNTFBhcmFt
RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxQcmVFbGVtZW50Q29uc3RydWN0b3IgSFRN
TFByZUVsZW1lbnQ7CisjaWYgZGVmaW5lZChFTkFCTEVfUFJPR1JFU1NfVEFHKSAmJiBFTkFCTEVf
UFJPR1JFU1NfVEFHCisgICAgICAgIGF0dHJpYnV0ZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTFByb2dyZXNzRWxlbWVudDsKKyNlbmRpZgogICAgICAgICBhdHRyaWJ1dGUgSFRN
TFF1b3RlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxRdW90ZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBIVE1MU2NyaXB0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxTY3JpcHRFbGVtZW50OwogICAg
ICAgICBhdHRyaWJ1dGUgSFRNTFNlbGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU2VsZWN0RWxl
bWVudDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBA
IGVudW0gQ29udHJvbFBhcnQgewogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRp
YVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlh
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVyUGFydCwgTWVk
aWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFW
b2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAgICBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0LAotICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlz
dFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsIE91dGVyU3BpbkJ1dHRvblBhcnQsCisg
ICAgTWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1l
bnVsaXN0VGV4dEZpZWxkUGFydCwgT3V0ZXJTcGluQnV0dG9uUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0
LAogICAgIFNsaWRlckhvcml6b250YWxQYXJ0LCBTbGlkZXJWZXJ0aWNhbFBhcnQsIFNsaWRlclRo
dW1iSG9yaXpvbnRhbFBhcnQsCiAgICAgU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQsIENhcmV0UGFy
dCwgU2VhcmNoRmllbGRQYXJ0LCBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0LAogICAgIFNlYXJj
aEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0LCBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0
LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA1NTg1
NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQxLDExICs0MSwxNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50Lmgi
CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50
LmgiCisjZW5kaWYKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlckJveC5oIgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVk
ZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgpAQCAtNjMs
NiArNjksOSBAQAogI2luY2x1ZGUgPFFTdHlsZUZhY3Rvcnk+CiAjaW5jbHVkZSA8UVN0eWxlT3B0
aW9uQnV0dG9uPgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkZyYW1lVjI+CisjaWYgRU5BQkxFKFBS
T0dSRVNTX1RBRykKKyNpbmNsdWRlIDxRU3R5bGVPcHRpb25Qcm9ncmVzc0JhclYyPgorI2VuZGlm
CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uU2xpZGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAKQEAg
LTYzMiw2ICs2NDEsNDIgQEAgYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludE1lbnVMaXN0QnV0dG9u
KAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lk
IFJlbmRlclRoZW1lUXQ6OmFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvcios
IFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAgc3R5bGUtPnNldEJv
eFNoYWRvdygwKTsKK30KKworYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludFByb2dyZXNzQmFyKFJl
bmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBpLCBjb25zdCBJ
bnRSZWN0JiByKQoreworICAgIFN0eWxlUGFpbnRlciBwKHRoaXMsIHBpKTsKKyAgICBpZiAoIXAu
aXNWYWxpZCgpKQorICAgICAgIHJldHVybiB0cnVlOworCisgICAgUVN0eWxlT3B0aW9uUHJvZ3Jl
c3NCYXJWMiBvcHRpb247CisgICAgaWYgKHAud2lkZ2V0KQorICAgICAgIG9wdGlvbi5pbml0RnJv
bShwLndpZGdldCk7CisgICAgaW5pdGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMob3B0aW9uLCBv
KTsKKworICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQcm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jl
c3Mobyk7CisgICAgSFRNTFByb2dyZXNzRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxQcm9ncmVzc0VsZW1lbnQqPihyZW5kZXJQcm9ncmVzcy0+bm9kZSgpKTsKKyAgICBvcHRpb24u
cmVjdCA9IHI7CisgICAgb3B0aW9uLm1heGltdW0gPSBlbGVtZW50LT5tYXgoKTsKKyAgICBvcHRp
b24ubWluaW11bSA9IDA7CisgICAgb3B0aW9uLnByb2dyZXNzID0gZWxlbWVudC0+dmFsdWUoKTsK
KworICAgIGNvbnN0IFFQb2ludCB0b3BMZWZ0ID0gci50b3BMZWZ0KCk7CisgICAgcC5wYWludGVy
LT50cmFuc2xhdGUodG9wTGVmdCk7CisgICAgb3B0aW9uLnJlY3QubW92ZVRvKFFQb2ludCgwLCAw
KSk7CisgICAgb3B0aW9uLnJlY3Quc2V0U2l6ZShyLnNpemUoKSk7CisKKyAgICBwLmRyYXdDb250
cm9sKFFTdHlsZTo6Q0VfUHJvZ3Jlc3NCYXIsIG9wdGlvbik7CisgICAgcC5wYWludGVyLT50cmFu
c2xhdGUoLXRvcExlZnQpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIGJvb2wg
UmVuZGVyVGhlbWVRdDo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJl
bmRlck9iamVjdDo6UGFpbnRJbmZvJiBwaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBJbnRSZWN0JiByKQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJU
aGVtZVF0LmgJKHJldmlzaW9uIDU1ODU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJU
aGVtZVF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMTEgQEAgcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0
IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJT
dHlsZSosIEVsZW1lbnQqKSBjb25zdDsKIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAg
dmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJl
bmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dy
ZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFj
ayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShDU1NTdHls
ZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAKSW5kZXg6IFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiA1NTg1NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzcsNiArMjc3LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYg
RU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9j
aygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQnV0
dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJ
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworI2lu
Y2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisKKyNpbmNsdWRlICJIVE1MUHJvZ3Jlc3NFbGVtZW50
LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0
aWMgY29uc3QgaW50IGRlZmF1bHRQcm9ncmVzc1dpZHRoID0gMTIwOworc3RhdGljIGNvbnN0IGlu
dCBkZWZhdWx0UHJvZ3Jlc3NIZWlnaHQgPSAyMDsKKworUmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclBy
b2dyZXNzKEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorewor
ICAgIHNldFNpemUoSW50U2l6ZShkZWZhdWx0UHJvZ3Jlc3NXaWR0aCwgZGVmYXVsdFByb2dyZXNz
SGVpZ2h0KSk7CisgICAgc2V0UmVwbGFjZWQodHJ1ZSk7Cit9CisKK2ludCBSZW5kZXJQcm9ncmVz
czo6YmFzZWxpbmVQb3NpdGlvbihib29sLCBib29sKSBjb25zdAoreworICAgIHJldHVybiBoZWln
aHQoKSArIG1hcmdpblRvcCgpOworfQorCit2b2lkIFJlbmRlclByb2dyZXNzOjpjYWxjUHJlZldp
ZHRocygpCit7CisgICAgbV9taW5QcmVmV2lkdGggPSAwOworICAgIG1fbWF4UHJlZldpZHRoID0g
MDsKKworICAgIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT53aWR0
aCgpLnZhbHVlKCkgPiAwKQorICAgICAgICBtX21pblByZWZXaWR0aCA9IG1fbWF4UHJlZldpZHRo
ID0gY2FsY0NvbnRlbnRCb3hXaWR0aChzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkpOworICAgIGVs
c2UKKyAgICAgICAgbV9tYXhQcmVmV2lkdGggPSBkZWZhdWx0UHJvZ3Jlc3NXaWR0aCAqIHN0eWxl
KCktPmVmZmVjdGl2ZVpvb20oKTsKKworICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgpLmlzRml4
ZWQoKSAmJiBzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkgPiAwKSB7CisgICAgICAgIG1fbWF4
UHJlZldpZHRoID0gbWF4KG1fbWF4UHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxl
KCktPm1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZXaWR0aCA9IG1heCht
X21pblByZWZXaWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZh
bHVlKCkpKTsKKyAgICB9IGVsc2UgaWYgKHN0eWxlKCktPndpZHRoKCkuaXNQZXJjZW50KCkgfHwg
KHN0eWxlKCktPndpZHRoKCkuaXNBdXRvKCkgJiYgc3R5bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50
KCkpKQorICAgICAgICBtX21pblByZWZXaWR0aCA9IDA7CisgICAgZWxzZQorICAgICAgICBtX21p
blByZWZXaWR0aCA9IG1fbWF4UHJlZldpZHRoOworCisgICAgaWYgKHN0eWxlKCktPm1heFdpZHRo
KCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSAhPSB1bmRlZmluZWRM
ZW5ndGgpIHsKKyAgICAgICAgbV9tYXhQcmVmV2lkdGggPSBtaW4obV9tYXhQcmVmV2lkdGgsIGNh
bGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAg
IG1fbWluUHJlZldpZHRoID0gbWluKG1fbWluUHJlZldpZHRoLCBjYWxjQ29udGVudEJveFdpZHRo
KHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgIH0KKworICAgIGludCB0b0FkZCA9
IHBhZGRpbmdMZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKSArIGJvcmRlckxlZnQoKSArIGJvcmRlclJp
Z2h0KCk7CisgICAgbV9taW5QcmVmV2lkdGggKz0gdG9BZGQ7CisgICAgbV9tYXhQcmVmV2lkdGgg
Kz0gdG9BZGQ7CisKKyAgICBzZXRQcmVmV2lkdGhzRGlydHkoZmFsc2UpOworfQorCit2b2lkIFJl
bmRlclByb2dyZXNzOjpsYXlvdXQoKQoreworICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKKwor
ICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmlu
Z0xheW91dCgpKTsKKworICAgIGNhbGNXaWR0aCgpOworICAgIGNhbGNIZWlnaHQoKTsKKworICAg
IG1fb3ZlcmZsb3cuY2xlYXIoKTsKKworICAgIHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQo
KTsKKworICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKK30KKwordm9pZCBSZW5kZXJQcm9ncmVz
czo6dXBkYXRlRnJvbUVsZW1lbnQoKQoreworICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRo
c1JlY2FsYygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclByb2dyZXNzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2lmbmRlZiBSZW5kZXJQcm9ncmVzc19oCisjZGVmaW5lIFJlbmRlclBy
b2dyZXNzX2gKKworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVuZGVyUHJvZ3Jlc3MgOiBwdWJs
aWMgUmVuZGVyQmxvY2sgeworcHVibGljOgorICAgIFJlbmRlclByb2dyZXNzKEVsZW1lbnQqKTsK
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7
IHJldHVybiAiUmVuZGVyUHJvZ3Jlc3MiOyB9CisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3Mo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlv
bihib29sLCBib29sKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21F
bGVtZW50KCk7Cit9OworCitpbmxpbmUgUmVuZGVyUHJvZ3Jlc3MqIHRvUmVuZGVyUHJvZ3Jlc3Mo
UmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1Byb2dyZXNzKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJQcm9ncmVzcyo+KG9i
amVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nh
cnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJQcm9ncmVzcyhjb25zdCBSZW5kZXJQcm9ncmVzcyopOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gUmVuZGVyUHJv
Z3Jlc3NfaAorCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiA1NTg1
NSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjA5LDYgKzIwOSwxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShDU1NTdHls
ZVNlCiAgICAgICAgICAgICByZXR1cm4gYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlv
blN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CiAgICAgICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1
bHRzQnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZFJlc3Vs
dHNCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOworI2lmIEVOQUJMRShQUk9HUkVTU19U
QUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIGFk
anVzdFByb2dyZXNzQmFyU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsKKyNlbmRpZgogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjY3LDYgKzI3MSwxMCBA
QCBib29sIFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sCiAjZW5kaWYKICAgICAg
ICAgY2FzZSBNZW51bGlzdFBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZW51TGlzdChv
LCBwYWludEluZm8sIHIpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2Ug
UHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50UHJvZ3Jlc3NCYXIobywg
cGFpbnRJbmZvLCByKTsKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0
OgogICAgICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgICAgIHJldHVybiBw
YWludFNsaWRlclRyYWNrKG8sIHBhaW50SW5mbywgcik7CkBAIC0zNTcsNiArMzY1LDkgQEAgYm9v
bCBSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KFJlbmRlcgogICAgICAgICBjYXNlIERlZmF1
bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVu
dWxpc3RQYXJ0OgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jl
c3NCYXJQYXJ0OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAg
ICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1i
SG9yaXpvbnRhbFBhcnQ6CkBAIC0zOTIsNiArNDAzLDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFp
bnREZWNvcmF0aW9ucyhSZW5kZQogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAg
ICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorI2lmIEVO
QUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorI2VuZGlm
CiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVy
VmVydGljYWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBA
IC04MjUsNiArODM5LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0U3R5bGUo
Q1MKIHsKIH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lOjph
ZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVs
ZW1lbnQqKSBjb25zdAoreworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1l
bnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVu
dCopIGNvbnN0CiB7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHJldmlzaW9uIDU1
ODU1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjI3LDYgKzIyNywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1l
bnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVu
dCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9i
amVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsg
cmV0dXJuIHRydWU7IH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2
b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxl
KiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJl
bmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpIHsgcmV0dXJuIHRydWU7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNs
aWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCop
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJu
IHRydWU7IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTU4NTUpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMy0wOSAgWWFlbCBB
aGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKwor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0czog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVz
dHMvVEVNUExBVEUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNz
RWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanM6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3Bl
cnRpZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1M
UHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisKIDIwMTAtMDMtMTEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3Mt
ZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEgQEAKKzxodG1sPjxib2R5Pjxwcm9ncmVzcyB2YWx1ZT03MCBtYXg9MTAwPjwvcHJvZ3Jlc3M+
PC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVz
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVu
dC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNf
RklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1wcm9ncmVz
cy1wcm9wZXJ0aWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQ
cm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9z
Y3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanMJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNjEgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHNldHRpbmcgdmFsaWQgYW5kIGludmFsaWQg
cHJvcGVydGllcyBvZiBIVE1MUHJvZ3Jlc3NFbGVtZW50LicpOworCit2YXIgcCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3Byb2dyZXNzJyk7CisKK2RlYnVnKCJUZXN0IHZhbHVlcyBiZWZvcmUg
cHJvcGVydGllcyB3ZXJlIHNldCIpOworc2hvdWxkQmUoInAudmFsdWUiLCAiMSIpOworc2hvdWxk
QmUoInAubWF4IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIi0xIik7CisKK2RlYnVn
KCJTZXQgdmFsaWQgdmFsdWVzIik7CitwLnZhbHVlID0gN2UxOworcC5tYXggPSAiMWUyIjsKK3No
b3VsZEJlKCJwLnZhbHVlIiwgIjcwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMTAwIik7CitzaG91
bGRCZSgicC5wb3NpdGlvbiIsICIwLjciKTsKKworZGVidWcoIlNldCB2YWx1ZSBiaWdnZXIgdGhh
biBtYXgiKTsKK3AudmFsdWUgPSAyMDA7CitwLm1heCA9IDEwMC4wOworc2hvdWxkQmUoInAudmFs
dWUiLCAiMTAwIik7CitzaG91bGRCZSgicC5tYXgiLCAiMTAwIik7CitzaG91bGRCZSgicC5wb3Np
dGlvbiIsICIxIik7CisKK2RlYnVnKCJTZXQgaW52YWxpZCB2YWx1ZSIpOworcC52YWx1ZSA9ICIy
MDBBIjsKK3AubWF4ID0gMTAwOworc2hvdWxkQmUoInAudmFsdWUiLCAiMCIpOworc2hvdWxkQmUo
InAubWF4IiwgIjEwMCIpOworc2hvdWxkQmUoInAucG9zaXRpb24iLCAiMCIpOworCitkZWJ1Zygi
U2V0IGludmFsaWQgbWF4Iik7CitwLnZhbHVlID0gIjIwIjsKK3AubWF4ID0gIm1heCI7CitzaG91
bGRCZSgicC52YWx1ZSIsICIxIik7CitzaG91bGRCZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUo
InAucG9zaXRpb24iLCAiMSIpOworCitkZWJ1ZygiU2V0IHZhbHVlIHRvIG51bGwgYW5kIG1heCB0
byAwIik7CitwLnZhbHVlID0gbnVsbDsKK3AubWF4ID0gMDsKK3Nob3VsZEJlKCJwLnZhbHVlIiwg
IjAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxIik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICIw
Iik7CisKK2RlYnVnKCJTZXQgYXR0cmlidXRlcyB0byB2YWxpZCBudW1iZXJzIik7CitwLnNldEF0
dHJpYnV0ZSgidmFsdWUiLCA1KTsKK3Auc2V0QXR0cmlidXRlKCJtYXgiLCAxMCk7CitzaG91bGRC
ZSgicC52YWx1ZSIsICI1Iik7CitzaG91bGRCZSgicC5tYXgiLCAiMTAiKTsKK3Nob3VsZEJlKCJw
YXJzZUludChwLmdldEF0dHJpYnV0ZSgndmFsdWUnKSkiLCAiNSIpOworc2hvdWxkQmUoInBhcnNl
SW50KHAuZ2V0QXR0cmlidXRlKCdtYXgnKSkiLCAiMTAiKTsKKworZGVidWcoIlNldCBhdHRyaWJ1
dGVzIHRvIGludmFsaWQgdmFsdWVzIik7CitwLnNldEF0dHJpYnV0ZSgidmFsdWUiLCAiQUJDIik7
CitwLnNldEF0dHJpYnV0ZSgibWF4IiwgIiMiKTsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjAiKTsK
K3Nob3VsZEJlKCJwLm1heCIsICIxIik7CitzaG91bGRCZSgicC5nZXRBdHRyaWJ1dGUoJ3ZhbHVl
JykiLCAiJ0FCQyciKTsKK3Nob3VsZEJlKCJwLmdldEF0dHJpYnV0ZSgnbWF4JykiLCAiJyMnIik7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQJKHJldmlzaW9uIDU1ODU1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU4MjAsNiArNTgyMCwxMCBAQCBmYXN0L2Zvcm1zL211
bHRpcGxlLWZvcm0tc3VibWlzc2lvbi1wcm90CiAjIG1vdXNlU2Nyb2xsQnkoKSBpcyBub3QgeWV0
IGltcGxlbWVudGVkIGluIHRoZSBHVEsgRXZlbnRTZW5kZXIgQVBJLgogZmFzdC9ldmVudHMvcmVt
b3ZlLWNoaWxkLW9uc2Nyb2xsLmh0bWwKIAorIyByZW5kZXJUaGVtZSBpcyBub3QgcmVhZHkgdG8g
ZHJhdyBwcm9ncmVzcyBlbGVtZW50CitmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dy
ZXNzLWVsZW1lbnQuaHRtbAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jl
c3MtcHJvcGVydGllcy5odG1sCisKICMgQXBwYXJlbnRseSBhIHNvdXAgYnVnOyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTQyCiBodHRwL3Rlc3RzL3BsdWdp
bnMvdGhpcmQtcGFydHktY29va2llLWFjY2VwdC1wb2xpY3kuaHRtbAogCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNTU4NTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDUgKzEyOSwxMSBAQCBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KICMgRm9yIHNvbWUgcmVhc29uIGNyYXNoZXMgd2hlbiBy
dW4gd2l0aCBhbGwgdGVzdHMuIFBhc3NlcyBpbmRpdmlkdWFsbHkuCiBmYXN0L2Zvcm1zL211bHRp
cGxlLWZvcm0tc3VibWlzc2lvbi1wcm90ZWN0aW9uLW1vdXNlLmh0bWwKIAorCisjIHJlbmRlclRo
ZW1lIGlzIG5vdCByZWFkeSB0byBkcmF3IHByb2dyZXNzIGVsZW1lbnQKK2Zhc3QvZG9tL0hUTUxQ
cm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sCitmYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwKKwogIyBldmVudC5kYXRhVHJh
bnNmZXIuc2V0RGF0YSgndGV4dC91cmktbGlzdCcpIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50ZWQg
b24gTWFjCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5o
dG1sCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVz
c0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3By
b2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVs
ZW1lbnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzAxY2Zm
ZDk5YjUwYzc4YmNkZjkzZDIzZjFjMjBjYzAyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVu
dC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJQ
cm9ncmVzcyB7UFJPR1JFU1N9IGF0ICgyLDIpIHNpemUgMTIweDIwCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKK1Rlc3Qgc2V0dGluZyB2YWxpZCBhbmQgaW52YWxpZCBw
cm9wZXJ0aWVzIG9mIEhUTUxQcm9ncmVzc0VsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitUZXN0IHZhbHVlcyBiZWZvcmUgcHJvcGVydGllcyB3ZXJlIHNldAorUEFTUyBw
LnZhbHVlIGlzIDEKK1BBU1MgcC5tYXggaXMgMQorUEFTUyBwLnBvc2l0aW9uIGlzIC0xCitTZXQg
dmFsaWQgdmFsdWVzCitQQVNTIHAudmFsdWUgaXMgNzAKK1BBU1MgcC5tYXggaXMgMTAwCitQQVNT
IHAucG9zaXRpb24gaXMgMC43CitTZXQgdmFsdWUgYmlnZ2VyIHRoYW4gbWF4CitQQVNTIHAudmFs
dWUgaXMgMTAwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlzIDEKK1NldCBp
bnZhbGlkIHZhbHVlCitQQVNTIHAudmFsdWUgaXMgMAorUEFTUyBwLm1heCBpcyAxMDAKK1BBU1Mg
cC5wb3NpdGlvbiBpcyAwCitTZXQgaW52YWxpZCBtYXgKK1BBU1MgcC52YWx1ZSBpcyAxCitQQVNT
IHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAxCitTZXQgdmFsdWUgdG8gbnVsbCBhbmQg
bWF4IHRvIDAKK1BBU1MgcC52YWx1ZSBpcyAwCitQQVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3Np
dGlvbiBpcyAwCitTZXQgYXR0cmlidXRlcyB0byB2YWxpZCBudW1iZXJzCitQQVNTIHAudmFsdWUg
aXMgNQorUEFTUyBwLm1heCBpcyAxMAorUEFTUyBwYXJzZUludChwLmdldEF0dHJpYnV0ZSgndmFs
dWUnKSkgaXMgNQorUEFTUyBwYXJzZUludChwLmdldEF0dHJpYnV0ZSgnbWF4JykpIGlzIDEwCitT
ZXQgYXR0cmlidXRlcyB0byBpbnZhbGlkIHZhbHVlcworUEFTUyBwLnZhbHVlIGlzIDAKK1BBU1Mg
cC5tYXggaXMgMQorUEFTUyBwLmdldEF0dHJpYnV0ZSgndmFsdWUnKSBpcyAnQUJDJworUEFTUyBw
LmdldEF0dHJpYnV0ZSgnbWF4JykgaXMgJyMnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFz
dC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnBuZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpz
dm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50
L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1l
LXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUFDWEJJV1hNQUFBN0VBQUFPeEFHVkt3NGJBQUFN
CnhFbEVRVlI0bk8zYXUwMURRUkJBMFRXaUc1QWdvd1VLc1NWLzZyRUlhSVF5Q09obmlRaVJIa0sr
TDNqbnBEdkJwRmV6dXpubkhBQUEKQUlHN3RSY0FBQUMyUTRBQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkE1bjdwNE9WMAp1T1Vlck9qNjlyNzJDZ0FB
Yk1UaUFCbGpqUE54ZjZzOUFBQ0FEZkFGQ3dBQXlQenBBdkxqOGZuajE3ZXZ6MWN6QzJZQUFHQ0xY
RUFBCkFJQ01BQUVBQURJQ0JBQUF5QWdRQUFBZ0kwQUFBSUNNQUFFQUFESUNCQUFBeUFnUUFBQWdJ
MEFBQUlDTUFBRUFBRElDQkFBQXlBZ1EKQUFBZ0kwQUFBSURNYnM0NWx3eGVUb2R4UHU1dnZROHJl
SGg2V1hzRkFBQTJ3Z1VFQUFESUxMNkFBQUFBL0pjTENBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNB
QUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FB
QWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFB
a0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFr
QkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtC
RWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JF
Z0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVn
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcK
QUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdB
QUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FB
QkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
CkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQTVodk9CekxlTzhpeE93QUFBQUJKUlU1RXJrSmdnZz09
Cgo=
</data>
<flag name="review"
          id="33711"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50575</attachid>
            <date>2010-03-11 20:13:15 -0800</date>
            <delta_ts>2010-03-14 18:20:55 -0700</delta_ts>
            <desc>Patch v8</desc>
            <filename>35937.patch</filename>
            <type>text/plain</type>
            <size>58584</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODEgQEAKKzIwMTAtMDMtMDkgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgZm9yIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1OTM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBm
b3IgSFRNTFByb2dyZXNzRWxlbWVudC4KKyAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBl
bmFibGVkIG9ubHkgZm9yIFF0LCBiZWNhdXNlIG9ubHkgUmVuZGVyVGhlbWVRdAorICAgICAgICB3
YXMgbW9kaWZpZWQgdG8gYWN0dWFsbHkgZHJhdyB0aGUgcHJvZ3Jlc3MgZWxlbWVudC4KKyAgICAg
ICAgVGhlIGxhYmVscyBhdHRyaWJ1dGUgb2YgdGhlIHByb2dyZXNzIGVsZW1lbnQgd2lsbCBiZSBp
bXBsZW1lbnRlZCBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJv
cGVydGllcy5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9odG1sLmNzczoK
KyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlubGlu
ZVRhZ0xpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVz
c0VsZW1lbnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b2dyZXNzRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVt
ZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpt
YXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6c2V0TWF4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0aW9uKToKKyAgICAgICAg
KiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvZ3Jlc3NFbGVtZW50Ojppc09wdGlvbmFsRm9ybUNvbnRyb2wpOgorICAgICAgICAqIGh0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9UaGVtZVR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjphZGp1c3RQcm9ncmVzc0JhclN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50UHJvZ3Jlc3NCYXIp
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omlz
UHJvZ3Jlc3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clByb2dyZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnJl
bmRlck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OmlzUHJvZ3Jlc3Mp
OgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJQcm9ncmVzcyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1
c3RTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRQcm9n
cmVzc0Jhcik6CisKIDIwMTAtMDMtMTEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hA
YXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IE9saXZlciBIdW50LgpJbmRl
eDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDU1ODgxKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsNyBAQAogI2luY2x1ZGUgIkpTSFRN
TFBhcmFncmFwaEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFBhcmFtRWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiSlNIVE1MUHJlRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSlNIVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxRdW90ZUVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkpTSFRNTFNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTFNlbGVjdEVsZW1l
bnQuY3BwIgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNTU4ODEpCisrKyBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsNyBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBIVE1MUGFyYWdyYXBoRWxlbWVudCBcCiAgICAgSFRNTFBhcmFt
RWxlbWVudCBcCiAgICAgSFRNTFByZUVsZW1lbnQgXAorICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQg
XAogICAgIEhUTUxRdW90ZUVsZW1lbnQgXAogICAgIEhUTUxTY3JpcHRFbGVtZW50IFwKICAgICBI
VE1MU2VsZWN0RWxlbWVudCBcCkBAIC02MjAsNiArNjIxLDEwIEBAIGlmZXEgKCQoZmluZHN0cmlu
ZyBFTkFCTEVfREFUQUxJU1QsJChGRUEKICAgICBIVE1MX0ZMQUdTIDo9ICQoSFRNTF9GTEFHUykg
RU5BQkxFX0RBVEFMSVNUPTEKIGVuZGlmCiAKK2lmZXEgKCQoZmluZHN0cmluZyBFTkFCTEVfUFJP
R1JFU1NfVEFHLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9QUk9HUkVTU19UQUcpCisgICAg
SFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9QUk9HUkVTU19UQUc9MQorZW5kaWYK
KwogaWZlcSAoJChmaW5kc3RyaW5nIEVOQUJMRV9WSURFTywkKEZFQVRVUkVfREVGSU5FUykpLCBF
TkFCTEVfVklERU8pCiAgICAgSFRNTF9GTEFHUyA6PSAkKEhUTUxfRkxBR1MpIEVOQUJMRV9WSURF
Tz0xCiBlbmRpZgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI0MCw2ICsyNDAsNyBAQCBJRExfQklORElOR1Mg
Kz0gXAogCVdlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwgXAogCVdlYkNvcmUv
aHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbCBcCiAJV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50
LmlkbCBcCisJV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsIFwKIAlXZWJDb3Jl
L2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgXApAQCAtMTE0
NSw2ICsxMTQ2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3BwIFwK
IAlXZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaCBcCisJV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwIFwKKwlXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIFwK
IAlXZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9IVE1M
UXVvdGVFbGVtZW50LmggXAogCVdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgXApA
QCAtMTg0Nyw2ICsxODUwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQYXJ0LmggXAogCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3Qu
Y3BwIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmggXAorCVdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKIAlX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsaWNhLmNwcCBcCkBAIC0yMTcxLDYgKzIxNzYsMTQgQEAgd2ViY29yZV9jcHBmbGFn
cyArPSBcCiAJLURFTkFCTEVfREFUQUdSSUQ9MAogCiAjIC0tLS0KKyMgSFRNTCBQcm9ncmVzcyBF
bGVtZW50IC0gZGlzYWJsZSBmb3Igbm93LCBzaW5jZSBwYWludGluZyBjb2RlIGlzIG1pc3Npbmcu
CisjIC0tLS0KK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfUFJPR1JFU1NfVEFHPTAKKword2Vi
Y29yZV9jcHBmbGFncyArPSBcCisJLURFTkFCTEVfUFJPR1JFU1NfVEFHPTAKKworIyAtLS0tCiAj
IEphdmFTY3JpcHQgRGVidWdnZXIvUHJvZmlsZXIKICMgLS0tLQogaWYgRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNiArMTYzLDcgQEAKICAgICAgICAgICAgICdodG1s
L0hUTUxQYXJhZ3JhcGhFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwnLAorICAg
ICAgICAgICAgJ2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCcsCkBA
IC0xNTU3LDYgKzE1NTgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxQcmVFbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
aCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MUXVvdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuY3BwJywKQEAgLTMxMDAsNiArMzEwMyw4IEBACiAgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlclBhcnRPYmplY3QuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBh
dGguY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUGF0aC5oJywKKyAgICAgICAg
ICAgICdyZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dl
YkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDU1
ODgxKQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU0lOR0xFX1RIUkVBREVECiAhY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1ZJREVPPS4pOiBERUZJTkVTICs9IEVOQUJMRV9WSURFTz0xCiAhY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1JVQlk9Lik6IERFRklORVMgKz0gRU5BQkxFX1JVQlk9MQog
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TQU5EQk9YPS4pOiBERUZJTkVTICs9IEVOQUJMRV9T
QU5EQk9YPTEKKyFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfUFJPR1JFU1NfVEFHPS4pOiBERUZJ
TkVTICs9IEVOQUJMRV9QUk9HUkVTU19UQUc9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9C
TE9CX1NMSUNFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9CTE9CX1NMSUNFPTAKIAogZ3JlYXRlclRo
YW4oUVRfTUlOT1JfVkVSU0lPTiwgNSkgewpAQCAtMzYxLDYgKzM2Miw3IEBAIElETF9CSU5ESU5H
UyArPSBcCiAgICAgaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRN
TFBhcmFtRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuaWRsIFwKKyAgICBo
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQu
aWRsIFwKICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5pZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTY2Niw2ICs2NjYsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAgXAorICAgIGh0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAog
ICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcCBcCkBAIC05MjksNiArOTMwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNw
cCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwIFwKKyAgICByZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwK
ICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJS
dWJ5LmNwcCBcCkBAIC0xMzY3LDYgKzEzNjksNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hU
TUxQbHVnSW5FbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIFwK
ICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmggXAorICAgIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmggXApAQCAtMTY3MCw2ICsx
NjczLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhdGgu
aCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oIFwKICAgICByZW5k
ZXJpbmcvUmVuZGVyUnVieS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagkocmV2aXNpb24gNTU4ODEpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02ODg1LDYgKzY4ODUsNjIgQEAKIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFByb2dyZXNz
RWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0hUTUxRdW90ZUVsZW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KQEAgLTI3NDk3LDYgKzI3NTUzLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJQcm9ncmVzcy5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUmVuZGVyUHJvZ3Jlc3MuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZXBsYWNlZC5jcHAiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQpAQCAtMzMyNDEsNiArMzMzMDUsNjIgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aHRtbFxIVE1MUHJvZ3Jlc3NFbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxRdW90ZUVsZW1lbnQuY3BwIg0KIAkJ
CQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNDg1LDYgKzI0
ODUsMTAgQEAKIAkJOUY3MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjcyMzA0RTEx
MTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1REFBRUIgLyog
SFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3Rv
cnkuY3BwICovOyB9OwogCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTdDODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CisJ
CUE0M0JGNTk4MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTk2MTE0OTI5
MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLzsgfTsKKwkJQTQzQkY1OTkx
MTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAv
KiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi87IH07CisJCUE0M0JGNTlDMTE0OTI5MjgwMEM2NDND
QSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3Mu
Y3BwICovOyB9OworCQlBNDNCRjU5RDExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTlC
MTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovOyB9OwogCQlBNzE4NzYwRTBC
MkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMw
MEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJQTczNTJDMTkwQjFCQjg5
RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJT
VkdCbG9jay5jcHAgKi87IH07CkBAIC03ODc2LDYgKzc4ODAsMTAgQEAKIAkJOUY3MjMwNEUxMTE4
NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcmlwdFByb2ZpbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8q
IEhUTUxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTQzQkY1
OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFByb2dyZXNzRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1M
UHJvZ3Jlc3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQ
cm9ncmVzc0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTQzQkY1OUEx
MTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclByb2dyZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTQzQkY1OUIxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclByb2dyZXNzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFn
QWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQWN0aW9ucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0Ug
LyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTczNTJDMTcwQjFCQjg5RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdCbG9jay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjg2Nyw2ICsxMjg3NSw4IEBACiAJCTkzRUVDMUVD
MDlDMjg3NzcwMEM1MTVEMSAvKiBodG1sICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAgKi8sCisJCQkJQTQzQkY1OTcxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9n
cmVzc0VsZW1lbnQuaCAqLywKIAkJCQk0OTQ4NEZBRTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFz
ICovLAogCQkJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLywKIAkJCQky
RUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovLApAQCAtMTU2NjUsNiArMTU2NzUs
OCBAQAogCQlGNTIzRDJGMzAyREU0NDNCMDE4NjM1Q0EgLyogcmVuZGVyaW5nICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBNDNCRjU5QTExNDkyOTI4MDBD
NjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwICovLAorCQkJCUE0M0JGNTlCMTE0OTI5MjgwMEM2
NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovLAogCQkJCUJDOEM4RkFBMEREQ0QyRjIwMEI1OTJG
NCAvKiBzdHlsZSAqLywKIAkJCQlBOENGRjA0QjBBMTU0RjA5MDAwQTQyMzQgLyogQXV0b1RhYmxl
TGF5b3V0LmNwcCAqLywKIAkJCQlBOENGRjA0OTBBMTU0RjA5MDAwQTQyMzQgLyogQXV0b1RhYmxl
TGF5b3V0LmggKi8sCkBAIC0xODY1OSw2ICsxODY3MSw4IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdERDRE
ODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNF
MTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29tTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTQzQkY1OTkxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yMDg2MCw2ICsyMDg3NCw4IEBACiAJCQkJOTNGMTlCMDUwODI0
NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTQzQkY1OTgxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0
M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNTU4ODEpCisrKyBXZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2
ICsyNzUsMTEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTUwogICAg
ICAgICBjYXNlIE91dGVyU3BpbkJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVPdXRlclNwaW5CdXR0b247CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBQcm9ncmVzc0JhclBhcnQ6CisjaWYgRU5BQkxFKFBST0dSRVNTX0JBUikKKyAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVByb2dyZXNzQmFyOworI2VuZGlmCisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKICAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNsaWRlckhvcml6b250YWw7CiAgICAgICAgICAg
ICBicmVhazsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDU1ODgxKQorKysgV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDkgQEAg
dm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjbwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvbmx5T2ZUeXBlLCAoIm9ubHktb2YtdHlwZSIpKTsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3B0aW9uYWwsICgib3B0aW9uYWwi
KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG91dGVyU3BpbkJ1dHRv
biwgKCItd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIikpOworI2lmIEVOQUJMRShQUk9HUkVTU19C
QVIpCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHByb2dyZXNzQmFyLCAo
Ii13ZWJraXQtcHJvZ3Jlc3MtYmFyIikpOworI2VuZGlmCiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHJlcXVpcmVkLCAoInJlcXVpcmVkIikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXNpemVyLCAoIi13ZWJraXQtcmVzaXplciIpKTsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcm9vdCwgKCJyb290IikpOwpJbmRl
eDogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4Miw2ICs1ODIsNyBAQCBt
ZW51bGlzdC1idXR0b24KIG1lbnVsaXN0LXRleHQKIG1lbnVsaXN0LXRleHRmaWVsZAogb3V0ZXIt
c3Bpbi1idXR0b24KK3Byb2dyZXNzLWJhcgogc2xpZGVyLWhvcml6b250YWwKIHNsaWRlci12ZXJ0
aWNhbAogc2xpZGVydGh1bWItaG9yaXpvbnRhbApJbmRleDogV2ViQ29yZS9jc3MvaHRtbC5jc3MK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvaHRtbC5jc3MJKHJldmlzaW9uIDU1ODgxKQorKysg
V2ViQ29yZS9jc3MvaHRtbC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTUxNSw2ICs1MTUsMTkgQEAg
b3B0aW9uIHsKICAgICBmb250LXdlaWdodDogbm9ybWFsOwogfQogCisvKiBwcm9ncmVzcyAqLwor
Citwcm9ncmVzcyB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9ncmVzcy1iYXI7CisgICAg
cGFkZGluZzogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgbWFyZ2luOiAycHg7
Cit9CisKK3Byb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhciB7CisgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBwcm9ncmVzcy1iYXI7Cit9CisKIC8qIGRhdGFncmlkICovCiAKIGRhdGFncmlkIHsK
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gNTU4ODEpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTQsNiArODU0LDkgQEAgc3RhdGlj
IEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBpbmxpbgogICAgICAgICB0YWdMaXN0LmFkZChy
cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCkpOwogICAgICAgICB0YWdMaXN0LmFkZChydFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCkpOwogICAgICAgICB0YWdMaXN0LmFkZChydWJ5VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSk7CisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICAgICAgdGFnTGlzdC5hZGQo
cHJvZ3Jlc3NUYWcubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyNlbmRpZgogICAgIH0KICAgICByZXR1
cm4gJnRhZ0xpc3Q7CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAJ
KHJldmlzaW9uIDU1ODgxKQorKysgV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQAogI2luY2x1ZGUgIkhUTUxQbHVnSW5F
bGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MUHJlRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiSFRNTFF1b3RlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTFNjcmlw
dEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmNwcCIKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU1ODgxKQorKysg
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00OSw4ICs0OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotSFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVs
ZW1lbnQqIGYpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2MpCitIVE1MRm9ybUNvbnRy
b2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2MsIEhUTUxGb3JtRWxlbWVudCogZiwgQ29uc3RydWN0aW9uVHlw
ZSBjb25zdHJ1Y3Rpb25UeXBlKQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jLCBjb25z
dHJ1Y3Rpb25UeXBlKQogICAgICwgbV9mb3JtKGYpCiAgICAgLCBtX2hhc05hbWUoZmFsc2UpCiAg
ICAgLCBtX2Rpc2FibGVkKGZhbHNlKQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgVmlzaWJsZVNl
bGVjdGlvbjsKIAogY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
LCBIVE1MRm9ybUVsZW1lbnQqLCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3JlYXRlRWxlbWVudFplcm9S
ZWZDb3VudCk7CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sRWxlbWVudCgpOwogCiAgICAg
dmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4g
VGFnU3RhdHVzUmVxdWlyZWQ7IH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIkhUTUxQ
cm9ncmVzc0VsZW1lbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJG
b3JtRGF0YUxpc3QuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJSZW5k
ZXJQcm9ncmVzcy5oIgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgIDogSFRNTEZv
cm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgQ3JlYXRlRWxlbWVudCkK
K3sKKyAgICBBU1NFUlQoaGFzVGFnTmFtZShwcm9ncmVzc1RhZykpOworfQorCitQYXNzUmVmUHRy
PEhUTUxQcm9ncmVzc0VsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQcm9ncmVzc0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKK30KKworUmVuZGVyT2JqZWN0KiBIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxl
KiBzdHlsZSkKK3sKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUHJvZ3Jlc3ModGhpcyk7
Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgSFRNTFByb2dyZXNzRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgcHJvZ3Jlc3MsICgicHJvZ3Jlc3MiKSk7CisgICAgcmV0dXJuIHByb2dyZXNzOworfQor
Cit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSogYXR0cikKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IHZhbHVlQXR0cikgewor
ICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gbWF4QXR0cikgeworICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgfSBl
bHNlCisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHIpOworfQorCitkb3VibGUgSFRNTFByb2dyZXNzRWxlbWVudDo6dmFsdWUoKSBjb25zdAor
eworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWVTdHJpbmcgPSBnZXRBdHRyaWJ1dGUodmFs
dWVBdHRyKTsKKyAgICBib29sIG9rOworICAgIGRvdWJsZSB2YWx1ZSA9IHZhbHVlU3RyaW5nLnRv
RG91YmxlKCZvayk7CisgICAgaWYgKCFvayB8fCB2YWx1ZSA8IDApCisgICAgICAgIHJldHVybiB2
YWx1ZVN0cmluZy5pc051bGwoKSA/IDEgOiAwOworICAgIHJldHVybiAodmFsdWUgPiBtYXgoKSkg
PyBtYXgoKSA6IHZhbHVlOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnNldFZhbHVl
KGRvdWJsZSB2YWx1ZSkKK3sKKyAgICBzZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBTdHJpbmc6Om51
bWJlcih2YWx1ZSA+PSAwID8gdmFsdWUgOiAwKSk7Cit9CisKK2RvdWJsZSBIVE1MUHJvZ3Jlc3NF
bGVtZW50OjptYXgoKSBjb25zdAoreworICAgIGJvb2wgb2s7CisgICAgZG91YmxlIG1heCA9IGdl
dEF0dHJpYnV0ZShtYXhBdHRyKS50b0RvdWJsZSgmb2spOworICAgIGlmICghb2sgfHwgbWF4IDw9
IDApCisgICAgICAgIHJldHVybiAxOworICAgIHJldHVybiBtYXg7Cit9CisKK3ZvaWQgSFRNTFBy
b2dyZXNzRWxlbWVudDo6c2V0TWF4KGRvdWJsZSBtYXgpCit7CisgICAgc2V0QXR0cmlidXRlKG1h
eEF0dHIsIFN0cmluZzo6bnVtYmVyKG1heCA+IDAgPyBtYXggOiAxKSk7Cit9CisKK2RvdWJsZSBI
VE1MUHJvZ3Jlc3NFbGVtZW50Ojpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNBdHRy
aWJ1dGUodmFsdWVBdHRyKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiB2YWx1ZSgp
IC8gbWF4KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBIVE1MUHJvZ3Jlc3NFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFByb2dyZXNz
RWxlbWVudF9oCisKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MUHJv
Z3Jlc3NFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7CisKKyAgICBk
b3VibGUgdmFsdWUoKSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlKGRvdWJsZSk7CisKKyAgICBk
b3VibGUgbWF4KCkgY29uc3Q7CisgICAgdm9pZCBzZXRNYXgoZG91YmxlKTsKKworICAgIGRvdWJs
ZSBwb3NpdGlvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0OworCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRp
ZgorI2VuZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVBST0dSRVNTX1RBRworICAgIF0gSFRNTFBy
b2dyZXNzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
ICBkb3VibGUgICAgICAgICAgICAgICAgdmFsdWU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgZG91YmxlICAgICAgICAgICAgICAgIG1heDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
ICBkb3VibGUgICAgICAgICAgICAgICAgcG9zaXRpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgIGZvcm07CisgICAgfTsKKworfQpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TFRhZ05hbWVzLmluCShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFnTmFt
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDcgQEAgcCBpbnRlcmZhY2VOYW1lPUhU
TUxQYXJhZ3JhcGhFbGVtZW50LCBjcgogcGFyYW0gY3JlYXRlV2l0aE5ldwogcGxhaW50ZXh0IGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHByZSBjcmVhdGVXaXRoTmV3Citwcm9ncmVzcyBpbnRl
cmZhY2VOYW1lPUhUTUxQcm9ncmVzc0VsZW1lbnQsIGNvbmRpdGlvbmFsPVBST0dSRVNTX1RBRwog
cSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1lbnQsIGNyZWF0ZVdpdGhOZXcKIHJwIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQsIGNvbmRpdGlvbmFsPVJVQlkKIHJ0IGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQsIGNvbmRpdGlvbmFsPVJVQlkKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lv
biA1NTg4MSkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC00MjAsNiArNDIwLDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1M
UGFyYWdyYXBoRWxlbWVudENvbnN0cnVjdG9yIEhUTUxQYXJhZ3JhcGhFbGVtZW50OwogICAgICAg
ICBhdHRyaWJ1dGUgSFRNTFBhcmFtRWxlbWVudENvbnN0cnVjdG9yIEhUTUxQYXJhbUVsZW1lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MUHJlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxQcmVFbGVt
ZW50OworI2lmIGRlZmluZWQoRU5BQkxFX1BST0dSRVNTX1RBRykgJiYgRU5BQkxFX1BST0dSRVNT
X1RBRworICAgICAgICBhdHRyaWJ1dGUgSFRNTFByb2dyZXNzRWxlbWVudENvbnN0cnVjdG9yIEhU
TUxQcm9ncmVzc0VsZW1lbnQ7CisjZW5kaWYKICAgICAgICAgYXR0cmlidXRlIEhUTUxRdW90ZUVs
ZW1lbnRDb25zdHJ1Y3RvciBIVE1MUXVvdGVFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRN
TFNjcmlwdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU2NyaXB0RWxlbWVudDsKICAgICAgICAgYXR0
cmlidXRlIEhUTUxTZWxlY3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTFNlbGVjdEVsZW1lbnQ7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL1RoZW1lVHlwZXMuaAkocmV2aXNpb24gNTU4ODEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL1RoZW1lVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBlbnVtIENv
bnRyb2xQYXJ0IHsKICAgICBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uUGFydCwgTWVkaWFSZXdpbmRC
dXR0b25QYXJ0LCBNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25QYXJ0LCBNZWRpYVRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uUGFydCwKICAgICBNZWRpYVNsaWRlclBhcnQsIE1lZGlhU2xpZGVy
VGh1bWJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lclBhcnQsIE1lZGlhVm9sdW1lU2xp
ZGVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQsCiAgICAgTWVkaWFDb250cm9sc0Jh
Y2tncm91bmRQYXJ0LCBNZWRpYUN1cnJlbnRUaW1lUGFydCwgTWVkaWFUaW1lUmVtYWluaW5nUGFy
dCwKLSAgICBNZW51bGlzdFBhcnQsIE1lbnVsaXN0QnV0dG9uUGFydCwgTWVudWxpc3RUZXh0UGFy
dCwgTWVudWxpc3RUZXh0RmllbGRQYXJ0LCBPdXRlclNwaW5CdXR0b25QYXJ0LAorICAgIE1lbnVs
aXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRl
eHRGaWVsZFBhcnQsIE91dGVyU3BpbkJ1dHRvblBhcnQsIFByb2dyZXNzQmFyUGFydCwKICAgICBT
bGlkZXJIb3Jpem9udGFsUGFydCwgU2xpZGVyVmVydGljYWxQYXJ0LCBTbGlkZXJUaHVtYkhvcml6
b250YWxQYXJ0LAogICAgIFNsaWRlclRodW1iVmVydGljYWxQYXJ0LCBDYXJldFBhcnQsIFNlYXJj
aEZpZWxkUGFydCwgU2VhcmNoRmllbGREZWNvcmF0aW9uUGFydCwKICAgICBTZWFyY2hGaWVsZFJl
c3VsdHNEZWNvcmF0aW9uUGFydCwgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uUGFydCwKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAkocmV2aXNpb24gNTU4ODEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MSwxMSArNDEsMTcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgorI2lmIEVO
QUJMRShQUk9HUkVTU19UQUcpCisjaW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJCb3guaCIKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIlJlbmRl
clByb2dyZXNzLmgiCisjZW5kaWYKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKQEAgLTYzLDYgKzY5LDkg
QEAKICNpbmNsdWRlIDxRU3R5bGVGYWN0b3J5PgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkJ1dHRv
bj4KICNpbmNsdWRlIDxRU3R5bGVPcHRpb25GcmFtZVYyPgorI2lmIEVOQUJMRShQUk9HUkVTU19U
QUcpCisjaW5jbHVkZSA8UVN0eWxlT3B0aW9uUHJvZ3Jlc3NCYXJWMj4KKyNlbmRpZgogI2luY2x1
ZGUgPFFTdHlsZU9wdGlvblNsaWRlcj4KICNpbmNsdWRlIDxRV2lkZ2V0PgogCkBAIC02MzIsNiAr
NjQxLDQyIEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRNZW51TGlzdEJ1dHRvbigKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQordm9pZCBSZW5kZXJU
aGVtZVF0OjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25zdAoreworICAgIHN0eWxlLT5zZXRCb3hTaGFkb3co
MCk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmpl
Y3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwaSwgY29uc3QgSW50UmVjdCYg
cikKK3sKKyAgICBTdHlsZVBhaW50ZXIgcCh0aGlzLCBwaSk7CisgICAgaWYgKCFwLmlzVmFsaWQo
KSkKKyAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFFTdHlsZU9wdGlvblByb2dyZXNzQmFyVjIg
b3B0aW9uOworICAgIGlmIChwLndpZGdldCkKKyAgICAgICBvcHRpb24uaW5pdEZyb20ocC53aWRn
ZXQpOworICAgIGluaXRpYWxpemVDb21tb25RU3R5bGVPcHRpb25zKG9wdGlvbiwgbyk7CisKKyAg
ICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJvZ3Jlc3MgPSB0b1JlbmRlclByb2dyZXNzKG8pOwor
ICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUHJvZ3Jl
c3NFbGVtZW50Kj4ocmVuZGVyUHJvZ3Jlc3MtPm5vZGUoKSk7CisgICAgb3B0aW9uLnJlY3QgPSBy
OworICAgIG9wdGlvbi5tYXhpbXVtID0gZWxlbWVudC0+bWF4KCk7CisgICAgb3B0aW9uLm1pbmlt
dW0gPSAwOworICAgIG9wdGlvbi5wcm9ncmVzcyA9IGVsZW1lbnQtPnZhbHVlKCk7CisKKyAgICBj
b25zdCBRUG9pbnQgdG9wTGVmdCA9IHIudG9wTGVmdCgpOworICAgIHAucGFpbnRlci0+dHJhbnNs
YXRlKHRvcExlZnQpOworICAgIG9wdGlvbi5yZWN0Lm1vdmVUbyhRUG9pbnQoMCwgMCkpOworICAg
IG9wdGlvbi5yZWN0LnNldFNpemUoci5zaXplKCkpOworCisgICAgcC5kcmF3Q29udHJvbChRU3R5
bGU6OkNFX1Byb2dyZXNzQmFyLCBvcHRpb24pOworICAgIHAucGFpbnRlci0+dHJhbnNsYXRlKC10
b3BMZWZ0KTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiBib29sIFJlbmRlclRo
ZW1lUXQ6OnBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmpl
Y3Q6OlBhaW50SW5mbyYgcGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW50UmVjdCYgcikKIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5o
CShyZXZpc2lvbiA1NTg4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDExIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0TWVudUxpc3RCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBF
bGVtZW50KikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHls
ZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQcm9ncmVzc0JhcihS
ZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7
CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAkocmV2aXNpb24gNTU4ODEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjc3LDYgKzI3Nyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNMaXN0TWFya2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNNZWRpYSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2lmIEVOQUJMRShQ
Uk9HUkVTU19UQUcpCisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxvY2soKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVySW1hZ2UoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisKKyNpbmNsdWRlICJS
ZW5kZXJQcm9ncmVzcy5oIgorCisjaW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworc3RhdGljIGNvbnN0
IGludCBkZWZhdWx0UHJvZ3Jlc3NXaWR0aCA9IDEyMDsKK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVs
dFByb2dyZXNzSGVpZ2h0ID0gMjA7CisKK1JlbmRlclByb2dyZXNzOjpSZW5kZXJQcm9ncmVzcyhI
VE1MUHJvZ3Jlc3NFbGVtZW50KiBlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkK
K3sKKyAgICBzZXRTaXplKEludFNpemUoZGVmYXVsdFByb2dyZXNzV2lkdGgsIGRlZmF1bHRQcm9n
cmVzc0hlaWdodCkpOworICAgIHNldFJlcGxhY2VkKHRydWUpOworfQorCitpbnQgUmVuZGVyUHJv
Z3Jlc3M6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwgYm9vbCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aGVpZ2h0KCkgKyBtYXJnaW5Ub3AoKTsKK30KKwordm9pZCBSZW5kZXJQcm9ncmVzczo6Y2FsY1By
ZWZXaWR0aHMoKQoreworICAgIG1fbWluUHJlZldpZHRoID0gMDsKKyAgICBtX21heFByZWZXaWR0
aCA9IDA7CisKKyAgICBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+
d2lkdGgoKS52YWx1ZSgpID4gMCkKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSBtX21heFByZWZX
aWR0aCA9IGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fbWF4UHJlZldpZHRoID0gZGVmYXVsdFByb2dyZXNzV2lkdGggKiBz
dHlsZSgpLT5lZmZlY3RpdmVab29tKCk7CisKKyAgICBpZiAoc3R5bGUoKS0+bWluV2lkdGgoKS5p
c0ZpeGVkKCkgJiYgc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpID4gMCkgeworICAgICAgICBt
X21heFByZWZXaWR0aCA9IG1heChtX21heFByZWZXaWR0aCwgY2FsY0NvbnRlbnRCb3hXaWR0aChz
dHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSBt
YXgobV9taW5QcmVmV2lkdGgsIGNhbGNDb250ZW50Qm94V2lkdGgoc3R5bGUoKS0+bWluV2lkdGgo
KS52YWx1ZSgpKSk7CisgICAgfSBlbHNlIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzUGVyY2VudCgp
IHx8IChzdHlsZSgpLT53aWR0aCgpLmlzQXV0bygpICYmIHN0eWxlKCktPmhlaWdodCgpLmlzUGVy
Y2VudCgpKSkKKyAgICAgICAgbV9taW5QcmVmV2lkdGggPSAwOworICAgIGVsc2UKKyAgICAgICAg
bV9taW5QcmVmV2lkdGggPSBtX21heFByZWZXaWR0aDsKKworICAgIGlmIChzdHlsZSgpLT5tYXhX
aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkgIT0gdW5kZWZp
bmVkTGVuZ3RoKSB7CisgICAgICAgIG1fbWF4UHJlZldpZHRoID0gbWluKG1fbWF4UHJlZldpZHRo
LCBjYWxjQ29udGVudEJveFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAg
ICAgICBtX21pblByZWZXaWR0aCA9IG1pbihtX21pblByZWZXaWR0aCwgY2FsY0NvbnRlbnRCb3hX
aWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICB9CisKKyAgICBpbnQgdG9B
ZGQgPSBwYWRkaW5nTGVmdCgpICsgcGFkZGluZ1JpZ2h0KCkgKyBib3JkZXJMZWZ0KCkgKyBib3Jk
ZXJSaWdodCgpOworICAgIG1fbWluUHJlZldpZHRoICs9IHRvQWRkOworICAgIG1fbWF4UHJlZldp
ZHRoICs9IHRvQWRkOworCisgICAgc2V0UHJlZldpZHRoc0RpcnR5KGZhbHNlKTsKK30KKwordm9p
ZCBSZW5kZXJQcm9ncmVzczo6bGF5b3V0KCkKK3sKKyAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7
CisKKyAgICBMYXlvdXRSZXBhaW50ZXIgcmVwYWludGVyKCp0aGlzLCBjaGVja0ZvclJlcGFpbnRE
dXJpbmdMYXlvdXQoKSk7CisKKyAgICBjYWxjV2lkdGgoKTsKKyAgICBjYWxjSGVpZ2h0KCk7CisK
KyAgICBtX292ZXJmbG93LmNsZWFyKCk7CisKKyAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5
b3V0KCk7CisKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7Cit9CisKK3ZvaWQgUmVuZGVyUHJv
Z3Jlc3M6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKKyAgICBzZXROZWVkc0xheW91dEFuZFByZWZX
aWR0aHNSZWNhbGMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUmVuZGVyUHJvZ3Jlc3NfaAorI2RlZmluZSBSZW5k
ZXJQcm9ncmVzc19oCisKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFByb2dyZXNzRWxl
bWVudDsKKworY2xhc3MgUmVuZGVyUHJvZ3Jlc3MgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworcHVi
bGljOgorICAgIFJlbmRlclByb2dyZXNzKEhUTUxQcm9ncmVzc0VsZW1lbnQqKTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAi
UmVuZGVyUHJvZ3Jlc3MiOyB9CisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sLCBi
b29sKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
Cit9OworCitpbmxpbmUgUmVuZGVyUHJvZ3Jlc3MqIHRvUmVuZGVyUHJvZ3Jlc3MoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Byb2dyZXNz
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJQcm9ncmVzcyo+KG9iamVjdCk7Cit9
CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4K
K3ZvaWQgdG9SZW5kZXJQcm9ncmVzcyhjb25zdCBSZW5kZXJQcm9ncmVzcyopOworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gUmVuZGVyUHJvZ3Jlc3NfaAor
CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiA1NTg4MSkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYg
KzIwOSwxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShDU1NTdHlsZVNlCiAgICAg
ICAgICAgICByZXR1cm4gYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKHNl
bGVjdG9yLCBzdHlsZSwgZSk7CiAgICAgICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
UGFydDoKICAgICAgICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25T
dHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAg
ICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIGFkanVzdFByb2dy
ZXNzQmFyU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsKKyNlbmRpZgogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjY3LDYgKzI3MSwxMCBAQCBib29sIFJl
bmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sCiAjZW5kaWYKICAgICAgICAgY2FzZSBN
ZW51bGlzdFBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZW51TGlzdChvLCBwYWludElu
Zm8sIHIpOworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NC
YXJQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50UHJvZ3Jlc3NCYXIobywgcGFpbnRJbmZv
LCByKTsKKyNlbmRpZgogICAgICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgogICAgICAg
ICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludFNsaWRl
clRyYWNrKG8sIHBhaW50SW5mbywgcik7CkBAIC0zNTcsNiArMzY1LDkgQEAgYm9vbCBSZW5kZXJU
aGVtZTo6cGFpbnRCb3JkZXJPbmx5KFJlbmRlcgogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25Q
YXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0
OgorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0
OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNh
c2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRh
bFBhcnQ6CkBAIC0zOTIsNiArNDAzLDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0
aW9ucyhSZW5kZQogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNl
IEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorI2lmIEVOQUJMRShQUk9H
UkVTU19UQUcpCisgICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorI2VuZGlmCiAgICAgICAg
IGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQ
YXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC04MjUsNiAr
ODM5LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1MKIHsKIH0K
IAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCit2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RQcm9n
cmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBj
b25zdAoreworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdE1lbnVMaXN0QnV0
dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHJldmlzaW9uIDU1ODgxKQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYg
KzIyNywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0
dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRy
dWU7IH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVz
dFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVu
dCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0
dXJuIHRydWU7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNr
U3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFJl
bmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0K
IApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTU4ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMy0wOSAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTFByb2dyZXNzRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU5MzcKKworICAgICAgICAq
IGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0czogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExB
VEUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9z
Y3JpcHQtdGVzdHMvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3By
b2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIw
MTAtMDMtMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
cHJvZ3Jlc3MtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis8aHRtbD48
Ym9keT48cHJvZ3Jlc3MgdmFsdWU9NzAgbWF4PTEwMD48L3Byb2dyZXNzPjwvYm9keT48L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9n
cmVzcy1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJv
Z3Jlc3MtcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Nl
dC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRl
c3RzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFByb2dyZXNzRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3Rz
L1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MUHJvZ3Jlc3NFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50
L3NjcmlwdC10ZXN0cy9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2NyaXB0LXRlc3RzL3Nl
dC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACitk
ZXNjcmlwdGlvbignVGVzdCBzZXR0aW5nIHZhbGlkIGFuZCBpbnZhbGlkIHByb3BlcnRpZXMgb2Yg
SFRNTFByb2dyZXNzRWxlbWVudC4nKTsKKwordmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdwcm9ncmVzcycpOworCitkZWJ1ZygiVGVzdCB2YWx1ZXMgYmVmb3JlIHByb3BlcnRpZXMgd2Vy
ZSBzZXQiKTsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjEiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIx
Iik7CitzaG91bGRCZSgicC5wb3NpdGlvbiIsICItMSIpOworCitkZWJ1ZygiU2V0IHZhbGlkIHZh
bHVlcyIpOworcC52YWx1ZSA9IDdlMTsKK3AubWF4ID0gIjFlMiI7CitzaG91bGRCZSgicC52YWx1
ZSIsICI3MCIpOworc2hvdWxkQmUoInAubWF4IiwgIjEwMCIpOworc2hvdWxkQmUoInAucG9zaXRp
b24iLCAiMC43Iik7CisKK2RlYnVnKCJTZXQgdmFsdWUgYmlnZ2VyIHRoYW4gbWF4Iik7CitwLnZh
bHVlID0gMjAwOworcC5tYXggPSAxMDAuMDsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjEwMCIpOwor
c2hvdWxkQmUoInAubWF4IiwgIjEwMCIpOworc2hvdWxkQmUoInAucG9zaXRpb24iLCAiMSIpOwor
CitkZWJ1ZygiU2V0IGludmFsaWQgdmFsdWUiKTsKK3AudmFsdWUgPSAiMjAwQSI7CitwLm1heCA9
IDEwMDsKK3Nob3VsZEJlKCJwLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJwLm1heCIsICIxMDAi
KTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwgIjAiKTsKKworZGVidWcoIlNldCBpbnZhbGlkIG1h
eCIpOworcC52YWx1ZSA9ICIyMCI7CitwLm1heCA9ICJtYXgiOworc2hvdWxkQmUoInAudmFsdWUi
LCAiMSIpOworc2hvdWxkQmUoInAubWF4IiwgIjEiKTsKK3Nob3VsZEJlKCJwLnBvc2l0aW9uIiwg
IjEiKTsKKworZGVidWcoIlNldCB2YWx1ZSB0byBudWxsIGFuZCBtYXggdG8gMCIpOworcC52YWx1
ZSA9IG51bGw7CitwLm1heCA9IDA7CitzaG91bGRCZSgicC52YWx1ZSIsICIwIik7CitzaG91bGRC
ZSgicC5tYXgiLCAiMSIpOworc2hvdWxkQmUoInAucG9zaXRpb24iLCAiMCIpOworCitkZWJ1Zygi
U2V0IGF0dHJpYnV0ZXMgdG8gdmFsaWQgbnVtYmVycyIpOworcC5zZXRBdHRyaWJ1dGUoInZhbHVl
IiwgNSk7CitwLnNldEF0dHJpYnV0ZSgibWF4IiwgMTApOworc2hvdWxkQmUoInAudmFsdWUiLCAi
NSIpOworc2hvdWxkQmUoInAubWF4IiwgIjEwIik7CitzaG91bGRCZSgicGFyc2VJbnQocC5nZXRB
dHRyaWJ1dGUoJ3ZhbHVlJykpIiwgIjUiKTsKK3Nob3VsZEJlKCJwYXJzZUludChwLmdldEF0dHJp
YnV0ZSgnbWF4JykpIiwgIjEwIik7CisKK2RlYnVnKCJTZXQgYXR0cmlidXRlcyB0byBpbnZhbGlk
IHZhbHVlcyIpOworcC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgIkFCQyIpOworcC5zZXRBdHRyaWJ1
dGUoIm1heCIsICIjIik7CitzaG91bGRCZSgicC52YWx1ZSIsICIwIik7CitzaG91bGRCZSgicC5t
YXgiLCAiMSIpOworc2hvdWxkQmUoInAuZ2V0QXR0cmlidXRlKCd2YWx1ZScpIiwgIidBQkMnIik7
CitzaG91bGRCZSgicC5nZXRBdHRyaWJ1dGUoJ21heCcpIiwgIicjJyIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZp
c2lvbiA1NTg4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5n
IGNvcHkpCkBAIC01ODIwLDYgKzU4MjAsMTAgQEAgZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1
Ym1pc3Npb24tcHJvdAogIyBtb3VzZVNjcm9sbEJ5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCBp
biB0aGUgR1RLIEV2ZW50U2VuZGVyIEFQSS4KIGZhc3QvZXZlbnRzL3JlbW92ZS1jaGlsZC1vbnNj
cm9sbC5odG1sCiAKKyMgcmVuZGVyVGhlbWUgaXMgbm90IHJlYWR5IHRvIGRyYXcgcHJvZ3Jlc3Mg
ZWxlbWVudAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50Lmh0
bWwKK2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXNzLXByb3BlcnRpZXMu
aHRtbAorCiAjIEFwcGFyZW50bHkgYSBzb3VwIGJ1ZzsgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNTk0MgogaHR0cC90ZXN0cy9wbHVnaW5zL3RoaXJkLXBhcnR5
LWNvb2tpZS1hY2NlcHQtcG9saWN5Lmh0bWwKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQJKHJldmlzaW9uIDU1ODgxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJ
KHdvcmtpbmcgY29weSkKQEAgLTEyOSw1ICsxMjksMTEgQEAgZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uCiAjIEZvciBzb21lIHJlYXNvbiBjcmFzaGVzIHdoZW4gcnVuIHdpdGggYWxsIHRl
c3RzLiBQYXNzZXMgaW5kaXZpZHVhbGx5LgogZmFzdC9mb3Jtcy9tdWx0aXBsZS1mb3JtLXN1Ym1p
c3Npb24tcHJvdGVjdGlvbi1tb3VzZS5odG1sCiAKKworIyByZW5kZXJUaGVtZSBpcyBub3QgcmVh
ZHkgdG8gZHJhdyBwcm9ncmVzcyBlbGVtZW50CitmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50
L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAorZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9zZXQt
cHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCisKICMgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEo
J3RleHQvdXJpLWxpc3QnKSBub3QgY29ycmVjdGx5IGltcGxlbWVudGVkIG9uIE1hYwogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERhdGEuaHRtbAorCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dy
ZXNzLWVsZW1lbnQtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACiswMWNmZmQ5OWI1MGM3OGJjZGY5
M2QyM2YxYzIwY2MwMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxl
bWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQ
cm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyUHJvZ3Jlc3Mge1BST0dS
RVNTfSBhdCAoMiwyKSBzaXplIDEyMHgyMAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1M
UHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NF
bGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
c2V0LXByb2dyZXNzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQzIEBACitUZXN0IHNldHRpbmcgdmFsaWQgYW5kIGludmFsaWQgcHJvcGVydGllcyBvZiBI
VE1MUHJvZ3Jlc3NFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVz
dCB2YWx1ZXMgYmVmb3JlIHByb3BlcnRpZXMgd2VyZSBzZXQKK1BBU1MgcC52YWx1ZSBpcyAxCitQ
QVNTIHAubWF4IGlzIDEKK1BBU1MgcC5wb3NpdGlvbiBpcyAtMQorU2V0IHZhbGlkIHZhbHVlcwor
UEFTUyBwLnZhbHVlIGlzIDcwCitQQVNTIHAubWF4IGlzIDEwMAorUEFTUyBwLnBvc2l0aW9uIGlz
IDAuNworU2V0IHZhbHVlIGJpZ2dlciB0aGFuIG1heAorUEFTUyBwLnZhbHVlIGlzIDEwMAorUEFT
UyBwLm1heCBpcyAxMDAKK1BBU1MgcC5wb3NpdGlvbiBpcyAxCitTZXQgaW52YWxpZCB2YWx1ZQor
UEFTUyBwLnZhbHVlIGlzIDAKK1BBU1MgcC5tYXggaXMgMTAwCitQQVNTIHAucG9zaXRpb24gaXMg
MAorU2V0IGludmFsaWQgbWF4CitQQVNTIHAudmFsdWUgaXMgMQorUEFTUyBwLm1heCBpcyAxCitQ
QVNTIHAucG9zaXRpb24gaXMgMQorU2V0IHZhbHVlIHRvIG51bGwgYW5kIG1heCB0byAwCitQQVNT
IHAudmFsdWUgaXMgMAorUEFTUyBwLm1heCBpcyAxCitQQVNTIHAucG9zaXRpb24gaXMgMAorU2V0
IGF0dHJpYnV0ZXMgdG8gdmFsaWQgbnVtYmVycworUEFTUyBwLnZhbHVlIGlzIDUKK1BBU1MgcC5t
YXggaXMgMTAKK1BBU1MgcGFyc2VJbnQocC5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykpIGlzIDUKK1BB
U1MgcGFyc2VJbnQocC5nZXRBdHRyaWJ1dGUoJ21heCcpKSBpcyAxMAorU2V0IGF0dHJpYnV0ZXMg
dG8gaW52YWxpZCB2YWx1ZXMKK1BBU1MgcC52YWx1ZSBpcyAwCitQQVNTIHAubWF4IGlzIDEKK1BB
U1MgcC5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgaXMgJ0FCQycKK1BBU1MgcC5nZXRBdHRyaWJ1dGUo
J21heCcpIGlzICcjJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvcHJvZ3Jlc3MtZWxlbWVudC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5u
b3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1lbGVt
ZW50LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllD
QVlBQUFDYWRvSndBQUFBQ1hCSVdYTUFBQTdFQUFBT3hBR1ZLdzRiQUFBTQp4RWxFUVZSNG5PM2F1
MDFEUVJCQTBUV2lHNUFnb3dVS3NTVi82ckVJYUlReUNPaG5pUWlSSGtLK0wzam5wRHZCcEZlenV6
bm5IQUFBCkFJRzd0UmNBQUFDMlE0QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBNW43cDRPVjAKdU9VZXJPajY5cjcyQ2dBQWJNVGlBQmxqalBOeGY2
czlBQUNBRGZBRkN3QUF5UHpwQXZMajhmbmoxN2V2ejFjekMyWUFBR0NMWEVBQQpBSUNNQUFFQUFE
SUNCQUFBeUFnUUFBQWdJMEFBQUlDTUFBRUFBRElDQkFBQXlBZ1FBQUFnSTBBQUFJQ01BQUVBQURJ
Q0JBQUF5QWdRCkFBQWdJMEFBQUlETWJzNDVsd3hlVG9keFB1NXZ2UThyZUhoNldYc0ZBQUEyd2dV
RUFBRElMTDZBQUFBQS9KY0xDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFC
QVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJB
Um9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpS
b0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJv
QUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUUKQ0FBQWtCRWdBQUJBUm9B
QUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUEKa0JFZ0FBQkFSb0FB
QUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWcKQUFCQVJvQUFB
QUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkEKUm9BQUFB
QVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUEKQUFB
WkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFCkNBQUFrQkVnQUFCQVJvQUFBQUFa
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVoK
QVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBCmtCRWdBQUJBUm9BQUFBQVpB
UUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnCkFBQkFSb0FBQUFBWkFR
SUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUUKQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWgpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBClJvQUFBQUFaQVFJ
QUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUEKa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQQpBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBCkFBQVpBUUlB
QUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWcKQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRQpDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaCkFRSUFB
R1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkEKUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQQprQkVnQUFCQVJvQUFBQUFaQVFJQUFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBCkFH
UUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUEKQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZwpBQUJBUm9BQUFBQVpBUUlBQUdR
RUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
CkNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVoKQVFJQUFHUUVDQUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQQpSb0FBQUFBWkFRSUFBR1FF
Q0FBQWtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBCmtCRWdBQUJBUm9BQUFBQVpBUUlBQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUEKQUdRRUNBQUFrQkVnQUFCQVJvQUFBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkFSb0FBQUFBWkFRSUFBR1FFQ0FBQWtCRWdBQUJBUm9BQQpBQUFaQVFJQUFHUUVD
QUFBa0JFZ0FBQkE1aHZPQnpMZU84aXhPd0FBQUFCSlJVNUVya0pnZ2c9PQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>